From 7a0203052615f69083c807f527976e862bb90595 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Wojciech=20Dr=C3=B3=C5=BCd=C5=BC?=
<31368152+behenate@users.noreply.github.com>
Date: Mon, 12 Jan 2026 17:56:18 +0100
Subject: [PATCH 1/8] [ncl] Fix camera record/pause screen (#42091)
# Why
Once the recording is finished the app shows the playback screen for a
second and goes back right away on android.
# How
In the recording toggle return when recording is finished. Add a
separate go back button.
# Test Plan
Tested in BareExpo on Android
---
.../Camera/CameraScreenPauseRecording.tsx | 43 +++++++++++--------
1 file changed, 26 insertions(+), 17 deletions(-)
diff --git a/apps/native-component-list/src/screens/Camera/CameraScreenPauseRecording.tsx b/apps/native-component-list/src/screens/Camera/CameraScreenPauseRecording.tsx
index 19432db779ad29..96b5dcdffa3881 100644
--- a/apps/native-component-list/src/screens/Camera/CameraScreenPauseRecording.tsx
+++ b/apps/native-component-list/src/screens/Camera/CameraScreenPauseRecording.tsx
@@ -16,6 +16,7 @@ export default function CameraScreenPauseRecording() {
const recordAsync = async () => {
if (recording) {
camera.current?.stopRecording();
+ return;
}
setRecording(true);
const result = await camera.current?.recordAsync();
@@ -32,25 +33,33 @@ export default function CameraScreenPauseRecording() {
return (
{!uri ? (
-
+ <>
+
+
+
+ {uri &&
+ >
) : (
-
+ <>
+
+ setUri('')} />
+ >
)}
-
-
- {uri && setUri('')} />}
- {recording && (
-
- )}
-
);
}
From 2a78a3be22741e7305e2d399866be45a2ddefe5d Mon Sep 17 00:00:00 2001
From: Alan Hughes <30924086+alanjhughes@users.noreply.github.com>
Date: Mon, 12 Jan 2026 18:10:19 +0000
Subject: [PATCH 2/8] [ios][expo-go] Clean up home SwiftUI (#42090)
---
.../ios/BareExpo.xcodeproj/project.pbxproj | 8 +-
apps/bare-expo/ios/Podfile.lock | 22 +-
.../Client/SwiftUI/Account/AccountSheet.swift | 33 ++-
.../ios/Client/SwiftUI/DesignSystem.swift | 204 ------------------
.../Client/SwiftUI/DiagnosticsTabView.swift | 10 +-
.../ios/Client/SwiftUI/GraphQL/Errors.swift | 4 +-
.../ios/Client/SwiftUI/HomeRootView.swift | 18 +-
.../ios/Client/SwiftUI/HomeViewModel.swift | 29 ---
.../Services/AuthenticationService.swift | 4 +-
.../ios/Client/SwiftUI/SettingsTabView.swift | 7 +-
.../Views/ProjectsLoadingSection.swift | 1 -
.../SwiftUI/Views/SnacksLoadingSection.swift | 1 -
apps/expo-go/ios/Podfile.lock | 2 +-
13 files changed, 44 insertions(+), 299 deletions(-)
diff --git a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj
index 33103369170b4f..96f83908ff0631 100644
--- a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj
+++ b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj
@@ -419,12 +419,12 @@
"${PODS_CONFIGURATION_BUILD_DIR}/EXApplication/ExpoApplication_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications/ExpoNotifications_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoDevice/ExpoDevice_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoLocalization/ExpoLocalization_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoMediaLibrary/ExpoMediaLibrary_privacy.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ExpoNotifications/ExpoNotifications_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoSystemUI/ExpoSystemUI_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoTaskManager/ExpoTaskManager_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
@@ -442,12 +442,12 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoApplication_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoNotifications_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoDevice_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoLocalization_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoMediaLibrary_privacy.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoNotifications_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoSystemUI_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoTaskManager_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
@@ -497,12 +497,12 @@
"${PODS_CONFIGURATION_BUILD_DIR}/EXApplication/ExpoApplication_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications/ExpoNotifications_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoDevice/ExpoDevice_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoLocalization/ExpoLocalization_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoMediaLibrary/ExpoMediaLibrary_privacy.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ExpoNotifications/ExpoNotifications_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoSystemUI/ExpoSystemUI_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoTaskManager/ExpoTaskManager_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
@@ -520,12 +520,12 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoApplication_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoNotifications_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoDevice_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoLocalization_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoMediaLibrary_privacy.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoNotifications_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoSystemUI_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoTaskManager_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock
index 971049ec4b4585..462a94aaa646d7 100644
--- a/apps/bare-expo/ios/Podfile.lock
+++ b/apps/bare-expo/ios/Podfile.lock
@@ -38,11 +38,6 @@ PODS:
- EXManifests/Tests (1.0.8):
- ExpoModulesCore
- ExpoModulesTestCore
- - EXNotifications (0.32.11):
- - ExpoModulesCore
- - EXNotifications/Tests (0.32.11):
- - ExpoModulesCore
- - ExpoModulesTestCore
- Expo (54.0.8):
- ExpoModulesCore
- hermes-engine
@@ -520,6 +515,11 @@ PODS:
- React-hermes
- ExpoNetwork (8.0.7):
- ExpoModulesCore
+ - ExpoNotifications (0.32.11):
+ - ExpoModulesCore
+ - ExpoNotifications/Tests (0.32.11):
+ - ExpoModulesCore
+ - ExpoModulesTestCore
- ExpoPrint (15.0.7):
- ExpoModulesCore
- ExpoRouter (6.0.6):
@@ -3111,8 +3111,6 @@ DEPENDENCIES:
- EXJSONUtils/Tests (from `../../../packages/expo-json-utils/ios`)
- EXManifests (from `../../../packages/expo-manifests/ios`)
- EXManifests/Tests (from `../../../packages/expo-manifests/ios`)
- - EXNotifications (from `../../../packages/expo-notifications/ios`)
- - EXNotifications/Tests (from `../../../packages/expo-notifications/ios`)
- Expo (from `../../../packages/expo`)
- expo-dev-client (from `../../../packages/expo-dev-client/ios`)
- expo-dev-launcher (from `../../../packages/expo-dev-launcher`)
@@ -3172,6 +3170,8 @@ DEPENDENCIES:
- ExpoModulesJSI/Tests (from `../../../packages/expo-modules-core`)
- ExpoModulesTestCore (from `../../../packages/expo-modules-test-core/ios`)
- ExpoNetwork (from `../../../packages/expo-network/ios`)
+ - ExpoNotifications (from `../../../packages/expo-notifications/ios`)
+ - ExpoNotifications/Tests (from `../../../packages/expo-notifications/ios`)
- ExpoPrint (from `../../../packages/expo-print/ios`)
- ExpoRouter (from `../../../packages/expo-router/ios`)
- ExpoScreenCapture (from `../../../packages/expo-screen-capture/ios`)
@@ -3327,9 +3327,6 @@ EXTERNAL SOURCES:
EXManifests:
inhibit_warnings: false
:path: "../../../packages/expo-manifests/ios"
- EXNotifications:
- inhibit_warnings: false
- :path: "../../../packages/expo-notifications/ios"
Expo:
inhibit_warnings: false
:path: "../../../packages/expo"
@@ -3478,6 +3475,9 @@ EXTERNAL SOURCES:
ExpoNetwork:
inhibit_warnings: false
:path: "../../../packages/expo-network/ios"
+ ExpoNotifications:
+ inhibit_warnings: false
+ :path: "../../../packages/expo-notifications/ios"
ExpoPrint:
inhibit_warnings: false
:path: "../../../packages/expo-print/ios"
@@ -3743,7 +3743,6 @@ SPEC CHECKSUMS:
EXConstants: 59d46d25b89f88cc38291a56dbce4d550758f72d
EXJSONUtils: 1d3e4590438c3ee593684186007028a14b3686cd
EXManifests: 7469efed75d694ce3c43a6da9c6f3886f66d3c26
- EXNotifications: a9eb811deeb51fb8e50ef45569be6ffab3994648
Expo: 9d61298dd8bbd625b62dcd082485fe1692084242
expo-dev-client: b8c16c699a35787e1ac38c6d44ef7552fe3f0334
expo-dev-launcher: 93ab1128548f72825f3fe290ff1c1690114e8def
@@ -3794,6 +3793,7 @@ SPEC CHECKSUMS:
ExpoModulesJSI: c470ea2ed825fce73bdc4ef060c8a22e3f664092
ExpoModulesTestCore: e65555b75a4ed7dd3bcf421ad01d7748bd372c88
ExpoNetwork: 97073786edfe405aba5d0987a544617ed0671ad1
+ ExpoNotifications: ce045fa5f6ab4109f04468e04e6fe6ff0427a6d1
ExpoPrint: ad836bb90da10793509651c0ea1f39e120db001e
ExpoRouter: 84268c2b41722697cb02cd6c377d588b4f71c9b5
ExpoScreenCapture: 0c785ab7e1fa38943f04b16060d54ae8f886544a
diff --git a/apps/expo-go/ios/Client/SwiftUI/Account/AccountSheet.swift b/apps/expo-go/ios/Client/SwiftUI/Account/AccountSheet.swift
index e3737f7b03f425..4489581a386a0e 100644
--- a/apps/expo-go/ios/Client/SwiftUI/Account/AccountSheet.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/Account/AccountSheet.swift
@@ -45,8 +45,7 @@ struct AccountSheet: View {
Button {
dismiss()
- }
- label: {
+ } label: {
Image(systemName: "xmark")
.font(.system(size: 16, weight: .medium))
.foregroundColor(.primary)
@@ -79,17 +78,16 @@ struct AccountSheet: View {
Button {
UIImpactFeedbackGenerator(style: .light).impactOccurred()
viewModel.signOut()
- }
- label: {
+ } label: {
Text("Logout")
- .font(.headline)
- .fontWeight(.bold)
- .foregroundColor(.white)
- .frame(maxWidth: .infinity)
- .padding(.vertical, 12)
- }
- .background(Color.black)
- .cornerRadius(12)
+ .font(.headline)
+ .fontWeight(.bold)
+ .foregroundColor(.white)
+ .frame(maxWidth: .infinity)
+ .padding(.vertical, 12)
+ }
+ .background(Color.black)
+ .cornerRadius(12)
}
}
@@ -117,8 +115,7 @@ struct AccountSheet: View {
Task {
await viewModel.signIn()
}
- }
- label: {
+ } label: {
Text("Log In")
.font(.headline)
.fontWeight(.semibold)
@@ -137,8 +134,7 @@ struct AccountSheet: View {
Task {
await viewModel.signUp()
}
- }
- label: {
+ } label: {
Text("Sign Up")
.font(.headline)
.fontWeight(.semibold)
@@ -146,7 +142,7 @@ struct AccountSheet: View {
.frame(maxWidth: .infinity)
.padding(.vertical, 12)
}
- .background(Color(.white))
+ .background(Color.white)
.cornerRadius(12)
.disabled(viewModel.isAuthenticating)
}
@@ -155,8 +151,7 @@ struct AccountSheet: View {
Button {
UIImpactFeedbackGenerator(style: .light).impactOccurred()
viewModel.selectAccount(accountId: account.id)
- }
- label: {
+ } label: {
HStack(spacing: 12) {
AvatarView(account: account, size: 40)
diff --git a/apps/expo-go/ios/Client/SwiftUI/DesignSystem.swift b/apps/expo-go/ios/Client/SwiftUI/DesignSystem.swift
index 882bb9c6e4992f..b2e088eebd6471 100644
--- a/apps/expo-go/ios/Client/SwiftUI/DesignSystem.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/DesignSystem.swift
@@ -4,165 +4,29 @@ import SwiftUI
import ExpoModulesCore
extension Color {
- // Brand colors
static let expoBlue = Color(red: 0.0, green: 0.46, blue: 1.0)
- static let expoGreen = Color(red: 0.0, green: 0.8, blue: 0.4)
- static let expoOrange = Color(red: 1.0, green: 0.4, blue: 0.0)
- static let expoRed = Color(red: 1.0, green: 0.23, blue: 0.19)
- static let expoPink = Color(red: 1.0, green: 0.18, blue: 0.58)
- static let expoPurple = Color(red: 0.56, green: 0.27, blue: 1.0)
- static let expoPrimaryText = Color(.label)
static let expoSecondaryText = Color(.secondaryLabel)
- static let expoTertiaryText = Color(.tertiaryLabel)
-
- static let expoBorder = Color(.separator)
- static let expoSecondaryBorder = Color(.opaqueSeparator)
static let expoSystemBackground = Color(uiColor: .systemBackground)
static let expoSecondarySystemBackground = Color(uiColor: .secondarySystemBackground)
- static let expoTertiarySystemBackground = Color(uiColor: .tertiarySystemBackground)
- static let expoSystemGroupedBackground = Color(uiColor: .systemGroupedBackground)
static let expoSecondarySystemGroupedBackground = Color(uiColor: .secondarySystemGroupedBackground)
- static let expoTertiarySystemGroupedBackground = Color(uiColor: .tertiarySystemGroupedBackground)
- static let expoSystemGray = Color(uiColor: .systemGray)
- static let expoSystemGray2 = Color(uiColor: .systemGray2)
- static let expoSystemGray3 = Color(uiColor: .systemGray3)
static let expoSystemGray4 = Color(uiColor: .systemGray4)
static let expoSystemGray5 = Color(uiColor: .systemGray5)
static let expoSystemGray6 = Color(uiColor: .systemGray6)
}
extension Font {
- static func expoTitle(_ size: CGFloat = 28) -> Font {
- return .system(size: size, weight: .bold, design: .default)
- }
-
- static func expoHeadline(_ size: CGFloat = 17) -> Font {
- return .system(size: size, weight: .semibold, design: .default)
- }
-
- static func expoBody(_ size: CGFloat = 17) -> Font {
- return .system(size: size, weight: .regular, design: .default)
- }
-
static func expoCaption(_ size: CGFloat = 12) -> Font {
return .system(size: size, weight: .medium, design: .default)
}
-
- static func expoFootnote(_ size: CGFloat = 13) -> Font {
- return .system(size: size, weight: .regular, design: .default)
- }
-}
-
-struct Spacing {
- static let xxs: CGFloat = 2
- static let xs: CGFloat = 4
- static let small: CGFloat = 8
- static let medium: CGFloat = 12
- static let large: CGFloat = 16
- static let xl: CGFloat = 20
- static let xxl: CGFloat = 24
- static let xxxl: CGFloat = 32
}
struct BorderRadius {
static let small: CGFloat = 4
static let medium: CGFloat = 8
static let large: CGFloat = 12
- static let xl: CGFloat = 16
- static let xxl: CGFloat = 20
-}
-
-extension View {
- func expoCardShadow() -> some View {
- self.shadow(
- color: Color.black.opacity(0.08),
- radius: 8,
- x: 0,
- y: 2
- )
- }
-
- func expoButtonShadow() -> some View {
- self.shadow(
- color: Color.black.opacity(0.1),
- radius: 4,
- x: 0,
- y: 2
- )
- }
-
- func expoRowStyle() -> some View {
- self
- .padding()
- .background(Color.expoSecondarySystemBackground)
- .clipShape(RoundedRectangle(cornerRadius: BorderRadius.large))
- }
-}
-
-struct ExpoButtonStyle: ButtonStyle {
- let style: ExpoButtonVariant
-
- enum ExpoButtonVariant {
- case primary
- case secondary
- case ghost
- case danger
- }
-
- func makeBody(configuration: Configuration) -> some View {
- configuration.label
- .font(.expoHeadline())
- .padding(.horizontal, Spacing.large)
- .padding(.vertical, Spacing.medium)
- .background(backgroundColor)
- .foregroundColor(textColor)
- .clipShape(RoundedRectangle(cornerRadius: BorderRadius.medium))
- .scaleEffect(configuration.isPressed ? 0.98 : 1.0)
- .opacity(configuration.isPressed ? 0.8 : 1.0)
- .animation(.easeInOut(duration: 0.1), value: configuration.isPressed)
- }
-
- private var backgroundColor: Color {
- switch style {
- case .primary:
- return .expoBlue
- case .secondary:
- return .expoSecondarySystemBackground
- case .ghost:
- return .clear
- case .danger:
- return .expoRed
- }
- }
-
- private var textColor: Color {
- switch style {
- case .primary, .danger:
- return .white
- case .secondary:
- return .expoPrimaryText
- case .ghost:
- return .expoBlue
- }
- }
-}
-
-struct ExpoCardStyle: ViewModifier {
- func body(content: Content) -> some View {
- content
- .background(Color.expoSecondarySystemGroupedBackground)
- .clipShape(RoundedRectangle(cornerRadius: BorderRadius.large))
- .expoCardShadow()
- }
-}
-
-extension View {
- func expoCard() -> some View {
- self.modifier(ExpoCardStyle())
- }
}
struct ExpoSectionHeaderStyle: ViewModifier {
@@ -179,71 +43,3 @@ extension View {
self.modifier(ExpoSectionHeaderStyle())
}
}
-
-struct ExpoListRowStyle: ViewModifier {
- let isFirst: Bool
- let isLast: Bool
-
- init(isFirst: Bool = false, isLast: Bool = false) {
- self.isFirst = isFirst
- self.isLast = isLast
- }
-
- func body(content: Content) -> some View {
- content
- .padding(Spacing.large)
- .background(Color.expoSecondarySystemGroupedBackground)
- .overlay(
- Rectangle()
- .frame(height: 0.5)
- .foregroundColor(.expoBorder)
- .opacity(isFirst ? 0 : 1),
- alignment: .top
- )
- .clipShape(
- RoundedCorners(
- topLeading: isFirst ? BorderRadius.large : 0,
- topTrailing: isFirst ? BorderRadius.large : 0,
- bottomLeading: isLast ? BorderRadius.large : 0,
- bottomTrailing: isLast ? BorderRadius.large : 0
- )
- )
- }
-}
-
-extension View {
- func expoListRow(isFirst: Bool = false, isLast: Bool = false) -> some View {
- self.modifier(ExpoListRowStyle(isFirst: isFirst, isLast: isLast))
- }
-}
-
-struct RoundedCorners: Shape {
- let topLeading: CGFloat
- let topTrailing: CGFloat
- let bottomLeading: CGFloat
- let bottomTrailing: CGFloat
-
- func path(in rect: CGRect) -> Path {
- var path = Path()
-
- let width = rect.size.width
- let height = rect.size.height
-
- path.move(to: CGPoint(x: topLeading, y: 0))
-
- path.addLine(to: CGPoint(x: width - topTrailing, y: 0))
- path.addArc(center: CGPoint(x: width - topTrailing, y: topTrailing), radius: topTrailing, startAngle: Angle(degrees: -90), endAngle: Angle(degrees: 0), clockwise: false)
-
- path.addLine(to: CGPoint(x: width, y: height - bottomTrailing))
- path.addArc(center: CGPoint(x: width - bottomTrailing, y: height - bottomTrailing), radius: bottomTrailing, startAngle: Angle(degrees: 0), endAngle: Angle(degrees: 90), clockwise: false)
-
- path.addLine(to: CGPoint(x: bottomLeading, y: height))
- path.addArc(center: CGPoint(x: bottomLeading, y: height - bottomLeading), radius: bottomLeading, startAngle: Angle(degrees: 90), endAngle: Angle(degrees: 180), clockwise: false)
-
- path.addLine(to: CGPoint(x: 0, y: topLeading))
- path.addArc(center: CGPoint(x: topLeading, y: topLeading), radius: topLeading, startAngle: Angle(degrees: 180), endAngle: Angle(degrees: 270), clockwise: false)
-
- path.closeSubpath()
- return path
- }
-}
diff --git a/apps/expo-go/ios/Client/SwiftUI/DiagnosticsTabView.swift b/apps/expo-go/ios/Client/SwiftUI/DiagnosticsTabView.swift
index 96f328d425b288..a30db26cf36a44 100644
--- a/apps/expo-go/ios/Client/SwiftUI/DiagnosticsTabView.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/DiagnosticsTabView.swift
@@ -11,8 +11,7 @@ struct DiagnosticsTabView: View {
NavigationLink(destination: AudioDiagnosticsView()) {
DiagnosticCard(
title: "Audio",
- description: "On iOS you can play audio in the foreground and background, choose whether it plays when the device is on silent, and set how the audio interacts with audio from other apps. This diagnostic allows you to see the available options.",
- action: {}
+ description: "On iOS you can play audio in the foreground and background, choose whether it plays when the device is on silent, and set how the audio interacts with audio from other apps. This diagnostic allows you to see the available options."
)
}
.buttonStyle(PlainButtonStyle())
@@ -20,8 +19,7 @@ struct DiagnosticsTabView: View {
NavigationLink(destination: LocationDiagnosticsView()) {
DiagnosticCard(
title: "Background location",
- description: "On iOS it's possible to track your location when an app is foregrounded, backgrounded, or even closed. This diagnostic allows you to see what options are available, see the output, and test the functionality on your device. None of the location data will leave your device.",
- action: {}
+ description: "On iOS it's possible to track your location when an app is foregrounded, backgrounded, or even closed. This diagnostic allows you to see what options are available, see the output, and test the functionality on your device. None of the location data will leave your device."
)
}
.buttonStyle(PlainButtonStyle())
@@ -29,8 +27,7 @@ struct DiagnosticsTabView: View {
NavigationLink(destination: GeofencingDiagnosticsView()) {
DiagnosticCard(
title: "Geofencing",
- description: "You can fire actions when your device enters specific geographical regions represented by a longitude, latitude, and a radius. This diagnostic lets you experiment with Geofencing using regions that you specify and shows you the data that is made available. None of the data will leave your device.",
- action: {}
+ description: "You can fire actions when your device enters specific geographical regions represented by a longitude, latitude, and a radius. This diagnostic lets you experiment with Geofencing using regions that you specify and shows you the data that is made available. None of the data will leave your device."
)
}
.buttonStyle(PlainButtonStyle())
@@ -46,7 +43,6 @@ struct DiagnosticsTabView: View {
struct DiagnosticCard: View {
let title: String
let description: String
- let action: () -> Void
var body: some View {
HStack(alignment: .top) {
diff --git a/apps/expo-go/ios/Client/SwiftUI/GraphQL/Errors.swift b/apps/expo-go/ios/Client/SwiftUI/GraphQL/Errors.swift
index 08771f930a9035..60915a40ad4bce 100644
--- a/apps/expo-go/ios/Client/SwiftUI/GraphQL/Errors.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/GraphQL/Errors.swift
@@ -2,7 +2,7 @@
import Foundation
-enum APIError: Error {
+enum APIError: LocalizedError {
case invalidURL
case invalidResponse
case httpError(statusCode: Int, message: String)
@@ -10,7 +10,7 @@ enum APIError: Error {
case networkError(Error)
case authenticationRequired
- var localizedDescription: String {
+ var errorDescription: String? {
switch self {
case .invalidURL:
return "Invalid URL"
diff --git a/apps/expo-go/ios/Client/SwiftUI/HomeRootView.swift b/apps/expo-go/ios/Client/SwiftUI/HomeRootView.swift
index 6c808e30d876cd..23f88d35f55ff5 100644
--- a/apps/expo-go/ios/Client/SwiftUI/HomeRootView.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/HomeRootView.swift
@@ -28,7 +28,6 @@ public struct HomeRootView: View {
Text("Home")
}
.tag(HomeTab.home)
- .navigationBarHidden(true)
NavigationView {
DiagnosticsTabView()
@@ -52,17 +51,12 @@ public struct HomeRootView: View {
AccountSheet()
.environmentObject(viewModel)
}
- .alert("Error", isPresented: Binding(
- get: { viewModel.errorToShow != nil },
- set: { if !$0 { viewModel.clearError() } }
- )) {
- Button("OK") {
- viewModel.clearError()
- }
- } message: {
- if let error = viewModel.errorToShow {
- Text(error.message)
- }
+ .alert(item: $viewModel.errorToShow) { error in
+ Alert(
+ title: Text("Error"),
+ message: Text(error.message),
+ dismissButton: .default(Text("OK"))
+ )
}
}
}
diff --git a/apps/expo-go/ios/Client/SwiftUI/HomeViewModel.swift b/apps/expo-go/ios/Client/SwiftUI/HomeViewModel.swift
index a81fb2b63ab4d4..0f4db9f383745f 100644
--- a/apps/expo-go/ios/Client/SwiftUI/HomeViewModel.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/HomeViewModel.swift
@@ -12,7 +12,6 @@ class HomeViewModel: ObservableObject {
@Published var recentlyOpenedApps: [RecentlyOpenedApp] = []
- @Published var showingAccountSheet = false
@Published var showingFeedbackForm = false
@Published var errorToShow: ErrorInfo?
@Published var isNetworkAvailable = true
@@ -177,26 +176,6 @@ class HomeViewModel: ObservableObject {
openAppViaBridge(url: url)
}
- func extractAppName(from url: String) -> String {
- guard let urlComponents = URL(string: url) else {
- return url
- }
-
- let pathComponents = urlComponents.path.components(separatedBy: "/").filter { !$0.isEmpty }
- if let lastComponent = pathComponents.last, !lastComponent.isEmpty, lastComponent != "@" {
- return lastComponent
- }
-
- if let host = urlComponents.host {
- if let port = urlComponents.port {
- return "\(host):\(port)"
- }
- return host
- }
-
- return url
- }
-
func updateShakeGesture(_ enabled: Bool) {
settingsManager.updateShakeGesture(enabled)
}
@@ -209,10 +188,6 @@ class HomeViewModel: ObservableObject {
settingsManager.updateTheme(themeIndex)
}
- func showAccountSheet() {
- showingAccountSheet = true
- }
-
func showFeedbackForm() {
showingFeedbackForm = true
}
@@ -221,10 +196,6 @@ class HomeViewModel: ObservableObject {
errorToShow = ErrorInfo(message: message, apiError: apiError)
}
- func clearError() {
- errorToShow = nil
- }
-
private func setupSubscriptions() {
authService.$user
.sink { [weak self] in self?.user = $0 }
diff --git a/apps/expo-go/ios/Client/SwiftUI/Services/AuthenticationService.swift b/apps/expo-go/ios/Client/SwiftUI/Services/AuthenticationService.swift
index c56803046ccffa..00a5b0f7ea3fe4 100644
--- a/apps/expo-go/ios/Client/SwiftUI/Services/AuthenticationService.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/Services/AuthenticationService.swift
@@ -13,7 +13,7 @@ class AuthenticationService: ObservableObject {
private let sessionKey = "expo-session-secret"
private let selectedAccountKey = "expo-selected-account-id"
- private let presentationContext = ExpoGoAuthPresentationContext()
+ private let presentationContext = AuthPresentationContextProvider()
var sessionSecret: String? {
UserDefaults.standard.string(forKey: sessionKey)
@@ -161,7 +161,7 @@ class AuthenticationService: ObservableObject {
}
}
-private class ExpoGoAuthPresentationContext: NSObject, ASWebAuthenticationPresentationContextProviding {
+private class AuthPresentationContextProvider: NSObject, ASWebAuthenticationPresentationContextProviding {
func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
let window = UIApplication.shared.connectedScenes
.compactMap { $0 as? UIWindowScene }
diff --git a/apps/expo-go/ios/Client/SwiftUI/SettingsTabView.swift b/apps/expo-go/ios/Client/SwiftUI/SettingsTabView.swift
index 8983acbdb1b048..00de74c57bbb89 100644
--- a/apps/expo-go/ios/Client/SwiftUI/SettingsTabView.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/SettingsTabView.swift
@@ -135,7 +135,7 @@ struct SettingsTabView: View {
}
.frame(maxWidth: .infinity)
.padding()
- .background(Color(.secondarySystemBackground))
+ .background(Color.expoSecondarySystemBackground)
.foregroundColor(.primary)
.clipShape(RoundedRectangle(cornerRadius: BorderRadius.large))
}
@@ -200,11 +200,6 @@ struct SettingsTabView: View {
.task {
await refreshTrackingStatus()
}
- .onAppear {
- Task {
- await refreshTrackingStatus()
- }
- }
}
private func getExpoSDKVersion() -> String {
diff --git a/apps/expo-go/ios/Client/SwiftUI/Views/ProjectsLoadingSection.swift b/apps/expo-go/ios/Client/SwiftUI/Views/ProjectsLoadingSection.swift
index deaab665f5f9f2..d5e984ee89b3db 100644
--- a/apps/expo-go/ios/Client/SwiftUI/Views/ProjectsLoadingSection.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/Views/ProjectsLoadingSection.swift
@@ -39,6 +39,5 @@ struct ProjectSkeletonRow: View {
.padding()
.background(Color.expoSecondarySystemBackground)
.clipShape(RoundedRectangle(cornerRadius: BorderRadius.large))
- .redacted(reason: .placeholder)
}
}
diff --git a/apps/expo-go/ios/Client/SwiftUI/Views/SnacksLoadingSection.swift b/apps/expo-go/ios/Client/SwiftUI/Views/SnacksLoadingSection.swift
index 95bffcf456ed6a..15f6263211250e 100644
--- a/apps/expo-go/ios/Client/SwiftUI/Views/SnacksLoadingSection.swift
+++ b/apps/expo-go/ios/Client/SwiftUI/Views/SnacksLoadingSection.swift
@@ -39,6 +39,5 @@ struct SnackSkeletonRow: View {
.padding()
.background(Color.expoSecondarySystemBackground)
.clipShape(RoundedRectangle(cornerRadius: BorderRadius.large))
- .redacted(reason: .placeholder)
}
}
diff --git a/apps/expo-go/ios/Podfile.lock b/apps/expo-go/ios/Podfile.lock
index 7982016f73f6e2..05d5f87fcf7ac9 100644
--- a/apps/expo-go/ios/Podfile.lock
+++ b/apps/expo-go/ios/Podfile.lock
@@ -4757,7 +4757,7 @@ SPEC CHECKSUMS:
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMaps: 0608099d4870cac8754bdba9b6953db543432438
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
- hermes-engine: 452f2dd7422b2fd7973ae9ca103898d28d7744f0
+ hermes-engine: d7a9424b7191b73c5c774d04fc2e147dd400e67f
libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7
libdav1d: 23581a4d8ec811ff171ed5e2e05cd27bad64c39f
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
From acc1886bc56d56c64295e7e0f3b6c13559349cde Mon Sep 17 00:00:00 2001
From: Jakub Tkacz <32908614+Ubax@users.noreply.github.com>
Date: Mon, 12 Jan 2026 19:24:06 +0100
Subject: [PATCH 3/8] [expo-router] add Toolbar.SearchBarPreferredSlot (#41863)
# Why
# How
1. Add native component implementation
2. Use
[`searchBarPlacementBarButtonItem`](https://developer.apple.com/documentation/uikit/uinavigationitem/searchbarplacementbarbuttonitem)
# Test Plan
1. Manual testing
2. local e2e
# Checklist
- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
---
.../__tests__/toolbar/search-bar.yml | 26 +++++++
.../__e2e__/native-navigation/app/toolbar.tsx | 51 ++++++++++++-
apps/router-e2e/__e2e__/stack/app/[id].tsx | 9 +--
.../__e2e__/stack/app/test/index.tsx | 9 +--
.../data/unversioned/expo-router-toolbar.json | 2 +-
.../static/data/unversioned/expo-router.json | 2 +-
packages/expo-router/CHANGELOG.md | 1 +
.../build/layouts/StackClient.d.ts | 4 +-
.../build/layouts/StackClient.d.ts.map | 2 +-
.../expo-router/build/layouts/StackClient.js | 1 +
.../build/layouts/StackClient.js.map | 2 +-
.../stack-utils/StackHeaderComponent.d.ts.map | 2 +-
.../stack-utils/StackHeaderComponent.js | 6 +-
.../stack-utils/StackHeaderComponent.js.map | 2 +-
.../stack-utils/StackHeaderSearchBar.d.ts | 7 --
.../stack-utils/StackHeaderSearchBar.d.ts.map | 1 -
.../stack-utils/StackHeaderSearchBar.js | 16 ----
.../stack-utils/StackHeaderSearchBar.js.map | 1 -
.../layouts/stack-utils/StackSearchBar.d.ts | 7 ++
.../stack-utils/StackSearchBar.d.ts.map | 1 +
.../layouts/stack-utils/StackSearchBar.js | 19 +++++
.../layouts/stack-utils/StackSearchBar.js.map | 1 +
.../build/layouts/stack-utils/index.d.ts | 5 +-
.../build/layouts/stack-utils/index.d.ts.map | 2 +-
.../build/layouts/stack-utils/index.js | 7 +-
.../build/layouts/stack-utils/index.js.map | 2 +-
.../expo-router/build/toolbar/elements.d.ts | 49 +++++++++++++
.../build/toolbar/elements.d.ts.map | 2 +-
.../expo-router/build/toolbar/elements.js | 36 ++++++++-
.../expo-router/build/toolbar/elements.js.map | 2 +-
packages/expo-router/build/toolbar/index.d.ts | 7 +-
.../expo-router/build/toolbar/index.d.ts.map | 2 +-
packages/expo-router/build/toolbar/index.js | 4 +-
.../expo-router/build/toolbar/index.js.map | 2 +-
.../build/toolbar/native.types.d.ts | 2 +-
.../build/toolbar/native.types.d.ts.map | 2 +-
.../build/toolbar/native.types.js.map | 2 +-
.../ios/Toolbar/RouterToolbarHostView.swift | 2 +-
.../ios/Toolbar/RouterToolbarItemView.swift | 28 ++++++-
.../expo-router/src/layouts/StackClient.tsx | 2 +
.../stack-utils/StackHeaderComponent.tsx | 9 +--
.../stack-utils/StackHeaderSearchBar.tsx | 20 -----
.../layouts/stack-utils/StackSearchBar.tsx | 27 +++++++
.../__tests__/composition.test.ios.tsx | 4 +-
.../src/layouts/stack-utils/index.tsx | 7 +-
packages/expo-router/src/toolbar/elements.tsx | 73 ++++++++++++++++++-
packages/expo-router/src/toolbar/index.ts | 12 ++-
.../expo-router/src/toolbar/native.types.ts | 2 +-
48 files changed, 371 insertions(+), 113 deletions(-)
create mode 100644 apps/router-e2e/__e2e__/native-navigation/__tests__/toolbar/search-bar.yml
delete mode 100644 packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts
delete mode 100644 packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts.map
delete mode 100644 packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js
delete mode 100644 packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js.map
create mode 100644 packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts
create mode 100644 packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts.map
create mode 100644 packages/expo-router/build/layouts/stack-utils/StackSearchBar.js
create mode 100644 packages/expo-router/build/layouts/stack-utils/StackSearchBar.js.map
delete mode 100644 packages/expo-router/src/layouts/stack-utils/StackHeaderSearchBar.tsx
create mode 100644 packages/expo-router/src/layouts/stack-utils/StackSearchBar.tsx
diff --git a/apps/router-e2e/__e2e__/native-navigation/__tests__/toolbar/search-bar.yml b/apps/router-e2e/__e2e__/native-navigation/__tests__/toolbar/search-bar.yml
new file mode 100644
index 00000000000000..d9c667a2cc10ba
--- /dev/null
+++ b/apps/router-e2e/__e2e__/native-navigation/__tests__/toolbar/search-bar.yml
@@ -0,0 +1,26 @@
+appId: com.expo.routere2e
+name: Toolbar search bar
+jsEngine: graaljs
+---
+- stopApp: com.expo.routere2e
+- openLink: router-e2e://toolbar?searchBar=true
+- runFlow: ../close-warning.yml
+- assertVisible: "Toolbar E2E Test Screen"
+- tapOn: Search
+- assertVisible: 'Search Text: ""'
+- assertVisible: "Search Focused: Yes"
+- assertVisible: This is toolbar searchbar
+- tapOn: This is toolbar searchbar
+- inputText: Hello World
+- scrollUntilVisible:
+ element: "Search Focused: Yes"
+- assertVisible: 'Search Text: "Hello World"'
+- tapOn: close
+- assertVisible: 'Search Text: ""'
+- assertVisible: "Search Focused: No"
+- tapOn:
+ id: toggle-search-bar
+- assertNotVisible: Search
+- tapOn:
+ id: toggle-search-bar
+- assertVisible: Search
diff --git a/apps/router-e2e/__e2e__/native-navigation/app/toolbar.tsx b/apps/router-e2e/__e2e__/native-navigation/app/toolbar.tsx
index 4d634d7dd0a6a9..42362923691a85 100644
--- a/apps/router-e2e/__e2e__/native-navigation/app/toolbar.tsx
+++ b/apps/router-e2e/__e2e__/native-navigation/app/toolbar.tsx
@@ -1,5 +1,5 @@
import { useImage } from 'expo-image';
-import { Color, useLocalSearchParams } from 'expo-router';
+import { Color, Stack, useLocalSearchParams } from 'expo-router';
import { Toolbar } from 'expo-router/unstable-toolbar';
import { SymbolView } from 'expo-symbols';
import { useState, useRef } from 'react';
@@ -17,6 +17,9 @@ import {
export default function ToolbarScreen() {
const params = useLocalSearchParams();
// State for controlling toolbar items visibility
+ const [showSearchBar, setShowSearchBar] = useState(!!params.searchBar);
+ const [sharesBackgroundSearchBar, setSharesBackgroundSearchBar] = useState(true);
+ const [hidesSharedBackgroundSearchBar, setHidesSharedBackgroundSearchBar] = useState(false);
const [showSearchButton, setShowSearchButton] = useState(!!params.searchButton);
const [sharesBackgroundSearchButton, setSharesBackgroundSearchButton] = useState(true);
const [hidesSharedBackgroundSearchButton, setHidesSharedBackgroundSearchButton] = useState(false);
@@ -91,10 +94,49 @@ export default function ToolbarScreen() {
contentContainerStyle={styles.contentContainer}
contentInsetAdjustmentBehavior="automatic">
Toolbar E2E Test Screen
+
+ setIsSearchFocused(true)}
+ onBlur={() => setIsSearchFocused(false)}
+ onChangeText={(e) => setSearchText(e.nativeEvent.text)}
+ placement="integratedButton"
+ placeholder="This is toolbar searchbar"
+ />
Toolbar Items Visibility
+
+ Show Search Bar
+
+
+
+ {showSearchBar && (
+ <>
+
+ Search Bar Shares Background
+
+
+
+
+ Search Bar Hides Shared Background
+
+
+ >
+ )}
+
Show Search Button
+ {/* Search bar */}
+
+
{/* Search button */}
-
-
- setSearchText(e.nativeEvent.text)}
- />
-
-
+ setSearchText(e.nativeEvent.text)} />
Modal Search Text: {searchText}
searchBarRef.current?.setText('')} />
searchBarRef.current?.cancelSearch()} />
diff --git a/apps/router-e2e/__e2e__/stack/app/test/index.tsx b/apps/router-e2e/__e2e__/stack/app/test/index.tsx
index 4e49bac2f456a9..372ed89d0a4437 100644
--- a/apps/router-e2e/__e2e__/stack/app/test/index.tsx
+++ b/apps/router-e2e/__e2e__/stack/app/test/index.tsx
@@ -18,14 +18,7 @@ export default function Modal() {
backgroundColor: '#fff',
gap: 8,
}}>
-
-
- setSearchText(e.nativeEvent.text)}
- />
-
-
+ setSearchText(e.nativeEvent.text)} />
Modal Search Text: {searchText}
searchBarRef.current?.setText('')} />
searchBarRef.current?.cancelSearch()} />
diff --git a/docs/public/static/data/unversioned/expo-router-toolbar.json b/docs/public/static/data/unversioned/expo-router-toolbar.json
index 7df4b96b8bb110..f5cc5b8f927893 100644
--- a/docs/public/static/data/unversioned/expo-router-toolbar.json
+++ b/docs/public/static/data/unversioned/expo-router-toolbar.json
@@ -1 +1 @@
-{"schemaVersion":"2.0","name":"expo-router-toolbar","variant":"project","kind":1,"children":[{"name":"ToolbarButtonProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text label for the button.\n\n> **Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Toolbar } from 'expo-router/unstable-toolbar';\n\n...\nThis is button label\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The name of the SF Symbol to display as the button icon.\nFor a list of available symbols, see [SF Symbols](https://developer.apple.com/sf-symbols/)."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"possibleTitles","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/possibletitles) for more information."}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is in a selected state"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\n> **Note**: Text buttons cannot share the background.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Tint color for the button icon and text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.enum) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"ToolbarCustomViewProps","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Props for the ToolbarView component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"React elements to render inside the toolbar view."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the view should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 18+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"ToolbarMenuProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The preferred size of the menu elements.\n"},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" is used."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 16.0+"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"small"},{"type":"literal","value":"medium"},{"type":"literal","value":"auto"},{"type":"literal","value":"large"}]}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled.\n\nOnly available for root level menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed\n\n> **Note*: Inline menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row.\nThe "},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when palette is used, all items will be "},{"kind":"code","text":"`elementSize=\"small\"`"},{"kind":"text","text":". Use "},{"kind":"code","text":"`elementSize=\"medium\"`"},{"kind":"text","text":" instead of "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" to display actions with titles horizontally.\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\n> **Note**: Text buttons cannot share the background.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu. Does not appear on "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Tint color for the menu icon and text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Controls the visual style of the menu when represented as a bar button."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"ToolbarProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"ToolbarMenuActionProps","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}},{"name":"ToolbarSpacerProps","variant":"declaration","kind":2097152,"children":[{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"sharesBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer shares the background with adjacent toolbar items."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"By default, the spacer is flexible and expands to fill available space.\nIf a width is provided, it creates a [fixed-width spacer](https://developer.apple.com/documentation/uikit/uibarbuttonitem/fixedspace(_:))."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Toolbar","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Toolbar } from \"expo-router\";\n\nexport default function MyScreen() {\n return (\n <>\n \n \n \n \n \n \n \n \n {}} />\n {}} />\n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Button","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A button component for use in the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Text Button\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarButtonProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarButton"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"ToolbarMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"ToolbarMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"ToolbarMenuAction"},{"name":"Spacer","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component for the toolbar.\nWithout a width, it creates a flexible spacer that expands to fill available space.\nWith a width, it creates a fixed-width spacer.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSpacerProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarSpacer"},{"name":"View","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A custom view component for the toolbar that can contain any React elements.\nUseful for embedding custom components.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\nThe items within the view will be absolutely positioned, so flexbox styles will not work as expected."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarViewProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarView"}]}}]},"defaultValue":"..."},{"name":"ToolbarMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Adds a context menu for to a toolbar."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n {}} />\n {}} />\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"ToolbarMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"ToolbarMenuAction","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A single action item within a toolbar menu.\n\nFor available props, see ["},{"kind":"code","text":"`LinkMenuActionProps`"},{"kind":"text","text":"]("},{"kind":"relative-link","text":"./router/#linkmenuactionprops"},{"kind":"text","text":")."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n {}} />\n {}} />\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkMenuAction"},{"name":"ToolbarButton","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A button component for use in the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Text Button\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarButtonProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ToolbarSpacer","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarSpacer","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component for the toolbar.\nWithout a width, it creates a flexible spacer that expands to fill available space.\nWith a width, it creates a fixed-width spacer.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSpacerProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ToolbarView","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarView","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A custom view component for the toolbar that can contain any React elements.\nUseful for embedding custom components.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\nThe items within the view will be absolutely positioned, so flexbox styles will not work as expected."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarViewProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"expo-router"}
\ No newline at end of file
+{"schemaVersion":"2.0","name":"expo-router-toolbar","variant":"project","kind":1,"children":[{"name":"ToolbarButtonProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text label for the button.\n\n> **Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Toolbar } from 'expo-router/unstable-toolbar';\n\n...\nThis is button label\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The name of the SF Symbol to display as the button icon.\nFor a list of available symbols, see [SF Symbols](https://developer.apple.com/sf-symbols/)."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"possibleTitles","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/possibletitles) for more information."}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is in a selected state"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\n> **Note**: Text buttons cannot share the background.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Tint color for the button icon and text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.enum) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"ToolbarCustomViewProps","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Props for the ToolbarView component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"React elements to render inside the toolbar view."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the view should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 18+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"ToolbarMenuProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The preferred size of the menu elements.\n"},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" is used."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 16.0+"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"small"},{"type":"literal","value":"medium"},{"type":"literal","value":"auto"},{"type":"literal","value":"large"}]}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled.\n\nOnly available for root level menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed\n\n> **Note*: Inline menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row.\nThe "},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when palette is used, all items will be "},{"kind":"code","text":"`elementSize=\"small\"`"},{"kind":"text","text":". Use "},{"kind":"code","text":"`elementSize=\"medium\"`"},{"kind":"text","text":" instead of "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" to display actions with titles horizontally.\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items.\n\n> **Note**: Text buttons cannot share the background.\n\nThis prop reverses the native behavior of "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu. Does not appear on "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Tint color for the menu icon and text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Controls the visual style of the menu when represented as a bar button."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"ToolbarProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"ToolbarSearchBarPreferredSlotProps","variant":"declaration","kind":256,"children":[{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the search bar placed in the toolbar should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"sharesBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the search bar shares the background with adjacent toolbar items."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"ToolbarMenuActionProps","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}},{"name":"ToolbarSpacerProps","variant":"declaration","kind":2097152,"children":[{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background when "},{"kind":"code","text":"`sharesBackground`"},{"kind":"text","text":" is enabled."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"sharesBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer shares the background with adjacent toolbar items."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"By default, the spacer is flexible and expands to fill available space.\nIf a width is provided, it creates a [fixed-width spacer](https://developer.apple.com/documentation/uikit/uibarbuttonitem/fixedspace(_:))."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Toolbar","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Toolbar } from \"expo-router\";\n\nexport default function MyScreen() {\n return (\n <>\n \n \n \n \n \n \n \n \n {}} />\n {}} />\n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Button","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A button component for use in the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Text Button\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarButtonProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarButton"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"ToolbarMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"ToolbarMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"ToolbarMenuAction"},{"name":"SearchBarPreferredSlot","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Declares the position of a search bar within the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\n> **Note**: On iOS 26+, this component specifies where in the toolbar the search bar\n> (configured via "},{"kind":"code","text":"`Stack.SearchBar`"},{"kind":"text","text":") should appear. On iOS 18 and earlier, the search bar\n> will be shown in the header instead.\n\n> **Important**: You must use "},{"kind":"code","text":"`Stack.SearchBar`"},{"kind":"text","text":" to configure and display the actual\n> search bar. This component only declares its position in the toolbar."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 26+"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSearchBarPreferredSlotProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"ToolbarSearchBarPreferredSlot"},{"name":"Spacer","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component for the toolbar.\nWithout a width, it creates a flexible spacer that expands to fill available space.\nWith a width, it creates a fixed-width spacer.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSpacerProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarSpacer"},{"name":"View","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A custom view component for the toolbar that can contain any React elements.\nUseful for embedding custom components.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\nThe items within the view will be absolutely positioned, so flexbox styles will not work as expected."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarViewProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ToolbarView"}]}}]},"defaultValue":"..."},{"name":"ToolbarMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Adds a context menu for to a toolbar."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n {}} />\n {}} />\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"ToolbarMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"ToolbarMenuAction","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A single action item within a toolbar menu.\n\nFor available props, see ["},{"kind":"code","text":"`LinkMenuActionProps`"},{"kind":"text","text":"]("},{"kind":"relative-link","text":"./router/#linkmenuactionprops"},{"kind":"text","text":")."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n {}} />\n {}} />\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/elements.tsx","qualifiedName":"LinkMenuActionProps"},"name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkMenuAction"},{"name":"ToolbarButton","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A button component for use in the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Text Button\n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarButtonProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ToolbarSearchBarPreferredSlot","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarSearchBarPreferredSlot","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Declares the position of a search bar within the toolbar.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\n> **Note**: On iOS 26+, this component specifies where in the toolbar the search bar\n> (configured via "},{"kind":"code","text":"`Stack.SearchBar`"},{"kind":"text","text":") should appear. On iOS 18 and earlier, the search bar\n> will be shown in the header instead.\n\n> **Important**: You must use "},{"kind":"code","text":"`Stack.SearchBar`"},{"kind":"text","text":" to configure and display the actual\n> search bar. This component only declares its position in the toolbar."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 26+"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSearchBarPreferredSlotProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]},{"name":"ToolbarSpacer","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarSpacer","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component for the toolbar.\nWithout a width, it creates a flexible spacer that expands to fill available space.\nWith a width, it creates a fixed-width spacer.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarSpacerProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ToolbarView","variant":"declaration","kind":64,"signatures":[{"name":"ToolbarView","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A custom view component for the toolbar that can contain any React elements.\nUseful for embedding custom components.\nIt should only be used as a child of "},{"kind":"code","text":"`Toolbar`"},{"kind":"text","text":".\n\nThe items within the view will be absolutely positioned, so flexbox styles will not work as expected."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n \n \n \n \n \n \n \n \n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ToolbarViewProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"expo-router"}
\ No newline at end of file
diff --git a/docs/public/static/data/unversioned/expo-router.json b/docs/public/static/data/unversioned/expo-router.json
index 55a1e0138161a8..ced8fd0018e6f4 100644
--- a/docs/public/static/data/unversioned/expo-router.json
+++ b/docs/public/static/data/unversioned/expo-router.json
@@ -1 +1 @@
-{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"AndroidBaseColorSDK1","variant":"declaration","kind":256,"children":[{"name":"background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"black","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/black\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"darker_gray","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/darker_gray\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tab_indicator_text","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tab_indicator_text\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"transparent","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/transparent\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"white","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/white\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"widget_edittext_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/widget_edittext_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK14","variant":"declaration","kind":256,"children":[{"name":"holo_blue_bright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_bright\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_blue_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_blue_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_green_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_green_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_green_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_green_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_orange_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_orange_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_orange_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_orange_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_purple","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_purple\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_red_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_red_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_red_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_red_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK31","variant":"declaration","kind":256,"children":[{"name":"system_accent1_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK34","variant":"declaration","kind":256,"children":[{"name":"system_background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_activated_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_activated_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_activated_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_activated_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_highlight_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_highlight_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_highlight_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_highlight_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_normal_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_normal_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_normal_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_normal_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_bright_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_bright_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_bright_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_bright_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_high_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_high_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_high_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_high_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_highest_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_highest_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_highest_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_highest_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_low_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_low_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_low_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_low_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_lowest_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_lowest_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_lowest_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_lowest_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dim_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dim_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dim_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dim_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_hint_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_hint_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_hint_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_hint_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_disable_only_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_disable_only_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_disable_only_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_disable_only_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_disabled_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_disabled_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_disabled_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_disabled_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK35","variant":"declaration","kind":256,"children":[{"name":"system_error_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK1","variant":"declaration","kind":256,"children":[{"name":"colorBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackground\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorForeground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorForeground\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorForegroundInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorForegroundInverse\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK14","variant":"declaration","kind":256,"children":[{"name":"colorActivatedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorActivatedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorFocusedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorFocusedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorLongPressedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorLongPressedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorMultiSelectHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorMultiSelectHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPressedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPressedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK21","variant":"declaration","kind":256,"children":[{"name":"colorAccent","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorAccent\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorButtonNormal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorButtonNormal\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlActivated","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlActivated\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlNormal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlNormal\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorEdgeEffect","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorEdgeEffect\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPrimary\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPrimaryDark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPrimaryDark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK23","variant":"declaration","kind":256,"children":[{"name":"colorBackgroundFloating","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackgroundFloating\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 23"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK25","variant":"declaration","kind":256,"children":[{"name":"colorSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorSecondary\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 25"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK26","variant":"declaration","kind":256,"children":[{"name":"colorError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorError\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 26"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorMode","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorMode\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 26"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK5","variant":"declaration","kind":256,"children":[{"name":"colorBackgroundCacheHint","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackgroundCacheHint\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 5"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidDeprecatedColor","variant":"declaration","kind":256,"children":[{"name":"primary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_dark_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_dark_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_light_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_light_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_dark_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_dark_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_light_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_light_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tertiary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tertiary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidDynamicMaterialColorType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nYou can find out more about color roles in [official Material Design 3 documentation](https://m3.material.io/styles/color/roles).\n\nYou can read about the difference between dynamic and static colors in [official Material Design 3 documentation](https://m3.material.io/styles/color/choosing-a-scheme).\n\nFor a detailed definition of each color role, see [material components color documentation](https://github.com/material-components/material-components-android/blob/master/docs/theming/Color.md)."}]},"children":[{"name":"background","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"errorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onErrorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outlineVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceBright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHigh","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHighest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLowest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidStaticMaterialColorType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Colors](https://m3.material.io/styles/color/static/baseline)\n\nYou can find out more about color roles in [official Material Design 3 documentation](https://m3.material.io/styles/color/roles).\n\nYou can read about the difference between dynamic and static colors in [official Material Design 3 documentation](https://m3.material.io/styles/color/choosing-a-scheme).\n\nFor a detailed definition of each color role, see [material components color documentation](https://github.com/material-components/material-components-android/blob/master/docs/theming/Color.md)."}]},"children":[{"name":"background","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"errorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onErrorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outlineVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceBright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHigh","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHighest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLowest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ColorType","variant":"declaration","kind":256,"children":[{"name":"android","variant":"declaration","kind":1024,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidBaseColorSDK1","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK14","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK31","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK34","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK35","package":"expo-router"},{"type":"reference","name":"AndroidDeprecatedColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"attr","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidBaseColorAttr","package":"expo-router"}},{"name":"dynamic","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidDynamicMaterialColor","package":"expo-router"}},{"name":"material","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidMaterialColor","package":"expo-router"}}]}}]}},{"name":"ios","variant":"declaration","kind":1024,"type":{"type":"intersection","types":[{"type":"reference","name":"IOSBaseColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}}]},{"name":"IOSBaseColor","variant":"declaration","kind":256,"children":[{"name":"darkText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"darkText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"label","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"label\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"lightText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"lightText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"link","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"link\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"opaqueSeparator","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"opaqueSeparator\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"placeholderText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"placeholderText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"quaternaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"quaternaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"quaternarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"quaternarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"separator","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"separator\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBlue","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBlue\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBrown","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBrown\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemCyan","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemCyan\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray2","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray2\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray3","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray3\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray4","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray4\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray5","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray5\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray6","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray6\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGreen","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGreen\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemIndigo","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemIndigo\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemMint","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemMint\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemOrange","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemOrange\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemPink","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemPink\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemPurple","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemPurple\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemRed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemRed\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemTeal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemTeal\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemYellow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemYellow\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"LinkMenuActionProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be disabled and not selectable."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"discoverabilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An elaborated title that explains the purpose of the action."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the menu element should be hidden."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/hidden) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"isOn","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu item."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`children`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"unstable_keepPresented","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be kept presented after the action is selected.\n\nThis is marked as unstable, because when action is selected it will recreate the menu,\nwhich will close all opened submenus and reset the scroll position."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"LinkMenuProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"displayAsPalette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"displayInline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The preferred size of the menu elements.\n"},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" is used."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 16.0+"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"small"},{"type":"literal","value":"medium"},{"type":"literal","value":"auto"},{"type":"literal","value":"large"}]}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row.\nThe "},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when palette is used, all items will be "},{"kind":"code","text":"`elementSize=\"small\"`"},{"kind":"text","text":". Use "},{"kind":"code","text":"`elementSize=\"medium\"`"},{"kind":"text","text":" instead of "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" to display actions with titles horizontally.\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the submenu. Does not appear on "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"LinkPreviewProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom styles for the preview container.\n\nNote that some styles may not work, as they are limited or reset by the native view"}]},"type":{"type":"reference","name":"LinkPreviewStyle","package":"expo-router"}}]},{"name":"LinkProps","variant":"declaration","kind":256,"comment":{"summary":[],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"web"}]}]},"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Used to customize the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":" component. It will forward all props to the\nfirst child of the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":". Note that the child component must accept\n"},{"kind":"code","text":"`onPress`"},{"kind":"text","text":" or "},{"kind":"code","text":"`onClick`"},{"kind":"text","text":" props. The "},{"kind":"code","text":"`href`"},{"kind":"text","text":" and "},{"kind":"code","text":"`role`"},{"kind":"text","text":" are also\npassed to the child."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { Pressable, Text } from 'react-native';\n\nexport default function Route() {\n return (\n \n \n \n Home\n \n \n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"className","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"On native, this can be used with CSS interop tools like Nativewind.\nOn web, this sets the HTML "},{"kind":"code","text":"`class`"},{"kind":"text","text":" directly."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"dangerouslySingular","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When navigating in a Stack, if the target is valid then screens in the history that matches\nthe uniqueness constraint will be removed.\n\nIf used with "},{"kind":"code","text":"`push`"},{"kind":"text","text":", the history will be filtered even if no navigation occurs."}]},"type":{"type":"reference","name":"SingularOptions","package":"expo-router"}},{"name":"dismissTo","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"While in a stack, this will dismiss screens until the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":" is reached. If the href is not found,\nit will instead replace the current screen with the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Close modal\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"download","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies that the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) should be downloaded when the user clicks on the\nlink, instead of navigating to it. It is typically used for links that point to\nfiles that the user should download, such as PDFs, images, documents, and more.\n\nThe value of the "},{"kind":"code","text":"`download`"},{"kind":"text","text":" property, which represents the filename for the\ndownloaded file. This property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nDownload image\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.download"}},{"name":"href","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route to navigate to. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":". The\nparams can be an object of key-value pairs."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx Dynamic\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n About\n \n View user\n \n \n );\n}\n```"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"This function is called on press.\nText intrinsically supports press handling with a default highlight state (which can be disabled with suppressHighlighting)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.MouseEvent"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"HTMLAnchorElement"},"name":"HTMLAnchorElement","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"MouseEvent"},"name":"MouseEvent","package":"typescript"}],"name":"MouseEvent","package":"@types/react","qualifiedName":"React.MouseEvent"},{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Types/CoreEventTypes.d.ts","qualifiedName":"GestureResponderEvent"},"name":"GestureResponderEvent","package":"react-native"}]}}],"type":{"type":"intrinsic","name":"void"}}]}},"overwrites":{"type":"reference","name":"Omit.onPress","package":"react-native"}},{"name":"prefetch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Prefetches the route when the component is rendered on a focused screen."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"push","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Always pushes a new route, and never pops or replaces to existing route.\nYou can push the current route multiple times or with new parameters."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Login\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"ref","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.Ref"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Text/Text.d.ts","qualifiedName":"Text"},"name":"Text","package":"react-native"}],"name":"Ref","package":"@types/react","qualifiedName":"React.Ref"}},{"name":"rel","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies the relationship between the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) and the current route.\n\nCommon values:\n- **nofollow**: Indicates to search engines that they should not follow the "},{"kind":"code","text":"`href`"},{"kind":"text","text":".\nThis is often used for user-generated content or links that should not influence\nsearch engine rankings.\n- **noopener**: Suggests that the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" should not have access to the opening\nwindow's "},{"kind":"code","text":"`window.opener`"},{"kind":"text","text":" object, which is a security measure to prevent potentially\nharmful behavior in cases of links that open new tabs or windows.\n- **noreferrer**: Requests that the browser does not send the "},{"kind":"code","text":"`Referer`"},{"kind":"text","text":" HTTP header\nwhen navigating to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":". This can enhance user privacy.\n\nThe "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" property is primarily used for informational and instructive purposes, helping browsers and web\ncrawlers make better decisions about how to handle and interpret the links on a web\npage. It is important to use appropriate "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" values to ensure that links behave as intended and adhere\nto best practices for web development and SEO (Search Engine Optimization).\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.rel"}},{"name":"relativeToDirectory","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Relative URL references are either relative to the directory or the document.\nBy default, relative paths are relative to the document."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Resolving relative references in Mozilla's documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL_API/Resolving_relative_references)."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"replace","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Removes the current route from the history and replace it with the\nspecified URL. This is useful for [redirects](/router/reference/redirects/)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Login\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"target","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies where to open the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href).\n\n- **_self**: the current tab.\n- **_blank**: opens in a new tab or window.\n- **_parent**: opens in the parent browsing context. If no parent, defaults to **_self**.\n- **_top**: opens in the highest browsing context ancestor. If no ancestors,\ndefaults to **_self**.\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'_self'"}]},{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo in new tab\n```"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"_self"},{"type":"literal","value":"_blank"},{"type":"literal","value":"_parent"},{"type":"literal","value":"_top"}]},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.target"}},{"name":"withAnchor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Replaces the initial screen with the current route."}]},"type":{"type":"intrinsic","name":"boolean"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Text/Text.d.ts","qualifiedName":"TextProps"},"name":"TextProps","package":"react-native"},{"type":"literal","value":"href"}],"name":"Omit","package":"typescript"},{"type":"reference","name":"WebAnchorProps","package":"expo-router"}]},{"name":"LinkTriggerProps","variant":"declaration","kind":256,"children":[{"name":"withAppleZoom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A shorthand for enabling the Apple Zoom Transition on this link trigger.\n\nWhen set to "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the trigger will be wrapped with "},{"kind":"code","text":"`Link.AppleZoom`"},{"kind":"text","text":".\nIf another "},{"kind":"code","text":"`Link.AppleZoom`"},{"kind":"text","text":" is already used inside "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":", an error\nwill be thrown."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 18+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithChildren"},"name":"PropsWithChildren","package":"@types/react","qualifiedName":"React.PropsWithChildren"}]},{"name":"StackHeaderBackButtonProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"displayMode","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"BackButtonDisplayMode"},"name":"BackButtonDisplayMode","package":"react-native-screens"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"src","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"StyleProp","package":"react-native"}},{"name":"withMenu","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderBadgeProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display as the badge"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"},{"type":"union","types":[{"type":"literal","value":"fontFamily"},{"type":"literal","value":"fontSize"},{"type":"literal","value":"color"},{"type":"literal","value":"fontWeight"},{"type":"literal","value":"backgroundColor"}]}],"name":"Pick","package":"typescript"}],"name":"StyleProp","package":"react-native"}}]},{"name":"StackHeaderButtonProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"There are two ways to specify the content of the header item:"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\nAs text passed as children\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n \n As components\n 3\n\n```"},{"kind":"text","text":"\n\n**Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Icon to display in the button.\n\nCan be a string representing an SFSymbol or an image source."}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is in a selected state"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the button item"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor) for more information."}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderItemSharedProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderLabelProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display as the label for the tab."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"StackHeaderLeftProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom component in the header left area,\nreplacing the default header left layout."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the left area of the header. Can include Stack.Header.Button,\nStack.Header.Menu, Stack.Header.Item, and Stack.Header.Spacer components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"StackHeaderMenuActionProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Can be an Icon, Label or string title."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be disabled and not selectable."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"discoverabilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An elaborated title that explains the purpose of the action."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"isOn","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu item."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"unstable_keepPresented","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be kept presented after the action is selected.\n\nThis is marked as unstable, because when action is selected it will recreate the menu,\nwhich will close all opened submenus and reset the scroll position."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderMenuProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"There are two ways to specify the content of the menu header item - using props or child components:"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n Action 1\n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n \n As components\n 3\n Action 1\n\n```"},{"kind":"text","text":"\n\n**Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the menu should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Icon for the menu item.\n\nCan be an SF Symbol name or an image source."}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed\n\n> **Note*: Inline menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the button item"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor) for more information."}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional title to show on top of the menu."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom header component, replacing the default header entirely.\nUse this to implement fully custom header layouts."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"blurEffect","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The blur effect to apply to the header background on iOS.\nCommon values include 'regular', 'prominent', 'systemMaterial', etc."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"BlurEffectTypes"},"name":"BlurEffectTypes","package":"react-native-screens"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the header. Can include Stack.Header.Title, Stack.Header.Left,\nStack.Header.Right, Stack.Header.BackButton, and Stack.Header.SearchBar components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the header completely. When set to "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the header will not be rendered."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"largeStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style properties for the large title header (iOS).\n- "},{"kind":"code","text":"`backgroundColor`"},{"kind":"text","text":": Background color of the large title header\n- "},{"kind":"code","text":"`shadowColor`"},{"kind":"text","text":": Set to 'transparent' to hide the large title shadow/border"}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"backgroundColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"shadowColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"transparent"}}]}}],"name":"StyleProp","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style properties for the standard-sized header.\n- "},{"kind":"code","text":"`color`"},{"kind":"text","text":": Tint color for header elements (similar to tintColor in React Navigation)\n- "},{"kind":"code","text":"`backgroundColor`"},{"kind":"text","text":": Background color of the header\n- "},{"kind":"code","text":"`shadowColor`"},{"kind":"text","text":": Set to 'transparent' to hide the header shadow/border"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"backgroundColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"shadowColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"transparent"}}]}}],"name":"StyleProp","package":"react-native"}}]},{"name":"StackHeaderRightProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom component in the header right area,\nreplacing the default header right layout."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the right area of the header. Can include Stack.Header.Button,\nStack.Header.Menu, Stack.Header.Item, and Stack.Header.Spacer components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"StackHeaderSearchBarProps","variant":"declaration","kind":256,"extendedTypes":[{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"SearchBarProps"},"name":"SearchBarProps","package":"react-native-screens"}]},{"name":"StackHeaderSpacerProps","variant":"declaration","kind":256,"children":[{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"width","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The width of the spacing element.\n\nThis is typically used to create space between header elements."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"StackHeaderViewProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Can be any React node."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactElement"},"typeArguments":[{"type":"intrinsic","name":"unknown"},{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSXElementConstructor"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"JSXElementConstructor","package":"@types/react","qualifiedName":"React.JSXElementConstructor"}]}],"name":"ReactElement","package":"@types/react","qualifiedName":"React.ReactElement"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the view should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackScreenProps","variant":"declaration","kind":256,"children":[{"name":"name","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"options","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithChildren"},"name":"PropsWithChildren","package":"@types/react","qualifiedName":"React.PropsWithChildren"}]},{"name":"VectorIconProps","variant":"declaration","kind":256,"children":[{"name":"family","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The family of the vector icon."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n```"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"getImageSource","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"reference","name":"NameT","package":"expo-router","qualifiedName":"VectorIconProps.NameT","refersToTypeParameter":true}},{"name":"size","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}},{"name":"color","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"literal","value":null}]}],"name":"Promise","package":"typescript"}}]}}}]}}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The name of the vector icon."}]},"type":{"type":"reference","name":"NameT","package":"expo-router","qualifiedName":"VectorIconProps.NameT","refersToTypeParameter":true}}],"typeParameters":[{"name":"NameT","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}}]},{"name":"AndroidBaseColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidBaseColorSDK1","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK14","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK31","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK34","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK35","package":"expo-router"},{"type":"reference","name":"AndroidDeprecatedColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidBaseColorAttr","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidColorAttrSDK1","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK5","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK14","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK21","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK23","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK25","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK26","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidDynamicMaterialColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidDynamicMaterialColorType","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidMaterialColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidStaticMaterialColorType","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"BadgeProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerBadgeProps"},"name":"NativeTabsTriggerBadgeProps","package":"expo-router"},{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}]}},{"name":"EffectCallback","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Memoized callback containing the effect, should optionally return a cleanup function."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"intrinsic","name":"undefined"},{"type":"intrinsic","name":"void"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}]}}]}}},{"name":"ErrorBoundaryProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props passed to a page's "},{"kind":"code","text":"`ErrorBoundary`"},{"kind":"text","text":" export."}]},"children":[{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The error that was thrown."}]},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Error"},"name":"Error","package":"typescript"}},{"name":"retry","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"A function that will re-render the route component by clearing the "},{"kind":"code","text":"`error`"},{"kind":"text","text":" state."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","package":"typescript"}}]}}}]},{"name":"ExternalPathString","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"","tail":[[{"type":"intrinsic","name":"string"},":"],[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"//","tail":[[{"type":"intrinsic","name":"string"},""]]}]}},{"name":"Href","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The main routing type for Expo Router. It includes all available routes with strongly\ntyped parameters. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\nThe params can be an object of key-value pairs.\n\nAn Href can either be a string or an object."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"ExpoRouter.__routes","package":"expo-router"},"default":{"type":"reference","name":"ExpoRouter.__routes","package":"expo-router"}}],"type":{"type":"conditional","checkType":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},"extendsType":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"href","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}}]}},"trueType":{"type":"indexedAccess","indexType":{"type":"literal","value":"href"},"objectType":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}},"falseType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}},{"name":"HrefObject","variant":"declaration","kind":2097152,"children":[{"name":"params","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional parameters for the route."}]},"type":{"type":"reference","name":"UnknownInputParams","package":"expo-router"}},{"name":"pathname","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"IconProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerIconProps"},"name":"NativeTabsTriggerIconProps","package":"expo-router"},{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}]}},{"name":"LabelProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerLabelProps"},"name":"NativeTabsTriggerLabelProps","package":"expo-router"},{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}]}},{"name":"LinkComponent","variant":"declaration","kind":2097152,"type":{"type":"query","queryType":{"type":"reference","name":"Link","package":"expo-router"}}},{"name":"LinkPreviewStyle","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"},{"type":"union","types":[{"type":"literal","value":"position"},{"type":"literal","value":"width"},{"type":"literal","value":"height"}]}],"name":"Omit","package":"typescript"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Sets the preferred height of the preview.\nIf not set, full height of the screen will be used.\n\nThis is only **preferred** height, the actual height may be different"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Sets the preferred width of the preview.\nIf not set, full width of the screen will be used.\n\nThis is only **preferred** width, the actual width may be different"}]},"type":{"type":"intrinsic","name":"number"}}]}}]}},{"name":"LoaderFunction","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Function type for route loaders. Loaders are executed on the server during\nSSR/SSG to fetch data required by a route."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"default":{"type":"intrinsic","name":"any"}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"args","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"params","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}],"name":"Record","package":"typescript"}},{"name":"request","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"Request"},"name":"Request","package":"typescript"}}]}}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"Promise","package":"typescript"},{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}]}}]}}},{"name":"NativeIntent","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Created by using a special file called "},{"kind":"code","text":"`+native-intent.tsx`"},{"kind":"text","text":" at the top-level of your\nproject's **app** directory. It exports "},{"kind":"code","text":"`redirectSystemPath`"},{"kind":"text","text":" or "},{"kind":"code","text":"`legacy_subscribe`"},{"kind":"text","text":" functions,\nboth methods designed to handle URL/path processing.\n\nUseful for re-writing URLs to correctly target a route when unique/referred URLs\nare incoming from third-party providers or stale URLs from previous versions."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"For more information on how to use "},{"kind":"code","text":"`NativeIntent`"},{"kind":"text","text":", see [Customizing links](/router/advanced/native-intent/)."}]}]},"children":[{"name":"legacy_subscribe","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"> **warning** Experimentally available in SDK 52.\n\nUseful as an alternative API when a third-party provider doesn't support Expo Router\nbut has support for React Navigation via "},{"kind":"code","text":"`Linking.subscribe()`"},{"kind":"text","text":" for existing projects.\n\nUsing this API is not recommended for newer projects or integrations since it is\nincompatible with Server Side Routing and\n[Static Rendering](/router/reference/static-rendering/), and can become challenging to manage while offline or in a low network environment."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"listener","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"url","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"undefined"},{"type":"intrinsic","name":"void"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}]}}]}}},{"name":"redirectSystemPath","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A special method used to process URLs in native apps. When invoked, it receives an\n"},{"kind":"code","text":"`options`"},{"kind":"text","text":" object with the following properties:\n- **path**: represents the URL or path undergoing processing.\n- **initial**: a boolean indicating whether the path is the app's initial URL.\n\nIts return value should be a "},{"kind":"code","text":"`string`"},{"kind":"text","text":", a "},{"kind":"code","text":"`Promise`"},{"kind":"text","text":", or "},{"kind":"code","text":"`null`"},{"kind":"text","text":". When a falsy value\nis returned (for example, "},{"kind":"code","text":"`null`"},{"kind":"text","text":"), no redirection occurs and the app stays on the current path.\n\nNote that throwing errors within this method may result in app crashes. It's recommended to\nwrap your code inside a "},{"kind":"code","text":"`try/catch`"},{"kind":"text","text":" block and utilize "},{"kind":"code","text":"`.catch()`"},{"kind":"text","text":" when appropriate."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"For usage information, see [Redirecting system paths](/router/advanced/native-intent/#redirectsystempath)."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"initial","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"path","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}],"name":"Promise","package":"typescript"},{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}}]}}}]},{"name":"PickPartial","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The list of input keys will become optional, everything else will remain the same."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072},{"name":"K","variant":"typeParam","kind":131072,"type":{"type":"typeOperator","operator":"keyof","target":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}}}],"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"K","package":"expo-router","refersToTypeParameter":true}],"name":"Omit","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Partial"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"K","package":"expo-router","refersToTypeParameter":true}],"name":"Pick","package":"typescript"}],"name":"Partial","package":"typescript"}]}},{"name":"RedirectConfig","variant":"declaration","kind":2097152,"children":[{"name":"destination","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"destinationContextKey","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"external","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"methods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"permanent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"source","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]},{"name":"RedirectProps","variant":"declaration","kind":2097152,"children":[{"name":"href","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route to navigate to. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":". The\nparams can be an object of key-value pairs."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx Dynamic\nimport { Redirect } from 'expo-router';\n\nexport default function RedirectToAbout() {\n return (\n \n );\n}\n```"}]}]},"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"relativeToDirectory","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Relative URL references are either relative to the directory or the document.\nBy default, relative paths are relative to the document."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Resolving relative references in Mozilla's documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL_API/Resolving_relative_references)."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"withAnchor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Replaces the initial screen with the current route."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"RelativePathString","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"./","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"../","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"literal","value":".."}]}},{"name":"ResultState","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"PartialState"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"}],"name":"PartialState","package":"@react-navigation/routers"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"state","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"ResultState","package":"expo-router"}}]}}]}},{"name":"Route","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"pathname"},"objectType":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Extract"},"typeArguments":[{"type":"reference","name":"Href","package":"expo-router"},{"type":"intrinsic","name":"object"}],"name":"Extract","package":"typescript"}},{"type":"union","types":[{"type":"reference","name":"RelativePathString","package":"expo-router"},{"type":"reference","name":"ExternalPathString","package":"expo-router"}]}],"name":"Exclude","package":"typescript"}},{"name":"Router","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Returns "},{"kind":"code","text":"`router`"},{"kind":"text","text":" object for imperative navigation API."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { router } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Route() {\n\n return (\n router.push('/home')}>Go Home\n );\n}\n```"}]}]},"children":[{"name":"back","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Goes back in the navigation history."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"canDismiss","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Checks if it is possible to dismiss the current screen. Returns "},{"kind":"code","text":"`true`"},{"kind":"text","text":" if the\nrouter is within the stack with more than one screen in stack's history."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]}}},{"name":"canGoBack","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to a route in the navigator's history if it supports invoking the "},{"kind":"code","text":"`back`"},{"kind":"text","text":" function."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]}}},{"name":"dismiss","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the a stack lower than the current screen using the provided count if possible, otherwise 1.\n\nIf the current screen is the only route, it will dismiss the entire stack."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"count","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"dismissAll","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Returns to the first screen in the closest stack. This is similar to\n["},{"kind":"code","text":"`popToTop`"},{"kind":"text","text":"](https://reactnavigation.org/docs/stack-actions/#poptotop) stack action."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"dismissTo","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Dismisses screens until the provided href is reached. If the href is not found, it will instead replace the current screen with the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":"."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"navigate","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the provided ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"prefetch","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Prefetch a screen in the background before navigating to it"}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"push","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the provided ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) using a push operation if possible."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"replace","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to route without appending to the history. Can be used with\n["},{"kind":"code","text":"`useFocusEffect`"},{"kind":"text","text":"](#usefocuseffecteffect-do_not_pass_a_second_prop)\nto redirect imperatively to a new screen."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Using "},{"kind":"code","text":"`useRouter()`"},{"kind":"text","text":" hook](/router/reference/redirects/) to redirect."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"setParams","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Updates the current route's query params."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"Route","package":"expo-router"}}],"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Partial"},"typeArguments":[{"type":"reference","typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"RouteInputParams","package":"expo-router"}],"name":"Partial","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"ScreenProps","variant":"declaration","kind":2097152,"children":[{"name":"dangerouslySingular","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"SingularOptions","package":"expo-router"}},{"name":"getId","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"{ params }","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"params","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}}]}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"undefined"}]}}]}}},{"name":"initialParams","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}},{"name":"listeners","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"ScreenListeners"},"typeArguments":[{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenListeners","package":"@react-navigation/core"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"prop","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"navigation","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"route","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"RouteProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"ParamListBase"},"name":"ParamListBase","package":"@react-navigation/routers"},{"type":"intrinsic","name":"string"}],"name":"RouteProp","package":"@react-navigation/core"}}]}}}],"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"ScreenListeners"},"typeArguments":[{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenListeners","package":"@react-navigation/core"}}]}}]}},{"name":"name","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Name is required when used inside a Layout component."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"options","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"prop","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"navigation","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"route","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"RouteProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"ParamListBase"},"name":"ParamListBase","package":"@react-navigation/routers"},{"type":"intrinsic","name":"string"}],"name":"RouteProp","package":"@react-navigation/core"}}]}}}],"type":{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true}}]}}]}},{"name":"redirect","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Redirect to the nearest sibling route.\nIf all children are "},{"kind":"code","text":"`redirect={true}`"},{"kind":"text","text":", the layout will render "},{"kind":"code","text":"`null`"},{"kind":"text","text":" as there are no children to render."}]},"type":{"type":"intrinsic","name":"boolean"}}],"typeParameters":[{"name":"TOptions","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"},"default":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}},{"name":"TState","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"},"default":{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"}},{"name":"TEventMap","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"},"default":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"}}]},{"name":"SearchOrHash","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"?","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"#","tail":[[{"type":"intrinsic","name":"string"},""]]}]}},{"name":"SingularOptions","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}},{"name":"params","variant":"param","kind":32768,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"undefined"}]}}]}}]}},{"name":"SitemapType","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"array","elementType":{"type":"reference","name":"SitemapType","package":"expo-router"}}},{"name":"contextKey","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"filename","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"href","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"Href","package":"expo-router"}]}},{"name":"isGenerated","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"isInitial","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"isInternal","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderIconProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"src","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"sf","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbol"},"name":"SFSymbol","package":"sf-symbols-typescript"}}]}}]}},{"name":"StackHeaderTitleProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"large","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"largeStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"fontFamily","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontFamily"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontSize"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"fontWeight"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}},{"type":"intrinsic","name":"number"}],"name":"Exclude","package":"typescript"}}]}}],"name":"StyleProp","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"fontFamily","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontFamily"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontSize"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"fontWeight"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}},{"type":"intrinsic","name":"number"}],"name":"Exclude","package":"typescript"}},{"name":"textAlign","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"left"},{"type":"literal","value":"center"}]}}]}}],"name":"StyleProp","package":"react-native"}}]},{"name":"WebAnchorProps","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"web"}]}]},"children":[{"name":"download","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies that the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) should be downloaded when the user clicks on the\nlink, instead of navigating to it. It is typically used for links that point to\nfiles that the user should download, such as PDFs, images, documents, and more.\n\nThe value of the "},{"kind":"code","text":"`download`"},{"kind":"text","text":" property, which represents the filename for the\ndownloaded file. This property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nDownload image\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"rel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the relationship between the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) and the current route.\n\nCommon values:\n- **nofollow**: Indicates to search engines that they should not follow the "},{"kind":"code","text":"`href`"},{"kind":"text","text":".\nThis is often used for user-generated content or links that should not influence\nsearch engine rankings.\n- **noopener**: Suggests that the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" should not have access to the opening\nwindow's "},{"kind":"code","text":"`window.opener`"},{"kind":"text","text":" object, which is a security measure to prevent potentially\nharmful behavior in cases of links that open new tabs or windows.\n- **noreferrer**: Requests that the browser does not send the "},{"kind":"code","text":"`Referer`"},{"kind":"text","text":" HTTP header\nwhen navigating to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":". This can enhance user privacy.\n\nThe "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" property is primarily used for informational and instructive purposes, helping browsers and web\ncrawlers make better decisions about how to handle and interpret the links on a web\npage. It is important to use appropriate "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" values to ensure that links behave as intended and adhere\nto best practices for web development and SEO (Search Engine Optimization).\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"target","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies where to open the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href).\n\n- **_self**: the current tab.\n- **_blank**: opens in a new tab or window.\n- **_parent**: opens in the parent browsing context. If no parent, defaults to **_self**.\n- **_top**: opens in the highest browsing context ancestor. If no ancestors,\ndefaults to **_self**.\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'_self'"}]},{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo in new tab\n```"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"_self"},{"type":"literal","value":"_blank"},{"type":"literal","value":"_parent"},{"type":"literal","value":"_top"},{"type":"intersection","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"object"}]}]}}],"extendedBy":[{"type":"reference","name":"LinkProps"}]},{"name":"Color","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Color utility to access platform-specific colors easily.\n\nOn **Android**, it provides access to:\n- System colors, as a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":". For example, "},{"kind":"code","text":"`Color.android.background`"},{"kind":"text","text":".\n- Attribute colors, as a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":". For example, "},{"kind":"code","text":"`Color.android.attr.colorPrimary`"},{"kind":"text","text":".\n- [Material Design 3 static colors](https://m3.material.io/styles/color/static/baseline). For example, "},{"kind":"code","text":"`Color.android.material.primary`"},{"kind":"text","text":".\n- [Material Design 3 dynamic colors](https://m3.material.io/styles/color/dynamic/user-generated-source). For example, "},{"kind":"code","text":"`Color.android.dynamic.primary`"},{"kind":"text","text":".\n\nOn **iOS**, it is a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":", providing access to system colors. For example, "},{"kind":"code","text":"`Color.ios.label`"},{"kind":"text","text":".\n\n> **Note**: To ensure the colors align with the system theme on Android, make sure they are used within a component that responds to theme changes, such as by using the "},{"kind":"code","text":"`useColorScheme`"},{"kind":"text","text":" hook from React Native."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Color } from 'expo-router';\n\nColor.ios.label; // Access iOS system color\nColor.android.background; // Access Android system color\nColor.android.attr.colorPrimary; // Access Android attribute color\nColor.android.material.primary; // Access Android Material Design 3 static color\nColor.android.dynamic.primary; // Access Android Material Design 3 dynamic color\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Color } from 'expo-router';\nimport { View, Text, useColorScheme } from 'react-native';\n\nexport default function MyComponent() {\n useColorScheme(); // Ensure the app responds to system theme changes\n return (\n \n \n Hello, World!\n \n \n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"android"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"ColorType","package":"expo-router"},"defaultValue":"..."},{"name":"Link","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Component that renders a link using ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) to another route.\nBy default, it accepts children and wraps them in a "},{"kind":"code","text":"``"},{"kind":"text","text":" component.\n\nUses an anchor tag ("},{"kind":"code","text":"``"},{"kind":"text","text":") on web and performs a client-side navigation to preserve\nthe state of the website and navigate faster. The web-only attributes such as "},{"kind":"code","text":"`target`"},{"kind":"text","text":",\n"},{"kind":"code","text":"`rel`"},{"kind":"text","text":", and "},{"kind":"code","text":"`download`"},{"kind":"text","text":" are supported and passed to the anchor tag on web. See\n["},{"kind":"code","text":"`WebAnchorProps`"},{"kind":"text","text":"](#webanchorprops) for more details.\n\n> **Note**: Client-side navigation works with both single-page apps,\nand [static-rendering](/router/reference/static-rendering/)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n About\n \n );\n}\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"AppleZoom","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"When this component is used inside a Link, [zoom transition](https://developer.apple.com/documentation/uikit/enhancing-your-app-with-fluid-transitions?language=objc)\nwill be used when navigating to the link's href."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 18+"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/zoom/link-apple-zoom.tsx","qualifiedName":"LinkAppleZoomProps"},"name":"LinkAppleZoomProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"LinkAppleZoom"},{"name":"AppleZoomTarget","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]}},"defaultValue":"LinkAppleZoomTarget"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"LinkMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"LinkMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkMenuAction"},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A component used to render and customize the link preview.\n\nIf "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" is used without any props, it will render a preview of the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" passed to the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":".\n\nIf multiple "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first one will be rendered.\n\nTo customize the preview, you can pass custom content as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Custom Preview Content\n \n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkPreviewProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkPreview"},{"name":"resolveHref","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Resolve an href object into a fully qualified, relative href."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}],"type":{"type":"intrinsic","name":"string"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Serves as the trigger for a link.\nThe content inside this component will be rendered as part of the base link.\n\nIf multiple "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Trigger\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkTriggerProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]}},"defaultValue":"LinkTrigger"}]}}]},"defaultValue":"..."},{"name":"LinkMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Groups context menu actions for a link.\n\nIf multiple "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered.\nOnly "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" and "},{"kind":"code","text":"`LinkMenuAction`"},{"kind":"text","text":" components are allowed as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n {}} />\n {}} />\n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"LinkMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeader","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"The component used to configure the whole stack header.\n\nWhen used inside a screen, it allows you to customize the header dynamically by composing\nheader subcomponents (title, left/right areas, back button, search bar, etc.).\n\n"},{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n Page title\n \n alert('Left pressed')} />\n \n \n alert('Right pressed')} />\n \n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside a layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Screen`"},{"kind":"text","text":" to take effect.\n\nExample (inside a layout):\n"},{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n Layout title\n \n alert('Right pressed')} />\n \n \n \n \n );\n}\n```"}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"BackButton","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderBackButtonProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}},"defaultValue":"StackHeaderBackButton"},{"name":"Badge","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderBadge"},{"name":"Button","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderButtonProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderButton"},{"name":"Icon","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderIcon"},{"name":"Label","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderLabel"},{"name":"Left","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLeftProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderLeft"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuActionProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderMenuAction"},{"name":"Right","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderRightProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderRight"},{"name":"SearchBar","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderSearchBarProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}},"defaultValue":"StackHeaderSearchBar"},{"name":"Spacer","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderSpacerProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderSpacer"},{"name":"Title","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderTitleProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}},"defaultValue":"StackHeaderTitle"},{"name":"View","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderViewProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderView"}]}}]},"defaultValue":"..."},{"name":"StackHeaderBadge","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Badge"},{"name":"StackHeaderButton","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A header button used inside "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n alert('Left pressed')} />\n alert('2 pressed')}>\n 2\n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/toolbars) for more information about navigation bar items on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderButtonProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderIcon","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Icon"},{"name":"StackHeaderLabel","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Label"},{"name":"StackHeaderLeft","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"The component used to configure the left area of the stack header.\n\nWhen used inside a screen, it allows you to customize the left side of the header dynamically."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n alert('Left button pressed!')} />\n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside the layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Header`"},{"kind":"text","text":" to take effect."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n \n alert('Left button pressed!')} />\n \n \n \n \n );\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLeftProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Component representing menu for "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":".\n\nUse as "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":" to provide top-level menus on iOS header bars.\nIt accepts "},{"kind":"code","text":"`Stack.Header.MenuAction`"},{"kind":"text","text":" and nested "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":"\nelements. Menu can be configured using both component props and child\nelements."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Alert } from 'react-native';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n Menu\n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n \n Action 2\n \n \n Sub Action\n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/menus) for more information about menus on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Menu"},{"name":"StackHeaderMenuAction","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"An action item for a "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport React from 'react';\nimport { Alert } from 'react-native';\nimport { Stack, Label, Icon } from 'expo-router';\n\nexport default function ExampleScreen() {\n return (\n <>\n \n \n \n \n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n Alert.alert('Action 2 pressed!')}>\n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/menus) for more information about menus on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuActionProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"MenuAction"},{"name":"StackHeaderRight","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"The component used to configure the right area of the stack header.\n\nWhen used inside a screen, it allows you to customize the right side of the header dynamically."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n alert('Right button pressed!')} />\n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside the layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Header`"},{"kind":"text","text":" to take effect."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n \n alert('Right button pressed!')} />\n \n \n \n \n );\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderRightProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderSpacer","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A spacing helper used inside "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":" to create\nempty space between header items."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderSpacerProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderView","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A wrapper to render custom content in the header.\n\nUse as "},{"kind":"code","text":"`Stack.Header.Item`"},{"kind":"text","text":" to render a custom React element into the header"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Text } from 'react-native';\n\nfunction CustomHeaderElement() {\n return Custom Element;\n}\n\nfunction Screen() {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderViewProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"unstable_navigationEvents","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"addListener","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"EventType","variant":"typeParam","kind":131072,"type":{"type":"union","types":[{"type":"literal","value":"pageWillRender"},{"type":"literal","value":"pageFocused"},{"type":"literal","value":"pageBlurred"},{"type":"literal","value":"pageRemoved"}]}}],"parameters":[{"name":"eventType","variant":"param","kind":32768,"type":{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}},{"name":"callback","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/navigationEvents/index.ts","qualifiedName":"Payload"},"typeArguments":[{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}],"name":"Payload","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]}}},{"name":"emit","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"EventType","variant":"typeParam","kind":131072,"type":{"type":"union","types":[{"type":"literal","value":"pageWillRender"},{"type":"literal","value":"pageFocused"},{"type":"literal","value":"pageBlurred"},{"type":"literal","value":"pageRemoved"}]}}],"parameters":[{"name":"type","variant":"param","kind":32768,"type":{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}},{"name":"event","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/navigationEvents/index.ts","qualifiedName":"Payload"},"typeArguments":[{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}],"name":"Payload","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"hasAnyListener","variant":"declaration","kind":2048,"signatures":[{"name":"hasAnyListener","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"markInitialRender","variant":"declaration","kind":2048,"signatures":[{"name":"markInitialRender","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}]}},"defaultValue":"..."},{"name":"appendScreenStackPropsToOptions","variant":"declaration","kind":64,"signatures":[{"name":"appendScreenStackPropsToOptions","variant":"signature","kind":4096,"parameters":[{"name":"options","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}},{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackScreenProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}}]},{"name":"Badge","variant":"declaration","kind":64,"signatures":[{"name":"Badge","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BadgeProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"ErrorBoundary","variant":"declaration","kind":64,"signatures":[{"name":"ErrorBoundary","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ErrorBoundaryProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Icon","variant":"declaration","kind":64,"signatures":[{"name":"Icon","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"Label","variant":"declaration","kind":64,"signatures":[{"name":"Label","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LabelProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"LinkMenuAction","variant":"declaration","kind":64,"signatures":[{"name":"LinkMenuAction","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]},{"name":"LinkPreview","variant":"declaration","kind":64,"signatures":[{"name":"LinkPreview","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A component used to render and customize the link preview.\n\nIf "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" is used without any props, it will render a preview of the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" passed to the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":".\n\nIf multiple "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first one will be rendered.\n\nTo customize the preview, you can pass custom content as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Custom Preview Content\n \n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkPreviewProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]},{"name":"LinkTrigger","variant":"declaration","kind":64,"signatures":[{"name":"LinkTrigger","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Serves as the trigger for a link.\nThe content inside this component will be rendered as part of the base link.\n\nIf multiple "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Trigger\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkTriggerProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]},{"name":"Redirect","variant":"declaration","kind":64,"signatures":[{"name":"Redirect","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Redirects to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" as soon as the component is mounted."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { View, Text } from 'react-native';\nimport { Redirect } from 'expo-router';\n\nexport default function Page() {\n const { user } = useAuth();\n\n if (!user) {\n return ;\n }\n\n return (\n \n Welcome Back!\n \n );\n}\n```"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"RedirectProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"Sitemap","variant":"declaration","kind":64,"signatures":[{"name":"Sitemap","variant":"signature","kind":4096,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Slot","variant":"declaration","kind":64,"signatures":[{"name":"Slot","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders the currently selected content.\n\nThere are actually two different implementations of "},{"kind":"code","text":"``"},{"kind":"text","text":":\n - Used inside a "},{"kind":"code","text":"`_layout`"},{"kind":"text","text":" as the "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":"\n - Used inside a "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":" as the content\n\nSince a custom "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":" will set the "},{"kind":"code","text":"`NavigatorContext.contextKey`"},{"kind":"text","text":" to\nthe current "},{"kind":"code","text":"`_layout`"},{"kind":"text","text":", you can use this to determine if you are inside\na custom navigator or not."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/views/Navigator.tsx","qualifiedName":"NavigatorProps"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"NavigatorProps","package":"expo-router"},{"type":"literal","value":"children"}],"name":"Omit","package":"typescript"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"StackHeaderBackButton","variant":"declaration","kind":64,"signatures":[{"name":"StackHeaderBackButton","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderBackButtonProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"StackHeaderSearchBar","variant":"declaration","kind":64,"signatures":[{"name":"StackHeaderSearchBar","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderSearchBarProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"StackHeaderTitle","variant":"declaration","kind":64,"signatures":[{"name":"StackHeaderTitle","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderTitleProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"StackScreen","variant":"declaration","kind":64,"signatures":[{"name":"StackScreen","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"StackScreenProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"useFocusEffect","variant":"declaration","kind":64,"signatures":[{"name":"useFocusEffect","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Hook to run an effect whenever a route is **focused**. Similar to\n["},{"kind":"code","text":"`React.useEffect`"},{"kind":"text","text":"](https://react.dev/reference/react/useEffect).\n\nThis can be used to perform side-effects such as fetching data or subscribing to events.\nThe passed callback should be wrapped in ["},{"kind":"code","text":"`React.useCallback`"},{"kind":"text","text":"](https://react.dev/reference/react/useCallback)\nto avoid running the effect too often."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useFocusEffect } from 'expo-router';\nimport { useCallback } from 'react';\n\nexport default function Route() {\n useFocusEffect(\n // Callback should be wrapped in `React.useCallback` to avoid running the effect too often.\n useCallback(() => {\n // Invoked whenever the route is focused.\n console.log(\"Hello, I'm focused!\");\n\n // Return function is invoked whenever the route gets out of focus.\n return () => {\n console.log('This route is now unfocused.');\n };\n }, []),\n );\n\n return >;\n}\n```"}]}]},"parameters":[{"name":"effect","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Memoized callback containing the effect, should optionally return a cleanup function."}]},"type":{"type":"reference","name":"EffectCallback","package":"expo-router"}},{"name":"do_not_pass_a_second_prop","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}}],"type":{"type":"intrinsic","name":"void"}}]},{"name":"useGlobalSearchParams","variant":"declaration","kind":64,"signatures":[{"name":"useGlobalSearchParams","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns URL parameters for globally selected route, including dynamic path segments.\nThis function updates even when the route is not focused. Useful for analytics or\nother background operations that don't draw to the screen.\n\nRoute URL example: "},{"kind":"code","text":"`acme://profile/baconbrix?extra=info`"},{"kind":"text","text":".\n\nWhen querying search params in a stack, opt-towards using\n["},{"kind":"code","text":"`useLocalSearchParams`"},{"kind":"text","text":"](#uselocalsearchparams) because it will only update when the route is focused.\n\n> **Note:** For usage information, see\n[Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useGlobalSearchParams } from 'expo-router';\n\nexport default function Route() {\n // user=baconbrix & extra=info\n const { user, extra } = useGlobalSearchParams();\n\n return User: {user};\n}\n```"}]}]},"typeParameters":[{"name":"TRoute","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}},{"name":"TParams","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"},"default":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"intersection","types":[{"type":"reference","typeArguments":[{"type":"reference","name":"TRoute","package":"expo-router","refersToTypeParameter":true}],"name":"RouteParams","package":"expo-router"},{"type":"reference","name":"TParams","package":"expo-router","refersToTypeParameter":true}]}}]},{"name":"useIsPreview","variant":"declaration","kind":64,"signatures":[{"name":"useIsPreview","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Hook to determine if the current route is rendered inside a preview."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"- True if the current route is rendered inside a preview, false otherwise."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"useLoaderData","variant":"declaration","kind":64,"signatures":[{"name":"useLoaderData","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the result of the "},{"kind":"code","text":"`loader`"},{"kind":"text","text":" function for the calling route."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useLoaderData } from 'expo-router';\n\nexport function loader() {\n return Promise.resolve({ foo: 'bar' }}\n}\n\nexport default function Route() {\n // { foo: 'bar' }\n const data = useLoaderData();\n\n return Data: {JSON.stringify(data)};\n}"}]}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"LoaderFunction","package":"expo-router"},"default":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/hooks.ts","qualifiedName":"LoaderFunctionResult"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"LoaderFunctionResult","package":"expo-router"}}]},{"name":"useLocalSearchParams","variant":"declaration","kind":64,"signatures":[{"name":"useLocalSearchParams","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the URL parameters for the contextually focused route. Useful for stacks where you may push a new screen\nthat changes the query parameters. For dynamic routes, both the route parameters and the search parameters are returned.\n\nRoute URL example: "},{"kind":"code","text":"`acme://profile/baconbrix?extra=info`"},{"kind":"text","text":".\n\nTo observe updates even when the invoking route is not focused, use ["},{"kind":"code","text":"`useGlobalSearchParams`"},{"kind":"text","text":"](#useglobalsearchparams).\n\n> **Note:** For usage information, see\n[Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useLocalSearchParams } from 'expo-router';\n\nexport default function Route() {\n // user=baconbrix & extra=info\n const { user, extra } = useLocalSearchParams();\n\n return User: {user};\n}"}]}]},"typeParameters":[{"name":"TRoute","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}},{"name":"TParams","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"},"default":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"intersection","types":[{"type":"reference","typeArguments":[{"type":"reference","name":"TRoute","package":"expo-router","refersToTypeParameter":true}],"name":"RouteParams","package":"expo-router"},{"type":"reference","name":"TParams","package":"expo-router","refersToTypeParameter":true}]}}]},{"name":"useNavigation","variant":"declaration","kind":64,"signatures":[{"name":"useNavigation","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the underlying React Navigation ["},{"kind":"code","text":"`navigation`"},{"kind":"text","text":" object](https://reactnavigation.org/docs/navigation-object)\nto imperatively access layout-specific functionality like "},{"kind":"code","text":"`navigation.openDrawer()`"},{"kind":"text","text":" in a\n[Drawer](/router/advanced/drawer/) layout."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/index.tsx\nimport { useNavigation } from 'expo-router';\n\nexport default function Route() {\n // Access the current navigation object for the current route.\n const navigation = useNavigation();\n\n return (\n \n {\n // Open the drawer view.\n navigation.openDrawer();\n }}>\n Open Drawer\n \n \n );\n}\n```"},{"kind":"text","text":"\n\nWhen using nested layouts, you can access higher-order layouts by passing a secondary argument denoting the layout route.\nFor example, "},{"kind":"code","text":"`/menu/_layout.tsx`"},{"kind":"text","text":" is nested inside "},{"kind":"code","text":"`/app/orders/`"},{"kind":"text","text":", you can use "},{"kind":"code","text":"`useNavigation('/orders/menu/')`"},{"kind":"text","text":"."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx app/orders/menu/index.tsx\nimport { useNavigation } from 'expo-router';\n\nexport default function MenuRoute() {\n const rootLayout = useNavigation('/');\n const ordersLayout = useNavigation('/orders');\n\n // Same as the default results of `useNavigation()` when invoked in this route.\n const parentLayout = useNavigation('/orders/menu');\n}\n```"},{"kind":"text","text":"\n\nIf you attempt to access a layout that doesn't exist, an error such as\n"},{"kind":"code","text":"`Could not find parent navigation with route \"/non-existent\"`"},{"kind":"text","text":" is thrown."}]},{"tag":"@returns","content":[{"kind":"text","text":"The navigation object for the current route."}]},{"tag":"@see","content":[{"kind":"text","text":"React Navigation documentation on [navigation dependent functions](https://reactnavigation.org/docs/navigation-object/#navigator-dependent-functions)\nfor more information."}]}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"default":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationProp","package":"@react-navigation/core"},{"type":"literal","value":"getState"}],"name":"Omit","package":"typescript"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"getState","variant":"declaration","kind":2048,"signatures":[{"name":"getState","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"},{"type":"intrinsic","name":"undefined"}]}}]}]}}]}}],"parameters":[{"name":"parent","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provide an absolute path such as "},{"kind":"code","text":"`/(root)`"},{"kind":"text","text":" to the parent route or a relative path like "},{"kind":"code","text":"`../../`"},{"kind":"text","text":" to the parent route."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}],"type":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}}]},{"name":"useNavigationContainerRef","variant":"declaration","kind":64,"signatures":[{"name":"useNavigationContainerRef","variant":"signature","kind":4096,"comment":{"summary":[],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"The root "},{"kind":"code","text":"``"},{"kind":"text","text":" ref for the app. The "},{"kind":"code","text":"`ref.current`"},{"kind":"text","text":" may be "},{"kind":"code","text":"`null`"},{"kind":"text","text":"\nif the "},{"kind":"code","text":"``"},{"kind":"text","text":" hasn't mounted yet."}]}]},"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationContainerRefWithCurrent"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationContainerRefWithCurrent","package":"@react-navigation/core"}}]},{"name":"usePathname","variant":"declaration","kind":64,"signatures":[{"name":"usePathname","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the currently selected route location without search parameters. For example, "},{"kind":"code","text":"`/acme?foo=bar`"},{"kind":"text","text":" returns "},{"kind":"code","text":"`/acme`"},{"kind":"text","text":".\nSegments will be normalized. For example, "},{"kind":"code","text":"`/[id]?id=normal`"},{"kind":"text","text":" becomes "},{"kind":"code","text":"`/normal`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { usePathname } from 'expo-router';\n\nexport default function Route() {\n // pathname = \"/profile/baconbrix\"\n const pathname = usePathname();\n\n return Pathname: {pathname};\n}\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"useRootNavigation","variant":"declaration","kind":64,"signatures":[{"name":"useRootNavigation","variant":"signature","kind":4096,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use ["},{"kind":"code","text":"`useNavigationContainerRef`"},{"kind":"text","text":"](#usenavigationcontainerref) instead,\nwhich returns a React "},{"kind":"code","text":"`ref`"},{"kind":"text","text":"."}]}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationContainerRef"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationContainerRef","package":"@react-navigation/core"},{"type":"literal","value":null}]}}]},{"name":"useRootNavigationState","variant":"declaration","kind":64,"signatures":[{"name":"useRootNavigationState","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the [navigation state](https://reactnavigation.org/docs/navigation-state/)\nof the navigator which contains the current screen."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useRootNavigationState } from 'expo-router';\n\nexport default function Route() {\n const { routes } = useRootNavigationState();\n\n return {routes[0].name};\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"}}]},{"name":"useRouter","variant":"declaration","kind":64,"signatures":[{"name":"useRouter","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the [Router](#router) object for imperative navigation."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useRouter } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Route() {\n const router = useRouter();\n\n return (\n router.push('/home')}>Go Home\n );\n}\n```"}]}]},"type":{"type":"reference","name":"Router","package":"expo-router"}}]},{"name":"useSegments","variant":"declaration","kind":64,"signatures":[{"name":"useSegments","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns a list of selected file segments for the currently selected route. Segments are not normalized,\nso they will be the same as the file path. For example, "},{"kind":"code","text":"`/[id]?id=normal`"},{"kind":"text","text":" becomes "},{"kind":"code","text":"`[\"[id]\"]`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useSegments } from 'expo-router';\n\nexport default function Route() {\n // segments = [\"profile\", \"[user]\"]\n const segments = useSegments();\n\n return Hello;\n}\n```"},{"kind":"text","text":"\n\n\n"},{"kind":"code","text":"`useSegments`"},{"kind":"text","text":" can be typed using an abstract. Consider the following file structure:\n\n"},{"kind":"code","text":"```md\n- app\n - [user]\n - index.tsx\n - followers.tsx\n - settings.tsx\n```"},{"kind":"text","text":"\n\n\nThis can be strictly typed using the following abstract with "},{"kind":"code","text":"`useSegments`"},{"kind":"text","text":" hook:\n\n"},{"kind":"code","text":"```tsx\nconst [first, second] = useSegments<['settings'] | ['[user]'] | ['[user]', 'followers']>()\n```"}]}]},"typeParameters":[{"name":"TSegments","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"},"default":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","name":"TSegments","package":"expo-router","refersToTypeParameter":true}],"name":"RouteSegments","package":"expo-router"}}]},{"name":"useSitemap","variant":"declaration","kind":64,"signatures":[{"name":"useSitemap","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"reference","name":"SitemapType","package":"expo-router"},{"type":"literal","value":null}]}}]},{"name":"VectorIcon","variant":"declaration","kind":64,"signatures":[{"name":"VectorIcon","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Helper component which can be used to load vector icons."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Icon, VectorIcon } from 'expo-router';\nimport MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n\n} />\n\n```"}]}]},"typeParameters":[{"name":"NameT","variant":"typeParam","kind":131072,"flags":{"isConst":true},"type":{"type":"intrinsic","name":"string"}}],"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","typeArguments":[{"type":"reference","name":"NameT","package":"expo-router","refersToTypeParameter":true}],"name":"VectorIconProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"withLayoutContext","variant":"declaration","kind":64,"signatures":[{"name":"withLayoutContext","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns a navigator that automatically injects matched routes and renders nothing when there are no children.\nReturn type with "},{"kind":"code","text":"`children`"},{"kind":"text","text":" prop optional.\n\nEnables use of other built-in React Navigation navigators and other navigators built with the React Navigation custom navigator API."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/_layout.tsx\nimport { ParamListBase, TabNavigationState } from \"@react-navigation/native\";\nimport {\n createMaterialTopTabNavigator,\n MaterialTopTabNavigationOptions,\n MaterialTopTabNavigationEventMap,\n} from \"@react-navigation/material-top-tabs\";\nimport { withLayoutContext } from \"expo-router\";\n\nconst MaterialTopTabs = createMaterialTopTabNavigator();\n\nconst ExpoRouterMaterialTopTabs = withLayoutContext<\n MaterialTopTabNavigationOptions,\n typeof MaterialTopTabs.Navigator,\n TabNavigationState,\n MaterialTopTabNavigationEventMap\n>(MaterialTopTabs.Navigator);\n\nexport default function TabLayout() {\n return ;\n}\n```"}]}]},"typeParameters":[{"name":"TOptions","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"object"}},{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ComponentType"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"ComponentType","package":"@types/react","qualifiedName":"React.ComponentType"}},{"name":"TState","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"}},{"name":"TEventMap","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"}}],"parameters":[{"name":"Nav","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The navigator component to wrap."}]},"type":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}},{"name":"processor","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A function that processes the screens before passing them to the navigator."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"options","variant":"param","kind":32768,"type":{"type":"array","elementType":{"type":"reference","name":"ScreenProps","package":"expo-router"}}}],"type":{"type":"array","elementType":{"type":"reference","name":"ScreenProps","package":"expo-router"}}}]}}},{"name":"useOnlyUserDefinedScreens","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"If true, all screens not specified as navigator's children will be ignored."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"false"}],"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ForwardRefExoticComponent"},"typeArguments":[{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithoutRef"},"typeArguments":[{"type":"reference","typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ComponentProps"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"ComponentProps","package":"@types/react","qualifiedName":"React.ComponentProps"},{"type":"literal","value":"children"}],"name":"PickPartial","package":"expo-router"}],"name":"PropsWithoutRef","package":"@types/react","qualifiedName":"React.PropsWithoutRef"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.RefAttributes"},"typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"RefAttributes","package":"@types/react","qualifiedName":"React.RefAttributes"}]}],"name":"ForwardRefExoticComponent","package":"@types/react","qualifiedName":"React.ForwardRefExoticComponent"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Protected","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FunctionComponent"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/views/Protected.tsx","qualifiedName":"ProtectedProps"},"name":"ProtectedProps","package":"expo-router"}],"name":"FunctionComponent","package":"@types/react","qualifiedName":"React.FunctionComponent"}},{"name":"Screen","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","typeArguments":[{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}}}]}}]}}]}],"packageName":"expo-router"}
\ No newline at end of file
+{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"AndroidBaseColorSDK1","variant":"declaration","kind":256,"children":[{"name":"background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"black","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/black\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"darker_gray","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/darker_gray\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tab_indicator_text","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tab_indicator_text\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"transparent","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/transparent\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"white","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/white\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"widget_edittext_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/widget_edittext_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK14","variant":"declaration","kind":256,"children":[{"name":"holo_blue_bright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_bright\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_blue_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_blue_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_blue_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_green_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_green_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_green_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_green_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_orange_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_orange_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_orange_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_orange_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_purple","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_purple\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_red_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_red_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"holo_red_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/holo_red_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK31","variant":"declaration","kind":256,"children":[{"name":"system_accent1_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent1_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent1_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent2_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent2_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_accent3_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_accent3_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral1_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral1_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_neutral2_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_neutral2_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 31"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK34","variant":"declaration","kind":256,"children":[{"name":"system_background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_activated_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_activated_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_activated_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_activated_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_highlight_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_highlight_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_highlight_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_highlight_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_normal_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_normal_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_control_normal_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_control_normal_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_background_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_background_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_background_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_background_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_error_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_error_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_fixed_variant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_fixed_variant\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_neutral_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_neutral_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_palette_key_color_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_palette_key_color_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_primary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_primary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_secondary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_secondary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_bright_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_bright_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_bright_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_bright_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_high_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_high_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_high_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_high_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_highest_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_highest_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_highest_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_highest_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_low_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_low_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_low_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_low_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_lowest_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_lowest_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_container_lowest_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_container_lowest_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dim_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dim_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_dim_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_dim_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_variant_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_variant_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_variant_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_variant_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_container_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_container_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_container_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_container_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_fixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_fixed\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_fixed_dim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_fixed_dim\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_tertiary_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_tertiary_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_hint_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_hint_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_hint_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_hint_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_disable_only_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_disable_only_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_disable_only_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_disable_only_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_primary_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_primary_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_disabled_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_disabled_dark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_disabled_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_disabled_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_text_secondary_and_tertiary_inverse_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_text_secondary_and_tertiary_inverse_light\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 34"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidBaseColorSDK35","variant":"declaration","kind":256,"children":[{"name":"system_error_0","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_0\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_10","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_10\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_100","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_100\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_1000","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_1000\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_200","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_200\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_300","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_300\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_400","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_400\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_50","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_50\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_500","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_500\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_600","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_600\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_700","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_700\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_800","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_800\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_error_900","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_error_900\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_on_surface_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_on_surface_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_outline_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_outline_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"system_surface_disabled","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/system_surface_disabled\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 35"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK1","variant":"declaration","kind":256,"children":[{"name":"colorBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackground\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorForeground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorForeground\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorForegroundInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorForegroundInverse\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK14","variant":"declaration","kind":256,"children":[{"name":"colorActivatedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorActivatedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorFocusedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorFocusedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorLongPressedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorLongPressedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorMultiSelectHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorMultiSelectHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPressedHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPressedHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 14"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK21","variant":"declaration","kind":256,"children":[{"name":"colorAccent","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorAccent\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorButtonNormal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorButtonNormal\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlActivated","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlActivated\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlHighlight","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlHighlight\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorControlNormal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorControlNormal\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorEdgeEffect","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorEdgeEffect\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPrimary\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorPrimaryDark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorPrimaryDark\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 21"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK23","variant":"declaration","kind":256,"children":[{"name":"colorBackgroundFloating","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackgroundFloating\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 23"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK25","variant":"declaration","kind":256,"children":[{"name":"colorSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorSecondary\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 25"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK26","variant":"declaration","kind":256,"children":[{"name":"colorError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorError\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 26"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colorMode","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorMode\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 26"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidColorAttrSDK5","variant":"declaration","kind":256,"children":[{"name":"colorBackgroundCacheHint","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"?attr/colorBackgroundCacheHint\")"}],"blockTags":[{"tag":"@since","content":[{"kind":"text","text":"Android SDK 5"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidDeprecatedColor","variant":"declaration","kind":256,"children":[{"name":"primary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_dark_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_dark_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary_text_light_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/primary_text_light_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_dark_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_dark_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary_text_light_nodisable","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/secondary_text_light_nodisable\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary_text_dark","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tertiary_text_dark\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary_text_light","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"@android:color/tertiary_text_light\")"}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Deprecated in Android SDK 28"}]},{"tag":"@since","content":[{"kind":"text","text":"Android SDK 1"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidDynamicMaterialColorType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nYou can find out more about color roles in [official Material Design 3 documentation](https://m3.material.io/styles/color/roles).\n\nYou can read about the difference between dynamic and static colors in [official Material Design 3 documentation](https://m3.material.io/styles/color/choosing-a-scheme).\n\nFor a detailed definition of each color role, see [material components color documentation](https://github.com/material-components/material-components-android/blob/master/docs/theming/Color.md)."}]},"children":[{"name":"background","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"errorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onErrorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outlineVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceBright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHigh","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHighest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLowest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Dynamic Material Colors](https://m3.material.io/styles/color/dynamic/user-generated-source)\n\nThis color adapts based on the user's wallpaper and theme settings.\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AndroidStaticMaterialColorType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Colors](https://m3.material.io/styles/color/static/baseline)\n\nYou can find out more about color roles in [official Material Design 3 documentation](https://m3.material.io/styles/color/roles).\n\nYou can read about the difference between dynamic and static colors in [official Material Design 3 documentation](https://m3.material.io/styles/color/choosing-a-scheme).\n\nFor a detailed definition of each color role, see [material components color documentation](https://github.com/material-components/material-components-android/blob/master/docs/theming/Color.md)."}]},"children":[{"name":"background","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"errorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onError","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onErrorContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Error color role](https://m3.material.io/styles/color/roles#47a25970-8a80-43be-8307-c12e0f7a2b43)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onPrimaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSecondaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onSurfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"onTertiaryFixedVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"outlineVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Outline color role](https://m3.material.io/styles/color/roles#e7d72e44-72e2-4ce9-a18d-df07b1433d18)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"primaryInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Primary color role](https://m3.material.io/styles/color/roles#41f55188-5c63-4107-ac41-822ebca8ae1b)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Secondary color role](https://m3.material.io/styles/color/roles#290bcc49-b728-414c-8cc5-04336c1c799c)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surface","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceBright","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHigh","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerHighest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceContainerLowest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceInverse","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)\n\n[Read more about Inverse colors](https://m3.material.io/styles/color/roles#7fc6b47e-db22-4e98-8359-7649a099e4a1)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"surfaceVariant","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Surface color role](https://m3.material.io/styles/color/roles#89f972b1-e372-494c-aabc-69aea34ed591)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiary","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryContainer","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryFixedDim","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"[Android Static Material Color](https://m3.material.io/styles/color/static/baseline)\n\n[Read more about Tertiary color role](https://m3.material.io/styles/color/roles#727a0bf8-c95f-4f83-bc43-290d20f24e8e)"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ColorType","variant":"declaration","kind":256,"children":[{"name":"android","variant":"declaration","kind":1024,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidBaseColorSDK1","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK14","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK31","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK34","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK35","package":"expo-router"},{"type":"reference","name":"AndroidDeprecatedColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"attr","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidBaseColorAttr","package":"expo-router"}},{"name":"dynamic","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidDynamicMaterialColor","package":"expo-router"}},{"name":"material","variant":"declaration","kind":1024,"type":{"type":"reference","name":"AndroidMaterialColor","package":"expo-router"}}]}}]}},{"name":"ios","variant":"declaration","kind":1024,"type":{"type":"intersection","types":[{"type":"reference","name":"IOSBaseColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}}]},{"name":"IOSBaseColor","variant":"declaration","kind":256,"children":[{"name":"darkText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"darkText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"label","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"label\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"lightText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"lightText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"link","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"link\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"opaqueSeparator","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"opaqueSeparator\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"placeholderText","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"placeholderText\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"quaternaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"quaternaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"quaternarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"quaternarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"secondarySystemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"secondarySystemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"separator","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"separator\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBlue","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBlue\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemBrown","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemBrown\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemCyan","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemCyan\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray2","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray2\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray3","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray3\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray4","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray4\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray5","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray5\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGray6","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGray6\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGreen","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGreen\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemIndigo","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemIndigo\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemMint","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemMint\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemOrange","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemOrange\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemPink","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemPink\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemPurple","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemPurple\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemRed","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemRed\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemTeal","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemTeal\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"systemYellow","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"systemYellow\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiaryLabel","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiaryLabel\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemFill","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemFill\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"tertiarySystemGroupedBackground","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"PlatformColor(\"tertiarySystemGroupedBackground\")"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"LinkMenuActionProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be disabled and not selectable."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"discoverabilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An elaborated title that explains the purpose of the action."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the menu element should be hidden."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/hidden) for more information."}]},{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"isOn","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu item."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`children`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"unstable_keepPresented","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be kept presented after the action is selected.\n\nThis is marked as unstable, because when action is selected it will recreate the menu,\nwhich will close all opened submenus and reset the scroll position."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"LinkMenuProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"displayAsPalette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"displayInline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" prop instead."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The preferred size of the menu elements.\n"},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" is used."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 16.0+"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"small"},{"type":"literal","value":"medium"},{"type":"literal","value":"auto"},{"type":"literal","value":"large"}]}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional SF Symbol displayed alongside the menu item."}]},"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row.\nThe "},{"kind":"code","text":"`elementSize`"},{"kind":"text","text":" property is ignored when palette is used, all items will be "},{"kind":"code","text":"`elementSize=\"small\"`"},{"kind":"text","text":". Use "},{"kind":"code","text":"`elementSize=\"medium\"`"},{"kind":"text","text":" instead of "},{"kind":"code","text":"`palette`"},{"kind":"text","text":" to display actions with titles horizontally.\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the submenu. Does not appear on "},{"kind":"code","text":"`inline`"},{"kind":"text","text":" menus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the menu item"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"LinkPreviewProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom styles for the preview container.\n\nNote that some styles may not work, as they are limited or reset by the native view"}]},"type":{"type":"reference","name":"LinkPreviewStyle","package":"expo-router"}}]},{"name":"LinkProps","variant":"declaration","kind":256,"comment":{"summary":[],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"web"}]}]},"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Used to customize the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":" component. It will forward all props to the\nfirst child of the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":". Note that the child component must accept\n"},{"kind":"code","text":"`onPress`"},{"kind":"text","text":" or "},{"kind":"code","text":"`onClick`"},{"kind":"text","text":" props. The "},{"kind":"code","text":"`href`"},{"kind":"text","text":" and "},{"kind":"code","text":"`role`"},{"kind":"text","text":" are also\npassed to the child."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { Pressable, Text } from 'react-native';\n\nexport default function Route() {\n return (\n \n \n \n Home\n \n \n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"className","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"On native, this can be used with CSS interop tools like Nativewind.\nOn web, this sets the HTML "},{"kind":"code","text":"`class`"},{"kind":"text","text":" directly."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"dangerouslySingular","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When navigating in a Stack, if the target is valid then screens in the history that matches\nthe uniqueness constraint will be removed.\n\nIf used with "},{"kind":"code","text":"`push`"},{"kind":"text","text":", the history will be filtered even if no navigation occurs."}]},"type":{"type":"reference","name":"SingularOptions","package":"expo-router"}},{"name":"dismissTo","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"While in a stack, this will dismiss screens until the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":" is reached. If the href is not found,\nit will instead replace the current screen with the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Close modal\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"download","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies that the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) should be downloaded when the user clicks on the\nlink, instead of navigating to it. It is typically used for links that point to\nfiles that the user should download, such as PDFs, images, documents, and more.\n\nThe value of the "},{"kind":"code","text":"`download`"},{"kind":"text","text":" property, which represents the filename for the\ndownloaded file. This property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nDownload image\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.download"}},{"name":"href","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route to navigate to. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":". The\nparams can be an object of key-value pairs."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx Dynamic\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n About\n \n View user\n \n \n );\n}\n```"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"This function is called on press.\nText intrinsically supports press handling with a default highlight state (which can be disabled with suppressHighlighting)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.MouseEvent"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"HTMLAnchorElement"},"name":"HTMLAnchorElement","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"MouseEvent"},"name":"MouseEvent","package":"typescript"}],"name":"MouseEvent","package":"@types/react","qualifiedName":"React.MouseEvent"},{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Types/CoreEventTypes.d.ts","qualifiedName":"GestureResponderEvent"},"name":"GestureResponderEvent","package":"react-native"}]}}],"type":{"type":"intrinsic","name":"void"}}]}},"overwrites":{"type":"reference","name":"Omit.onPress","package":"react-native"}},{"name":"prefetch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Prefetches the route when the component is rendered on a focused screen."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"push","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Always pushes a new route, and never pops or replaces to existing route.\nYou can push the current route multiple times or with new parameters."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Login\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"ref","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.Ref"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Text/Text.d.ts","qualifiedName":"Text"},"name":"Text","package":"react-native"}],"name":"Ref","package":"@types/react","qualifiedName":"React.Ref"}},{"name":"rel","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies the relationship between the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) and the current route.\n\nCommon values:\n- **nofollow**: Indicates to search engines that they should not follow the "},{"kind":"code","text":"`href`"},{"kind":"text","text":".\nThis is often used for user-generated content or links that should not influence\nsearch engine rankings.\n- **noopener**: Suggests that the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" should not have access to the opening\nwindow's "},{"kind":"code","text":"`window.opener`"},{"kind":"text","text":" object, which is a security measure to prevent potentially\nharmful behavior in cases of links that open new tabs or windows.\n- **noreferrer**: Requests that the browser does not send the "},{"kind":"code","text":"`Referer`"},{"kind":"text","text":" HTTP header\nwhen navigating to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":". This can enhance user privacy.\n\nThe "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" property is primarily used for informational and instructive purposes, helping browsers and web\ncrawlers make better decisions about how to handle and interpret the links on a web\npage. It is important to use appropriate "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" values to ensure that links behave as intended and adhere\nto best practices for web development and SEO (Search Engine Optimization).\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.rel"}},{"name":"relativeToDirectory","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Relative URL references are either relative to the directory or the document.\nBy default, relative paths are relative to the document."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Resolving relative references in Mozilla's documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL_API/Resolving_relative_references)."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"replace","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Removes the current route from the history and replace it with the\nspecified URL. This is useful for [redirects](/router/reference/redirects/)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n Login\n \n );\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"target","variant":"declaration","kind":1024,"flags":{"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specifies where to open the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href).\n\n- **_self**: the current tab.\n- **_blank**: opens in a new tab or window.\n- **_parent**: opens in the parent browsing context. If no parent, defaults to **_self**.\n- **_top**: opens in the highest browsing context ancestor. If no ancestors,\ndefaults to **_self**.\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'_self'"}]},{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo in new tab\n```"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"_self"},{"type":"literal","value":"_blank"},{"type":"literal","value":"_parent"},{"type":"literal","value":"_top"}]},"inheritedFrom":{"type":"reference","name":"WebAnchorProps.target"}},{"name":"withAnchor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Replaces the initial screen with the current route."}]},"type":{"type":"intrinsic","name":"boolean"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Text/Text.d.ts","qualifiedName":"TextProps"},"name":"TextProps","package":"react-native"},{"type":"literal","value":"href"}],"name":"Omit","package":"typescript"},{"type":"reference","name":"WebAnchorProps","package":"expo-router"}]},{"name":"LinkTriggerProps","variant":"declaration","kind":256,"children":[{"name":"withAppleZoom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A shorthand for enabling the Apple Zoom Transition on this link trigger.\n\nWhen set to "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the trigger will be wrapped with "},{"kind":"code","text":"`Link.AppleZoom`"},{"kind":"text","text":".\nIf another "},{"kind":"code","text":"`Link.AppleZoom`"},{"kind":"text","text":" is already used inside "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":", an error\nwill be thrown."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 18+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithChildren"},"name":"PropsWithChildren","package":"@types/react","qualifiedName":"React.PropsWithChildren"}]},{"name":"StackHeaderBackButtonProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"displayMode","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"BackButtonDisplayMode"},"name":"BackButtonDisplayMode","package":"react-native-screens"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"src","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"StyleProp","package":"react-native"}},{"name":"withMenu","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderBadgeProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display as the badge"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"},{"type":"union","types":[{"type":"literal","value":"fontFamily"},{"type":"literal","value":"fontSize"},{"type":"literal","value":"color"},{"type":"literal","value":"fontWeight"},{"type":"literal","value":"backgroundColor"}]}],"name":"Pick","package":"typescript"}],"name":"StyleProp","package":"react-native"}}]},{"name":"StackHeaderButtonProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"There are two ways to specify the content of the header item:"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\nAs text passed as children\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n \n As components\n 3\n\n```"},{"kind":"text","text":"\n\n**Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Icon to display in the button.\n\nCan be a string representing an SFSymbol or an image source."}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is in a selected state"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the button item"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor) for more information."}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderItemSharedProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderLabelProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display as the label for the tab."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"StackHeaderLeftProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom component in the header left area,\nreplacing the default header left layout."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the left area of the header. Can include Stack.Header.Button,\nStack.Header.Menu, Stack.Header.Item, and Stack.Header.Spacer components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"StackHeaderMenuActionProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Can be an Icon, Label or string title."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be disabled and not selectable."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"discoverabilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An elaborated title that explains the purpose of the action."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"isOn","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"subtitle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional subtitle for the menu item."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information."}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"unstable_keepPresented","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be kept presented after the action is selected.\n\nThis is marked as unstable, because when action is selected it will recreate the menu,\nwhich will close all opened submenus and reset the scroll position."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderMenuProps","variant":"declaration","kind":256,"children":[{"name":"accessibilityHint","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"accessibilityLabel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"There are two ways to specify the content of the menu header item - using props or child components:"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n Action 1\n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\n...\n\n \n As components\n 3\n Action 1\n\n```"},{"kind":"text","text":"\n\n**Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only."}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"destructive","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu item will be displayed as destructive."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the menu should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"icon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Icon for the menu item.\n\nCan be an SF Symbol name or an image source."}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbols6_0"},"name":"SFSymbols6_0","package":"sf-symbols-typescript"}]}},{"name":"inline","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed inline.\nThis means that the menu will not be collapsed\n\n> **Note*: Inline menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"palette","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the menu will be displayed as a palette.\nThis means that the menu will be displayed as one row\n\n> **Note**: Palette menus are only supported in submenus."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"separateBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to separate the background of this item from other header items."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style for the label of the header item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/utils/font.ts","qualifiedName":"BasicTextStyle"},"name":"BasicTextStyle","package":"expo-router"}],"name":"StyleProp","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the button item"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor) for more information."}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional title to show on top of the menu."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'plain'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"done"},{"type":"literal","value":"plain"},{"type":"literal","value":"prominent"}]}}]},{"name":"StackHeaderProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom header component, replacing the default header entirely.\nUse this to implement fully custom header layouts."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"blurEffect","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The blur effect to apply to the header background on iOS.\nCommon values include 'regular', 'prominent', 'systemMaterial', etc."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"BlurEffectTypes"},"name":"BlurEffectTypes","package":"react-native-screens"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the header. Can include Stack.Header.Title, Stack.Header.Left,\nStack.Header.Right, Stack.Header.BackButton, and Stack.Header.SearchBar components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the header completely. When set to "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the header will not be rendered."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"largeStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style properties for the large title header (iOS).\n- "},{"kind":"code","text":"`backgroundColor`"},{"kind":"text","text":": Background color of the large title header\n- "},{"kind":"code","text":"`shadowColor`"},{"kind":"text","text":": Set to 'transparent' to hide the large title shadow/border"}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"backgroundColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"shadowColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"transparent"}}]}}],"name":"StyleProp","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style properties for the standard-sized header.\n- "},{"kind":"code","text":"`color`"},{"kind":"text","text":": Tint color for header elements (similar to tintColor in React Navigation)\n- "},{"kind":"code","text":"`backgroundColor`"},{"kind":"text","text":": Background color of the header\n- "},{"kind":"code","text":"`shadowColor`"},{"kind":"text","text":": Set to 'transparent' to hide the header shadow/border"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"backgroundColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"shadowColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"transparent"}}]}}],"name":"StyleProp","package":"react-native"}}]},{"name":"StackHeaderRightProps","variant":"declaration","kind":256,"children":[{"name":"asChild","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", renders children as a custom component in the header right area,\nreplacing the default header right layout."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Child elements to compose the right area of the header. Can include Stack.Header.Button,\nStack.Header.Menu, Stack.Header.Item, and Stack.Header.Spacer components."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]},{"name":"StackHeaderSpacerProps","variant":"declaration","kind":256,"children":[{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the spacer should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"width","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The width of the spacing element.\n\nThis is typically used to create space between header elements."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"StackHeaderViewProps","variant":"declaration","kind":256,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Can be any React node."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactElement"},"typeArguments":[{"type":"intrinsic","name":"unknown"},{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSXElementConstructor"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"JSXElementConstructor","package":"@types/react","qualifiedName":"React.JSXElementConstructor"}]}],"name":"ReactElement","package":"@types/react","qualifiedName":"React.ReactElement"}},{"name":"hidden","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the view should be hidden."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"hidesSharedBackground","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether to hide the shared background."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information."}]},{"tag":"@platform","content":[{"kind":"text","text":"iOS 26+"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackScreenProps","variant":"declaration","kind":256,"children":[{"name":"name","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"options","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}}],"extendedTypes":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithChildren"},"name":"PropsWithChildren","package":"@types/react","qualifiedName":"React.PropsWithChildren"}]},{"name":"StackSearchBarProps","variant":"declaration","kind":256,"extendedTypes":[{"type":"reference","target":{"packageName":"react-native-screens","packagePath":"src/types.tsx","qualifiedName":"SearchBarProps"},"name":"SearchBarProps","package":"react-native-screens"}]},{"name":"VectorIconProps","variant":"declaration","kind":256,"children":[{"name":"family","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The family of the vector icon."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n```"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"getImageSource","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"reference","name":"NameT","package":"expo-router","qualifiedName":"VectorIconProps.NameT","refersToTypeParameter":true}},{"name":"size","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}},{"name":"color","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"union","types":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"},{"type":"literal","value":null}]}],"name":"Promise","package":"typescript"}}]}}}]}}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The name of the vector icon."}]},"type":{"type":"reference","name":"NameT","package":"expo-router","qualifiedName":"VectorIconProps.NameT","refersToTypeParameter":true}}],"typeParameters":[{"name":"NameT","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}}]},{"name":"AndroidBaseColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidBaseColorSDK1","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK14","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK31","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK34","package":"expo-router"},{"type":"reference","name":"AndroidBaseColorSDK35","package":"expo-router"},{"type":"reference","name":"AndroidDeprecatedColor","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidBaseColorAttr","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidColorAttrSDK1","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK5","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK14","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK21","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK23","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK25","package":"expo-router"},{"type":"reference","name":"AndroidColorAttrSDK26","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidDynamicMaterialColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidDynamicMaterialColorType","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"AndroidMaterialColor","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","name":"AndroidStaticMaterialColorType","package":"expo-router"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]}}]}},{"name":"BadgeProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerBadgeProps"},"name":"NativeTabsTriggerBadgeProps","package":"expo-router"},{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}]}},{"name":"EffectCallback","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Memoized callback containing the effect, should optionally return a cleanup function."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"intrinsic","name":"undefined"},{"type":"intrinsic","name":"void"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}]}}]}}},{"name":"ErrorBoundaryProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props passed to a page's "},{"kind":"code","text":"`ErrorBoundary`"},{"kind":"text","text":" export."}]},"children":[{"name":"error","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The error that was thrown."}]},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Error"},"name":"Error","package":"typescript"}},{"name":"retry","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"A function that will re-render the route component by clearing the "},{"kind":"code","text":"`error`"},{"kind":"text","text":" state."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","package":"typescript"}}]}}}]},{"name":"ExternalPathString","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"","tail":[[{"type":"intrinsic","name":"string"},":"],[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"//","tail":[[{"type":"intrinsic","name":"string"},""]]}]}},{"name":"Href","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The main routing type for Expo Router. It includes all available routes with strongly\ntyped parameters. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\nThe params can be an object of key-value pairs.\n\nAn Href can either be a string or an object."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"ExpoRouter.__routes","package":"expo-router"},"default":{"type":"reference","name":"ExpoRouter.__routes","package":"expo-router"}}],"type":{"type":"conditional","checkType":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},"extendsType":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"href","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}}]}},"trueType":{"type":"indexedAccess","indexType":{"type":"literal","value":"href"},"objectType":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}},"falseType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}},{"name":"HrefObject","variant":"declaration","kind":2097152,"children":[{"name":"params","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional parameters for the route."}]},"type":{"type":"reference","name":"UnknownInputParams","package":"expo-router"}},{"name":"pathname","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"IconProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerIconProps"},"name":"NativeTabsTriggerIconProps","package":"expo-router"},{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}]}},{"name":"LabelProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/native-tabs/common/elements.tsx","qualifiedName":"NativeTabsTriggerLabelProps"},"name":"NativeTabsTriggerLabelProps","package":"expo-router"},{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}]}},{"name":"LinkComponent","variant":"declaration","kind":2097152,"type":{"type":"query","queryType":{"type":"reference","name":"Link","package":"expo-router"}}},{"name":"LinkPreviewStyle","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"},{"type":"union","types":[{"type":"literal","value":"position"},{"type":"literal","value":"width"},{"type":"literal","value":"height"}]}],"name":"Omit","package":"typescript"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Sets the preferred height of the preview.\nIf not set, full height of the screen will be used.\n\nThis is only **preferred** height, the actual height may be different"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Sets the preferred width of the preview.\nIf not set, full width of the screen will be used.\n\nThis is only **preferred** width, the actual width may be different"}]},"type":{"type":"intrinsic","name":"number"}}]}}]}},{"name":"LoaderFunction","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Function type for route loaders. Loaders are executed on the server during\nSSR/SSG to fetch data required by a route."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"default":{"type":"intrinsic","name":"any"}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"args","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"params","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}],"name":"Record","package":"typescript"}},{"name":"request","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.dom.d.ts","qualifiedName":"Request"},"name":"Request","package":"typescript"}}]}}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"Promise","package":"typescript"},{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}]}}]}}},{"name":"NativeIntent","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Created by using a special file called "},{"kind":"code","text":"`+native-intent.tsx`"},{"kind":"text","text":" at the top-level of your\nproject's **app** directory. It exports "},{"kind":"code","text":"`redirectSystemPath`"},{"kind":"text","text":" or "},{"kind":"code","text":"`legacy_subscribe`"},{"kind":"text","text":" functions,\nboth methods designed to handle URL/path processing.\n\nUseful for re-writing URLs to correctly target a route when unique/referred URLs\nare incoming from third-party providers or stale URLs from previous versions."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"For more information on how to use "},{"kind":"code","text":"`NativeIntent`"},{"kind":"text","text":", see [Customizing links](/router/advanced/native-intent/)."}]}]},"children":[{"name":"legacy_subscribe","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"> **warning** Experimentally available in SDK 52.\n\nUseful as an alternative API when a third-party provider doesn't support Expo Router\nbut has support for React Navigation via "},{"kind":"code","text":"`Linking.subscribe()`"},{"kind":"text","text":" for existing projects.\n\nUsing this API is not recommended for newer projects or integrations since it is\nincompatible with Server Side Routing and\n[Static Rendering](/router/reference/static-rendering/), and can become challenging to manage while offline or in a low network environment."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"listener","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"url","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"undefined"},{"type":"intrinsic","name":"void"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}]}}]}}},{"name":"redirectSystemPath","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A special method used to process URLs in native apps. When invoked, it receives an\n"},{"kind":"code","text":"`options`"},{"kind":"text","text":" object with the following properties:\n- **path**: represents the URL or path undergoing processing.\n- **initial**: a boolean indicating whether the path is the app's initial URL.\n\nIts return value should be a "},{"kind":"code","text":"`string`"},{"kind":"text","text":", a "},{"kind":"code","text":"`Promise`"},{"kind":"text","text":", or "},{"kind":"code","text":"`null`"},{"kind":"text","text":". When a falsy value\nis returned (for example, "},{"kind":"code","text":"`null`"},{"kind":"text","text":"), no redirection occurs and the app stays on the current path.\n\nNote that throwing errors within this method may result in app crashes. It's recommended to\nwrap your code inside a "},{"kind":"code","text":"`try/catch`"},{"kind":"text","text":" block and utilize "},{"kind":"code","text":"`.catch()`"},{"kind":"text","text":" when appropriate."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"For usage information, see [Redirecting system paths](/router/advanced/native-intent/#redirectsystempath)."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"initial","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"path","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}],"name":"Promise","package":"typescript"},{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}}]}}}]},{"name":"PickPartial","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The list of input keys will become optional, everything else will remain the same."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072},{"name":"K","variant":"typeParam","kind":131072,"type":{"type":"typeOperator","operator":"keyof","target":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}}}],"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"K","package":"expo-router","refersToTypeParameter":true}],"name":"Omit","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Partial"},"typeArguments":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"K","package":"expo-router","refersToTypeParameter":true}],"name":"Pick","package":"typescript"}],"name":"Partial","package":"typescript"}]}},{"name":"RedirectConfig","variant":"declaration","kind":2097152,"children":[{"name":"destination","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"destinationContextKey","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"external","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"methods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"permanent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"source","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]},{"name":"RedirectProps","variant":"declaration","kind":2097152,"children":[{"name":"href","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The path of the route to navigate to. It can either be:\n- **string**: A full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":".\n- **object**: An object with a "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" and optional "},{"kind":"code","text":"`params`"},{"kind":"text","text":". The "},{"kind":"code","text":"`pathname`"},{"kind":"text","text":" can be\na full path like "},{"kind":"code","text":"`/profile/settings`"},{"kind":"text","text":" or a relative path like "},{"kind":"code","text":"`../settings`"},{"kind":"text","text":". The\nparams can be an object of key-value pairs."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx Dynamic\nimport { Redirect } from 'expo-router';\n\nexport default function RedirectToAbout() {\n return (\n \n );\n}\n```"}]}]},"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"relativeToDirectory","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Relative URL references are either relative to the directory or the document.\nBy default, relative paths are relative to the document."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Resolving relative references in Mozilla's documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL_API/Resolving_relative_references)."}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"withAnchor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Replaces the initial screen with the current route."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"RelativePathString","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"./","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"../","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"literal","value":".."}]}},{"name":"ResultState","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"PartialState"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"}],"name":"PartialState","package":"@react-navigation/routers"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"state","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"ResultState","package":"expo-router"}}]}}]}},{"name":"Route","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"pathname"},"objectType":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Extract"},"typeArguments":[{"type":"reference","name":"Href","package":"expo-router"},{"type":"intrinsic","name":"object"}],"name":"Extract","package":"typescript"}},{"type":"union","types":[{"type":"reference","name":"RelativePathString","package":"expo-router"},{"type":"reference","name":"ExternalPathString","package":"expo-router"}]}],"name":"Exclude","package":"typescript"}},{"name":"Router","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Returns "},{"kind":"code","text":"`router`"},{"kind":"text","text":" object for imperative navigation API."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { router } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Route() {\n\n return (\n router.push('/home')}>Go Home\n );\n}\n```"}]}]},"children":[{"name":"back","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Goes back in the navigation history."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"canDismiss","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Checks if it is possible to dismiss the current screen. Returns "},{"kind":"code","text":"`true`"},{"kind":"text","text":" if the\nrouter is within the stack with more than one screen in stack's history."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]}}},{"name":"canGoBack","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to a route in the navigator's history if it supports invoking the "},{"kind":"code","text":"`back`"},{"kind":"text","text":" function."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]}}},{"name":"dismiss","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the a stack lower than the current screen using the provided count if possible, otherwise 1.\n\nIf the current screen is the only route, it will dismiss the entire stack."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"count","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"dismissAll","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Returns to the first screen in the closest stack. This is similar to\n["},{"kind":"code","text":"`popToTop`"},{"kind":"text","text":"](https://reactnavigation.org/docs/stack-actions/#poptotop) stack action."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"dismissTo","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Dismisses screens until the provided href is reached. If the href is not found, it will instead replace the current screen with the provided "},{"kind":"code","text":"`href`"},{"kind":"text","text":"."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"navigate","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the provided ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"prefetch","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Prefetch a screen in the background before navigating to it"}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"push","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to the provided ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) using a push operation if possible."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"replace","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Navigates to route without appending to the history. Can be used with\n["},{"kind":"code","text":"`useFocusEffect`"},{"kind":"text","text":"](#usefocuseffecteffect-do_not_pass_a_second_prop)\nto redirect imperatively to a new screen."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Using "},{"kind":"code","text":"`useRouter()`"},{"kind":"text","text":" hook](/router/reference/redirects/) to redirect."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"reference","name":"Href","package":"expo-router"}},{"name":"options","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/global-state/routing.ts","qualifiedName":"NavigationOptions"},"name":"NavigationOptions","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"setParams","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Updates the current route's query params."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"Route","package":"expo-router"}}],"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Partial"},"typeArguments":[{"type":"reference","typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"RouteInputParams","package":"expo-router"}],"name":"Partial","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"ScreenProps","variant":"declaration","kind":2097152,"children":[{"name":"dangerouslySingular","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"SingularOptions","package":"expo-router"}},{"name":"getId","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"{ params }","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"params","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}}]}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"undefined"}]}}]}}},{"name":"initialParams","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}},{"name":"listeners","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"ScreenListeners"},"typeArguments":[{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenListeners","package":"@react-navigation/core"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"prop","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"navigation","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"route","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"RouteProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"ParamListBase"},"name":"ParamListBase","package":"@react-navigation/routers"},{"type":"intrinsic","name":"string"}],"name":"RouteProp","package":"@react-navigation/core"}}]}}}],"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"ScreenListeners"},"typeArguments":[{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenListeners","package":"@react-navigation/core"}}]}}]}},{"name":"name","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Name is required when used inside a Layout component."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"options","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"prop","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"navigation","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"route","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"RouteProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"ParamListBase"},"name":"ParamListBase","package":"@react-navigation/routers"},{"type":"intrinsic","name":"string"}],"name":"RouteProp","package":"@react-navigation/core"}}]}}}],"type":{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true}}]}}]}},{"name":"redirect","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Redirect to the nearest sibling route.\nIf all children are "},{"kind":"code","text":"`redirect={true}`"},{"kind":"text","text":", the layout will render "},{"kind":"code","text":"`null`"},{"kind":"text","text":" as there are no children to render."}]},"type":{"type":"intrinsic","name":"boolean"}}],"typeParameters":[{"name":"TOptions","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"},"default":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}},{"name":"TState","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"},"default":{"type":"reference","target":{"packageName":"@react-navigation/routers","packagePath":"src/types.tsx","qualifiedName":"NavigationState"},"name":"NavigationState","package":"@react-navigation/routers"}},{"name":"TEventMap","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"},"default":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"}}]},{"name":"SearchOrHash","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"templateLiteral","head":"?","tail":[[{"type":"intrinsic","name":"string"},""]]},{"type":"templateLiteral","head":"#","tail":[[{"type":"intrinsic","name":"string"},""]]}]}},{"name":"SingularOptions","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"name","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}},{"name":"params","variant":"param","kind":32768,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"undefined"}]}}]}}]}},{"name":"SitemapType","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"array","elementType":{"type":"reference","name":"SitemapType","package":"expo-router"}}},{"name":"contextKey","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"filename","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"href","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"Href","package":"expo-router"}]}},{"name":"isGenerated","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"isInitial","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}},{"name":"isInternal","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"StackHeaderIconProps","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"src","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"sf","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"sf-symbols-typescript","packagePath":"dist/index.d.ts","qualifiedName":"SFSymbol"},"name":"SFSymbol","package":"sf-symbols-typescript"}}]}}]}},{"name":"StackHeaderTitleProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"large","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"largeStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"fontFamily","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontFamily"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontSize"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"fontWeight"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}},{"type":"intrinsic","name":"number"}],"name":"Exclude","package":"typescript"}}]}}],"name":"StyleProp","package":"react-native"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"fontFamily","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontFamily"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"indexedAccess","indexType":{"type":"literal","value":"fontSize"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Exclude"},"typeArguments":[{"type":"indexedAccess","indexType":{"type":"literal","value":"fontWeight"},"objectType":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"TextStyle"},"name":"TextStyle","package":"react-native"}},{"type":"intrinsic","name":"number"}],"name":"Exclude","package":"typescript"}},{"name":"textAlign","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"left"},{"type":"literal","value":"center"}]}}]}}],"name":"StyleProp","package":"react-native"}}]},{"name":"WebAnchorProps","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"web"}]}]},"children":[{"name":"download","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies that the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) should be downloaded when the user clicks on the\nlink, instead of navigating to it. It is typically used for links that point to\nfiles that the user should download, such as PDFs, images, documents, and more.\n\nThe value of the "},{"kind":"code","text":"`download`"},{"kind":"text","text":" property, which represents the filename for the\ndownloaded file. This property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nDownload image\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"rel","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the relationship between the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) and the current route.\n\nCommon values:\n- **nofollow**: Indicates to search engines that they should not follow the "},{"kind":"code","text":"`href`"},{"kind":"text","text":".\nThis is often used for user-generated content or links that should not influence\nsearch engine rankings.\n- **noopener**: Suggests that the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" should not have access to the opening\nwindow's "},{"kind":"code","text":"`window.opener`"},{"kind":"text","text":" object, which is a security measure to prevent potentially\nharmful behavior in cases of links that open new tabs or windows.\n- **noreferrer**: Requests that the browser does not send the "},{"kind":"code","text":"`Referer`"},{"kind":"text","text":" HTTP header\nwhen navigating to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":". This can enhance user privacy.\n\nThe "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" property is primarily used for informational and instructive purposes, helping browsers and web\ncrawlers make better decisions about how to handle and interpret the links on a web\npage. It is important to use appropriate "},{"kind":"code","text":"`rel`"},{"kind":"text","text":" values to ensure that links behave as intended and adhere\nto best practices for web development and SEO (Search Engine Optimization).\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"target","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies where to open the ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href).\n\n- **_self**: the current tab.\n- **_blank**: opens in a new tab or window.\n- **_parent**: opens in the parent browsing context. If no parent, defaults to **_self**.\n- **_top**: opens in the highest browsing context ancestor. If no ancestors,\ndefaults to **_self**.\n\nThis property is passed to the underlying anchor ("},{"kind":"code","text":"``"},{"kind":"text","text":") tag."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'_self'"}]},{"tag":"@example","content":[{"kind":"code","text":"```jsx\nGo to Expo in new tab\n```"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"_self"},{"type":"literal","value":"_blank"},{"type":"literal","value":"_parent"},{"type":"literal","value":"_top"},{"type":"intersection","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"object"}]}]}}],"extendedBy":[{"type":"reference","name":"LinkProps"}]},{"name":"Color","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Color utility to access platform-specific colors easily.\n\nOn **Android**, it provides access to:\n- System colors, as a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":". For example, "},{"kind":"code","text":"`Color.android.background`"},{"kind":"text","text":".\n- Attribute colors, as a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":". For example, "},{"kind":"code","text":"`Color.android.attr.colorPrimary`"},{"kind":"text","text":".\n- [Material Design 3 static colors](https://m3.material.io/styles/color/static/baseline). For example, "},{"kind":"code","text":"`Color.android.material.primary`"},{"kind":"text","text":".\n- [Material Design 3 dynamic colors](https://m3.material.io/styles/color/dynamic/user-generated-source). For example, "},{"kind":"code","text":"`Color.android.dynamic.primary`"},{"kind":"text","text":".\n\nOn **iOS**, it is a type-safe wrapper over "},{"kind":"code","text":"`PlatformColor`"},{"kind":"text","text":", providing access to system colors. For example, "},{"kind":"code","text":"`Color.ios.label`"},{"kind":"text","text":".\n\n> **Note**: To ensure the colors align with the system theme on Android, make sure they are used within a component that responds to theme changes, such as by using the "},{"kind":"code","text":"`useColorScheme`"},{"kind":"text","text":" hook from React Native."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Color } from 'expo-router';\n\nColor.ios.label; // Access iOS system color\nColor.android.background; // Access Android system color\nColor.android.attr.colorPrimary; // Access Android attribute color\nColor.android.material.primary; // Access Android Material Design 3 static color\nColor.android.dynamic.primary; // Access Android Material Design 3 dynamic color\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Color } from 'expo-router';\nimport { View, Text, useColorScheme } from 'react-native';\n\nexport default function MyComponent() {\n useColorScheme(); // Ensure the app responds to system theme changes\n return (\n \n \n Hello, World!\n \n \n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"android"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"ColorType","package":"expo-router"},"defaultValue":"..."},{"name":"Link","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Component that renders a link using ["},{"kind":"code","text":"`href`"},{"kind":"text","text":"](#href) to another route.\nBy default, it accepts children and wraps them in a "},{"kind":"code","text":"``"},{"kind":"text","text":" component.\n\nUses an anchor tag ("},{"kind":"code","text":"``"},{"kind":"text","text":") on web and performs a client-side navigation to preserve\nthe state of the website and navigate faster. The web-only attributes such as "},{"kind":"code","text":"`target`"},{"kind":"text","text":",\n"},{"kind":"code","text":"`rel`"},{"kind":"text","text":", and "},{"kind":"code","text":"`download`"},{"kind":"text","text":" are supported and passed to the anchor tag on web. See\n["},{"kind":"code","text":"`WebAnchorProps`"},{"kind":"text","text":"](#webanchorprops) for more details.\n\n> **Note**: Client-side navigation works with both single-page apps,\nand [static-rendering](/router/reference/static-rendering/)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Link } from 'expo-router';\nimport { View } from 'react-native';\n\nexport default function Route() {\n return (\n \n About\n \n );\n}\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"AppleZoom","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"When this component is used inside a Link, [zoom transition](https://developer.apple.com/documentation/uikit/enhancing-your-app-with-fluid-transitions?language=objc)\nwill be used when navigating to the link's href."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 18+"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/link/zoom/link-apple-zoom.tsx","qualifiedName":"LinkAppleZoomProps"},"name":"LinkAppleZoomProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"LinkAppleZoom"},{"name":"AppleZoomTarget","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]}},"defaultValue":"LinkAppleZoomTarget"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"LinkMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"LinkMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkMenuAction"},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A component used to render and customize the link preview.\n\nIf "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" is used without any props, it will render a preview of the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" passed to the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":".\n\nIf multiple "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first one will be rendered.\n\nTo customize the preview, you can pass custom content as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Custom Preview Content\n \n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkPreviewProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]}},"defaultValue":"LinkPreview"},{"name":"resolveHref","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Resolve an href object into a fully qualified, relative href."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"href","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}],"type":{"type":"intrinsic","name":"string"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Serves as the trigger for a link.\nThe content inside this component will be rendered as part of the base link.\n\nIf multiple "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Trigger\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkTriggerProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]}},"defaultValue":"LinkTrigger"}]}}]},"defaultValue":"..."},{"name":"LinkMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Groups context menu actions for a link.\n\nIf multiple "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered.\nOnly "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" and "},{"kind":"code","text":"`LinkMenuAction`"},{"kind":"text","text":" components are allowed as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n {}} />\n {}} />\n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"LinkMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeader","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"The component used to configure the whole stack header.\n\nWhen used inside a screen, it allows you to customize the header dynamically by composing\nheader subcomponents (title, left/right areas, back button, search bar, etc.).\n\n"},{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n Page title\n \n alert('Left pressed')} />\n \n \n alert('Right pressed')} />\n \n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside a layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Screen`"},{"kind":"text","text":" to take effect.\n\nExample (inside a layout):\n"},{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n Layout title\n \n alert('Right pressed')} />\n \n \n \n \n );\n}\n```"}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"BackButton","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderBackButtonProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}},"defaultValue":"StackHeaderBackButton"},{"name":"Badge","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderBadge"},{"name":"Button","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderButtonProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderButton"},{"name":"Icon","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderIcon"},{"name":"Label","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderLabel"},{"name":"Left","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLeftProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderLeft"},{"name":"Menu","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderMenu"},{"name":"MenuAction","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuActionProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderMenuAction"},{"name":"Right","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderRightProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderRight"},{"name":"Spacer","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderSpacerProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderSpacer"},{"name":"Title","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderTitleProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}},"defaultValue":"StackHeaderTitle"},{"name":"View","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderViewProps","package":"expo-router"}],"name":"FC","package":"@types/react","qualifiedName":"React.FC"},"defaultValue":"StackHeaderView"}]}}]},"defaultValue":"..."},{"name":"StackHeaderBadge","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderBadgeProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Badge"},{"name":"StackHeaderButton","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A header button used inside "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n alert('Left pressed')} />\n alert('2 pressed')}>\n 2\n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/toolbars) for more information about navigation bar items on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderButtonProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderIcon","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderIconProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Icon"},{"name":"StackHeaderLabel","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLabelProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Label"},{"name":"StackHeaderLeft","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"The component used to configure the left area of the stack header.\n\nWhen used inside a screen, it allows you to customize the left side of the header dynamically."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n alert('Left button pressed!')} />\n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside the layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Header`"},{"kind":"text","text":" to take effect."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n \n alert('Left button pressed!')} />\n \n \n \n \n );\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderLeftProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderMenu","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Component representing menu for "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":".\n\nUse as "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":" to provide top-level menus on iOS header bars.\nIt accepts "},{"kind":"code","text":"`Stack.Header.MenuAction`"},{"kind":"text","text":" and nested "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":"\nelements. Menu can be configured using both component props and child\nelements."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Alert } from 'react-native';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n Menu\n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n \n Action 2\n \n \n Sub Action\n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/menus) for more information about menus on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"Menu"},{"name":"StackHeaderMenuAction","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"An action item for a "},{"kind":"code","text":"`Stack.Header.Menu`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport React from 'react';\nimport { Alert } from 'react-native';\nimport { Stack, Label, Icon } from 'expo-router';\n\nexport default function ExampleScreen() {\n return (\n <>\n \n \n \n \n \n Alert.alert('Action 1 pressed!')}>\n Action 1\n \n Alert.alert('Action 2 pressed!')}>\n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/menus) for more information about menus on iOS."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderMenuActionProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"MenuAction"},{"name":"StackHeaderRight","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"The component used to configure the right area of the stack header.\n\nWhen used inside a screen, it allows you to customize the right side of the header dynamically."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Page() {\n return (\n <>\n \n alert('Right button pressed!')} />\n \n \n >\n );\n}\n```"},{"kind":"text","text":"\n\nWhen used inside the layout, it needs to be wrapped in "},{"kind":"code","text":"`Stack.Header`"},{"kind":"text","text":" to take effect."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Layout() {\n return (\n \n \n \n \n alert('Right button pressed!')} />\n \n \n \n \n );\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderRightProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderSpacer","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A spacing helper used inside "},{"kind":"code","text":"`Stack.Header.Left`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Stack.Header.Right`"},{"kind":"text","text":" to create\nempty space between header items."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\n\nexport default function Screen() {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderSpacerProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"StackHeaderView","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"A wrapper to render custom content in the header.\n\nUse as "},{"kind":"code","text":"`Stack.Header.Item`"},{"kind":"text","text":" to render a custom React element into the header"}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Stack } from 'expo-router';\nimport { Text } from 'react-native';\n\nfunction CustomHeaderElement() {\n return Custom Element;\n}\n\nfunction Screen() {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n >\n );\n}\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FC"},"typeArguments":[{"type":"reference","name":"StackHeaderViewProps","package":"expo-router"}],"name":"React.FC","package":"@types/react"},"defaultValue":"..."},{"name":"unstable_navigationEvents","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"addListener","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"EventType","variant":"typeParam","kind":131072,"type":{"type":"union","types":[{"type":"literal","value":"pageWillRender"},{"type":"literal","value":"pageFocused"},{"type":"literal","value":"pageBlurred"},{"type":"literal","value":"pageRemoved"}]}}],"parameters":[{"name":"eventType","variant":"param","kind":32768,"type":{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}},{"name":"callback","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/navigationEvents/index.ts","qualifiedName":"Payload"},"typeArguments":[{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}],"name":"Payload","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]}}},{"name":"emit","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"typeParameters":[{"name":"EventType","variant":"typeParam","kind":131072,"type":{"type":"union","types":[{"type":"literal","value":"pageWillRender"},{"type":"literal","value":"pageFocused"},{"type":"literal","value":"pageBlurred"},{"type":"literal","value":"pageRemoved"}]}}],"parameters":[{"name":"type","variant":"param","kind":32768,"type":{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}},{"name":"event","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/navigationEvents/index.ts","qualifiedName":"Payload"},"typeArguments":[{"type":"reference","name":"EventType","package":"expo-router","refersToTypeParameter":true}],"name":"Payload","package":"expo-router"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"hasAnyListener","variant":"declaration","kind":2048,"signatures":[{"name":"hasAnyListener","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"markInitialRender","variant":"declaration","kind":2048,"signatures":[{"name":"markInitialRender","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}]}},"defaultValue":"..."},{"name":"appendScreenStackPropsToOptions","variant":"declaration","kind":64,"signatures":[{"name":"appendScreenStackPropsToOptions","variant":"signature","kind":4096,"parameters":[{"name":"options","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}},{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackScreenProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@react-navigation/native-stack","packagePath":"src/types.tsx","qualifiedName":"NativeStackNavigationOptions"},"name":"NativeStackNavigationOptions","package":"@react-navigation/native-stack"}}]},{"name":"Badge","variant":"declaration","kind":64,"signatures":[{"name":"Badge","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BadgeProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"ErrorBoundary","variant":"declaration","kind":64,"signatures":[{"name":"ErrorBoundary","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"ErrorBoundaryProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Icon","variant":"declaration","kind":64,"signatures":[{"name":"Icon","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"Label","variant":"declaration","kind":64,"signatures":[{"name":"Label","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LabelProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"LinkMenuAction","variant":"declaration","kind":64,"signatures":[{"name":"LinkMenuAction","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"This component renders a context menu action for a link.\nIt should only be used as a child of "},{"kind":"code","text":"`Link.Menu`"},{"kind":"text","text":" or "},{"kind":"code","text":"`LinkMenu`"},{"kind":"text","text":".\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.MenuAction`"},{"kind":"text","text":" for this component."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkMenuActionProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]},{"name":"LinkPreview","variant":"declaration","kind":64,"signatures":[{"name":"LinkPreview","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A component used to render and customize the link preview.\n\nIf "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" is used without any props, it will render a preview of the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" passed to the "},{"kind":"code","text":"`Link`"},{"kind":"text","text":".\n\nIf multiple "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first one will be rendered.\n\nTo customize the preview, you can pass custom content as children."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Custom Preview Content\n \n\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Preview`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkPreviewProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null}]}}]},{"name":"LinkTrigger","variant":"declaration","kind":64,"signatures":[{"name":"LinkTrigger","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Serves as the trigger for a link.\nThe content inside this component will be rendered as part of the base link.\n\nIf multiple "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" components are used within a single "},{"kind":"code","text":"`Link`"},{"kind":"text","text":", only the first will be rendered."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n \n Trigger\n \n\n```"},{"kind":"text","text":"\n\n> **Note**: You can use the alias "},{"kind":"code","text":"`Link.Trigger`"},{"kind":"text","text":" for this component."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"LinkTriggerProps","package":"expo-router"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"bigint"},{"type":"intrinsic","name":"boolean"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es2015.iterable.d.ts","qualifiedName":"Iterable"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"},{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Iterable","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Promise"},"typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"AwaitedReactNode"},"name":"AwaitedReactNode","package":"@types/react"}],"name":"Promise","package":"typescript"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"},{"type":"literal","value":null},{"type":"intrinsic","name":"undefined"}]}}]},{"name":"Redirect","variant":"declaration","kind":64,"signatures":[{"name":"Redirect","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Redirects to the "},{"kind":"code","text":"`href`"},{"kind":"text","text":" as soon as the component is mounted."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { View, Text } from 'react-native';\nimport { Redirect } from 'expo-router';\n\nexport default function Page() {\n const { user } = useAuth();\n\n if (!user) {\n return ;\n }\n\n return (\n \n Welcome Back!\n \n );\n}\n```"}]}]},"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"RedirectProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"Sitemap","variant":"declaration","kind":64,"signatures":[{"name":"Sitemap","variant":"signature","kind":4096,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Slot","variant":"declaration","kind":64,"signatures":[{"name":"Slot","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders the currently selected content.\n\nThere are actually two different implementations of "},{"kind":"code","text":"``"},{"kind":"text","text":":\n - Used inside a "},{"kind":"code","text":"`_layout`"},{"kind":"text","text":" as the "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":"\n - Used inside a "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":" as the content\n\nSince a custom "},{"kind":"code","text":"`Navigator`"},{"kind":"text","text":" will set the "},{"kind":"code","text":"`NavigatorContext.contextKey`"},{"kind":"text","text":" to\nthe current "},{"kind":"code","text":"`_layout`"},{"kind":"text","text":", you can use this to determine if you are inside\na custom navigator or not."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/views/Navigator.tsx","qualifiedName":"NavigatorProps"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"NavigatorProps","package":"expo-router"},{"type":"literal","value":"children"}],"name":"Omit","package":"typescript"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"StackHeaderBackButton","variant":"declaration","kind":64,"signatures":[{"name":"StackHeaderBackButton","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderBackButtonProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"StackHeaderTitle","variant":"declaration","kind":64,"signatures":[{"name":"StackHeaderTitle","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackHeaderTitleProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"StackScreen","variant":"declaration","kind":64,"signatures":[{"name":"StackScreen","variant":"signature","kind":4096,"parameters":[{"name":"__namedParameters","variant":"param","kind":32768,"type":{"type":"reference","name":"StackScreenProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"StackSearchBar","variant":"declaration","kind":64,"signatures":[{"name":"StackSearchBar","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"StackSearchBarProps","package":"expo-router"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"useFocusEffect","variant":"declaration","kind":64,"signatures":[{"name":"useFocusEffect","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Hook to run an effect whenever a route is **focused**. Similar to\n["},{"kind":"code","text":"`React.useEffect`"},{"kind":"text","text":"](https://react.dev/reference/react/useEffect).\n\nThis can be used to perform side-effects such as fetching data or subscribing to events.\nThe passed callback should be wrapped in ["},{"kind":"code","text":"`React.useCallback`"},{"kind":"text","text":"](https://react.dev/reference/react/useCallback)\nto avoid running the effect too often."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useFocusEffect } from 'expo-router';\nimport { useCallback } from 'react';\n\nexport default function Route() {\n useFocusEffect(\n // Callback should be wrapped in `React.useCallback` to avoid running the effect too often.\n useCallback(() => {\n // Invoked whenever the route is focused.\n console.log(\"Hello, I'm focused!\");\n\n // Return function is invoked whenever the route gets out of focus.\n return () => {\n console.log('This route is now unfocused.');\n };\n }, []),\n );\n\n return >;\n}\n```"}]}]},"parameters":[{"name":"effect","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Memoized callback containing the effect, should optionally return a cleanup function."}]},"type":{"type":"reference","name":"EffectCallback","package":"expo-router"}},{"name":"do_not_pass_a_second_prop","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}}],"type":{"type":"intrinsic","name":"void"}}]},{"name":"useGlobalSearchParams","variant":"declaration","kind":64,"signatures":[{"name":"useGlobalSearchParams","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns URL parameters for globally selected route, including dynamic path segments.\nThis function updates even when the route is not focused. Useful for analytics or\nother background operations that don't draw to the screen.\n\nRoute URL example: "},{"kind":"code","text":"`acme://profile/baconbrix?extra=info`"},{"kind":"text","text":".\n\nWhen querying search params in a stack, opt-towards using\n["},{"kind":"code","text":"`useLocalSearchParams`"},{"kind":"text","text":"](#uselocalsearchparams) because it will only update when the route is focused.\n\n> **Note:** For usage information, see\n[Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useGlobalSearchParams } from 'expo-router';\n\nexport default function Route() {\n // user=baconbrix & extra=info\n const { user, extra } = useGlobalSearchParams();\n\n return User: {user};\n}\n```"}]}]},"typeParameters":[{"name":"TRoute","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}},{"name":"TParams","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"},"default":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"intersection","types":[{"type":"reference","typeArguments":[{"type":"reference","name":"TRoute","package":"expo-router","refersToTypeParameter":true}],"name":"RouteParams","package":"expo-router"},{"type":"reference","name":"TParams","package":"expo-router","refersToTypeParameter":true}]}}]},{"name":"useIsPreview","variant":"declaration","kind":64,"signatures":[{"name":"useIsPreview","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Hook to determine if the current route is rendered inside a preview."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"- True if the current route is rendered inside a preview, false otherwise."}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"useLoaderData","variant":"declaration","kind":64,"signatures":[{"name":"useLoaderData","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the result of the "},{"kind":"code","text":"`loader`"},{"kind":"text","text":" function for the calling route."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useLoaderData } from 'expo-router';\n\nexport function loader() {\n return Promise.resolve({ foo: 'bar' }}\n}\n\nexport default function Route() {\n // { foo: 'bar' }\n const data = useLoaderData();\n\n return Data: {JSON.stringify(data)};\n}"}]}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"LoaderFunction","package":"expo-router"},"default":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/hooks.ts","qualifiedName":"LoaderFunctionResult"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"LoaderFunctionResult","package":"expo-router"}}]},{"name":"useLocalSearchParams","variant":"declaration","kind":64,"signatures":[{"name":"useLocalSearchParams","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the URL parameters for the contextually focused route. Useful for stacks where you may push a new screen\nthat changes the query parameters. For dynamic routes, both the route parameters and the search parameters are returned.\n\nRoute URL example: "},{"kind":"code","text":"`acme://profile/baconbrix?extra=info`"},{"kind":"text","text":".\n\nTo observe updates even when the invoking route is not focused, use ["},{"kind":"code","text":"`useGlobalSearchParams`"},{"kind":"text","text":"](#useglobalsearchparams).\n\n> **Note:** For usage information, see\n[Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useLocalSearchParams } from 'expo-router';\n\nexport default function Route() {\n // user=baconbrix & extra=info\n const { user, extra } = useLocalSearchParams();\n\n return User: {user};\n}"}]}]},"typeParameters":[{"name":"TRoute","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"}},{"name":"TParams","variant":"typeParam","kind":131072,"type":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"},"default":{"type":"reference","name":"UnknownOutputParams","package":"expo-router"}}],"type":{"type":"intersection","types":[{"type":"reference","typeArguments":[{"type":"reference","name":"TRoute","package":"expo-router","refersToTypeParameter":true}],"name":"RouteParams","package":"expo-router"},{"type":"reference","name":"TParams","package":"expo-router","refersToTypeParameter":true}]}}]},{"name":"useNavigation","variant":"declaration","kind":64,"signatures":[{"name":"useNavigation","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the underlying React Navigation ["},{"kind":"code","text":"`navigation`"},{"kind":"text","text":" object](https://reactnavigation.org/docs/navigation-object)\nto imperatively access layout-specific functionality like "},{"kind":"code","text":"`navigation.openDrawer()`"},{"kind":"text","text":" in a\n[Drawer](/router/advanced/drawer/) layout."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/index.tsx\nimport { useNavigation } from 'expo-router';\n\nexport default function Route() {\n // Access the current navigation object for the current route.\n const navigation = useNavigation();\n\n return (\n \n {\n // Open the drawer view.\n navigation.openDrawer();\n }}>\n Open Drawer\n \n \n );\n}\n```"},{"kind":"text","text":"\n\nWhen using nested layouts, you can access higher-order layouts by passing a secondary argument denoting the layout route.\nFor example, "},{"kind":"code","text":"`/menu/_layout.tsx`"},{"kind":"text","text":" is nested inside "},{"kind":"code","text":"`/app/orders/`"},{"kind":"text","text":", you can use "},{"kind":"code","text":"`useNavigation('/orders/menu/')`"},{"kind":"text","text":"."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx app/orders/menu/index.tsx\nimport { useNavigation } from 'expo-router';\n\nexport default function MenuRoute() {\n const rootLayout = useNavigation('/');\n const ordersLayout = useNavigation('/orders');\n\n // Same as the default results of `useNavigation()` when invoked in this route.\n const parentLayout = useNavigation('/orders/menu');\n}\n```"},{"kind":"text","text":"\n\nIf you attempt to access a layout that doesn't exist, an error such as\n"},{"kind":"code","text":"`Could not find parent navigation with route \"/non-existent\"`"},{"kind":"text","text":" is thrown."}]},{"tag":"@returns","content":[{"kind":"text","text":"The navigation object for the current route."}]},{"tag":"@see","content":[{"kind":"text","text":"React Navigation documentation on [navigation dependent functions](https://reactnavigation.org/docs/navigation-object/#navigator-dependent-functions)\nfor more information."}]}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072,"default":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Omit"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationProp"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationProp","package":"@react-navigation/core"},{"type":"literal","value":"getState"}],"name":"Omit","package":"typescript"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"getState","variant":"declaration","kind":2048,"signatures":[{"name":"getState","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"},{"type":"intrinsic","name":"undefined"}]}}]}]}}]}}],"parameters":[{"name":"parent","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provide an absolute path such as "},{"kind":"code","text":"`/(root)`"},{"kind":"text","text":" to the parent route or a relative path like "},{"kind":"code","text":"`../../`"},{"kind":"text","text":" to the parent route."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"HrefObject","package":"expo-router"}]}}],"type":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}}]},{"name":"useNavigationContainerRef","variant":"declaration","kind":64,"signatures":[{"name":"useNavigationContainerRef","variant":"signature","kind":4096,"comment":{"summary":[],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"The root "},{"kind":"code","text":"``"},{"kind":"text","text":" ref for the app. The "},{"kind":"code","text":"`ref.current`"},{"kind":"text","text":" may be "},{"kind":"code","text":"`null`"},{"kind":"text","text":"\nif the "},{"kind":"code","text":"``"},{"kind":"text","text":" hasn't mounted yet."}]}]},"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationContainerRefWithCurrent"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationContainerRefWithCurrent","package":"@react-navigation/core"}}]},{"name":"usePathname","variant":"declaration","kind":64,"signatures":[{"name":"usePathname","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the currently selected route location without search parameters. For example, "},{"kind":"code","text":"`/acme?foo=bar`"},{"kind":"text","text":" returns "},{"kind":"code","text":"`/acme`"},{"kind":"text","text":".\nSegments will be normalized. For example, "},{"kind":"code","text":"`/[id]?id=normal`"},{"kind":"text","text":" becomes "},{"kind":"code","text":"`/normal`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { usePathname } from 'expo-router';\n\nexport default function Route() {\n // pathname = \"/profile/baconbrix\"\n const pathname = usePathname();\n\n return Pathname: {pathname};\n}\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"useRootNavigation","variant":"declaration","kind":64,"signatures":[{"name":"useRootNavigation","variant":"signature","kind":4096,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use ["},{"kind":"code","text":"`useNavigationContainerRef`"},{"kind":"text","text":"](#usenavigationcontainerref) instead,\nwhich returns a React "},{"kind":"code","text":"`ref`"},{"kind":"text","text":"."}]}]},"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"NavigationContainerRef"},"typeArguments":[{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"__global.ReactNavigation.RootParamList"},"name":"RootParamList","package":"@react-navigation/core","qualifiedName":"__global.ReactNavigation.RootParamList"}],"name":"NavigationContainerRef","package":"@react-navigation/core"},{"type":"literal","value":null}]}}]},{"name":"useRootNavigationState","variant":"declaration","kind":64,"signatures":[{"name":"useRootNavigationState","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the [navigation state](https://reactnavigation.org/docs/navigation-state/)\nof the navigator which contains the current screen."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useRootNavigationState } from 'expo-router';\n\nexport default function Route() {\n const { routes } = useRootNavigationState();\n\n return {routes[0].name};\n}\n```"}]}]},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"}}]},{"name":"useRouter","variant":"declaration","kind":64,"signatures":[{"name":"useRouter","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns the [Router](#router) object for imperative navigation."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { useRouter } from 'expo-router';\nimport { Text } from 'react-native';\n\nexport default function Route() {\n const router = useRouter();\n\n return (\n router.push('/home')}>Go Home\n );\n}\n```"}]}]},"type":{"type":"reference","name":"Router","package":"expo-router"}}]},{"name":"useSegments","variant":"declaration","kind":64,"signatures":[{"name":"useSegments","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns a list of selected file segments for the currently selected route. Segments are not normalized,\nso they will be the same as the file path. For example, "},{"kind":"code","text":"`/[id]?id=normal`"},{"kind":"text","text":" becomes "},{"kind":"code","text":"`[\"[id]\"]`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/profile/[user].tsx\nimport { Text } from 'react-native';\nimport { useSegments } from 'expo-router';\n\nexport default function Route() {\n // segments = [\"profile\", \"[user]\"]\n const segments = useSegments();\n\n return Hello;\n}\n```"},{"kind":"text","text":"\n\n\n"},{"kind":"code","text":"`useSegments`"},{"kind":"text","text":" can be typed using an abstract. Consider the following file structure:\n\n"},{"kind":"code","text":"```md\n- app\n - [user]\n - index.tsx\n - followers.tsx\n - settings.tsx\n```"},{"kind":"text","text":"\n\n\nThis can be strictly typed using the following abstract with "},{"kind":"code","text":"`useSegments`"},{"kind":"text","text":" hook:\n\n"},{"kind":"code","text":"```tsx\nconst [first, second] = useSegments<['settings'] | ['[user]'] | ['[user]', 'followers']>()\n```"}]}]},"typeParameters":[{"name":"TSegments","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"string"},"default":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","name":"TSegments","package":"expo-router","refersToTypeParameter":true}],"name":"RouteSegments","package":"expo-router"}}]},{"name":"useSitemap","variant":"declaration","kind":64,"signatures":[{"name":"useSitemap","variant":"signature","kind":4096,"type":{"type":"union","types":[{"type":"reference","name":"SitemapType","package":"expo-router"},{"type":"literal","value":null}]}}]},{"name":"VectorIcon","variant":"declaration","kind":64,"signatures":[{"name":"VectorIcon","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Helper component which can be used to load vector icons."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Icon, VectorIcon } from 'expo-router';\nimport MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n\n} />\n\n```"}]}]},"typeParameters":[{"name":"NameT","variant":"typeParam","kind":131072,"flags":{"isConst":true},"type":{"type":"intrinsic","name":"string"}}],"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","typeArguments":[{"type":"reference","name":"NameT","package":"expo-router","refersToTypeParameter":true}],"name":"VectorIconProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]},{"name":"withLayoutContext","variant":"declaration","kind":64,"signatures":[{"name":"withLayoutContext","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Returns a navigator that automatically injects matched routes and renders nothing when there are no children.\nReturn type with "},{"kind":"code","text":"`children`"},{"kind":"text","text":" prop optional.\n\nEnables use of other built-in React Navigation navigators and other navigators built with the React Navigation custom navigator API."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx app/_layout.tsx\nimport { ParamListBase, TabNavigationState } from \"@react-navigation/native\";\nimport {\n createMaterialTopTabNavigator,\n MaterialTopTabNavigationOptions,\n MaterialTopTabNavigationEventMap,\n} from \"@react-navigation/material-top-tabs\";\nimport { withLayoutContext } from \"expo-router\";\n\nconst MaterialTopTabs = createMaterialTopTabNavigator();\n\nconst ExpoRouterMaterialTopTabs = withLayoutContext<\n MaterialTopTabNavigationOptions,\n typeof MaterialTopTabs.Navigator,\n TabNavigationState,\n MaterialTopTabNavigationEventMap\n>(MaterialTopTabs.Navigator);\n\nexport default function TabLayout() {\n return ;\n}\n```"}]}]},"typeParameters":[{"name":"TOptions","variant":"typeParam","kind":131072,"type":{"type":"intrinsic","name":"object"}},{"name":"T","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ComponentType"},"typeArguments":[{"type":"intrinsic","name":"any"}],"name":"ComponentType","package":"@types/react","qualifiedName":"React.ComponentType"}},{"name":"TState","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Readonly"},"typeArguments":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536}}],"name":"Readonly","package":"typescript"}},{"name":"TEventMap","variant":"typeParam","kind":131072,"type":{"type":"reference","target":{"packageName":"@react-navigation/core","packagePath":"src/types.tsx","qualifiedName":"EventMapBase"},"name":"EventMapBase","package":"@react-navigation/core"}}],"parameters":[{"name":"Nav","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The navigator component to wrap."}]},"type":{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}},{"name":"processor","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A function that processes the screens before passing them to the navigator."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"options","variant":"param","kind":32768,"type":{"type":"array","elementType":{"type":"reference","name":"ScreenProps","package":"expo-router"}}}],"type":{"type":"array","elementType":{"type":"reference","name":"ScreenProps","package":"expo-router"}}}]}}},{"name":"useOnlyUserDefinedScreens","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"If true, all screens not specified as navigator's children will be ignored."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"false"}],"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ForwardRefExoticComponent"},"typeArguments":[{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.PropsWithoutRef"},"typeArguments":[{"type":"reference","typeArguments":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ComponentProps"},"typeArguments":[{"type":"reference","name":"T","package":"expo-router","refersToTypeParameter":true}],"name":"ComponentProps","package":"@types/react","qualifiedName":"React.ComponentProps"},{"type":"literal","value":"children"}],"name":"PickPartial","package":"expo-router"}],"name":"PropsWithoutRef","package":"@types/react","qualifiedName":"React.PropsWithoutRef"},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.RefAttributes"},"typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"RefAttributes","package":"@types/react","qualifiedName":"React.RefAttributes"}]}],"name":"ForwardRefExoticComponent","package":"@types/react","qualifiedName":"React.ForwardRefExoticComponent"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Protected","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.FunctionComponent"},"typeArguments":[{"type":"reference","target":{"packageName":"expo-router","packagePath":"src/views/Protected.tsx","qualifiedName":"ProtectedProps"},"name":"ProtectedProps","package":"expo-router"}],"name":"FunctionComponent","package":"@types/react","qualifiedName":"React.FunctionComponent"}},{"name":"Screen","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","typeArguments":[{"type":"reference","name":"TOptions","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TState","package":"expo-router","refersToTypeParameter":true},{"type":"reference","name":"TEventMap","package":"expo-router","refersToTypeParameter":true}],"name":"ScreenProps","package":"expo-router"}}],"type":{"type":"literal","value":null}}]}}}]}}]}}]}],"packageName":"expo-router"}
\ No newline at end of file
diff --git a/packages/expo-router/CHANGELOG.md b/packages/expo-router/CHANGELOG.md
index 7afccf2deb9662..a83e96a76c2c90 100644
--- a/packages/expo-router/CHANGELOG.md
+++ b/packages/expo-router/CHANGELOG.md
@@ -41,6 +41,7 @@
- [iOS] enable zoom transition by default ([#41891](https://github.com/expo/expo/pull/41891) by [@Ubax](https://github.com/Ubax))
- Improve SSR support ([#41477](https://github.com/expo/expo/pull/41477) by [@hassankhan](https://github.com/hassankhan))
- [iOS] expose image prop from Toolbar.Button ([#41882](https://github.com/expo/expo/pull/41882) by [@Ubax](https://github.com/Ubax))
+- [iOS] add Toolbar.SearchBarPreferredSlot ([#41863](https://github.com/expo/expo/pull/41863) by [@Ubax](https://github.com/Ubax))
### đ Bug fixes
diff --git a/packages/expo-router/build/layouts/StackClient.d.ts b/packages/expo-router/build/layouts/StackClient.d.ts
index 2a8dc50ab03ab4..d0cbbd0fd33b81 100644
--- a/packages/expo-router/build/layouts/StackClient.d.ts
+++ b/packages/expo-router/build/layouts/StackClient.d.ts
@@ -1,7 +1,7 @@
import { ParamListBase, StackRouter as RNStackRouter, StackNavigationState, type RouteProp } from '@react-navigation/native';
import { NativeStackNavigationEventMap, NativeStackNavigationOptions } from '@react-navigation/native-stack';
import React, { ComponentProps } from 'react';
-import { StackScreen } from './stack-utils';
+import { StackScreen, StackSearchBar } from './stack-utils';
import { Protected, type ProtectedProps } from '../views/Protected';
/**
* We extend NativeStackNavigationOptions with our custom props
@@ -158,7 +158,6 @@ declare const Stack: ((props: ComponentProps) => React.JSX.Eleme
Right: React.FC;
BackButton: typeof import("./stack-utils").StackHeaderBackButton;
Title: typeof import("./stack-utils").StackHeaderTitle;
- SearchBar: typeof import("./stack-utils").StackHeaderSearchBar;
Button: React.FC;
Badge: React.FC;
Label: React.FC;
@@ -168,6 +167,7 @@ declare const Stack: ((props: ComponentProps) => React.JSX.Eleme
View: React.FC;
Spacer: React.FC;
};
+ SearchBar: typeof StackSearchBar;
};
export default Stack;
export declare const StackRouter: typeof RNStackRouter;
diff --git a/packages/expo-router/build/layouts/StackClient.d.ts.map b/packages/expo-router/build/layouts/StackClient.d.ts.map
index 307b6e76e03fa3..5677b5536abc80 100644
--- a/packages/expo-router/build/layouts/StackClient.d.ts.map
+++ b/packages/expo-router/build/layouts/StackClient.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"StackClient.d.ts","sourceRoot":"","sources":["../../src/layouts/StackClient.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EAKb,WAAW,IAAI,aAAa,EAE5B,oBAAoB,EACpB,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,EAAY,cAAc,EAAW,MAAM,OAAO,CAAC;AAcjE,OAAO,EAGL,WAAW,EAEZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOpE;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,4BAA4B,GAAG;IAC1E,aAAa,CAAC,EAAE;QACd;;;WAGG;QACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKU,CAAC;AA4CxB;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,iBAAiB,CAAC,CA4U9F,CAAC;AA0FF,QAAA,MAAM,KAAK,WACD,cAAc,CAAC,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;CAmDvC,CAAC;AAoCF,eAAe,KAAK,CAAC;AAErB,eAAO,MAAM,WAAW,EAAE,OAAO,aAMhC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"StackClient.d.ts","sourceRoot":"","sources":["../../src/layouts/StackClient.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EAKb,WAAW,IAAI,aAAa,EAE5B,oBAAoB,EACpB,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,EAAY,cAAc,EAAW,MAAM,OAAO,CAAC;AAcjE,OAAO,EAGL,WAAW,EACX,cAAc,EAEf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOpE;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,4BAA4B,GAAG;IAC1E,aAAa,CAAC,EAAE;QACd;;;WAGG;QACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKU,CAAC;AA4CxB;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,iBAAiB,CAAC,CA4U9F,CAAC;AA0FF,QAAA,MAAM,KAAK,WACD,cAAc,CAAC,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;CAoDvC,CAAC;AAoCF,eAAe,KAAK,CAAC;AAErB,eAAO,MAAM,WAAW,EAAE,OAAO,aAMhC,CAAC"}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/StackClient.js b/packages/expo-router/build/layouts/StackClient.js
index 4fac7197906f09..7f6488ae05d34f 100644
--- a/packages/expo-router/build/layouts/StackClient.js
+++ b/packages/expo-router/build/layouts/StackClient.js
@@ -474,6 +474,7 @@ const Stack = Object.assign((props) => {
Screen: stack_utils_1.StackScreen,
Protected: Protected_1.Protected,
Header: stack_utils_1.StackHeader,
+ SearchBar: stack_utils_1.StackSearchBar,
});
function disableAnimationInScreenOptions(options, condition) {
if (options && typeof options === 'function') {
diff --git a/packages/expo-router/build/layouts/StackClient.js.map b/packages/expo-router/build/layouts/StackClient.js.map
index ee33662322af6d..0e9cdec4e039a4 100644
--- a/packages/expo-router/build/layouts/StackClient.js.map
+++ b/packages/expo-router/build/layouts/StackClient.js.map
@@ -1 +1 @@
-{"version":3,"file":"StackClient.js","sourceRoot":"","sources":["../../src/layouts/StackClient.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\nimport {\n CommonNavigationAction,\n NavigationAction,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n RouterConfigOptions,\n StackRouter as RNStackRouter,\n StackActionType,\n StackNavigationState,\n type RouteProp,\n} from '@react-navigation/native';\nimport {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n} from '@react-navigation/native-stack';\nimport { nanoid } from 'nanoid/non-secure';\nimport React, { Children, ComponentProps, useMemo } from 'react';\n\nimport { withLayoutContext } from './withLayoutContext';\nimport { createNativeStackNavigator } from '../fork/native-stack/createNativeStackNavigator';\nimport { useLinkPreviewContext } from '../link/preview/LinkPreviewContext';\nimport {\n getInternalExpoRouterParams,\n INTERNAL_EXPO_ROUTER_IS_PREVIEW_NAVIGATION_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_NO_ANIMATION_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SCREEN_ID_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SOURCE_ID_PARAM_NAME,\n type InternalExpoRouterParams,\n} from '../navigationParams';\nimport { SingularOptions, getSingularId } from '../useScreens';\nimport {\n type StackScreenProps,\n StackHeader,\n StackScreen,\n appendScreenStackPropsToOptions,\n} from './stack-utils';\nimport { isChildOfType } from '../utils/children';\nimport { Protected, type ProtectedProps } from '../views/Protected';\nimport { Screen } from '../views/Screen';\n\ntype GetId = NonNullable;\n\nconst NativeStackNavigator = createNativeStackNavigator().Navigator;\n\n/**\n * We extend NativeStackNavigationOptions with our custom props\n * to allow for several extra props to be used on web, like modalWidth\n */\nexport type ExtendedStackNavigationOptions = NativeStackNavigationOptions & {\n webModalStyle?: {\n /**\n * Override the width of the modal (px or percentage). Only applies on web platform.\n * @platform web\n */\n width?: number | string;\n /**\n * Override the height of the modal (px or percentage). Applies on web desktop.\n * @platform web\n */\n height?: number | string;\n /**\n * Minimum height of the desktop modal (px or percentage). Overrides the default 640px clamp.\n * @platform web\n */\n minHeight?: number | string;\n /**\n * Minimum width of the desktop modal (px or percentage). Overrides the default 580px.\n * @platform web\n */\n minWidth?: number | string;\n /**\n * Override the border of the desktop modal (any valid CSS border value, e.g. '1px solid #ccc' or 'none').\n * @platform web\n */\n border?: string;\n /**\n * Override the overlay background color (any valid CSS color or rgba/hsla value).\n * @platform web\n */\n overlayBackground?: string;\n /**\n * Override the modal shadow filter (any valid CSS filter value, e.g. 'drop-shadow(0 4px 8px rgba(0,0,0,0.1))' or 'none').\n * @platform web\n */\n shadow?: string;\n };\n};\n\nconst RNStack = withLayoutContext<\n ExtendedStackNavigationOptions,\n typeof NativeStackNavigator,\n StackNavigationState,\n NativeStackNavigationEventMap\n>(NativeStackNavigator);\n\ntype RNNavigationAction = Extract;\ntype RNPreloadAction = Extract;\ntype ExpoNavigationAction = Omit & {\n payload: Omit & {\n params: RNNavigationAction['payload']['params'] & InternalExpoRouterParams;\n };\n};\n\nfunction isStackAction(\n action: NavigationAction\n): action is StackActionType | RNPreloadAction | ExpoNavigationAction {\n return (\n action.type === 'PUSH' ||\n action.type === 'NAVIGATE' ||\n action.type === 'POP' ||\n action.type === 'POP_TO_TOP' ||\n action.type === 'REPLACE' ||\n action.type === 'PRELOAD'\n );\n}\n\nconst isPreviewAction = (action: NavigationAction): action is ExpoNavigationAction =>\n !!action.payload &&\n 'params' in action.payload &&\n typeof action.payload.params === 'object' &&\n !!getInternalExpoRouterParams(action.payload?.params ?? undefined)[\n INTERNAL_EXPO_ROUTER_IS_PREVIEW_NAVIGATION_PARAM_NAME\n ];\n\nconst getZoomTransitionIdFromAction = (action: NavigationAction): string | undefined => {\n const allParams =\n !!action.payload && 'params' in action.payload && typeof action.payload.params === 'object'\n ? action.payload.params\n : undefined;\n const internalParams = getInternalExpoRouterParams(allParams ?? undefined);\n const val = internalParams[INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SOURCE_ID_PARAM_NAME];\n if (val && typeof val === 'string') {\n return val;\n }\n return undefined;\n};\n\n/**\n * React Navigation matches a screen by its name or a 'getID' function that uniquely identifies a screen.\n * When a screen has been uniquely identified, the Stack can only have one instance of that screen.\n *\n * Expo Router allows for a screen to be matched by name and path params, a 'getID' function or a singular id.\n *\n * Instead of reimplementing the entire StackRouter, we can override the getStateForAction method to handle the singular screen logic.\n *\n */\nexport const stackRouterOverride: NonNullable['UNSTABLE_router']> = (\n original\n) => {\n return {\n getStateForAction: (state, action, options) => {\n if (action.target && action.target !== state.key) {\n return null;\n }\n\n if (!isStackAction(action)) {\n return original.getStateForAction(state, action, options);\n }\n\n // The dynamic getId added to an action, `router.push('screen', { singular: true })`\n const actionSingularOptions =\n action.payload && 'singular' in action.payload\n ? (action.payload.singular as SingularOptions)\n : undefined;\n\n // Handle if 'getID' or 'singular' is set.\n function getIdFunction(): GetId | undefined {\n // Actions can be fired by the user, so we do need to validate their structure.\n if (\n !('payload' in action) ||\n !action.payload ||\n !('name' in action.payload) ||\n typeof action.payload.name !== 'string'\n ) {\n return;\n }\n\n const actionName = action.payload.name;\n\n return (\n // The dynamic singular added to an action, `router.push('screen', { singular: () => 'id' })`\n getActionSingularIdFn(actionSingularOptions, actionName) ||\n // The static getId added as a prop to `` or ``\n options.routeGetIdList[actionName]\n );\n }\n\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'PUSH':\n case 'NAVIGATE': {\n if (!state.routeNames.includes(action.payload.name)) {\n return null;\n }\n\n // START FORK\n const getId = getIdFunction();\n // const getId = options.routeGetIdList[action.payload.name];\n // END FORK\n const id = getId?.({ params: action.payload.params });\n\n let route: Route | undefined;\n\n if (id !== undefined) {\n route = state.routes.findLast(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n } else if (action.type === 'NAVIGATE') {\n const currentRoute = state.routes[state.index];\n\n // If the route matches the current one, then navigate to it\n if (action.payload.name === currentRoute.name && !isPreviewAction(action)) {\n route = currentRoute;\n } else if (action.payload.pop) {\n route = state.routes.findLast((route) => route.name === action.payload.name);\n }\n }\n\n // START FORK\n let isPreloadedRoute = false;\n if (isPreviewAction(action) && !route) {\n route = state.preloadedRoutes.find(\n (route) => route.name === action.payload.name && id === route.key\n );\n isPreloadedRoute = !!route;\n }\n // END FORK\n\n if (!route) {\n route = state.preloadedRoutes.find(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n // START FORK\n isPreloadedRoute = !!route;\n // END FORK\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge && route) {\n params =\n action.payload.params !== undefined ||\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n let routes: Route[];\n\n if (route) {\n if (action.type === 'NAVIGATE' && action.payload.pop) {\n routes = [];\n\n // Get all routes until the matching one\n for (const r of state.routes) {\n if (r.key === route.key) {\n routes.push({\n ...route,\n path: action.payload.path !== undefined ? action.payload.path : route.path,\n params,\n });\n break;\n }\n\n routes.push(r);\n }\n } else {\n // START FORK\n // If there is an id, then filter out the existing route with the same id.\n // THIS ACTION IS DANGEROUS. This can cause React Native Screens to freeze\n if (id !== undefined) {\n routes = state.routes.filter((r) => r.key !== route.key);\n } else if (action.type === 'NAVIGATE' && state.routes.length > 0) {\n // The navigation action should only replace the last route if it has the same name and path params.\n const lastRoute = state.routes[state.routes.length - 1];\n if (\n getSingularId(lastRoute.name, { params: lastRoute.params }) ===\n getSingularId(route.name, { params })\n ) {\n routes = state.routes.slice(0, -1);\n } else {\n routes = [...state.routes];\n }\n } else {\n routes = [...state.routes];\n }\n\n // If the routes length is the same as the state routes length, then we are navigating to a new route.\n // Otherwise we are replacing an existing route.\n // For preloaded route, we want to use the same key, so that preloaded screen is used.\n const key =\n routes.length === state.routes.length && !isPreloadedRoute\n ? `${action.payload.name}-${nanoid()}`\n : route.key;\n\n routes.push({\n ...route,\n key,\n path:\n action.type === 'NAVIGATE' && action.payload.path !== undefined\n ? action.payload.path\n : route.path,\n params,\n });\n\n // routes = state.routes.filter((r) => r.key !== route.key);\n // routes.push({\n // ...route,\n // path:\n // action.type === 'NAVIGATE' && action.payload.path !== undefined\n // ? action.payload.path\n // : route.path,\n // params,\n // });\n // END FORK\n }\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.type === 'NAVIGATE' ? action.payload.path : undefined,\n params,\n },\n ];\n }\n\n // START FORK\n // return filterSingular(\n const result = {\n ...state,\n index: routes.length - 1,\n preloadedRoutes: state.preloadedRoutes.filter(\n (route) => routes[routes.length - 1].key !== route.key\n ),\n routes,\n };\n\n if (actionSingularOptions) {\n return filterSingular(result, getId);\n }\n\n const zoomTransitionId = getZoomTransitionIdFromAction(action);\n if (zoomTransitionId) {\n const lastRoute = result.routes[result.routes.length - 1];\n const key = lastRoute.key;\n const modifiedLastRoute: typeof lastRoute = {\n ...lastRoute,\n params: {\n ...lastRoute.params,\n [INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SCREEN_ID_PARAM_NAME]: key,\n },\n };\n return {\n ...result,\n routes: [...result.routes.slice(0, -1), modifiedLastRoute],\n };\n }\n\n return result;\n // return {\n // ...state,\n // index: routes.length - 1,\n // preloadedRoutes: state.preloadedRoutes.filter(\n // (route) => routes[routes.length - 1].key !== route.key\n // ),\n // routes,\n // };\n // END FORK\n }\n case 'PRELOAD': {\n // START FORK\n // This will be the case for example for protected route\n if (!state.routeNames.includes(action.payload.name)) {\n return null;\n }\n // END FORK\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n let route: Route | undefined;\n\n if (id !== undefined) {\n route = state.routes.find(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n }\n\n if (route) {\n return {\n ...state,\n routes: state.routes.map((r) => {\n if (r.key !== route?.key) {\n return r;\n }\n return {\n ...r,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n };\n }),\n };\n } else {\n // START FORK\n const currentPreloadedRoute: (typeof state)['preloadedRoutes'][number] = {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n };\n // END FORK\n return {\n ...state,\n // START FORK\n // Adding the current preloaded route to the beginning of the preloadedRoutes array\n // This ensures that the preloaded route will be the next one after the visible route\n // and when navigation will happen, there will be no reshuffling\n // This is a workaround for the link preview navigation issue, when screen would freeze after navigation from native side\n // and reshuffling from react-navigation\n preloadedRoutes: [currentPreloadedRoute].concat(\n state.preloadedRoutes.filter(\n (r) => r.name !== action.payload.name || id !== getId?.({ params: r.params })\n )\n ),\n // preloadedRoutes: state.preloadedRoutes\n // .filter(\n // (r) =>\n // r.name !== action.payload.name ||\n // id !== getId?.({ params: r.params })\n // )\n // .concat({\n // key: `${action.payload.name}-${nanoid()}`,\n // name: action.payload.name,\n // params:\n // routeParamList[action.payload.name] !== undefined\n // ? {\n // ...routeParamList[action.payload.name],\n // ...action.payload.params,\n // }\n // : action.payload.params,\n // }),\n // END FORK\n };\n }\n }\n default: {\n return original.getStateForAction(state, action, options);\n }\n }\n },\n };\n};\n\nfunction getActionSingularIdFn(\n actionGetId: SingularOptions | undefined,\n name: string\n): GetId | undefined {\n if (typeof actionGetId === 'function') {\n return (options) => actionGetId(name, options.params ?? {});\n } else if (actionGetId === true) {\n return (options) => getSingularId(name, options);\n }\n\n return undefined;\n}\n\n/**\n * If there is a dynamic singular on an action, then we need to filter the state to only have singular screens.\n * As multiples may have been added before we did the singular navigation.\n */\nfunction filterSingular<\n T extends\n | StackNavigationState\n | PartialState>\n | null,\n>(state: T, getId?: GetId): T {\n if (!state) {\n return state;\n }\n\n if (!state.routes) {\n return state;\n }\n\n const currentIndex = state.index || state.routes.length - 1;\n const current = state.routes[currentIndex];\n const name = current.name;\n\n const id = getId?.({ params: current.params });\n\n if (!id) {\n return state;\n }\n\n // TypeScript needs a type assertion here for the filter to work.\n let routes = state.routes as PartialRoute>[];\n routes = routes.filter((route, index) => {\n // If the route is the current route, keep it.\n if (index === currentIndex) {\n return true;\n }\n\n // Remove all other routes with the same name and id.\n return name !== route.name || id !== getId?.({ params: route.params });\n });\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n}\n\nfunction mapProtectedScreen(props: ProtectedProps): ProtectedProps {\n return {\n ...props,\n children: Children.toArray(props.children)\n .map((child, index) => {\n if (isChildOfType(child, StackScreen)) {\n const options = appendScreenStackPropsToOptions({}, child.props);\n const { children, ...rest } = child.props;\n return ;\n } else if (isChildOfType(child, Protected)) {\n return ;\n } else if (isChildOfType(child, StackHeader)) {\n // Ignore Stack.Header, because it can be used to set header options for Stack\n // and we use this function to process children of Stack, as well.\n return null;\n } else {\n if (React.isValidElement(child)) {\n console.warn(`Warning: Unknown child element passed to Stack: ${child.type}`);\n } else {\n console.warn(`Warning: Unknown child element passed to Stack: ${child}`);\n }\n }\n return null;\n })\n .filter(Boolean),\n };\n}\n\nconst Stack = Object.assign(\n (props: ComponentProps) => {\n const { isStackAnimationDisabled } = useLinkPreviewContext();\n\n const screenOptionsWithCompositionAPIOptions = useMemo(() => {\n const stackHeader = Children.toArray(props.children).find((child) =>\n isChildOfType(child, StackHeader)\n );\n if (stackHeader) {\n const screenStackProps: StackScreenProps = { children: stackHeader };\n const currentOptions = props.screenOptions;\n if (currentOptions) {\n if (typeof currentOptions === 'function') {\n return (...args) => {\n const options = currentOptions(...args);\n return appendScreenStackPropsToOptions(options, screenStackProps);\n };\n }\n return appendScreenStackPropsToOptions(currentOptions, screenStackProps);\n } else {\n return appendScreenStackPropsToOptions({}, screenStackProps);\n }\n } else {\n return props.screenOptions;\n }\n }, [props.screenOptions, props.children]);\n\n const screenOptions = useMemo(() => {\n const condition = isStackAnimationDisabled ? () => true : shouldDisableAnimationBasedOnParams;\n\n return disableAnimationInScreenOptions(screenOptionsWithCompositionAPIOptions, condition);\n }, [screenOptionsWithCompositionAPIOptions, isStackAnimationDisabled]);\n\n const rnChildren = useMemo(\n () => mapProtectedScreen({ guard: true, children: props.children }).children,\n [props.children]\n );\n\n return (\n \n );\n },\n {\n Screen: StackScreen,\n Protected,\n Header: StackHeader,\n }\n);\n\ntype NativeStackScreenOptions = ComponentProps['screenOptions'];\n\nfunction disableAnimationInScreenOptions(\n options: NativeStackScreenOptions | undefined,\n condition: (route: RouteProp) => boolean\n): NativeStackScreenOptions {\n if (options && typeof options === 'function') {\n return (props) => {\n const oldOptions = options(props);\n if (condition(props.route)) {\n return {\n ...oldOptions,\n animation: 'none',\n };\n }\n return oldOptions ?? {};\n };\n }\n return (props) => {\n if (condition(props.route)) {\n return {\n ...(options ?? {}),\n animation: 'none',\n };\n }\n return options ?? {};\n };\n}\n\nfunction shouldDisableAnimationBasedOnParams(route: RouteProp): boolean {\n const expoParams = getInternalExpoRouterParams(route.params);\n return !!expoParams[INTERNAL_EXPO_ROUTER_NO_ANIMATION_PARAM_NAME];\n}\n\nexport default Stack;\n\nexport const StackRouter: typeof RNStackRouter = (options) => {\n const router = RNStackRouter(options);\n return {\n ...router,\n ...stackRouterOverride(router),\n };\n};\n"]}
\ No newline at end of file
+{"version":3,"file":"StackClient.js","sourceRoot":"","sources":["../../src/layouts/StackClient.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,qDAYkC;AAKlC,kDAA2C;AAC3C,+CAAiE;AAEjE,2DAAwD;AACxD,gGAA6F;AAC7F,2EAA2E;AAC3E,0DAO6B;AAC7B,8CAA+D;AAC/D,+CAMuB;AACvB,gDAAkD;AAClD,kDAAoE;AACpE,4CAAyC;AAIzC,MAAM,oBAAoB,GAAG,IAAA,uDAA0B,GAAE,CAAC,SAAS,CAAC;AA8CpE,MAAM,OAAO,GAAG,IAAA,qCAAiB,EAK/B,oBAAoB,CAAC,CAAC;AAUxB,SAAS,aAAa,CACpB,MAAwB;IAExB,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,MAAM;QACtB,MAAM,CAAC,IAAI,KAAK,UAAU;QAC1B,MAAM,CAAC,IAAI,KAAK,KAAK;QACrB,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,KAAK,SAAS,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAkC,EAAE,CACnF,CAAC,CAAC,MAAM,CAAC,OAAO;IAChB,QAAQ,IAAI,MAAM,CAAC,OAAO;IAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;IACzC,CAAC,CAAC,IAAA,8CAA2B,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,CAChE,wEAAqD,CACtD,CAAC;AAEJ,MAAM,6BAA6B,GAAG,CAAC,MAAwB,EAAsB,EAAE;IACrF,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;QACzF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;QACvB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,cAAc,GAAG,IAAA,8CAA2B,EAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,cAAc,CAAC,4EAAyD,CAAC,CAAC;IACtF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACI,MAAM,mBAAmB,GAAmE,CACjG,QAAQ,EACR,EAAE;IACF,OAAO;QACL,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;YAED,oFAAoF;YACpF,MAAM,qBAAqB,GACzB,MAAM,CAAC,OAAO,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO;gBAC5C,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,QAA4B;gBAC9C,CAAC,CAAC,SAAS,CAAC;YAEhB,0CAA0C;YAC1C,SAAS,aAAa;gBACpB,+EAA+E;gBAC/E,IACE,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;oBACtB,CAAC,MAAM,CAAC,OAAO;oBACf,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC;oBAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EACvC,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAEvC,OAAO;gBACL,6FAA6F;gBAC7F,qBAAqB,CAAC,qBAAqB,EAAE,UAAU,CAAC;oBACxD,qFAAqF;oBACrF,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CACnC,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;YAEnC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,aAAa;oBACb,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;oBAC9B,6DAA6D;oBAC7D,WAAW;oBACX,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAEtD,IAAI,KAAgC,CAAC;oBAErC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAC3B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CACjF,CAAC;oBACJ,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACtC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAE/C,4DAA4D;wBAC5D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC1E,KAAK,GAAG,YAAY,CAAC;wBACvB,CAAC;6BAAM,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;4BAC9B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;oBAED,aAAa;oBACb,IAAI,gBAAgB,GAAG,KAAK,CAAC;oBAC7B,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACtC,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,CAClE,CAAC;wBACF,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;oBAC7B,CAAC;oBACD,WAAW;oBAEX,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CACjF,CAAC;wBACF,aAAa;wBACb,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;wBAC3B,WAAW;oBACb,CAAC;oBAED,IAAI,MAAM,CAAC;oBAEX,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;wBAChE,MAAM;4BACJ,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gCACnC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;gCAC/C,CAAC,CAAC;oCACE,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oCACtC,GAAG,KAAK,CAAC,MAAM;oCACf,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;iCACzB;gCACH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,MAAM;4BACJ,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;gCAC/C,CAAC,CAAC;oCACE,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oCACtC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;iCACzB;gCACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9B,CAAC;oBAED,IAAI,MAAuB,CAAC;oBAE5B,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;4BACrD,MAAM,GAAG,EAAE,CAAC;4BAEZ,wCAAwC;4BACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gCAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;oCACxB,MAAM,CAAC,IAAI,CAAC;wCACV,GAAG,KAAK;wCACR,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;wCAC1E,MAAM;qCACP,CAAC,CAAC;oCACH,MAAM;gCACR,CAAC;gCAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACjB,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,aAAa;4BACb,0EAA0E;4BAC1E,0EAA0E;4BAC1E,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gCACrB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC3D,CAAC;iCAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACjE,oGAAoG;gCACpG,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACxD,IACE,IAAA,0BAAa,EAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;oCAC3D,IAAA,0BAAa,EAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EACrC,CAAC;oCACD,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gCACrC,CAAC;qCAAM,CAAC;oCACN,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gCAC7B,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC7B,CAAC;4BAED,sGAAsG;4BACtG,gDAAgD;4BAChD,sFAAsF;4BACtF,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,gBAAgB;gCACxD,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAA,mBAAM,GAAE,EAAE;gCACtC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;4BAEhB,MAAM,CAAC,IAAI,CAAC;gCACV,GAAG,KAAK;gCACR,GAAG;gCACH,IAAI,EACF,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;oCAC7D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;oCACrB,CAAC,CAAC,KAAK,CAAC,IAAI;gCAChB,MAAM;6BACP,CAAC,CAAC;4BAEH,4DAA4D;4BAC5D,gBAAgB;4BAChB,cAAc;4BACd,UAAU;4BACV,sEAAsE;4BACtE,8BAA8B;4BAC9B,sBAAsB;4BACtB,YAAY;4BACZ,MAAM;4BACN,WAAW;wBACb,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG;4BACP,GAAG,KAAK,CAAC,MAAM;4BACf;gCACE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAA,mBAAM,GAAE,EAAE;gCACzC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;gCACzB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gCAClE,MAAM;6BACP;yBACF,CAAC;oBACJ,CAAC;oBAED,aAAa;oBACb,yBAAyB;oBACzB,MAAM,MAAM,GAAG;wBACb,GAAG,KAAK;wBACR,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;wBACxB,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACvD;wBACD,MAAM;qBACP,CAAC;oBAEF,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACvC,CAAC;oBAED,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;oBAC/D,IAAI,gBAAgB,EAAE,CAAC;wBACrB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;wBAC1B,MAAM,iBAAiB,GAAqB;4BAC1C,GAAG,SAAS;4BACZ,MAAM,EAAE;gCACN,GAAG,SAAS,CAAC,MAAM;gCACnB,CAAC,4EAAyD,CAAC,EAAE,GAAG;6BACjE;yBACF,CAAC;wBACF,OAAO;4BACL,GAAG,MAAM;4BACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;yBAC3D,CAAC;oBACJ,CAAC;oBAED,OAAO,MAAM,CAAC;oBACd,WAAW;oBACX,cAAc;oBACd,8BAA8B;oBAC9B,mDAAmD;oBACnD,6DAA6D;oBAC7D,OAAO;oBACP,YAAY;oBACZ,KAAK;oBACL,WAAW;gBACb,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,aAAa;oBACb,wDAAwD;oBACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,WAAW;oBACX,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAEtD,IAAI,KAAgC,CAAC;oBAErC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CACvB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CACjF,CAAC;oBACJ,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO;4BACL,GAAG,KAAK;4BACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,EAAE,CAAC;oCACzB,OAAO,CAAC,CAAC;gCACX,CAAC;gCACD,OAAO;oCACL,GAAG,CAAC;oCACJ,MAAM,EACJ,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;wCAC/C,CAAC,CAAC;4CACE,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;4CACtC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;yCACzB;wCACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;iCAC5B,CAAC;4BACJ,CAAC,CAAC;yBACH,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,aAAa;wBACb,MAAM,qBAAqB,GAA8C;4BACvE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAA,mBAAM,GAAE,EAAE;4BACzC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;4BACzB,MAAM,EACJ,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;gCAC/C,CAAC,CAAC;oCACE,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oCACtC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;iCACzB;gCACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;yBAC5B,CAAC;wBACF,WAAW;wBACX,OAAO;4BACL,GAAG,KAAK;4BACR,aAAa;4BACb,mFAAmF;4BACnF,qFAAqF;4BACrF,gEAAgE;4BAChE,yHAAyH;4BACzH,wCAAwC;4BACxC,eAAe,EAAE,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAC7C,KAAK,CAAC,eAAe,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAC9E,CACF;4BACD,yCAAyC;4BACzC,aAAa;4BACb,aAAa;4BACb,0CAA0C;4BAC1C,6CAA6C;4BAC7C,MAAM;4BACN,cAAc;4BACd,iDAAiD;4BACjD,iCAAiC;4BACjC,cAAc;4BACd,0DAA0D;4BAC1D,cAAc;4BACd,sDAAsD;4BACtD,wCAAwC;4BACxC,cAAc;4BACd,mCAAmC;4BACnC,QAAQ;4BACR,WAAW;yBACZ,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,OAAO,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AA5UW,QAAA,mBAAmB,uBA4U9B;AAEF,SAAS,qBAAqB,CAC5B,WAAwC,EACxC,IAAY;IAEZ,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,0BAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAKrB,KAAQ,EAAE,KAAa;IACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iEAAiE;IACjE,IAAI,MAAM,GAAG,KAAK,CAAC,MAA2D,CAAC;IAC/E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtC,8CAA8C;QAC9C,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,OAAO,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,KAAK;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB;IAC/C,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,gBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;aACvC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,IAAA,wBAAa,EAAC,KAAK,EAAE,yBAAW,CAAC,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAA,6CAA+B,EAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1C,OAAO,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC;YACvE,CAAC;iBAAM,IAAI,IAAA,wBAAa,EAAC,KAAK,EAAE,qBAAS,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,qBAAS,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAG,CAAC;YAC5F,CAAC;iBAAM,IAAI,IAAA,wBAAa,EAAC,KAAK,EAAE,yBAAW,CAAC,EAAE,CAAC;gBAC7C,8EAA8E;gBAC9E,kEAAkE;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CACzB,CAAC,KAAqC,EAAE,EAAE;IACxC,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAA,0CAAqB,GAAE,CAAC;IAE7D,MAAM,sCAAsC,GAAG,IAAA,eAAO,EAA2B,GAAG,EAAE;QACpF,MAAM,WAAW,GAAG,gBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,IAAA,wBAAa,EAAC,KAAK,EAAE,yBAAW,CAAC,CAClC,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,gBAAgB,GAAqB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;YACrE,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC;YAC3C,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;wBACjB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;wBACxC,OAAO,IAAA,6CAA+B,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;oBACpE,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAA,6CAA+B,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAA,6CAA+B,EAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,aAAa,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1C,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjC,MAAM,SAAS,GAAG,wBAAwB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC;QAE9F,OAAO,+BAA+B,CAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC,EAAE,CAAC,sCAAsC,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG,IAAA,eAAO,EACxB,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAC5E,CAAC,KAAK,CAAC,QAAQ,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,CAAC,OAAO,CACN,IAAI,KAAK,CAAC,CACV,QAAQ,CAAC,CAAC,UAAU,CAAC,CACrB,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,eAAe,CAAC,CAAC,2BAAmB,CAAC,EACrC,CACH,CAAC;AACJ,CAAC,EACD;IACE,MAAM,EAAE,yBAAW;IACnB,SAAS,EAAT,qBAAS;IACT,MAAM,EAAE,yBAAW;IACnB,SAAS,EAAE,4BAAc;CAC1B,CACF,CAAC;AAIF,SAAS,+BAA+B,CACtC,OAA6C,EAC7C,SAA+D;IAE/D,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,GAAG,UAAU;oBACb,SAAS,EAAE,MAAM;iBAClB,CAAC;YACJ,CAAC;YACD,OAAO,UAAU,IAAI,EAAE,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClB,SAAS,EAAE,MAAM;aAClB,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,KAAuC;IAClF,MAAM,UAAU,GAAG,IAAA,8CAA2B,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC,UAAU,CAAC,+DAA4C,CAAC,CAAC;AACpE,CAAC;AAED,kBAAe,KAAK,CAAC;AAEd,MAAM,WAAW,GAAyB,CAAC,OAAO,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,GAAG,MAAM;QACT,GAAG,IAAA,2BAAmB,EAAC,MAAM,CAAC;KAC/B,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB","sourcesContent":["'use client';\nimport {\n CommonNavigationAction,\n NavigationAction,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n RouterConfigOptions,\n StackRouter as RNStackRouter,\n StackActionType,\n StackNavigationState,\n type RouteProp,\n} from '@react-navigation/native';\nimport {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n} from '@react-navigation/native-stack';\nimport { nanoid } from 'nanoid/non-secure';\nimport React, { Children, ComponentProps, useMemo } from 'react';\n\nimport { withLayoutContext } from './withLayoutContext';\nimport { createNativeStackNavigator } from '../fork/native-stack/createNativeStackNavigator';\nimport { useLinkPreviewContext } from '../link/preview/LinkPreviewContext';\nimport {\n getInternalExpoRouterParams,\n INTERNAL_EXPO_ROUTER_IS_PREVIEW_NAVIGATION_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_NO_ANIMATION_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SCREEN_ID_PARAM_NAME,\n INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SOURCE_ID_PARAM_NAME,\n type InternalExpoRouterParams,\n} from '../navigationParams';\nimport { SingularOptions, getSingularId } from '../useScreens';\nimport {\n type StackScreenProps,\n StackHeader,\n StackScreen,\n StackSearchBar,\n appendScreenStackPropsToOptions,\n} from './stack-utils';\nimport { isChildOfType } from '../utils/children';\nimport { Protected, type ProtectedProps } from '../views/Protected';\nimport { Screen } from '../views/Screen';\n\ntype GetId = NonNullable;\n\nconst NativeStackNavigator = createNativeStackNavigator().Navigator;\n\n/**\n * We extend NativeStackNavigationOptions with our custom props\n * to allow for several extra props to be used on web, like modalWidth\n */\nexport type ExtendedStackNavigationOptions = NativeStackNavigationOptions & {\n webModalStyle?: {\n /**\n * Override the width of the modal (px or percentage). Only applies on web platform.\n * @platform web\n */\n width?: number | string;\n /**\n * Override the height of the modal (px or percentage). Applies on web desktop.\n * @platform web\n */\n height?: number | string;\n /**\n * Minimum height of the desktop modal (px or percentage). Overrides the default 640px clamp.\n * @platform web\n */\n minHeight?: number | string;\n /**\n * Minimum width of the desktop modal (px or percentage). Overrides the default 580px.\n * @platform web\n */\n minWidth?: number | string;\n /**\n * Override the border of the desktop modal (any valid CSS border value, e.g. '1px solid #ccc' or 'none').\n * @platform web\n */\n border?: string;\n /**\n * Override the overlay background color (any valid CSS color or rgba/hsla value).\n * @platform web\n */\n overlayBackground?: string;\n /**\n * Override the modal shadow filter (any valid CSS filter value, e.g. 'drop-shadow(0 4px 8px rgba(0,0,0,0.1))' or 'none').\n * @platform web\n */\n shadow?: string;\n };\n};\n\nconst RNStack = withLayoutContext<\n ExtendedStackNavigationOptions,\n typeof NativeStackNavigator,\n StackNavigationState,\n NativeStackNavigationEventMap\n>(NativeStackNavigator);\n\ntype RNNavigationAction = Extract;\ntype RNPreloadAction = Extract;\ntype ExpoNavigationAction = Omit & {\n payload: Omit & {\n params: RNNavigationAction['payload']['params'] & InternalExpoRouterParams;\n };\n};\n\nfunction isStackAction(\n action: NavigationAction\n): action is StackActionType | RNPreloadAction | ExpoNavigationAction {\n return (\n action.type === 'PUSH' ||\n action.type === 'NAVIGATE' ||\n action.type === 'POP' ||\n action.type === 'POP_TO_TOP' ||\n action.type === 'REPLACE' ||\n action.type === 'PRELOAD'\n );\n}\n\nconst isPreviewAction = (action: NavigationAction): action is ExpoNavigationAction =>\n !!action.payload &&\n 'params' in action.payload &&\n typeof action.payload.params === 'object' &&\n !!getInternalExpoRouterParams(action.payload?.params ?? undefined)[\n INTERNAL_EXPO_ROUTER_IS_PREVIEW_NAVIGATION_PARAM_NAME\n ];\n\nconst getZoomTransitionIdFromAction = (action: NavigationAction): string | undefined => {\n const allParams =\n !!action.payload && 'params' in action.payload && typeof action.payload.params === 'object'\n ? action.payload.params\n : undefined;\n const internalParams = getInternalExpoRouterParams(allParams ?? undefined);\n const val = internalParams[INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SOURCE_ID_PARAM_NAME];\n if (val && typeof val === 'string') {\n return val;\n }\n return undefined;\n};\n\n/**\n * React Navigation matches a screen by its name or a 'getID' function that uniquely identifies a screen.\n * When a screen has been uniquely identified, the Stack can only have one instance of that screen.\n *\n * Expo Router allows for a screen to be matched by name and path params, a 'getID' function or a singular id.\n *\n * Instead of reimplementing the entire StackRouter, we can override the getStateForAction method to handle the singular screen logic.\n *\n */\nexport const stackRouterOverride: NonNullable['UNSTABLE_router']> = (\n original\n) => {\n return {\n getStateForAction: (state, action, options) => {\n if (action.target && action.target !== state.key) {\n return null;\n }\n\n if (!isStackAction(action)) {\n return original.getStateForAction(state, action, options);\n }\n\n // The dynamic getId added to an action, `router.push('screen', { singular: true })`\n const actionSingularOptions =\n action.payload && 'singular' in action.payload\n ? (action.payload.singular as SingularOptions)\n : undefined;\n\n // Handle if 'getID' or 'singular' is set.\n function getIdFunction(): GetId | undefined {\n // Actions can be fired by the user, so we do need to validate their structure.\n if (\n !('payload' in action) ||\n !action.payload ||\n !('name' in action.payload) ||\n typeof action.payload.name !== 'string'\n ) {\n return;\n }\n\n const actionName = action.payload.name;\n\n return (\n // The dynamic singular added to an action, `router.push('screen', { singular: () => 'id' })`\n getActionSingularIdFn(actionSingularOptions, actionName) ||\n // The static getId added as a prop to `` or ``\n options.routeGetIdList[actionName]\n );\n }\n\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'PUSH':\n case 'NAVIGATE': {\n if (!state.routeNames.includes(action.payload.name)) {\n return null;\n }\n\n // START FORK\n const getId = getIdFunction();\n // const getId = options.routeGetIdList[action.payload.name];\n // END FORK\n const id = getId?.({ params: action.payload.params });\n\n let route: Route | undefined;\n\n if (id !== undefined) {\n route = state.routes.findLast(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n } else if (action.type === 'NAVIGATE') {\n const currentRoute = state.routes[state.index];\n\n // If the route matches the current one, then navigate to it\n if (action.payload.name === currentRoute.name && !isPreviewAction(action)) {\n route = currentRoute;\n } else if (action.payload.pop) {\n route = state.routes.findLast((route) => route.name === action.payload.name);\n }\n }\n\n // START FORK\n let isPreloadedRoute = false;\n if (isPreviewAction(action) && !route) {\n route = state.preloadedRoutes.find(\n (route) => route.name === action.payload.name && id === route.key\n );\n isPreloadedRoute = !!route;\n }\n // END FORK\n\n if (!route) {\n route = state.preloadedRoutes.find(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n // START FORK\n isPreloadedRoute = !!route;\n // END FORK\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge && route) {\n params =\n action.payload.params !== undefined ||\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n let routes: Route[];\n\n if (route) {\n if (action.type === 'NAVIGATE' && action.payload.pop) {\n routes = [];\n\n // Get all routes until the matching one\n for (const r of state.routes) {\n if (r.key === route.key) {\n routes.push({\n ...route,\n path: action.payload.path !== undefined ? action.payload.path : route.path,\n params,\n });\n break;\n }\n\n routes.push(r);\n }\n } else {\n // START FORK\n // If there is an id, then filter out the existing route with the same id.\n // THIS ACTION IS DANGEROUS. This can cause React Native Screens to freeze\n if (id !== undefined) {\n routes = state.routes.filter((r) => r.key !== route.key);\n } else if (action.type === 'NAVIGATE' && state.routes.length > 0) {\n // The navigation action should only replace the last route if it has the same name and path params.\n const lastRoute = state.routes[state.routes.length - 1];\n if (\n getSingularId(lastRoute.name, { params: lastRoute.params }) ===\n getSingularId(route.name, { params })\n ) {\n routes = state.routes.slice(0, -1);\n } else {\n routes = [...state.routes];\n }\n } else {\n routes = [...state.routes];\n }\n\n // If the routes length is the same as the state routes length, then we are navigating to a new route.\n // Otherwise we are replacing an existing route.\n // For preloaded route, we want to use the same key, so that preloaded screen is used.\n const key =\n routes.length === state.routes.length && !isPreloadedRoute\n ? `${action.payload.name}-${nanoid()}`\n : route.key;\n\n routes.push({\n ...route,\n key,\n path:\n action.type === 'NAVIGATE' && action.payload.path !== undefined\n ? action.payload.path\n : route.path,\n params,\n });\n\n // routes = state.routes.filter((r) => r.key !== route.key);\n // routes.push({\n // ...route,\n // path:\n // action.type === 'NAVIGATE' && action.payload.path !== undefined\n // ? action.payload.path\n // : route.path,\n // params,\n // });\n // END FORK\n }\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.type === 'NAVIGATE' ? action.payload.path : undefined,\n params,\n },\n ];\n }\n\n // START FORK\n // return filterSingular(\n const result = {\n ...state,\n index: routes.length - 1,\n preloadedRoutes: state.preloadedRoutes.filter(\n (route) => routes[routes.length - 1].key !== route.key\n ),\n routes,\n };\n\n if (actionSingularOptions) {\n return filterSingular(result, getId);\n }\n\n const zoomTransitionId = getZoomTransitionIdFromAction(action);\n if (zoomTransitionId) {\n const lastRoute = result.routes[result.routes.length - 1];\n const key = lastRoute.key;\n const modifiedLastRoute: typeof lastRoute = {\n ...lastRoute,\n params: {\n ...lastRoute.params,\n [INTERNAL_EXPO_ROUTER_ZOOM_TRANSITION_SCREEN_ID_PARAM_NAME]: key,\n },\n };\n return {\n ...result,\n routes: [...result.routes.slice(0, -1), modifiedLastRoute],\n };\n }\n\n return result;\n // return {\n // ...state,\n // index: routes.length - 1,\n // preloadedRoutes: state.preloadedRoutes.filter(\n // (route) => routes[routes.length - 1].key !== route.key\n // ),\n // routes,\n // };\n // END FORK\n }\n case 'PRELOAD': {\n // START FORK\n // This will be the case for example for protected route\n if (!state.routeNames.includes(action.payload.name)) {\n return null;\n }\n // END FORK\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n let route: Route | undefined;\n\n if (id !== undefined) {\n route = state.routes.find(\n (route) =>\n route.name === action.payload.name && id === getId?.({ params: route.params })\n );\n }\n\n if (route) {\n return {\n ...state,\n routes: state.routes.map((r) => {\n if (r.key !== route?.key) {\n return r;\n }\n return {\n ...r,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n };\n }),\n };\n } else {\n // START FORK\n const currentPreloadedRoute: (typeof state)['preloadedRoutes'][number] = {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n };\n // END FORK\n return {\n ...state,\n // START FORK\n // Adding the current preloaded route to the beginning of the preloadedRoutes array\n // This ensures that the preloaded route will be the next one after the visible route\n // and when navigation will happen, there will be no reshuffling\n // This is a workaround for the link preview navigation issue, when screen would freeze after navigation from native side\n // and reshuffling from react-navigation\n preloadedRoutes: [currentPreloadedRoute].concat(\n state.preloadedRoutes.filter(\n (r) => r.name !== action.payload.name || id !== getId?.({ params: r.params })\n )\n ),\n // preloadedRoutes: state.preloadedRoutes\n // .filter(\n // (r) =>\n // r.name !== action.payload.name ||\n // id !== getId?.({ params: r.params })\n // )\n // .concat({\n // key: `${action.payload.name}-${nanoid()}`,\n // name: action.payload.name,\n // params:\n // routeParamList[action.payload.name] !== undefined\n // ? {\n // ...routeParamList[action.payload.name],\n // ...action.payload.params,\n // }\n // : action.payload.params,\n // }),\n // END FORK\n };\n }\n }\n default: {\n return original.getStateForAction(state, action, options);\n }\n }\n },\n };\n};\n\nfunction getActionSingularIdFn(\n actionGetId: SingularOptions | undefined,\n name: string\n): GetId | undefined {\n if (typeof actionGetId === 'function') {\n return (options) => actionGetId(name, options.params ?? {});\n } else if (actionGetId === true) {\n return (options) => getSingularId(name, options);\n }\n\n return undefined;\n}\n\n/**\n * If there is a dynamic singular on an action, then we need to filter the state to only have singular screens.\n * As multiples may have been added before we did the singular navigation.\n */\nfunction filterSingular<\n T extends\n | StackNavigationState\n | PartialState>\n | null,\n>(state: T, getId?: GetId): T {\n if (!state) {\n return state;\n }\n\n if (!state.routes) {\n return state;\n }\n\n const currentIndex = state.index || state.routes.length - 1;\n const current = state.routes[currentIndex];\n const name = current.name;\n\n const id = getId?.({ params: current.params });\n\n if (!id) {\n return state;\n }\n\n // TypeScript needs a type assertion here for the filter to work.\n let routes = state.routes as PartialRoute>[];\n routes = routes.filter((route, index) => {\n // If the route is the current route, keep it.\n if (index === currentIndex) {\n return true;\n }\n\n // Remove all other routes with the same name and id.\n return name !== route.name || id !== getId?.({ params: route.params });\n });\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n}\n\nfunction mapProtectedScreen(props: ProtectedProps): ProtectedProps {\n return {\n ...props,\n children: Children.toArray(props.children)\n .map((child, index) => {\n if (isChildOfType(child, StackScreen)) {\n const options = appendScreenStackPropsToOptions({}, child.props);\n const { children, ...rest } = child.props;\n return ;\n } else if (isChildOfType(child, Protected)) {\n return ;\n } else if (isChildOfType(child, StackHeader)) {\n // Ignore Stack.Header, because it can be used to set header options for Stack\n // and we use this function to process children of Stack, as well.\n return null;\n } else {\n if (React.isValidElement(child)) {\n console.warn(`Warning: Unknown child element passed to Stack: ${child.type}`);\n } else {\n console.warn(`Warning: Unknown child element passed to Stack: ${child}`);\n }\n }\n return null;\n })\n .filter(Boolean),\n };\n}\n\nconst Stack = Object.assign(\n (props: ComponentProps) => {\n const { isStackAnimationDisabled } = useLinkPreviewContext();\n\n const screenOptionsWithCompositionAPIOptions = useMemo(() => {\n const stackHeader = Children.toArray(props.children).find((child) =>\n isChildOfType(child, StackHeader)\n );\n if (stackHeader) {\n const screenStackProps: StackScreenProps = { children: stackHeader };\n const currentOptions = props.screenOptions;\n if (currentOptions) {\n if (typeof currentOptions === 'function') {\n return (...args) => {\n const options = currentOptions(...args);\n return appendScreenStackPropsToOptions(options, screenStackProps);\n };\n }\n return appendScreenStackPropsToOptions(currentOptions, screenStackProps);\n } else {\n return appendScreenStackPropsToOptions({}, screenStackProps);\n }\n } else {\n return props.screenOptions;\n }\n }, [props.screenOptions, props.children]);\n\n const screenOptions = useMemo(() => {\n const condition = isStackAnimationDisabled ? () => true : shouldDisableAnimationBasedOnParams;\n\n return disableAnimationInScreenOptions(screenOptionsWithCompositionAPIOptions, condition);\n }, [screenOptionsWithCompositionAPIOptions, isStackAnimationDisabled]);\n\n const rnChildren = useMemo(\n () => mapProtectedScreen({ guard: true, children: props.children }).children,\n [props.children]\n );\n\n return (\n \n );\n },\n {\n Screen: StackScreen,\n Protected,\n Header: StackHeader,\n SearchBar: StackSearchBar,\n }\n);\n\ntype NativeStackScreenOptions = ComponentProps['screenOptions'];\n\nfunction disableAnimationInScreenOptions(\n options: NativeStackScreenOptions | undefined,\n condition: (route: RouteProp) => boolean\n): NativeStackScreenOptions {\n if (options && typeof options === 'function') {\n return (props) => {\n const oldOptions = options(props);\n if (condition(props.route)) {\n return {\n ...oldOptions,\n animation: 'none',\n };\n }\n return oldOptions ?? {};\n };\n }\n return (props) => {\n if (condition(props.route)) {\n return {\n ...(options ?? {}),\n animation: 'none',\n };\n }\n return options ?? {};\n };\n}\n\nfunction shouldDisableAnimationBasedOnParams(route: RouteProp): boolean {\n const expoParams = getInternalExpoRouterParams(route.params);\n return !!expoParams[INTERNAL_EXPO_ROUTER_NO_ANIMATION_PARAM_NAME];\n}\n\nexport default Stack;\n\nexport const StackRouter: typeof RNStackRouter = (options) => {\n const router = RNStackRouter(options);\n return {\n ...router,\n ...stackRouterOverride(router),\n };\n};\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.d.ts.map b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.d.ts.map
index 6876b8c578a399..1828325d94ab01 100644
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.d.ts.map
+++ b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"StackHeaderComponent.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAoBzE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACxD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;QAChB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,eAAe,CAAC,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;QAClE,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;KACzC,CAAC,CAAC;IACH;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,4BAA4B,CAAC,2BAA2B,CAAC,CAAC;QAC5E,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;KACzC,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,+BAK3D;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,4BAA4B,EACrC,KAAK,EAAE,gBAAgB,GACtB,4BAA4B,CAqD9B"}
\ No newline at end of file
+{"version":3,"file":"StackHeaderComponent.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAiBzE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACxD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;QAChB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,eAAe,CAAC,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;QAClE,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;KACzC,CAAC,CAAC;IACH;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,4BAA4B,CAAC,2BAA2B,CAAC,CAAC;QAC5E,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;KACzC,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,+BAK3D;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,4BAA4B,EACrC,KAAK,EAAE,gBAAgB,GACtB,4BAA4B,CAqD9B"}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js
index 7bbb3e54584b81..861e93faf7828e 100644
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js
+++ b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js
@@ -6,8 +6,8 @@ const react_1 = require("react");
const react_native_1 = require("react-native");
const StackHeaderBackButton_1 = require("./StackHeaderBackButton");
const StackHeaderLeftRight_1 = require("./StackHeaderLeftRight");
-const StackHeaderSearchBar_1 = require("./StackHeaderSearchBar");
const StackHeaderTitle_1 = require("./StackHeaderTitle");
+const StackSearchBar_1 = require("./StackSearchBar");
const children_1 = require("../../utils/children");
const Screen_1 = require("../../views/Screen");
/**
@@ -101,8 +101,8 @@ function appendStackHeaderPropsToOptions(options, props) {
else if ((0, children_1.isChildOfType)(child, StackHeaderBackButton_1.StackHeaderBackButton)) {
updatedOptions = (0, StackHeaderBackButton_1.appendStackHeaderBackButtonPropsToOptions)(updatedOptions, child.props);
}
- else if ((0, children_1.isChildOfType)(child, StackHeaderSearchBar_1.StackHeaderSearchBar)) {
- updatedOptions = (0, StackHeaderSearchBar_1.appendStackHeaderSearchBarPropsToOptions)(updatedOptions, child.props);
+ else if ((0, children_1.isChildOfType)(child, StackSearchBar_1.StackSearchBar)) {
+ updatedOptions = (0, StackSearchBar_1.appendStackSearchBarPropsToOptions)(updatedOptions, child.props);
}
else {
console.warn(`Warning: Unknown child element passed to Stack.Header: ${child.type.name ?? child.type}`);
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js.map b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js.map
index b8b667e5067dbb..b17e3abcc18e0b 100644
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js.map
+++ b/packages/expo-router/build/layouts/stack-utils/StackHeaderComponent.js.map
@@ -1 +1 @@
-{"version":3,"file":"StackHeaderComponent.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { NativeStackNavigationOptions } from '@react-navigation/native-stack';\nimport { Children, isValidElement, useMemo, type ReactNode } from 'react';\nimport { StyleSheet, type ColorValue, type StyleProp } from 'react-native';\nimport type { ScreenStackHeaderConfigProps } from 'react-native-screens';\n\nimport {\n appendStackHeaderBackButtonPropsToOptions,\n StackHeaderBackButton,\n} from './StackHeaderBackButton';\nimport {\n appendStackHeaderLeftPropsToOptions,\n appendStackHeaderRightPropsToOptions,\n StackHeaderLeft,\n StackHeaderRight,\n} from './StackHeaderLeftRight';\nimport {\n appendStackHeaderSearchBarPropsToOptions,\n StackHeaderSearchBar,\n} from './StackHeaderSearchBar';\nimport { appendStackHeaderTitlePropsToOptions, StackHeaderTitle } from './StackHeaderTitle';\nimport { isChildOfType } from '../../utils/children';\nimport { Screen } from '../../views/Screen';\n\nexport interface StackHeaderProps {\n /**\n * Child elements to compose the header. Can include Stack.Header.Title, Stack.Header.Left,\n * Stack.Header.Right, Stack.Header.BackButton, and Stack.Header.SearchBar components.\n */\n children?: ReactNode;\n /**\n * Whether to hide the header completely. When set to `true`, the header will not be rendered.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * When `true`, renders children as a custom header component, replacing the default header entirely.\n * Use this to implement fully custom header layouts.\n *\n * @default false\n */\n asChild?: boolean;\n /**\n * The blur effect to apply to the header background on iOS.\n * Common values include 'regular', 'prominent', 'systemMaterial', etc.\n *\n * @platform ios\n */\n blurEffect?: ScreenStackHeaderConfigProps['blurEffect'];\n /**\n * Style properties for the standard-sized header.\n * - `color`: Tint color for header elements (similar to tintColor in React Navigation)\n * - `backgroundColor`: Background color of the header\n * - `shadowColor`: Set to 'transparent' to hide the header shadow/border\n */\n style?: StyleProp<{\n color?: ColorValue; // tintColor from ReactNavigation\n backgroundColor?: ScreenStackHeaderConfigProps['backgroundColor'];\n shadowColor?: undefined | 'transparent';\n }>;\n /**\n * Style properties for the large title header (iOS).\n * - `backgroundColor`: Background color of the large title header\n * - `shadowColor`: Set to 'transparent' to hide the large title shadow/border\n *\n * @platform ios\n */\n largeStyle?: StyleProp<{\n backgroundColor?: ScreenStackHeaderConfigProps['largeTitleBackgroundColor'];\n shadowColor?: undefined | 'transparent';\n }>;\n}\n\n/**\n * The component used to configure the whole stack header.\n *\n * When used inside a screen, it allows you to customize the header dynamically by composing\n * header subcomponents (title, left/right areas, back button, search bar, etc.).\n *\n * ```tsx\n * import { Stack } from 'expo-router';\n *\n * export default function Page() {\n * return (\n * <>\n * \n * Page title\n * \n * alert('Left pressed')} />\n * \n * \n * alert('Right pressed')} />\n * \n * \n * \n * >\n * );\n * }\n * ```\n *\n * When used inside a layout, it needs to be wrapped in `Stack.Screen` to take effect.\n *\n * Example (inside a layout):\n * ```tsx\n * import { Stack } from 'expo-router';\n *\n * export default function Layout() {\n * return (\n * \n * \n * \n * Layout title\n * \n * alert('Right pressed')} />\n * \n * \n * \n * \n * );\n * }\n * ```\n */\nexport function StackHeaderComponent(props: StackHeaderProps) {\n // This component will only render when used inside a page\n // but only if it is not wrapped in Stack.Screen\n const updatedOptions = useMemo(() => appendStackHeaderPropsToOptions({}, props), [props]);\n return ;\n}\n\nexport function appendStackHeaderPropsToOptions(\n options: NativeStackNavigationOptions,\n props: StackHeaderProps\n): NativeStackNavigationOptions {\n const flattenedStyle = StyleSheet.flatten(props.style);\n const flattenedLargeStyle = StyleSheet.flatten(props.largeStyle);\n\n if (props.hidden) {\n return { ...options, headerShown: false };\n }\n\n if (props.asChild) {\n return { ...options, header: () => props.children };\n }\n\n let updatedOptions: NativeStackNavigationOptions = {\n ...options,\n headerShown: !props.hidden,\n headerBlurEffect: props.blurEffect,\n headerStyle: {\n backgroundColor: flattenedStyle?.backgroundColor as string | undefined,\n },\n headerLargeStyle: {\n backgroundColor: flattenedLargeStyle?.backgroundColor as string | undefined,\n },\n headerShadowVisible: flattenedStyle?.shadowColor !== 'transparent',\n headerLargeTitleShadowVisible: flattenedLargeStyle?.shadowColor !== 'transparent',\n };\n\n function appendChildOptions(child: React.ReactElement, options: NativeStackNavigationOptions) {\n let updatedOptions = options;\n if (isChildOfType(child, StackHeaderTitle)) {\n updatedOptions = appendStackHeaderTitlePropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderLeft)) {\n updatedOptions = appendStackHeaderLeftPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderRight)) {\n updatedOptions = appendStackHeaderRightPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderBackButton)) {\n updatedOptions = appendStackHeaderBackButtonPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderSearchBar)) {\n updatedOptions = appendStackHeaderSearchBarPropsToOptions(updatedOptions, child.props);\n } else {\n console.warn(\n `Warning: Unknown child element passed to Stack.Header: ${(child.type as { name: string }).name ?? child.type}`\n );\n }\n return updatedOptions;\n }\n\n Children.forEach(props.children, (child) => {\n if (isValidElement(child)) {\n updatedOptions = appendChildOptions(child, updatedOptions);\n }\n });\n\n return updatedOptions;\n}\n"]}
\ No newline at end of file
+{"version":3,"file":"StackHeaderComponent.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { NativeStackNavigationOptions } from '@react-navigation/native-stack';\nimport { Children, isValidElement, useMemo, type ReactNode } from 'react';\nimport { StyleSheet, type ColorValue, type StyleProp } from 'react-native';\nimport type { ScreenStackHeaderConfigProps } from 'react-native-screens';\n\nimport {\n appendStackHeaderBackButtonPropsToOptions,\n StackHeaderBackButton,\n} from './StackHeaderBackButton';\nimport {\n appendStackHeaderLeftPropsToOptions,\n appendStackHeaderRightPropsToOptions,\n StackHeaderLeft,\n StackHeaderRight,\n} from './StackHeaderLeftRight';\nimport { appendStackHeaderTitlePropsToOptions, StackHeaderTitle } from './StackHeaderTitle';\nimport { appendStackSearchBarPropsToOptions, StackSearchBar } from './StackSearchBar';\nimport { isChildOfType } from '../../utils/children';\nimport { Screen } from '../../views/Screen';\n\nexport interface StackHeaderProps {\n /**\n * Child elements to compose the header. Can include Stack.Header.Title, Stack.Header.Left,\n * Stack.Header.Right, Stack.Header.BackButton, and Stack.Header.SearchBar components.\n */\n children?: ReactNode;\n /**\n * Whether to hide the header completely. When set to `true`, the header will not be rendered.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * When `true`, renders children as a custom header component, replacing the default header entirely.\n * Use this to implement fully custom header layouts.\n *\n * @default false\n */\n asChild?: boolean;\n /**\n * The blur effect to apply to the header background on iOS.\n * Common values include 'regular', 'prominent', 'systemMaterial', etc.\n *\n * @platform ios\n */\n blurEffect?: ScreenStackHeaderConfigProps['blurEffect'];\n /**\n * Style properties for the standard-sized header.\n * - `color`: Tint color for header elements (similar to tintColor in React Navigation)\n * - `backgroundColor`: Background color of the header\n * - `shadowColor`: Set to 'transparent' to hide the header shadow/border\n */\n style?: StyleProp<{\n color?: ColorValue; // tintColor from ReactNavigation\n backgroundColor?: ScreenStackHeaderConfigProps['backgroundColor'];\n shadowColor?: undefined | 'transparent';\n }>;\n /**\n * Style properties for the large title header (iOS).\n * - `backgroundColor`: Background color of the large title header\n * - `shadowColor`: Set to 'transparent' to hide the large title shadow/border\n *\n * @platform ios\n */\n largeStyle?: StyleProp<{\n backgroundColor?: ScreenStackHeaderConfigProps['largeTitleBackgroundColor'];\n shadowColor?: undefined | 'transparent';\n }>;\n}\n\n/**\n * The component used to configure the whole stack header.\n *\n * When used inside a screen, it allows you to customize the header dynamically by composing\n * header subcomponents (title, left/right areas, back button, search bar, etc.).\n *\n * ```tsx\n * import { Stack } from 'expo-router';\n *\n * export default function Page() {\n * return (\n * <>\n * \n * Page title\n * \n * alert('Left pressed')} />\n * \n * \n * alert('Right pressed')} />\n * \n * \n * \n * >\n * );\n * }\n * ```\n *\n * When used inside a layout, it needs to be wrapped in `Stack.Screen` to take effect.\n *\n * Example (inside a layout):\n * ```tsx\n * import { Stack } from 'expo-router';\n *\n * export default function Layout() {\n * return (\n * \n * \n * \n * Layout title\n * \n * alert('Right pressed')} />\n * \n * \n * \n * \n * );\n * }\n * ```\n */\nexport function StackHeaderComponent(props: StackHeaderProps) {\n // This component will only render when used inside a page\n // but only if it is not wrapped in Stack.Screen\n const updatedOptions = useMemo(() => appendStackHeaderPropsToOptions({}, props), [props]);\n return ;\n}\n\nexport function appendStackHeaderPropsToOptions(\n options: NativeStackNavigationOptions,\n props: StackHeaderProps\n): NativeStackNavigationOptions {\n const flattenedStyle = StyleSheet.flatten(props.style);\n const flattenedLargeStyle = StyleSheet.flatten(props.largeStyle);\n\n if (props.hidden) {\n return { ...options, headerShown: false };\n }\n\n if (props.asChild) {\n return { ...options, header: () => props.children };\n }\n\n let updatedOptions: NativeStackNavigationOptions = {\n ...options,\n headerShown: !props.hidden,\n headerBlurEffect: props.blurEffect,\n headerStyle: {\n backgroundColor: flattenedStyle?.backgroundColor as string | undefined,\n },\n headerLargeStyle: {\n backgroundColor: flattenedLargeStyle?.backgroundColor as string | undefined,\n },\n headerShadowVisible: flattenedStyle?.shadowColor !== 'transparent',\n headerLargeTitleShadowVisible: flattenedLargeStyle?.shadowColor !== 'transparent',\n };\n\n function appendChildOptions(child: React.ReactElement, options: NativeStackNavigationOptions) {\n let updatedOptions = options;\n if (isChildOfType(child, StackHeaderTitle)) {\n updatedOptions = appendStackHeaderTitlePropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderLeft)) {\n updatedOptions = appendStackHeaderLeftPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderRight)) {\n updatedOptions = appendStackHeaderRightPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackHeaderBackButton)) {\n updatedOptions = appendStackHeaderBackButtonPropsToOptions(updatedOptions, child.props);\n } else if (isChildOfType(child, StackSearchBar)) {\n updatedOptions = appendStackSearchBarPropsToOptions(updatedOptions, child.props);\n } else {\n console.warn(\n `Warning: Unknown child element passed to Stack.Header: ${(child.type as { name: string }).name ?? child.type}`\n );\n }\n return updatedOptions;\n }\n\n Children.forEach(props.children, (child) => {\n if (isValidElement(child)) {\n updatedOptions = appendChildOptions(child, updatedOptions);\n }\n });\n\n return updatedOptions;\n}\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts b/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts
deleted file mode 100644
index ccfce34b615aee..00000000000000
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
-import type { SearchBarProps } from 'react-native-screens';
-export interface StackHeaderSearchBarProps extends SearchBarProps {
-}
-export declare function StackHeaderSearchBar(props: StackHeaderSearchBarProps): null;
-export declare function appendStackHeaderSearchBarPropsToOptions(options: NativeStackNavigationOptions, props: StackHeaderSearchBarProps): NativeStackNavigationOptions;
-//# sourceMappingURL=StackHeaderSearchBar.d.ts.map
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts.map b/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts.map
deleted file mode 100644
index 51ac0a34086575..00000000000000
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"StackHeaderSearchBar.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderSearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,yBAA0B,SAAQ,cAAc;CAAG;AAEpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,QAEpE;AAED,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,4BAA4B,EACrC,KAAK,EAAE,yBAAyB,GAC/B,4BAA4B,CAO9B"}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js b/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js
deleted file mode 100644
index 712acea1f3e35c..00000000000000
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StackHeaderSearchBar = StackHeaderSearchBar;
-exports.appendStackHeaderSearchBarPropsToOptions = appendStackHeaderSearchBarPropsToOptions;
-function StackHeaderSearchBar(props) {
- return null;
-}
-function appendStackHeaderSearchBarPropsToOptions(options, props) {
- return {
- ...options,
- headerSearchBarOptions: {
- ...props,
- },
- };
-}
-//# sourceMappingURL=StackHeaderSearchBar.js.map
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js.map b/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js.map
deleted file mode 100644
index 48968dda3bd2ef..00000000000000
--- a/packages/expo-router/build/layouts/stack-utils/StackHeaderSearchBar.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"StackHeaderSearchBar.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackHeaderSearchBar.tsx"],"names":[],"mappings":";;AAKA,oDAEC;AAED,4FAUC;AAdD,SAAgB,oBAAoB,CAAC,KAAgC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,wCAAwC,CACtD,OAAqC,EACrC,KAAgC;IAEhC,OAAO;QACL,GAAG,OAAO;QACV,sBAAsB,EAAE;YACtB,GAAG,KAAK;SACT;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { NativeStackNavigationOptions } from '@react-navigation/native-stack';\nimport type { SearchBarProps } from 'react-native-screens';\n\nexport interface StackHeaderSearchBarProps extends SearchBarProps {}\n\nexport function StackHeaderSearchBar(props: StackHeaderSearchBarProps) {\n return null;\n}\n\nexport function appendStackHeaderSearchBarPropsToOptions(\n options: NativeStackNavigationOptions,\n props: StackHeaderSearchBarProps\n): NativeStackNavigationOptions {\n return {\n ...options,\n headerSearchBarOptions: {\n ...props,\n },\n };\n}\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts
new file mode 100644
index 00000000000000..145db2a954c7b7
--- /dev/null
+++ b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts
@@ -0,0 +1,7 @@
+import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
+import type { SearchBarProps } from 'react-native-screens';
+export interface StackSearchBarProps extends SearchBarProps {
+}
+export declare function StackSearchBar(props: StackSearchBarProps): import("react").JSX.Element;
+export declare function appendStackSearchBarPropsToOptions(options: NativeStackNavigationOptions, props: StackSearchBarProps): NativeStackNavigationOptions;
+//# sourceMappingURL=StackSearchBar.d.ts.map
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts.map b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts.map
new file mode 100644
index 00000000000000..e3713408f0b55b
--- /dev/null
+++ b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"StackSearchBar.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackSearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3D,MAAM,WAAW,mBAAoB,SAAQ,cAAc;CAAG;AAE9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAGxD;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,4BAA4B,EACrC,KAAK,EAAE,mBAAmB,GACzB,4BAA4B,CAO9B"}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js
new file mode 100644
index 00000000000000..6322baa0369535
--- /dev/null
+++ b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StackSearchBar = StackSearchBar;
+exports.appendStackSearchBarPropsToOptions = appendStackSearchBarPropsToOptions;
+const react_1 = require("react");
+const Screen_1 = require("../../views/Screen");
+function StackSearchBar(props) {
+ const updatedOptions = (0, react_1.useMemo)(() => appendStackSearchBarPropsToOptions({}, props), [props]);
+ return ;
+}
+function appendStackSearchBarPropsToOptions(options, props) {
+ return {
+ ...options,
+ headerSearchBarOptions: {
+ ...props,
+ },
+ };
+}
+//# sourceMappingURL=StackSearchBar.js.map
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js.map b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js.map
new file mode 100644
index 00000000000000..2d67bde441c1d3
--- /dev/null
+++ b/packages/expo-router/build/layouts/stack-utils/StackSearchBar.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"StackSearchBar.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/StackSearchBar.tsx"],"names":[],"mappings":";;AAWA,wCAGC;AAED,gFAUC;AAzBD,iCAAgC;AAGhC,+CAA4C;AAO5C,SAAgB,cAAc,CAAC,KAA0B;IACvD,MAAM,cAAc,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,kCAAkC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,EAAG,CAAC;AAC7C,CAAC;AAED,SAAgB,kCAAkC,CAChD,OAAqC,EACrC,KAA0B;IAE1B,OAAO;QACL,GAAG,OAAO;QACV,sBAAsB,EAAE;YACtB,GAAG,KAAK;SACT;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { NativeStackNavigationOptions } from '@react-navigation/native-stack';\nimport { useMemo } from 'react';\nimport type { SearchBarProps } from 'react-native-screens';\n\nimport { Screen } from '../../views/Screen';\n\n// TODO: Discuss adding SearchBarPreferredSlot to react-native-screens header items\n// and exposing it as Stack.Header.SearchBarPreferredSlot\n// https://linear.app/expo/issue/ENG-18555\nexport interface StackSearchBarProps extends SearchBarProps {}\n\nexport function StackSearchBar(props: StackSearchBarProps) {\n const updatedOptions = useMemo(() => appendStackSearchBarPropsToOptions({}, props), [props]);\n return ;\n}\n\nexport function appendStackSearchBarPropsToOptions(\n options: NativeStackNavigationOptions,\n props: StackSearchBarProps\n): NativeStackNavigationOptions {\n return {\n ...options,\n headerSearchBarOptions: {\n ...props,\n },\n };\n}\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/index.d.ts b/packages/expo-router/build/layouts/stack-utils/index.d.ts
index 597977d6e192bf..2ca1ca18830fd4 100644
--- a/packages/expo-router/build/layouts/stack-utils/index.d.ts
+++ b/packages/expo-router/build/layouts/stack-utils/index.d.ts
@@ -3,10 +3,10 @@ import { StackHeaderButton, type StackHeaderButtonProps } from './StackHeaderBut
import { StackHeaderComponent, type StackHeaderProps } from './StackHeaderComponent';
import { StackHeaderLeft, type StackHeaderLeftProps, StackHeaderRight, type StackHeaderRightProps } from './StackHeaderLeftRight';
import { StackHeaderMenu, StackHeaderMenuAction, type StackHeaderMenuActionProps, type StackHeaderMenuProps } from './StackHeaderMenu';
-import { StackHeaderSearchBar, type StackHeaderSearchBarProps } from './StackHeaderSearchBar';
import { StackHeaderSpacer, type StackHeaderSpacerProps } from './StackHeaderSpacer';
import { StackHeaderTitle, type StackHeaderTitleProps } from './StackHeaderTitle';
import { StackHeaderView, type StackHeaderViewProps } from './StackHeaderView';
+import { StackSearchBar, type StackSearchBarProps } from './StackSearchBar';
import { StackHeaderBadge, StackHeaderIcon, StackHeaderLabel, type StackHeaderBadgeProps, type StackHeaderIconProps, type StackHeaderLabelProps } from './common-primitives';
import type { StackHeaderItemSharedProps } from './shared';
export declare const StackHeader: typeof StackHeaderComponent & {
@@ -14,7 +14,6 @@ export declare const StackHeader: typeof StackHeaderComponent & {
Right: import("react").FC;
BackButton: typeof StackHeaderBackButton;
Title: typeof StackHeaderTitle;
- SearchBar: typeof StackHeaderSearchBar;
Button: import("react").FC;
Badge: import("react").FC;
Label: import("react").FC;
@@ -24,6 +23,6 @@ export declare const StackHeader: typeof StackHeaderComponent & {
View: import("react").FC;
Spacer: import("react").FC;
};
-export { StackHeaderBackButton, type StackHeaderBackButtonProps, type StackHeaderProps, StackHeaderLeft, type StackHeaderLeftProps, StackHeaderRight, type StackHeaderRightProps, StackHeaderSearchBar, type StackHeaderSearchBarProps, StackHeaderTitle, type StackHeaderTitleProps, StackHeaderButton, type StackHeaderButtonProps, StackHeaderBadge, type StackHeaderBadgeProps, StackHeaderLabel, type StackHeaderLabelProps, StackHeaderIcon, type StackHeaderIconProps, StackHeaderMenu, type StackHeaderMenuProps, StackHeaderMenuAction, type StackHeaderMenuActionProps, StackHeaderView, type StackHeaderViewProps, StackHeaderSpacer, type StackHeaderSpacerProps, type StackHeaderItemSharedProps, };
+export { StackHeaderBackButton, type StackHeaderBackButtonProps, type StackHeaderProps, StackHeaderLeft, type StackHeaderLeftProps, StackHeaderRight, type StackHeaderRightProps, StackSearchBar, type StackSearchBarProps, StackHeaderTitle, type StackHeaderTitleProps, StackHeaderButton, type StackHeaderButtonProps, StackHeaderBadge, type StackHeaderBadgeProps, StackHeaderLabel, type StackHeaderLabelProps, StackHeaderIcon, type StackHeaderIconProps, StackHeaderMenu, type StackHeaderMenuProps, StackHeaderMenuAction, type StackHeaderMenuActionProps, StackHeaderView, type StackHeaderViewProps, StackHeaderSpacer, type StackHeaderSpacerProps, type StackHeaderItemSharedProps, };
export { StackScreen, appendScreenStackPropsToOptions, type StackScreenProps } from './StackScreen';
//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/index.d.ts.map b/packages/expo-router/build/layouts/stack-utils/index.d.ts.map
index c425f45655a3f6..88c199cf1f9b7c 100644
--- a/packages/expo-router/build/layouts/stack-utils/index.d.ts.map
+++ b/packages/expo-router/build/layouts/stack-utils/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;CActB,CAAC;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,eAAe,EACf,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,eAAe,EACf,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/stack-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAatB,CAAC;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,cAAc,EACd,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,eAAe,EACf,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,eAAe,EACf,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
\ No newline at end of file
diff --git a/packages/expo-router/build/layouts/stack-utils/index.js b/packages/expo-router/build/layouts/stack-utils/index.js
index 7549e762e373d5..4c04e0b4dac5d1 100644
--- a/packages/expo-router/build/layouts/stack-utils/index.js
+++ b/packages/expo-router/build/layouts/stack-utils/index.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.appendScreenStackPropsToOptions = exports.StackScreen = exports.StackHeaderSpacer = exports.StackHeaderView = exports.StackHeaderMenuAction = exports.StackHeaderMenu = exports.StackHeaderIcon = exports.StackHeaderLabel = exports.StackHeaderBadge = exports.StackHeaderButton = exports.StackHeaderTitle = exports.StackHeaderSearchBar = exports.StackHeaderRight = exports.StackHeaderLeft = exports.StackHeaderBackButton = exports.StackHeader = void 0;
+exports.appendScreenStackPropsToOptions = exports.StackScreen = exports.StackHeaderSpacer = exports.StackHeaderView = exports.StackHeaderMenuAction = exports.StackHeaderMenu = exports.StackHeaderIcon = exports.StackHeaderLabel = exports.StackHeaderBadge = exports.StackHeaderButton = exports.StackHeaderTitle = exports.StackSearchBar = exports.StackHeaderRight = exports.StackHeaderLeft = exports.StackHeaderBackButton = exports.StackHeader = void 0;
const StackHeaderBackButton_1 = require("./StackHeaderBackButton");
Object.defineProperty(exports, "StackHeaderBackButton", { enumerable: true, get: function () { return StackHeaderBackButton_1.StackHeaderBackButton; } });
const StackHeaderButton_1 = require("./StackHeaderButton");
@@ -12,14 +12,14 @@ Object.defineProperty(exports, "StackHeaderRight", { enumerable: true, get: func
const StackHeaderMenu_1 = require("./StackHeaderMenu");
Object.defineProperty(exports, "StackHeaderMenu", { enumerable: true, get: function () { return StackHeaderMenu_1.StackHeaderMenu; } });
Object.defineProperty(exports, "StackHeaderMenuAction", { enumerable: true, get: function () { return StackHeaderMenu_1.StackHeaderMenuAction; } });
-const StackHeaderSearchBar_1 = require("./StackHeaderSearchBar");
-Object.defineProperty(exports, "StackHeaderSearchBar", { enumerable: true, get: function () { return StackHeaderSearchBar_1.StackHeaderSearchBar; } });
const StackHeaderSpacer_1 = require("./StackHeaderSpacer");
Object.defineProperty(exports, "StackHeaderSpacer", { enumerable: true, get: function () { return StackHeaderSpacer_1.StackHeaderSpacer; } });
const StackHeaderTitle_1 = require("./StackHeaderTitle");
Object.defineProperty(exports, "StackHeaderTitle", { enumerable: true, get: function () { return StackHeaderTitle_1.StackHeaderTitle; } });
const StackHeaderView_1 = require("./StackHeaderView");
Object.defineProperty(exports, "StackHeaderView", { enumerable: true, get: function () { return StackHeaderView_1.StackHeaderView; } });
+const StackSearchBar_1 = require("./StackSearchBar");
+Object.defineProperty(exports, "StackSearchBar", { enumerable: true, get: function () { return StackSearchBar_1.StackSearchBar; } });
const common_primitives_1 = require("./common-primitives");
Object.defineProperty(exports, "StackHeaderBadge", { enumerable: true, get: function () { return common_primitives_1.StackHeaderBadge; } });
Object.defineProperty(exports, "StackHeaderIcon", { enumerable: true, get: function () { return common_primitives_1.StackHeaderIcon; } });
@@ -29,7 +29,6 @@ exports.StackHeader = Object.assign(StackHeaderComponent_1.StackHeaderComponent,
Right: StackHeaderLeftRight_1.StackHeaderRight,
BackButton: StackHeaderBackButton_1.StackHeaderBackButton,
Title: StackHeaderTitle_1.StackHeaderTitle,
- SearchBar: StackHeaderSearchBar_1.StackHeaderSearchBar,
Button: StackHeaderButton_1.StackHeaderButton,
Badge: common_primitives_1.StackHeaderBadge,
Label: common_primitives_1.StackHeaderLabel,
diff --git a/packages/expo-router/build/layouts/stack-utils/index.js.map b/packages/expo-router/build/layouts/stack-utils/index.js.map
index e664ba22ae3a97..4d606e85273a9b 100644
--- a/packages/expo-router/build/layouts/stack-utils/index.js.map
+++ b/packages/expo-router/build/layouts/stack-utils/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/index.tsx"],"names":[],"mappings":";;;AAAA,mEAAiG;AA8C/F,sGA9CO,6CAAqB,OA8CP;AA7CvB,2DAAqF;AAwDnF,kGAxDO,qCAAiB,OAwDP;AAvDnB,iEAAqF;AACrF,iEAKgC;AAyC9B,gGA7CA,sCAAe,OA6CA;AAEf,iGA7CA,uCAAgB,OA6CA;AA1ClB,uDAK2B;AAmDzB,gGAvDA,iCAAe,OAuDA;AAEf,sGAxDA,uCAAqB,OAwDA;AApDvB,iEAA8F;AAsC5F,qGAtCO,2CAAoB,OAsCP;AArCtB,2DAAqF;AAuDnF,kGAvDO,qCAAiB,OAuDP;AAtDnB,yDAAkF;AAsChF,iGAtCO,mCAAgB,OAsCP;AArClB,uDAA+E;AAmD7E,gGAnDO,iCAAe,OAmDP;AAlDjB,2DAO6B;AAiC3B,iGAvCA,oCAAgB,OAuCA;AAIhB,gGA1CA,mCAAe,OA0CA;AAFf,iGAvCA,oCAAgB,OAuCA;AAhCL,QAAA,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,2CAAoB,EAAE;IAC7D,IAAI,EAAE,sCAAe;IACrB,KAAK,EAAE,uCAAgB;IACvB,UAAU,EAAE,6CAAqB;IACjC,KAAK,EAAE,mCAAgB;IACvB,SAAS,EAAE,2CAAoB;IAC/B,MAAM,EAAE,qCAAiB;IACzB,KAAK,EAAE,oCAAgB;IACvB,KAAK,EAAE,oCAAgB;IACvB,IAAI,EAAE,mCAAe;IACrB,IAAI,EAAE,iCAAe;IACrB,UAAU,EAAE,uCAAqB;IACjC,IAAI,EAAE,iCAAe;IACrB,MAAM,EAAE,qCAAiB;CAC1B,CAAC,CAAC;AAiCH,6CAAoG;AAA3F,0GAAA,WAAW,OAAA;AAAE,8HAAA,+BAA+B,OAAA","sourcesContent":["import { StackHeaderBackButton, type StackHeaderBackButtonProps } from './StackHeaderBackButton';\nimport { StackHeaderButton, type StackHeaderButtonProps } from './StackHeaderButton';\nimport { StackHeaderComponent, type StackHeaderProps } from './StackHeaderComponent';\nimport {\n StackHeaderLeft,\n type StackHeaderLeftProps,\n StackHeaderRight,\n type StackHeaderRightProps,\n} from './StackHeaderLeftRight';\nimport {\n StackHeaderMenu,\n StackHeaderMenuAction,\n type StackHeaderMenuActionProps,\n type StackHeaderMenuProps,\n} from './StackHeaderMenu';\nimport { StackHeaderSearchBar, type StackHeaderSearchBarProps } from './StackHeaderSearchBar';\nimport { StackHeaderSpacer, type StackHeaderSpacerProps } from './StackHeaderSpacer';\nimport { StackHeaderTitle, type StackHeaderTitleProps } from './StackHeaderTitle';\nimport { StackHeaderView, type StackHeaderViewProps } from './StackHeaderView';\nimport {\n StackHeaderBadge,\n StackHeaderIcon,\n StackHeaderLabel,\n type StackHeaderBadgeProps,\n type StackHeaderIconProps,\n type StackHeaderLabelProps,\n} from './common-primitives';\nimport type { StackHeaderItemSharedProps } from './shared';\n\nexport const StackHeader = Object.assign(StackHeaderComponent, {\n Left: StackHeaderLeft,\n Right: StackHeaderRight,\n BackButton: StackHeaderBackButton,\n Title: StackHeaderTitle,\n SearchBar: StackHeaderSearchBar,\n Button: StackHeaderButton,\n Badge: StackHeaderBadge,\n Label: StackHeaderLabel,\n Icon: StackHeaderIcon,\n Menu: StackHeaderMenu,\n MenuAction: StackHeaderMenuAction,\n View: StackHeaderView,\n Spacer: StackHeaderSpacer,\n});\n\nexport {\n StackHeaderBackButton,\n type StackHeaderBackButtonProps,\n type StackHeaderProps,\n StackHeaderLeft,\n type StackHeaderLeftProps,\n StackHeaderRight,\n type StackHeaderRightProps,\n StackHeaderSearchBar,\n type StackHeaderSearchBarProps,\n StackHeaderTitle,\n type StackHeaderTitleProps,\n StackHeaderButton,\n type StackHeaderButtonProps,\n StackHeaderBadge,\n type StackHeaderBadgeProps,\n StackHeaderLabel,\n type StackHeaderLabelProps,\n StackHeaderIcon,\n type StackHeaderIconProps,\n StackHeaderMenu,\n type StackHeaderMenuProps,\n StackHeaderMenuAction,\n type StackHeaderMenuActionProps,\n StackHeaderView,\n type StackHeaderViewProps,\n StackHeaderSpacer,\n type StackHeaderSpacerProps,\n type StackHeaderItemSharedProps,\n};\n\nexport { StackScreen, appendScreenStackPropsToOptions, type StackScreenProps } from './StackScreen';\n"]}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layouts/stack-utils/index.tsx"],"names":[],"mappings":";;;AAAA,mEAAiG;AA6C/F,sGA7CO,6CAAqB,OA6CP;AA5CvB,2DAAqF;AAuDnF,kGAvDO,qCAAiB,OAuDP;AAtDnB,iEAAqF;AACrF,iEAKgC;AAwC9B,gGA5CA,sCAAe,OA4CA;AAEf,iGA5CA,uCAAgB,OA4CA;AAzClB,uDAK2B;AAkDzB,gGAtDA,iCAAe,OAsDA;AAEf,sGAvDA,uCAAqB,OAuDA;AAnDvB,2DAAqF;AAuDnF,kGAvDO,qCAAiB,OAuDP;AAtDnB,yDAAkF;AAsChF,iGAtCO,mCAAgB,OAsCP;AArClB,uDAA+E;AAmD7E,gGAnDO,iCAAe,OAmDP;AAlDjB,qDAA4E;AAkC1E,+FAlCO,+BAAc,OAkCP;AAjChB,2DAO6B;AAgC3B,iGAtCA,oCAAgB,OAsCA;AAIhB,gGAzCA,mCAAe,OAyCA;AAFf,iGAtCA,oCAAgB,OAsCA;AA/BL,QAAA,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,2CAAoB,EAAE;IAC7D,IAAI,EAAE,sCAAe;IACrB,KAAK,EAAE,uCAAgB;IACvB,UAAU,EAAE,6CAAqB;IACjC,KAAK,EAAE,mCAAgB;IACvB,MAAM,EAAE,qCAAiB;IACzB,KAAK,EAAE,oCAAgB;IACvB,KAAK,EAAE,oCAAgB;IACvB,IAAI,EAAE,mCAAe;IACrB,IAAI,EAAE,iCAAe;IACrB,UAAU,EAAE,uCAAqB;IACjC,IAAI,EAAE,iCAAe;IACrB,MAAM,EAAE,qCAAiB;CAC1B,CAAC,CAAC;AAiCH,6CAAoG;AAA3F,0GAAA,WAAW,OAAA;AAAE,8HAAA,+BAA+B,OAAA","sourcesContent":["import { StackHeaderBackButton, type StackHeaderBackButtonProps } from './StackHeaderBackButton';\nimport { StackHeaderButton, type StackHeaderButtonProps } from './StackHeaderButton';\nimport { StackHeaderComponent, type StackHeaderProps } from './StackHeaderComponent';\nimport {\n StackHeaderLeft,\n type StackHeaderLeftProps,\n StackHeaderRight,\n type StackHeaderRightProps,\n} from './StackHeaderLeftRight';\nimport {\n StackHeaderMenu,\n StackHeaderMenuAction,\n type StackHeaderMenuActionProps,\n type StackHeaderMenuProps,\n} from './StackHeaderMenu';\nimport { StackHeaderSpacer, type StackHeaderSpacerProps } from './StackHeaderSpacer';\nimport { StackHeaderTitle, type StackHeaderTitleProps } from './StackHeaderTitle';\nimport { StackHeaderView, type StackHeaderViewProps } from './StackHeaderView';\nimport { StackSearchBar, type StackSearchBarProps } from './StackSearchBar';\nimport {\n StackHeaderBadge,\n StackHeaderIcon,\n StackHeaderLabel,\n type StackHeaderBadgeProps,\n type StackHeaderIconProps,\n type StackHeaderLabelProps,\n} from './common-primitives';\nimport type { StackHeaderItemSharedProps } from './shared';\n\nexport const StackHeader = Object.assign(StackHeaderComponent, {\n Left: StackHeaderLeft,\n Right: StackHeaderRight,\n BackButton: StackHeaderBackButton,\n Title: StackHeaderTitle,\n Button: StackHeaderButton,\n Badge: StackHeaderBadge,\n Label: StackHeaderLabel,\n Icon: StackHeaderIcon,\n Menu: StackHeaderMenu,\n MenuAction: StackHeaderMenuAction,\n View: StackHeaderView,\n Spacer: StackHeaderSpacer,\n});\n\nexport {\n StackHeaderBackButton,\n type StackHeaderBackButtonProps,\n type StackHeaderProps,\n StackHeaderLeft,\n type StackHeaderLeftProps,\n StackHeaderRight,\n type StackHeaderRightProps,\n StackSearchBar,\n type StackSearchBarProps,\n StackHeaderTitle,\n type StackHeaderTitleProps,\n StackHeaderButton,\n type StackHeaderButtonProps,\n StackHeaderBadge,\n type StackHeaderBadgeProps,\n StackHeaderLabel,\n type StackHeaderLabelProps,\n StackHeaderIcon,\n type StackHeaderIconProps,\n StackHeaderMenu,\n type StackHeaderMenuProps,\n StackHeaderMenuAction,\n type StackHeaderMenuActionProps,\n StackHeaderView,\n type StackHeaderViewProps,\n StackHeaderSpacer,\n type StackHeaderSpacerProps,\n type StackHeaderItemSharedProps,\n};\n\nexport { StackScreen, appendScreenStackPropsToOptions, type StackScreenProps } from './StackScreen';\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/elements.d.ts b/packages/expo-router/build/toolbar/elements.d.ts
index 69f8210630c398..0c28d2baa5d981 100644
--- a/packages/expo-router/build/toolbar/elements.d.ts
+++ b/packages/expo-router/build/toolbar/elements.d.ts
@@ -296,6 +296,55 @@ export type ToolbarSpacerProps = {
* @platform ios
*/
export declare const ToolbarSpacer: (props: ToolbarSpacerProps) => import("react").JSX.Element;
+export interface ToolbarSearchBarPreferredSlotProps {
+ /**
+ * Whether to hide the shared background when `sharesBackground` is enabled.
+ *
+ * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.
+ *
+ * @platform iOS 26+
+ */
+ hidesSharedBackground?: boolean;
+ /**
+ * Whether the search bar placed in the toolbar should be hidden.
+ *
+ * @default false
+ */
+ hidden?: boolean;
+ /**
+ * Whether the search bar shares the background with adjacent toolbar items.
+ *
+ * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.
+ *
+ * @platform iOS 26+
+ * @default false
+ */
+ sharesBackground?: boolean;
+}
+/**
+ * Declares the position of a search bar within the toolbar.
+ * It should only be used as a child of `Toolbar`.
+ *
+ * > **Note**: On iOS 26+, this component specifies where in the toolbar the search bar
+ * > (configured via `Stack.SearchBar`) should appear. On iOS 18 and earlier, the search bar
+ * > will be shown in the header instead.
+ *
+ * > **Important**: You must use `Stack.SearchBar` to configure and display the actual
+ * > search bar. This component only declares its position in the toolbar.
+ *
+ * @example
+ * ```tsx
+ *
+ *
+ *
+ *
+ *
+ *
+ * ```
+ *
+ * @platform ios 26+
+ */
+export declare const ToolbarSearchBarPreferredSlot: ({ hidesSharedBackground, hidden, sharesBackground, }: ToolbarSearchBarPreferredSlotProps) => import("react").JSX.Element | null;
/**
* Props for the ToolbarView component.
*
diff --git a/packages/expo-router/build/toolbar/elements.d.ts.map b/packages/expo-router/build/toolbar/elements.d.ts.map
index 9da37e62061e8e..d945552bf83708 100644
--- a/packages/expo-router/build/toolbar/elements.d.ts.map
+++ b/packages/expo-router/build/toolbar/elements.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/toolbar/elements.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/toolbar/elements.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/elements.js b/packages/expo-router/build/toolbar/elements.js
index 44ea5c55f466be..1697692ec29f6d 100644
--- a/packages/expo-router/build/toolbar/elements.js
+++ b/packages/expo-router/build/toolbar/elements.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.ToolbarHost = exports.ToolbarView = exports.ToolbarSpacer = exports.ToolbarButton = exports.ToolbarMenuAction = exports.ToolbarMenu = void 0;
+exports.ToolbarHost = exports.ToolbarView = exports.ToolbarSearchBarPreferredSlot = exports.ToolbarSpacer = exports.ToolbarButton = exports.ToolbarMenuAction = exports.ToolbarMenu = void 0;
const react_1 = require("react");
const react_native_1 = require("react-native");
const native_1 = require("./native");
@@ -110,6 +110,40 @@ const ToolbarSpacer = (props) => {
return ();
};
exports.ToolbarSpacer = ToolbarSpacer;
+/**
+ * Declares the position of a search bar within the toolbar.
+ * It should only be used as a child of `Toolbar`.
+ *
+ * > **Note**: On iOS 26+, this component specifies where in the toolbar the search bar
+ * > (configured via `Stack.SearchBar`) should appear. On iOS 18 and earlier, the search bar
+ * > will be shown in the header instead.
+ *
+ * > **Important**: You must use `Stack.SearchBar` to configure and display the actual
+ * > search bar. This component only declares its position in the toolbar.
+ *
+ * @example
+ * ```tsx
+ *
+ *
+ *
+ *
+ *
+ *
+ * ```
+ *
+ * @platform ios 26+
+ */
+const ToolbarSearchBarPreferredSlot = ({ hidesSharedBackground, hidden, sharesBackground, }) => {
+ const id = (0, react_1.useId)();
+ if (process.env.EXPO_OS !== 'ios' || parseInt(String(react_native_1.Platform.Version).split('.')[0], 10) < 26) {
+ return null;
+ }
+ if (hidden) {
+ return null;
+ }
+ return ();
+};
+exports.ToolbarSearchBarPreferredSlot = ToolbarSearchBarPreferredSlot;
/**
* A custom view component for the toolbar that can contain any React elements.
* Useful for embedding custom components.
diff --git a/packages/expo-router/build/toolbar/elements.js.map b/packages/expo-router/build/toolbar/elements.js.map
index 36aedb7d1ca91b..6399c6a225079a 100644
--- a/packages/expo-router/build/toolbar/elements.js.map
+++ b/packages/expo-router/build/toolbar/elements.js.map
@@ -1 +1 @@
-{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/toolbar/elements.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport { Children, isValidElement, useId, type ReactNode } from 'react';\nimport { StyleSheet, type ColorValue, type StyleProp } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport { RouterToolbarHost, RouterToolbarItem } from './native';\nimport { InternalLinkPreviewContext } from '../link/InternalLinkPreviewContext';\nimport { LinkMenuAction, type LinkMenuActionProps } from '../link/elements';\nimport { NativeLinkPreviewAction } from '../link/preview/native';\nimport { Icon, Label } from '../primitives';\nimport { getFirstChildOfType } from '../utils/children';\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface ToolbarMenuProps {\n accessibilityLabel?: string;\n accessibilityHint?: string;\n children?: React.ReactNode;\n /**\n * An optional subtitle for the menu. Does not appear on `inline` menus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information.\n */\n subtitle?: string;\n /**\n * If `true`, the menu item will be displayed as destructive.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information.\n */\n destructive?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * Only available for root level menus.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n /**\n * Optional SF Symbol displayed alongside the menu item.\n */\n icon?: SFSymbol;\n /**\n * If `true`, the menu will be displayed inline.\n * This means that the menu will not be collapsed\n *\n * > **Note*: Inline menus are only supported in submenus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information.\n */\n inline?: boolean;\n /**\n * If `true`, the menu will be displayed as a palette.\n * This means that the menu will be displayed as one row.\n * The `elementSize` property is ignored when palette is used, all items will be `elementSize=\"small\"`. Use `elementSize=\"medium\"` instead of `palette` to display actions with titles horizontally.\n *\n * > **Note**: Palette menus are only supported in submenus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information.\n */\n palette?: boolean;\n /**\n * Whether to separate the background of this item from other header items.\n *\n * > **Note**: Text buttons cannot share the background.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n /**\n * Style for the label of the header item.\n */\n style?: StyleProp;\n /**\n * The title of the menu item\n */\n title?: string;\n\n /**\n * Tint color for the menu icon and text.\n */\n tintColor?: ColorValue;\n\n /**\n * Controls the visual style of the menu when represented as a bar button.\n *\n * @default 'plain'\n */\n variant?: 'plain' | 'done' | 'prominent';\n /**\n * The preferred size of the menu elements.\n * `elementSize` property is ignored when `palette` is used.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information.\n *\n * @platform iOS 16.0+\n */\n elementSize?: 'auto' | 'small' | 'medium' | 'large';\n}\n\n/**\n * Adds a context menu for to a toolbar.\n *\n * @example\n * ```tsx\n * \n * \n * {}} />\n * {}} />\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarMenu: React.FC = ({\n accessibilityHint,\n accessibilityLabel,\n separateBackground,\n hidesSharedBackground,\n palette,\n inline,\n hidden,\n subtitle,\n title,\n destructive,\n children,\n icon,\n tintColor,\n variant,\n style,\n elementSize,\n}) => {\n const identifier = useId();\n const validChildren = Children.toArray(children).filter(\n (child) =>\n isValidElement(child) && (child.type === ToolbarMenuAction || child.type === ToolbarMenu)\n );\n const label = getFirstChildOfType(children, Label);\n const iconComponent = getFirstChildOfType(children, Icon);\n\n const computedTitle = title ?? label?.props.children ?? '';\n const computedIcon =\n icon ??\n (iconComponent?.props && 'sf' in iconComponent.props ? iconComponent.props.sf : undefined);\n const sf = typeof computedIcon === 'string' ? computedIcon : undefined;\n const titleStyle = StyleSheet.flatten(style);\n return (\n {}}\n children={validChildren}\n identifier={identifier}\n />\n );\n};\n\nexport type ToolbarMenuActionProps = LinkMenuActionProps;\n\n/**\n * A single action item within a toolbar menu.\n *\n * For available props, see [`LinkMenuActionProps`](./router/#linkmenuactionprops).\n *\n * @example\n * ```tsx\n * \n * \n * {}} />\n * {}} />\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarMenuAction = LinkMenuAction;\n\nexport interface ToolbarButtonProps {\n accessibilityLabel?: string;\n accessibilityHint?: string;\n /**\n * The text label for the button.\n *\n * > **Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only.\n *\n * @example\n * ```tsx\n * import { Toolbar } from 'expo-router/unstable-toolbar';\n *\n * ...\n * This is button label\n * ```\n */\n children?: ReactNode;\n disabled?: boolean;\n\n /**\n * Whether the button should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n\n /**\n * Whether to hide the shared background.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n\n // TODO: support ImageSourcePropType icons in addition to SFSymbols\n /**\n * The name of the SF Symbol to display as the button icon.\n * For a list of available symbols, see [SF Symbols](https://developer.apple.com/sf-symbols/).\n */\n icon?: SFSymbol;\n\n /**\n * Custom image loaded using expo-image's `useImage` hook.\n * Takes priority over `icon` (SF Symbol) when both are provided.\n *\n * @example\n * ```tsx\n * import { useImage } from 'expo-image';\n * import { Toolbar } from 'expo-router/unstable-toolbar';\n *\n * const customIcon = useImage('https://example.com/icon.png', {\n * maxWidth: 44,\n * maxHeight: 44,\n * });\n *\n * {}} />\n * ```\n */\n image?: ImageRef | null;\n\n /**\n * Callback function when the button is pressed.\n */\n onPress?: () => void;\n\n /**\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/possibletitles) for more information.\n */\n possibleTitles?: string[];\n\n /**\n * Whether the button is in a selected state\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information.\n */\n selected?: boolean;\n\n /**\n * Whether to separate the background of this item from other header items.\n *\n * > **Note**: Text buttons cannot share the background.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n\n /**\n * Style for the label of the header item.\n */\n style?: StyleProp;\n\n /**\n * Tint color for the button icon and text.\n */\n tintColor?: ColorValue;\n\n /**\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.enum) for more information.\n *\n * @default 'plain'\n */\n variant?: 'plain' | 'done' | 'prominent';\n}\n\n// As noted in https://sebvidal.com/blog/whats-new-in-uikit-26/?utm_source=chatgpt.com#:~:text=It%27s%20worth%20noting%20that%2C%20at%20the%20time%20of%20writing%2C%20bar%20button%20badges%20are%20only%20supported%20in%20navigation%20bars%20%2D%20not%20tool%20bars.\n// currently badges are not supported in toolbars, and only in navigation bars.\n// Therefore, there is no badge support in ToolbarButton\n/**\n * A button component for use in the toolbar.\n * It should only be used as a child of `Toolbar`.\n *\n * @example\n * ```tsx\n * \n * \n * Text Button\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarButton = (props: ToolbarButtonProps) => {\n const id = useId();\n const areChildrenString = typeof props.children === 'string';\n const label = areChildrenString\n ? (props.children as string)\n : getFirstChildOfType(props.children, Label)?.props.children;\n const iconComponent =\n !props.icon && !areChildrenString ? getFirstChildOfType(props.children, Icon) : undefined;\n const icon =\n props.icon ??\n (iconComponent?.props && 'sf' in iconComponent.props ? iconComponent.props.sf : undefined);\n const sf = typeof icon === 'string' ? icon : undefined;\n return (\n \n );\n};\n\nexport type ToolbarSpacerProps = {\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether the spacer should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * Whether the spacer shares the background with adjacent toolbar items.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @platform iOS 26+\n * @default false\n */\n sharesBackground?: boolean;\n /**\n * By default, the spacer is flexible and expands to fill available space.\n * If a width is provided, it creates a [fixed-width spacer](https://developer.apple.com/documentation/uikit/uibarbuttonitem/fixedspace(_:)).\n */\n width?: number;\n};\n\n/**\n * A spacer component for the toolbar.\n * Without a width, it creates a flexible spacer that expands to fill available space.\n * With a width, it creates a fixed-width spacer.\n * It should only be used as a child of `Toolbar`.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarSpacer = (props: ToolbarSpacerProps) => {\n const id = useId();\n return (\n \n );\n};\n\n/**\n * Props for the ToolbarView component.\n *\n * @platform ios\n */\nexport interface ToolbarViewProps {\n /**\n * React elements to render inside the toolbar view.\n */\n children: React.ReactNode;\n /**\n * Whether the view should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 18+\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether to separate the background of this item from other header items.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n}\n\n/**\n * A custom view component for the toolbar that can contain any React elements.\n * Useful for embedding custom components.\n * It should only be used as a child of `Toolbar`.\n *\n * The items within the view will be absolutely positioned, so flexbox styles will not work as expected.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarView = ({\n children,\n hidden,\n hidesSharedBackground,\n separateBackground,\n}: ToolbarViewProps) => {\n const id = useId();\n return (\n \n {children}\n \n );\n};\n\nexport interface ToolbarProps {\n children?: React.ReactNode;\n}\n\nexport const ToolbarHost = (props: ToolbarProps) => {\n // TODO: Replace InternalLinkPreviewContext with a more generic context\n return (\n \n \n \n );\n};\n"]}
\ No newline at end of file
+{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/toolbar/elements.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport { Children, isValidElement, useId, type ReactNode } from 'react';\nimport { Platform, StyleSheet, type ColorValue, type StyleProp } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport { RouterToolbarHost, RouterToolbarItem } from './native';\nimport { InternalLinkPreviewContext } from '../link/InternalLinkPreviewContext';\nimport { LinkMenuAction, type LinkMenuActionProps } from '../link/elements';\nimport { NativeLinkPreviewAction } from '../link/preview/native';\nimport { Icon, Label } from '../primitives';\nimport { getFirstChildOfType } from '../utils/children';\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface ToolbarMenuProps {\n accessibilityLabel?: string;\n accessibilityHint?: string;\n children?: React.ReactNode;\n /**\n * An optional subtitle for the menu. Does not appear on `inline` menus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information.\n */\n subtitle?: string;\n /**\n * If `true`, the menu item will be displayed as destructive.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/destructive) for more information.\n */\n destructive?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * Only available for root level menus.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n /**\n * Optional SF Symbol displayed alongside the menu item.\n */\n icon?: SFSymbol;\n /**\n * If `true`, the menu will be displayed inline.\n * This means that the menu will not be collapsed\n *\n * > **Note*: Inline menus are only supported in submenus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline) for more information.\n */\n inline?: boolean;\n /**\n * If `true`, the menu will be displayed as a palette.\n * This means that the menu will be displayed as one row.\n * The `elementSize` property is ignored when palette is used, all items will be `elementSize=\"small\"`. Use `elementSize=\"medium\"` instead of `palette` to display actions with titles horizontally.\n *\n * > **Note**: Palette menus are only supported in submenus.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information.\n */\n palette?: boolean;\n /**\n * Whether to separate the background of this item from other header items.\n *\n * > **Note**: Text buttons cannot share the background.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n /**\n * Style for the label of the header item.\n */\n style?: StyleProp;\n /**\n * The title of the menu item\n */\n title?: string;\n\n /**\n * Tint color for the menu icon and text.\n */\n tintColor?: ColorValue;\n\n /**\n * Controls the visual style of the menu when represented as a bar button.\n *\n * @default 'plain'\n */\n variant?: 'plain' | 'done' | 'prominent';\n /**\n * The preferred size of the menu elements.\n * `elementSize` property is ignored when `palette` is used.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize) for more information.\n *\n * @platform iOS 16.0+\n */\n elementSize?: 'auto' | 'small' | 'medium' | 'large';\n}\n\n/**\n * Adds a context menu for to a toolbar.\n *\n * @example\n * ```tsx\n * \n * \n * {}} />\n * {}} />\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarMenu: React.FC = ({\n accessibilityHint,\n accessibilityLabel,\n separateBackground,\n hidesSharedBackground,\n palette,\n inline,\n hidden,\n subtitle,\n title,\n destructive,\n children,\n icon,\n tintColor,\n variant,\n style,\n elementSize,\n}) => {\n const identifier = useId();\n const validChildren = Children.toArray(children).filter(\n (child) =>\n isValidElement(child) && (child.type === ToolbarMenuAction || child.type === ToolbarMenu)\n );\n const label = getFirstChildOfType(children, Label);\n const iconComponent = getFirstChildOfType(children, Icon);\n\n const computedTitle = title ?? label?.props.children ?? '';\n const computedIcon =\n icon ??\n (iconComponent?.props && 'sf' in iconComponent.props ? iconComponent.props.sf : undefined);\n const sf = typeof computedIcon === 'string' ? computedIcon : undefined;\n const titleStyle = StyleSheet.flatten(style);\n return (\n {}}\n children={validChildren}\n identifier={identifier}\n />\n );\n};\n\nexport type ToolbarMenuActionProps = LinkMenuActionProps;\n\n/**\n * A single action item within a toolbar menu.\n *\n * For available props, see [`LinkMenuActionProps`](./router/#linkmenuactionprops).\n *\n * @example\n * ```tsx\n * \n * \n * {}} />\n * {}} />\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarMenuAction = LinkMenuAction;\n\nexport interface ToolbarButtonProps {\n accessibilityLabel?: string;\n accessibilityHint?: string;\n /**\n * The text label for the button.\n *\n * > **Note**: When icon is used, the label will not be shown and will be used for accessibility purposes only.\n *\n * @example\n * ```tsx\n * import { Toolbar } from 'expo-router/unstable-toolbar';\n *\n * ...\n * This is button label\n * ```\n */\n children?: ReactNode;\n disabled?: boolean;\n\n /**\n * Whether the button should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n\n /**\n * Whether to hide the shared background.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n\n // TODO: support ImageSourcePropType icons in addition to SFSymbols\n /**\n * The name of the SF Symbol to display as the button icon.\n * For a list of available symbols, see [SF Symbols](https://developer.apple.com/sf-symbols/).\n */\n icon?: SFSymbol;\n\n /**\n * Custom image loaded using expo-image's `useImage` hook.\n * Takes priority over `icon` (SF Symbol) when both are provided.\n *\n * @example\n * ```tsx\n * import { useImage } from 'expo-image';\n * import { Toolbar } from 'expo-router/unstable-toolbar';\n *\n * const customIcon = useImage('https://example.com/icon.png', {\n * maxWidth: 44,\n * maxHeight: 44,\n * });\n *\n * {}} />\n * ```\n */\n image?: ImageRef | null;\n\n /**\n * Callback function when the button is pressed.\n */\n onPress?: () => void;\n\n /**\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/possibletitles) for more information.\n */\n possibleTitles?: string[];\n\n /**\n * Whether the button is in a selected state\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected) for more information.\n */\n selected?: boolean;\n\n /**\n * Whether to separate the background of this item from other header items.\n *\n * > **Note**: Text buttons cannot share the background.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n\n /**\n * Style for the label of the header item.\n */\n style?: StyleProp;\n\n /**\n * Tint color for the button icon and text.\n */\n tintColor?: ColorValue;\n\n /**\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.enum) for more information.\n *\n * @default 'plain'\n */\n variant?: 'plain' | 'done' | 'prominent';\n}\n\n// As noted in https://sebvidal.com/blog/whats-new-in-uikit-26/?utm_source=chatgpt.com#:~:text=It%27s%20worth%20noting%20that%2C%20at%20the%20time%20of%20writing%2C%20bar%20button%20badges%20are%20only%20supported%20in%20navigation%20bars%20%2D%20not%20tool%20bars.\n// currently badges are not supported in toolbars, and only in navigation bars.\n// Therefore, there is no badge support in ToolbarButton\n/**\n * A button component for use in the toolbar.\n * It should only be used as a child of `Toolbar`.\n *\n * @example\n * ```tsx\n * \n * \n * Text Button\n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarButton = (props: ToolbarButtonProps) => {\n const id = useId();\n const areChildrenString = typeof props.children === 'string';\n const label = areChildrenString\n ? (props.children as string)\n : getFirstChildOfType(props.children, Label)?.props.children;\n const iconComponent =\n !props.icon && !areChildrenString ? getFirstChildOfType(props.children, Icon) : undefined;\n const icon =\n props.icon ??\n (iconComponent?.props && 'sf' in iconComponent.props ? iconComponent.props.sf : undefined);\n const sf = typeof icon === 'string' ? icon : undefined;\n return (\n \n );\n};\n\nexport type ToolbarSpacerProps = {\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether the spacer should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * Whether the spacer shares the background with adjacent toolbar items.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @platform iOS 26+\n * @default false\n */\n sharesBackground?: boolean;\n /**\n * By default, the spacer is flexible and expands to fill available space.\n * If a width is provided, it creates a [fixed-width spacer](https://developer.apple.com/documentation/uikit/uibarbuttonitem/fixedspace(_:)).\n */\n width?: number;\n};\n\n/**\n * A spacer component for the toolbar.\n * Without a width, it creates a flexible spacer that expands to fill available space.\n * With a width, it creates a fixed-width spacer.\n * It should only be used as a child of `Toolbar`.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarSpacer = (props: ToolbarSpacerProps) => {\n const id = useId();\n return (\n \n );\n};\n\nexport interface ToolbarSearchBarPreferredSlotProps {\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 26+\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether the search bar placed in the toolbar should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * Whether the search bar shares the background with adjacent toolbar items.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @platform iOS 26+\n * @default false\n */\n sharesBackground?: boolean;\n}\n\n/**\n * Declares the position of a search bar within the toolbar.\n * It should only be used as a child of `Toolbar`.\n *\n * > **Note**: On iOS 26+, this component specifies where in the toolbar the search bar\n * > (configured via `Stack.SearchBar`) should appear. On iOS 18 and earlier, the search bar\n * > will be shown in the header instead.\n *\n * > **Important**: You must use `Stack.SearchBar` to configure and display the actual\n * > search bar. This component only declares its position in the toolbar.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * \n * ```\n *\n * @platform ios 26+\n */\nexport const ToolbarSearchBarPreferredSlot = ({\n hidesSharedBackground,\n hidden,\n sharesBackground,\n}: ToolbarSearchBarPreferredSlotProps) => {\n const id = useId();\n if (process.env.EXPO_OS !== 'ios' || parseInt(String(Platform.Version).split('.')[0], 10) < 26) {\n return null;\n }\n if (hidden) {\n return null;\n }\n return (\n \n );\n};\n\n/**\n * Props for the ToolbarView component.\n *\n * @platform ios\n */\nexport interface ToolbarViewProps {\n /**\n * React elements to render inside the toolbar view.\n */\n children: React.ReactNode;\n /**\n * Whether the view should be hidden.\n *\n * @default false\n */\n hidden?: boolean;\n /**\n * Whether to hide the shared background when `sharesBackground` is enabled.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.\n *\n * @platform iOS 18+\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether to separate the background of this item from other header items.\n *\n * This prop reverses the native behavior of `sharesBackground`.\n *\n * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.\n *\n * @default false\n *\n * @platform iOS 26+\n */\n separateBackground?: boolean;\n}\n\n/**\n * A custom view component for the toolbar that can contain any React elements.\n * Useful for embedding custom components.\n * It should only be used as a child of `Toolbar`.\n *\n * The items within the view will be absolutely positioned, so flexbox styles will not work as expected.\n *\n * @example\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * @platform ios\n */\nexport const ToolbarView = ({\n children,\n hidden,\n hidesSharedBackground,\n separateBackground,\n}: ToolbarViewProps) => {\n const id = useId();\n return (\n \n {children}\n \n );\n};\n\nexport interface ToolbarProps {\n children?: React.ReactNode;\n}\n\nexport const ToolbarHost = (props: ToolbarProps) => {\n // TODO: Replace InternalLinkPreviewContext with a more generic context\n return (\n \n \n \n );\n};\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/index.d.ts b/packages/expo-router/build/toolbar/index.d.ts
index d7c49124247b8d..f55c5ae5449a0a 100644
--- a/packages/expo-router/build/toolbar/index.d.ts
+++ b/packages/expo-router/build/toolbar/index.d.ts
@@ -1,4 +1,4 @@
-import { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarView } from './elements';
+import { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarSearchBarPreferredSlot, ToolbarView } from './elements';
/**
* A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars).
*
@@ -34,8 +34,9 @@ export declare const Toolbar: ((props: import("./elements").ToolbarProps) => imp
MenuAction: typeof import("..").LinkMenuAction;
Button: (props: import("./elements").ToolbarButtonProps) => import("react").JSX.Element;
Spacer: (props: import("./elements").ToolbarSpacerProps) => import("react").JSX.Element;
+ SearchBarPreferredSlot: ({ hidesSharedBackground, hidden, sharesBackground, }: import("./elements").ToolbarSearchBarPreferredSlotProps) => import("react").JSX.Element | null;
View: ({ children, hidden, hidesSharedBackground, separateBackground, }: import("./elements").ToolbarViewProps) => import("react").JSX.Element;
};
-export { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarView };
-export type { ToolbarProps, ToolbarMenuProps, ToolbarMenuActionProps, ToolbarButtonProps, ToolbarSpacerProps, ToolbarViewProps as ToolbarCustomViewProps, } from './elements';
+export { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarSearchBarPreferredSlot, ToolbarView, };
+export type { ToolbarProps, ToolbarMenuProps, ToolbarMenuActionProps, ToolbarButtonProps, ToolbarSpacerProps, ToolbarSearchBarPreferredSlotProps, ToolbarViewProps as ToolbarCustomViewProps, } from './elements';
//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/index.d.ts.map b/packages/expo-router/build/toolbar/index.d.ts.map
index 015c7f4d088724..db7493b7c8b2b6 100644
--- a/packages/expo-router/build/toolbar/index.d.ts.map
+++ b/packages/expo-router/build/toolbar/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,OAAO;;;;;;CAMlB,CAAC;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAErF,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,IAAI,sBAAsB,GAC3C,MAAM,YAAY,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,6BAA6B,EAC7B,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,OAAO;;;;;;;CAOlB,CAAC;AAEH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,6BAA6B,EAC7B,WAAW,GACZ,CAAC;AAEF,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,kCAAkC,EAClC,gBAAgB,IAAI,sBAAsB,GAC3C,MAAM,YAAY,CAAC"}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/index.js b/packages/expo-router/build/toolbar/index.js
index 96b3b2bb6cfbf7..4f0cd15a294280 100644
--- a/packages/expo-router/build/toolbar/index.js
+++ b/packages/expo-router/build/toolbar/index.js
@@ -1,11 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.ToolbarView = exports.ToolbarSpacer = exports.ToolbarButton = exports.ToolbarMenuAction = exports.ToolbarMenu = exports.Toolbar = void 0;
+exports.ToolbarView = exports.ToolbarSearchBarPreferredSlot = exports.ToolbarSpacer = exports.ToolbarButton = exports.ToolbarMenuAction = exports.ToolbarMenu = exports.Toolbar = void 0;
const elements_1 = require("./elements");
Object.defineProperty(exports, "ToolbarMenu", { enumerable: true, get: function () { return elements_1.ToolbarMenu; } });
Object.defineProperty(exports, "ToolbarMenuAction", { enumerable: true, get: function () { return elements_1.ToolbarMenuAction; } });
Object.defineProperty(exports, "ToolbarButton", { enumerable: true, get: function () { return elements_1.ToolbarButton; } });
Object.defineProperty(exports, "ToolbarSpacer", { enumerable: true, get: function () { return elements_1.ToolbarSpacer; } });
+Object.defineProperty(exports, "ToolbarSearchBarPreferredSlot", { enumerable: true, get: function () { return elements_1.ToolbarSearchBarPreferredSlot; } });
Object.defineProperty(exports, "ToolbarView", { enumerable: true, get: function () { return elements_1.ToolbarView; } });
/**
* A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars).
@@ -42,6 +43,7 @@ exports.Toolbar = Object.assign(elements_1.ToolbarHost, {
MenuAction: elements_1.ToolbarMenuAction,
Button: elements_1.ToolbarButton,
Spacer: elements_1.ToolbarSpacer,
+ SearchBarPreferredSlot: elements_1.ToolbarSearchBarPreferredSlot,
View: elements_1.ToolbarView,
});
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/index.js.map b/packages/expo-router/build/toolbar/index.js.map
index ac1d795e32602e..7976d6fc0b70b3 100644
--- a/packages/expo-router/build/toolbar/index.js.map
+++ b/packages/expo-router/build/toolbar/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolbar/index.ts"],"names":[],"mappings":";;;AAAA,yCAOoB;AAwCX,4FA7CP,sBAAW,OA6CO;AAAE,kGA5CpB,4BAAiB,OA4CoB;AAAE,8FA3CvC,wBAAa,OA2CuC;AAAE,8FA1CtD,wBAAa,OA0CsD;AAAE,4FAzCrE,sBAAW,OAyCqE;AAtClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACU,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAW,EAAE;IAChD,IAAI,EAAE,sBAAW;IACjB,UAAU,EAAE,4BAAiB;IAC7B,MAAM,EAAE,wBAAa;IACrB,MAAM,EAAE,wBAAa;IACrB,IAAI,EAAE,sBAAW;CAClB,CAAC,CAAC","sourcesContent":["import {\n ToolbarHost,\n ToolbarMenu,\n ToolbarMenuAction,\n ToolbarButton,\n ToolbarSpacer,\n ToolbarView,\n} from './elements';\n\n/**\n * A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars).\n *\n * @example\n * ```tsx\n * import { Toolbar } from \"expo-router\";\n *\n * export default function MyScreen() {\n * return (\n * <>\n * \n * \n * \n * \n * \n * \n * \n * \n * {}} />\n * {}} />\n * \n * \n * \n * >\n * );\n * }\n * ```\n *\n * @platform ios\n */\nexport const Toolbar = Object.assign(ToolbarHost, {\n Menu: ToolbarMenu,\n MenuAction: ToolbarMenuAction,\n Button: ToolbarButton,\n Spacer: ToolbarSpacer,\n View: ToolbarView,\n});\n\nexport { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarView };\n\nexport type {\n ToolbarProps,\n ToolbarMenuProps,\n ToolbarMenuActionProps,\n ToolbarButtonProps,\n ToolbarSpacerProps,\n ToolbarViewProps as ToolbarCustomViewProps,\n} from './elements';\n"]}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolbar/index.ts"],"names":[],"mappings":";;;AAAA,yCAQoB;AA0ClB,4FAhDA,sBAAW,OAgDA;AACX,kGAhDA,4BAAiB,OAgDA;AACjB,8FAhDA,wBAAa,OAgDA;AACb,8FAhDA,wBAAa,OAgDA;AACb,8GAhDA,wCAA6B,OAgDA;AAC7B,4FAhDA,sBAAW,OAgDA;AA7Cb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACU,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAW,EAAE;IAChD,IAAI,EAAE,sBAAW;IACjB,UAAU,EAAE,4BAAiB;IAC7B,MAAM,EAAE,wBAAa;IACrB,MAAM,EAAE,wBAAa;IACrB,sBAAsB,EAAE,wCAA6B;IACrD,IAAI,EAAE,sBAAW;CAClB,CAAC,CAAC","sourcesContent":["import {\n ToolbarHost,\n ToolbarMenu,\n ToolbarMenuAction,\n ToolbarButton,\n ToolbarSpacer,\n ToolbarSearchBarPreferredSlot,\n ToolbarView,\n} from './elements';\n\n/**\n * A component that provides a [bottom toolbar](https://developer.apple.com/design/human-interface-guidelines/toolbars).\n *\n * @example\n * ```tsx\n * import { Toolbar } from \"expo-router\";\n *\n * export default function MyScreen() {\n * return (\n * <>\n * \n * \n * \n * \n * \n * \n * \n * \n * {}} />\n * {}} />\n * \n * \n * \n * >\n * );\n * }\n * ```\n *\n * @platform ios\n */\nexport const Toolbar = Object.assign(ToolbarHost, {\n Menu: ToolbarMenu,\n MenuAction: ToolbarMenuAction,\n Button: ToolbarButton,\n Spacer: ToolbarSpacer,\n SearchBarPreferredSlot: ToolbarSearchBarPreferredSlot,\n View: ToolbarView,\n});\n\nexport {\n ToolbarMenu,\n ToolbarMenuAction,\n ToolbarButton,\n ToolbarSpacer,\n ToolbarSearchBarPreferredSlot,\n ToolbarView,\n};\n\nexport type {\n ToolbarProps,\n ToolbarMenuProps,\n ToolbarMenuActionProps,\n ToolbarButtonProps,\n ToolbarSpacerProps,\n ToolbarSearchBarPreferredSlotProps,\n ToolbarViewProps as ToolbarCustomViewProps,\n} from './elements';\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/native.types.d.ts b/packages/expo-router/build/toolbar/native.types.d.ts
index edb21631a337f9..2eac1f903614b6 100644
--- a/packages/expo-router/build/toolbar/native.types.d.ts
+++ b/packages/expo-router/build/toolbar/native.types.d.ts
@@ -25,7 +25,7 @@ export interface RouterToolbarItemProps {
* ```
*/
image?: ImageRef | null;
- type?: 'normal' | 'fixedSpacer' | 'fluidSpacer';
+ type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';
tintColor?: ColorValue;
hidesSharedBackground?: boolean;
sharesBackground?: boolean;
diff --git a/packages/expo-router/build/toolbar/native.types.d.ts.map b/packages/expo-router/build/toolbar/native.types.d.ts.map
index 67726f8b2ac085..7049bd5e41f9c6 100644
--- a/packages/expo-router/build/toolbar/native.types.d.ts.map
+++ b/packages/expo-router/build/toolbar/native.types.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"native.types.d.ts","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;IAChD,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,GAAG,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
\ No newline at end of file
+{"version":3,"file":"native.types.d.ts","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IAC9D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,GAAG,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
\ No newline at end of file
diff --git a/packages/expo-router/build/toolbar/native.types.js.map b/packages/expo-router/build/toolbar/native.types.js.map
index 0eacf6f6026874..f53584a9fa3e62 100644
--- a/packages/expo-router/build/toolbar/native.types.js.map
+++ b/packages/expo-router/build/toolbar/native.types.js.map
@@ -1 +1 @@
-{"version":3,"file":"native.types.js","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport type { ColorValue } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface RouterToolbarHostProps {\n children?: React.ReactNode;\n}\n\nexport interface RouterToolbarItemProps {\n children?: React.ReactNode;\n identifier: string;\n title?: string;\n systemImageName?: SFSymbol;\n /**\n * Custom image loaded using expo-image's `useImage` hook.\n * Takes priority over `systemImageName` when both are provided.\n *\n * @example\n * ```tsx\n * const customIcon = useImage('https://example.com/icon.png', {\n * maxWidth: 44,\n * maxHeight: 44,\n * });\n *\n * \n * ```\n */\n image?: ImageRef | null;\n type?: 'normal' | 'fixedSpacer' | 'fluidSpacer';\n tintColor?: ColorValue;\n hidesSharedBackground?: boolean;\n sharesBackground?: boolean;\n barButtonItemStyle?: 'plain' | 'prominent';\n width?: number;\n hidden?: boolean;\n selected?: boolean;\n possibleTitles?: string[];\n // Right now this does not seem to work\n badgeConfiguration?: {\n value?: string;\n backgroundColor?: ColorValue;\n } & BasicTextStyle;\n titleStyle?: BasicTextStyle;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n disabled?: boolean;\n onSelected?: () => void;\n}\n"]}
\ No newline at end of file
+{"version":3,"file":"native.types.js","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport type { ColorValue } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface RouterToolbarHostProps {\n children?: React.ReactNode;\n}\n\nexport interface RouterToolbarItemProps {\n children?: React.ReactNode;\n identifier: string;\n title?: string;\n systemImageName?: SFSymbol;\n /**\n * Custom image loaded using expo-image's `useImage` hook.\n * Takes priority over `systemImageName` when both are provided.\n *\n * @example\n * ```tsx\n * const customIcon = useImage('https://example.com/icon.png', {\n * maxWidth: 44,\n * maxHeight: 44,\n * });\n *\n * \n * ```\n */\n image?: ImageRef | null;\n type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';\n tintColor?: ColorValue;\n hidesSharedBackground?: boolean;\n sharesBackground?: boolean;\n barButtonItemStyle?: 'plain' | 'prominent';\n width?: number;\n hidden?: boolean;\n selected?: boolean;\n possibleTitles?: string[];\n // Right now this does not seem to work\n badgeConfiguration?: {\n value?: string;\n backgroundColor?: ColorValue;\n } & BasicTextStyle;\n titleStyle?: BasicTextStyle;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n disabled?: boolean;\n onSelected?: () => void;\n}\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/ios/Toolbar/RouterToolbarHostView.swift b/packages/expo-router/ios/Toolbar/RouterToolbarHostView.swift
index e0a85cb4e18b4a..fae7a24568197b 100644
--- a/packages/expo-router/ios/Toolbar/RouterToolbarHostView.swift
+++ b/packages/expo-router/ios/Toolbar/RouterToolbarHostView.swift
@@ -155,7 +155,7 @@ class RouterToolbarHostView: RouterViewWithLogger, LinkPreviewMenuUpdatable {
updateToolbarItems()
}
- private func findViewController() -> RNSScreen? {
+ func findViewController() -> RNSScreen? {
var responder: UIResponder? = self
while let r = responder {
if let r = r as? RNSScreen {
diff --git a/packages/expo-router/ios/Toolbar/RouterToolbarItemView.swift b/packages/expo-router/ios/Toolbar/RouterToolbarItemView.swift
index 58cfb6f0c80785..a7547269de88be 100644
--- a/packages/expo-router/ios/Toolbar/RouterToolbarItemView.swift
+++ b/packages/expo-router/ios/Toolbar/RouterToolbarItemView.swift
@@ -47,6 +47,29 @@ class RouterToolbarItemView: RouterViewWithLogger {
item = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
} else if type == .fixedSpacer {
item = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
+ } else if type == .searchBar {
+ if #available(iOS 16, *) {
+ // Hide the item if no search bar is provided
+ item.isHidden = true
+ }
+ guard #available(iOS 26.0, *), let controller = self.host?.findViewController() else {
+ // Check for iOS 26, should already be guarded by the JS side, so this warning will only fire if controller is nil
+ logger?.warn(
+ "[expo-router] navigationItem.searchBarPlacementBarButtonItem not available. This is most likely a bug in expo-router."
+ )
+ return item
+ }
+ guard let navController = controller.navigationController else {
+ return item
+ }
+ guard navController.isNavigationBarHidden == false else {
+ logger?.warn(
+ "[expo-router] Toolbar.SearchBarPreferredSlot should only be used when stack header is shown."
+ )
+ return item
+ }
+
+ item = controller.navigationItem.searchBarPlacementBarButtonItem
} else {
if let title {
item.title = title
@@ -123,21 +146,19 @@ class RouterToolbarItemView: RouterViewWithLogger {
}
override func mountChildComponentView(_ childComponentView: UIView, index: Int) {
- if customView != nil {
+ guard customView == nil else {
logger?.warn(
"[expo-router] RouterToolbarItemView can only have one child view. This is most likely a bug in expo-router."
)
return
}
customView = childComponentView
- performUpdate()
}
override func unmountChildComponentView(_ childComponentView: UIView, index: Int) {
if customView == childComponentView {
childComponentView.removeFromSuperview()
customView = nil
- performUpdate()
}
}
}
@@ -146,6 +167,7 @@ enum ItemType: String, Enumerable {
case normal
case fixedSpacer
case fluidSpacer
+ case searchBar
}
struct BadgeConfiguration: Equatable {
diff --git a/packages/expo-router/src/layouts/StackClient.tsx b/packages/expo-router/src/layouts/StackClient.tsx
index 3aed15a67b4ffc..e945bef7f54ae4 100644
--- a/packages/expo-router/src/layouts/StackClient.tsx
+++ b/packages/expo-router/src/layouts/StackClient.tsx
@@ -35,6 +35,7 @@ import {
type StackScreenProps,
StackHeader,
StackScreen,
+ StackSearchBar,
appendScreenStackPropsToOptions,
} from './stack-utils';
import { isChildOfType } from '../utils/children';
@@ -620,6 +621,7 @@ const Stack = Object.assign(
Screen: StackScreen,
Protected,
Header: StackHeader,
+ SearchBar: StackSearchBar,
}
);
diff --git a/packages/expo-router/src/layouts/stack-utils/StackHeaderComponent.tsx b/packages/expo-router/src/layouts/stack-utils/StackHeaderComponent.tsx
index b0d4e43d5e7e6a..d421325d2fca83 100644
--- a/packages/expo-router/src/layouts/stack-utils/StackHeaderComponent.tsx
+++ b/packages/expo-router/src/layouts/stack-utils/StackHeaderComponent.tsx
@@ -13,11 +13,8 @@ import {
StackHeaderLeft,
StackHeaderRight,
} from './StackHeaderLeftRight';
-import {
- appendStackHeaderSearchBarPropsToOptions,
- StackHeaderSearchBar,
-} from './StackHeaderSearchBar';
import { appendStackHeaderTitlePropsToOptions, StackHeaderTitle } from './StackHeaderTitle';
+import { appendStackSearchBarPropsToOptions, StackSearchBar } from './StackSearchBar';
import { isChildOfType } from '../../utils/children';
import { Screen } from '../../views/Screen';
@@ -166,8 +163,8 @@ export function appendStackHeaderPropsToOptions(
updatedOptions = appendStackHeaderRightPropsToOptions(updatedOptions, child.props);
} else if (isChildOfType(child, StackHeaderBackButton)) {
updatedOptions = appendStackHeaderBackButtonPropsToOptions(updatedOptions, child.props);
- } else if (isChildOfType(child, StackHeaderSearchBar)) {
- updatedOptions = appendStackHeaderSearchBarPropsToOptions(updatedOptions, child.props);
+ } else if (isChildOfType(child, StackSearchBar)) {
+ updatedOptions = appendStackSearchBarPropsToOptions(updatedOptions, child.props);
} else {
console.warn(
`Warning: Unknown child element passed to Stack.Header: ${(child.type as { name: string }).name ?? child.type}`
diff --git a/packages/expo-router/src/layouts/stack-utils/StackHeaderSearchBar.tsx b/packages/expo-router/src/layouts/stack-utils/StackHeaderSearchBar.tsx
deleted file mode 100644
index a3c9226f56076f..00000000000000
--- a/packages/expo-router/src/layouts/stack-utils/StackHeaderSearchBar.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
-import type { SearchBarProps } from 'react-native-screens';
-
-export interface StackHeaderSearchBarProps extends SearchBarProps {}
-
-export function StackHeaderSearchBar(props: StackHeaderSearchBarProps) {
- return null;
-}
-
-export function appendStackHeaderSearchBarPropsToOptions(
- options: NativeStackNavigationOptions,
- props: StackHeaderSearchBarProps
-): NativeStackNavigationOptions {
- return {
- ...options,
- headerSearchBarOptions: {
- ...props,
- },
- };
-}
diff --git a/packages/expo-router/src/layouts/stack-utils/StackSearchBar.tsx b/packages/expo-router/src/layouts/stack-utils/StackSearchBar.tsx
new file mode 100644
index 00000000000000..04f46a52a5e9ba
--- /dev/null
+++ b/packages/expo-router/src/layouts/stack-utils/StackSearchBar.tsx
@@ -0,0 +1,27 @@
+import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
+import { useMemo } from 'react';
+import type { SearchBarProps } from 'react-native-screens';
+
+import { Screen } from '../../views/Screen';
+
+// TODO: Discuss adding SearchBarPreferredSlot to react-native-screens header items
+// and exposing it as Stack.Header.SearchBarPreferredSlot
+// https://linear.app/expo/issue/ENG-18555
+export interface StackSearchBarProps extends SearchBarProps {}
+
+export function StackSearchBar(props: StackSearchBarProps) {
+ const updatedOptions = useMemo(() => appendStackSearchBarPropsToOptions({}, props), [props]);
+ return ;
+}
+
+export function appendStackSearchBarPropsToOptions(
+ options: NativeStackNavigationOptions,
+ props: StackSearchBarProps
+): NativeStackNavigationOptions {
+ return {
+ ...options,
+ headerSearchBarOptions: {
+ ...props,
+ },
+ };
+}
diff --git a/packages/expo-router/src/layouts/stack-utils/__tests__/composition.test.ios.tsx b/packages/expo-router/src/layouts/stack-utils/__tests__/composition.test.ios.tsx
index 158ec914cbfd9e..cda3ec12c632d1 100644
--- a/packages/expo-router/src/layouts/stack-utils/__tests__/composition.test.ios.tsx
+++ b/packages/expo-router/src/layouts/stack-utils/__tests__/composition.test.ios.tsx
@@ -291,7 +291,7 @@ it('should set options correctly, using composition without separate components'
- {
- {
);
};
+export interface ToolbarSearchBarPreferredSlotProps {
+ /**
+ * Whether to hide the shared background when `sharesBackground` is enabled.
+ *
+ * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground) for more information.
+ *
+ * @platform iOS 26+
+ */
+ hidesSharedBackground?: boolean;
+ /**
+ * Whether the search bar placed in the toolbar should be hidden.
+ *
+ * @default false
+ */
+ hidden?: boolean;
+ /**
+ * Whether the search bar shares the background with adjacent toolbar items.
+ *
+ * @see [Official Apple documentation](https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground) for more information.
+ *
+ * @platform iOS 26+
+ * @default false
+ */
+ sharesBackground?: boolean;
+}
+
+/**
+ * Declares the position of a search bar within the toolbar.
+ * It should only be used as a child of `Toolbar`.
+ *
+ * > **Note**: On iOS 26+, this component specifies where in the toolbar the search bar
+ * > (configured via `Stack.SearchBar`) should appear. On iOS 18 and earlier, the search bar
+ * > will be shown in the header instead.
+ *
+ * > **Important**: You must use `Stack.SearchBar` to configure and display the actual
+ * > search bar. This component only declares its position in the toolbar.
+ *
+ * @example
+ * ```tsx
+ *
+ *
+ *
+ *
+ *
+ *
+ * ```
+ *
+ * @platform ios 26+
+ */
+export const ToolbarSearchBarPreferredSlot = ({
+ hidesSharedBackground,
+ hidden,
+ sharesBackground,
+}: ToolbarSearchBarPreferredSlotProps) => {
+ const id = useId();
+ if (process.env.EXPO_OS !== 'ios' || parseInt(String(Platform.Version).split('.')[0], 10) < 26) {
+ return null;
+ }
+ if (hidden) {
+ return null;
+ }
+ return (
+
+ );
+};
+
/**
* Props for the ToolbarView component.
*
diff --git a/packages/expo-router/src/toolbar/index.ts b/packages/expo-router/src/toolbar/index.ts
index 9a7d6ef7e99cb4..c1c537f2c20ebf 100644
--- a/packages/expo-router/src/toolbar/index.ts
+++ b/packages/expo-router/src/toolbar/index.ts
@@ -4,6 +4,7 @@ import {
ToolbarMenuAction,
ToolbarButton,
ToolbarSpacer,
+ ToolbarSearchBarPreferredSlot,
ToolbarView,
} from './elements';
@@ -42,10 +43,18 @@ export const Toolbar = Object.assign(ToolbarHost, {
MenuAction: ToolbarMenuAction,
Button: ToolbarButton,
Spacer: ToolbarSpacer,
+ SearchBarPreferredSlot: ToolbarSearchBarPreferredSlot,
View: ToolbarView,
});
-export { ToolbarMenu, ToolbarMenuAction, ToolbarButton, ToolbarSpacer, ToolbarView };
+export {
+ ToolbarMenu,
+ ToolbarMenuAction,
+ ToolbarButton,
+ ToolbarSpacer,
+ ToolbarSearchBarPreferredSlot,
+ ToolbarView,
+};
export type {
ToolbarProps,
@@ -53,5 +62,6 @@ export type {
ToolbarMenuActionProps,
ToolbarButtonProps,
ToolbarSpacerProps,
+ ToolbarSearchBarPreferredSlotProps,
ToolbarViewProps as ToolbarCustomViewProps,
} from './elements';
diff --git a/packages/expo-router/src/toolbar/native.types.ts b/packages/expo-router/src/toolbar/native.types.ts
index 5554138f031896..75c1abf9b79a1c 100644
--- a/packages/expo-router/src/toolbar/native.types.ts
+++ b/packages/expo-router/src/toolbar/native.types.ts
@@ -28,7 +28,7 @@ export interface RouterToolbarItemProps {
* ```
*/
image?: ImageRef | null;
- type?: 'normal' | 'fixedSpacer' | 'fluidSpacer';
+ type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';
tintColor?: ColorValue;
hidesSharedBackground?: boolean;
sharesBackground?: boolean;
From e22c06f1879fccc09622c60127500939ebd02a15 Mon Sep 17 00:00:00 2001
From: Jakub Tkacz <32908614+Ubax@users.noreply.github.com>
Date: Mon, 12 Jan 2026 19:24:40 +0100
Subject: [PATCH 4/8] [expo-router] throw error when array style is passed to
Slot (#41901)
# Why
When passing array style to child of `Slot` (or `
- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
---
packages/expo-router/CHANGELOG.md | 1 +
packages/expo-router/build/ui/Slot.d.ts.map | 2 +-
packages/expo-router/build/ui/Slot.js | 45 ++++++++++++++++++-
packages/expo-router/build/ui/Slot.js.map | 2 +-
.../src/link/__tests__/Link.test.ios.tsx | 14 ++++++
.../src/link/__tests__/Link.test.web.tsx | 14 ++++++
packages/expo-router/src/ui/Slot.tsx | 16 ++++++-
7 files changed, 90 insertions(+), 4 deletions(-)
diff --git a/packages/expo-router/CHANGELOG.md b/packages/expo-router/CHANGELOG.md
index a83e96a76c2c90..d4ed5d34ffe9cd 100644
--- a/packages/expo-router/CHANGELOG.md
+++ b/packages/expo-router/CHANGELOG.md
@@ -97,6 +97,7 @@
- [docs] update Toolbar.View to reflect up to date props ([#41888](https://github.com/expo/expo/pull/41888) by [@Ubax](https://github.com/Ubax))
- remove new arch checks ([#41766](https://github.com/expo/expo/pull/41766) by [@Ubax](https://github.com/Ubax))
- add types to BaseRoute props ([#41765](https://github.com/expo/expo/pull/41765) by [@Ubax](https://github.com/Ubax))
+- throw error when array style is passed to Slot ([#41901](https://github.com/expo/expo/pull/41901) by [@Ubax](https://github.com/Ubax))
## 6.0.17 - 2025-12-05
diff --git a/packages/expo-router/build/ui/Slot.d.ts.map b/packages/expo-router/build/ui/Slot.d.ts.map
index ad791e74e63afa..ad63ed136048bd 100644
--- a/packages/expo-router/build/ui/Slot.d.ts.map
+++ b/packages/expo-router/build/ui/Slot.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Slot.d.ts","sourceRoot":"","sources":["../../src/ui/Slot.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAsB1D,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CACjE,SAAQ,yBAAyB,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;CAAG;AAElE,eAAO,MAAM,IAAI,EAAE,IAA8C,CAAC"}
\ No newline at end of file
+{"version":3,"file":"Slot.d.ts","sourceRoot":"","sources":["../../src/ui/Slot.tsx"],"names":[],"mappings":"AACA,OAAc,EAGZ,KAAK,yBAAyB,EAC9B,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAoC1D,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CACjE,SAAQ,yBAAyB,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;CAAG;AAElE,eAAO,MAAM,IAAI,EAAE,IAA8C,CAAC"}
\ No newline at end of file
diff --git a/packages/expo-router/build/ui/Slot.js b/packages/expo-router/build/ui/Slot.js
index eff9fa2cfcabc0..77069657e92546 100644
--- a/packages/expo-router/build/ui/Slot.js
+++ b/packages/expo-router/build/ui/Slot.js
@@ -1,8 +1,41 @@
"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || (function () {
+ var ownKeys = function(o) {
+ ownKeys = Object.getOwnPropertyNames || function (o) {
+ var ar = [];
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
+ return ar;
+ };
+ return ownKeys(o);
+ };
+ return function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
+ __setModuleDefault(result, mod);
+ return result;
+ };
+})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Slot = void 0;
const react_slot_1 = require("@radix-ui/react-slot");
-const react_1 = require("react");
+const react_1 = __importStar(require("react"));
const react_native_1 = require("react-native");
/**
* RadixUI has special logic to handle the merging of `style` and `className` props.
@@ -20,6 +53,16 @@ const react_native_1 = require("react-native");
function ShimSlotForReactNative(Component) {
return (0, react_1.forwardRef)(function RNSlotHOC({ style, ...props }, ref) {
style = (0, react_1.useMemo)(() => react_native_1.StyleSheet.flatten(style), [style]);
+ if (process.env.NODE_ENV !== 'production') {
+ if (react_1.default.isValidElement(props.children)) {
+ if (typeof props.children.props === 'object' &&
+ props.children.props !== null &&
+ 'style' in props.children.props &&
+ Array.isArray(props.children.props.style)) {
+ throw new Error(`[expo-router]: You are passing an array of styles to a child of . Consider flattening the styles with StyleSheet.flatten before passing them to the child component.`);
+ }
+ }
+ }
return ;
});
}
diff --git a/packages/expo-router/build/ui/Slot.js.map b/packages/expo-router/build/ui/Slot.js.map
index bada69a5e8556d..b41ee982fd6dd7 100644
--- a/packages/expo-router/build/ui/Slot.js.map
+++ b/packages/expo-router/build/ui/Slot.js.map
@@ -1 +1 @@
-{"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../src/ui/Slot.tsx"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,iCAMe;AACf,+CAA0D;AAE1D;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAAC,SAAyB;IACvD,OAAO,IAAA,kBAAU,EAAC,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;QAC3D,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,yBAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAG,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAKY,QAAA,IAAI,GAAS,sBAAsB,CAAC,iBAAO,CAAS,CAAC","sourcesContent":["import { Slot as RUISlot } from '@radix-ui/react-slot';\nimport {\n forwardRef,\n useMemo,\n type ForwardRefExoticComponent,\n type Component,\n type RefAttributes,\n} from 'react';\nimport { StyleSheet, type ViewProps } from 'react-native';\n\n/**\n * RadixUI has special logic to handle the merging of `style` and `className` props.\n * On the web styles are not allowed so Radix does not handle this scenario.\n * This could be fixed upstream (PR open), but it may not as RN is not their target\n * platform.\n *\n * This shim calls `StyleSheet.flatten` on the styles before we render the \n *\n * @see https://github.com/expo/expo/issues/31352\n * @see https://github.com/radix-ui/primitives/issues/3107\n * @param Component\n * @returns\n */\nfunction ShimSlotForReactNative(Component: typeof RUISlot): typeof RUISlot {\n return forwardRef(function RNSlotHOC({ style, ...props }, ref) {\n style = useMemo(() => StyleSheet.flatten(style), [style]);\n return ;\n });\n}\n\nexport interface Slot>\n extends ForwardRefExoticComponent> {}\n\nexport const Slot: Slot = ShimSlotForReactNative(RUISlot) as Slot;\n"]}
\ No newline at end of file
+{"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../src/ui/Slot.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuD;AACvD,+CAMe;AACf,+CAA0D;AAE1D;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAAC,SAAyB;IACvD,OAAO,IAAA,kBAAU,EAAC,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;QAC3D,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,yBAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,IACE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ;oBACxC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI;oBAC7B,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK;oBAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACzC,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,4KAA4K,CAC7K,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAG,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAKY,QAAA,IAAI,GAAS,sBAAsB,CAAC,iBAAO,CAAS,CAAC","sourcesContent":["import { Slot as RUISlot } from '@radix-ui/react-slot';\nimport React, {\n forwardRef,\n useMemo,\n type ForwardRefExoticComponent,\n type Component,\n type RefAttributes,\n} from 'react';\nimport { StyleSheet, type ViewProps } from 'react-native';\n\n/**\n * RadixUI has special logic to handle the merging of `style` and `className` props.\n * On the web styles are not allowed so Radix does not handle this scenario.\n * This could be fixed upstream (PR open), but it may not as RN is not their target\n * platform.\n *\n * This shim calls `StyleSheet.flatten` on the styles before we render the \n *\n * @see https://github.com/expo/expo/issues/31352\n * @see https://github.com/radix-ui/primitives/issues/3107\n * @param Component\n * @returns\n */\nfunction ShimSlotForReactNative(Component: typeof RUISlot): typeof RUISlot {\n return forwardRef(function RNSlotHOC({ style, ...props }, ref) {\n style = useMemo(() => StyleSheet.flatten(style), [style]);\n if (process.env.NODE_ENV !== 'production') {\n if (React.isValidElement(props.children)) {\n if (\n typeof props.children.props === 'object' &&\n props.children.props !== null &&\n 'style' in props.children.props &&\n Array.isArray(props.children.props.style)\n ) {\n throw new Error(\n `[expo-router]: You are passing an array of styles to a child of . Consider flattening the styles with StyleSheet.flatten before passing them to the child component.`\n );\n }\n }\n }\n return ;\n });\n}\n\nexport interface Slot>\n extends ForwardRefExoticComponent> {}\n\nexport const Slot: Slot = ShimSlotForReactNative(RUISlot) as Slot;\n"]}
\ No newline at end of file
diff --git a/packages/expo-router/src/link/__tests__/Link.test.ios.tsx b/packages/expo-router/src/link/__tests__/Link.test.ios.tsx
index 08b24f65592c4c..cd39bee1ae5eb8 100644
--- a/packages/expo-router/src/link/__tests__/Link.test.ios.tsx
+++ b/packages/expo-router/src/link/__tests__/Link.test.ios.tsx
@@ -92,6 +92,20 @@ it('renders a Link with React Native array style prop when using asChild', () =>
});
});
+it('renders a Link with a slot and array style', () => {
+ expect(() =>
+ render(
+
+
+ Button
+
+
+ )
+ ).toThrow(
+ '[expo-router]: You are passing an array of styles to a child of . Consider flattening the styles with StyleSheet.flatten before passing them to the child component.'
+ );
+});
+
xit('renders a Link with a slot', () => {
const { getByText, getByTestId } = render(
diff --git a/packages/expo-router/src/link/__tests__/Link.test.web.tsx b/packages/expo-router/src/link/__tests__/Link.test.web.tsx
index 85f3793736b917..27b055375dd689 100644
--- a/packages/expo-router/src/link/__tests__/Link.test.web.tsx
+++ b/packages/expo-router/src/link/__tests__/Link.test.web.tsx
@@ -54,6 +54,20 @@ it('renders a Link with a slot', () => {
`);
});
+it('renders a Link with a slot and array style', () => {
+ expect(() =>
+ render(
+
+
+ Button
+
+
+ )
+ ).toThrow(
+ '[expo-router]: You are passing an array of styles to a child of . Consider flattening the styles with StyleSheet.flatten before passing them to the child component.'
+ );
+});
+
it('supports target blank', () => {
const { getByTestId } = render(
diff --git a/packages/expo-router/src/ui/Slot.tsx b/packages/expo-router/src/ui/Slot.tsx
index 56039ae62f1a71..32fced40803e0d 100644
--- a/packages/expo-router/src/ui/Slot.tsx
+++ b/packages/expo-router/src/ui/Slot.tsx
@@ -1,5 +1,5 @@
import { Slot as RUISlot } from '@radix-ui/react-slot';
-import {
+import React, {
forwardRef,
useMemo,
type ForwardRefExoticComponent,
@@ -24,6 +24,20 @@ import { StyleSheet, type ViewProps } from 'react-native';
function ShimSlotForReactNative(Component: typeof RUISlot): typeof RUISlot {
return forwardRef(function RNSlotHOC({ style, ...props }, ref) {
style = useMemo(() => StyleSheet.flatten(style), [style]);
+ if (process.env.NODE_ENV !== 'production') {
+ if (React.isValidElement(props.children)) {
+ if (
+ typeof props.children.props === 'object' &&
+ props.children.props !== null &&
+ 'style' in props.children.props &&
+ Array.isArray(props.children.props.style)
+ ) {
+ throw new Error(
+ `[expo-router]: You are passing an array of styles to a child of . Consider flattening the styles with StyleSheet.flatten before passing them to the child component.`
+ );
+ }
+ }
+ }
return ;
});
}
From de26087e67293482842febbf38b1153430abcecb Mon Sep 17 00:00:00 2001
From: Patryk Mleczek <67064618+pmleczek@users.noreply.github.com>
Date: Mon, 12 Jan 2026 20:34:10 +0100
Subject: [PATCH 5/8] [brownfield] expo-brownfield cleanup & improvements
(#42072)
# Why
`expo-brownfield` had some leftover TODOs and issues that were pointed
out in the other reviews - adding them in a separate PR to keep the one
with testing setup (https://github.com/expo/expo/pull/42032) minimal
# How
- Removed leftover TODO in CLI
- Resolved a TODO regarding missing type in xcode utils in the plugin
and extracted native target querying into a separate function
- Moved CLI code out of `plugin/` to separate and to better intergrate
with EM supporting separate plugin and cli targets
- Removed direct injection of brownfield target name in `Podfile` in
favor of passing via `Podfile.properties.json` and the config plugin mod
(as per discussion here:
https://github.com/expo/expo/pull/42048#discussion_r2677332142)
- Updated lint script to lint all three targets which removes the
discrepancy between CI and running only `expo-modules lint` locally +
added separate script for linting with `--fix` option
- Removed the `files` array from `package.json`
# Test Plan
- Verified that all needed files are included without the `files` array
explicitly defined
- Verified that new linting scripts setup lints all targets
- Verified that the build (`yarn prepare`) passes for all three targets
- Validated the built package using a test app
# Checklist
- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [X] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin)
---
packages/expo-brownfield/CHANGELOG.md | 6 +++
.../build/cli => cli/build}/build.d.ts | 0
.../{plugin/build/cli => cli/build}/build.js | 2 +-
.../build}/commands/android/build.d.ts | 0
.../build}/commands/android/build.js | 4 +-
.../build}/commands/android/index.d.ts | 0
.../build}/commands/android/index.js | 0
.../build}/commands/android/tasks.d.ts | 0
.../build}/commands/android/tasks.js | 4 +-
.../cli => cli/build}/commands/commands.d.ts | 0
.../cli => cli/build}/commands/commands.js | 0
.../build}/commands/general/help.d.ts | 0
.../build}/commands/general/help.js | 0
.../build}/commands/general/index.d.ts | 0
.../build}/commands/general/index.js | 0
.../build}/commands/general/version.d.ts | 0
.../build}/commands/general/version.js | 2 +-
.../cli => cli/build}/commands/index.d.ts | 0
.../build/cli => cli/build}/commands/index.js | 0
.../cli => cli/build}/commands/ios/build.d.ts | 0
.../cli => cli/build}/commands/ios/build.js | 0
.../cli => cli/build}/commands/ios/index.d.ts | 0
.../cli => cli/build}/commands/ios/index.js | 0
.../cli => cli/build}/commands/resolve.d.ts | 0
.../cli => cli/build}/commands/resolve.js | 0
.../cli => cli/build}/commands/types.d.ts | 0
.../build/cli => cli/build}/commands/types.js | 0
.../cli => cli/build}/constants/args.d.ts | 0
.../build/cli => cli/build}/constants/args.js | 0
.../cli => cli/build}/constants/defaults.d.ts | 0
.../cli => cli/build}/constants/defaults.js | 0
.../cli => cli/build}/constants/errors.d.ts | 0
.../cli => cli/build}/constants/errors.js | 0
.../cli => cli/build}/constants/help.d.ts | 0
.../build/cli => cli/build}/constants/help.js | 0
.../cli => cli/build}/constants/index.d.ts | 0
.../cli => cli/build}/constants/index.js | 0
.../cli => cli/build}/constants/output.d.ts | 0
.../cli => cli/build}/constants/output.js | 0
.../build/cli => cli/build}/index.d.ts | 0
.../{plugin/build/cli => cli/build}/index.js | 0
.../build/cli => cli/build}/utils/args.d.ts | 0
.../build/cli => cli/build}/utils/args.js | 0
.../build/cli => cli/build}/utils/build.d.ts | 0
.../build/cli => cli/build}/utils/build.js | 4 +-
.../cli => cli/build}/utils/commands.d.ts | 0
.../build/cli => cli/build}/utils/commands.js | 0
.../build/cli => cli/build}/utils/config.d.ts | 0
.../build/cli => cli/build}/utils/config.js | 12 ++---
.../build/cli => cli/build}/utils/help.d.ts | 0
.../build/cli => cli/build}/utils/help.js | 0
.../build/cli => cli/build}/utils/index.d.ts | 0
.../build/cli => cli/build}/utils/index.js | 0
.../build/cli => cli/build}/utils/infer.d.ts | 0
.../build/cli => cli/build}/utils/infer.js | 5 +-
.../build/cli => cli/build}/utils/types.d.ts | 0
.../build/cli => cli/build}/utils/types.js | 0
.../{plugin/src/cli => cli/src}/build.ts | 2 +-
.../cli => cli/src}/commands/android/build.ts | 2 +-
.../cli => cli/src}/commands/android/index.ts | 0
.../cli => cli/src}/commands/android/tasks.ts | 2 +-
.../src/cli => cli/src}/commands/commands.ts | 0
.../cli => cli/src}/commands/general/help.ts | 0
.../cli => cli/src}/commands/general/index.ts | 0
.../src}/commands/general/version.ts | 2 +-
.../src/cli => cli/src}/commands/index.ts | 0
.../src/cli => cli/src}/commands/ios/build.ts | 0
.../src/cli => cli/src}/commands/ios/index.ts | 0
.../src/cli => cli/src}/commands/resolve.ts | 0
.../src/cli => cli/src}/commands/types.ts | 0
.../src/cli => cli/src}/constants/args.ts | 0
.../src/cli => cli/src}/constants/defaults.ts | 0
.../src/cli => cli/src}/constants/errors.ts | 0
.../src/cli => cli/src}/constants/help.ts | 0
.../src/cli => cli/src}/constants/index.ts | 0
.../src/cli => cli/src}/constants/output.ts | 0
.../{plugin/src/cli => cli/src}/index.ts | 0
.../{plugin/src/cli => cli/src}/utils/args.ts | 0
.../src/cli => cli/src}/utils/build.ts | 2 +-
.../src/cli => cli/src}/utils/commands.ts | 0
.../src/cli => cli/src}/utils/config.ts | 2 +-
.../{plugin/src/cli => cli/src}/utils/help.ts | 0
.../src/cli => cli/src}/utils/index.ts | 0
.../src/cli => cli/src}/utils/infer.ts | 3 +-
.../src/cli => cli/src}/utils/types.ts | 0
packages/expo-brownfield/cli/tsconfig.json | 9 ++++
packages/expo-brownfield/package.json | 24 ++-------
.../plugins/withPodfilePropertiesPlugin.d.ts | 3 +-
.../plugins/withPodfilePropertiesPlugin.js | 3 +-
.../plugin/build/ios/types.d.ts | 7 ++-
.../plugin/build/ios/utils/podfile.js | 5 +-
.../plugin/build/ios/utils/project.js | 24 +++++----
.../plugin/build/ios/withIosPlugin.js | 2 +-
.../plugins/withPodfilePropertiesPlugin.ts | 5 +-
.../src/ios/scripts/reorder_build_phases.rb | 3 +-
.../expo-brownfield/plugin/src/ios/types.ts | 9 +++-
.../plugin/src/ios/utils/podfile.ts | 5 +-
.../plugin/src/ios/utils/project.ts | 52 ++++++++++++-------
.../plugin/src/ios/withIosPlugin.ts | 2 +-
packages/expo-brownfield/plugin/tsconfig.json | 7 +--
100 files changed, 121 insertions(+), 93 deletions(-)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/build.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/build.js (99%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/build.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/build.js (93%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/tasks.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/android/tasks.js (94%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/commands.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/commands.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/help.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/help.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/version.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/general/version.js (83%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/ios/build.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/ios/build.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/ios/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/ios/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/resolve.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/resolve.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/types.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/commands/types.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/args.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/args.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/defaults.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/defaults.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/errors.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/errors.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/help.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/help.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/output.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/constants/output.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/args.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/args.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/build.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/build.js (96%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/commands.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/commands.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/config.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/config.js (80%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/help.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/help.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/index.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/index.js (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/infer.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/infer.js (92%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/types.d.ts (100%)
rename packages/expo-brownfield/{plugin/build/cli => cli/build}/utils/types.js (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/build.ts (98%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/android/build.ts (98%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/android/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/android/tasks.ts (98%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/commands.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/general/help.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/general/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/general/version.ts (80%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/ios/build.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/ios/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/resolve.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/commands/types.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/args.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/defaults.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/errors.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/help.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/constants/output.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/args.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/build.ts (99%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/commands.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/config.ts (98%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/help.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/index.ts (100%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/infer.ts (95%)
rename packages/expo-brownfield/{plugin/src/cli => cli/src}/utils/types.ts (100%)
create mode 100644 packages/expo-brownfield/cli/tsconfig.json
diff --git a/packages/expo-brownfield/CHANGELOG.md b/packages/expo-brownfield/CHANGELOG.md
index a2ba70da60600e..e74d4f01628f8f 100644
--- a/packages/expo-brownfield/CHANGELOG.md
+++ b/packages/expo-brownfield/CHANGELOG.md
@@ -8,4 +8,10 @@
### đ Bug fixes
+- [iOS] Added support for React Native 0.83 in [#42038](https://github.com/expo/expo/pull/42038) by [@gabrieldonadel](https://github.com/gabrieldonadel)
+
### đĄ Others
+
+- Initialized the package for `expo-brownfield` with code from [expo-brownfield-target](https://github.com/software-mansion-labs/expo-brownfield-target) in [#42012](https://github.com/expo/expo/pull/42012) by [@pmleczek](https://github.com/pmleczek), [@gabrieldonadel](https://github.com/gabrieldonadel)
+- Updated `minimal-tester` to use `expo-brownfield` (includes 2 minor iOS improvments in the package) in [#42048](https://github.com/expo/expo/pull/42048) by [@gabrieldonadel](https://github.com/gabrieldonadel)
+- Updated build configurations and resolved leftover TODOs in [#42072](https://github.com/expo/expo/pull/42072) by [@pmleczek](https://github.com/pmleczek)
diff --git a/packages/expo-brownfield/plugin/build/cli/build.d.ts b/packages/expo-brownfield/cli/build/build.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/build.d.ts
rename to packages/expo-brownfield/cli/build/build.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/build.js b/packages/expo-brownfield/cli/build/build.js
similarity index 99%
rename from packages/expo-brownfield/plugin/build/cli/build.js
rename to packages/expo-brownfield/cli/build/build.js
index 1bfc6cb060f7ed..02a620f67f8b94 100644
--- a/packages/expo-brownfield/plugin/build/cli/build.js
+++ b/packages/expo-brownfield/cli/build/build.js
@@ -1,6 +1,6 @@
"use strict";
// import fs from 'node:fs/promises';
-// import path from 'node:path';
+// import path from 'path';
// import readline from 'node:readline/promises';
Object.defineProperty(exports, "__esModule", { value: true });
// import chalk from 'chalk';
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/build.d.ts b/packages/expo-brownfield/cli/build/commands/android/build.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/build.d.ts
rename to packages/expo-brownfield/cli/build/commands/android/build.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/build.js b/packages/expo-brownfield/cli/build/commands/android/build.js
similarity index 93%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/build.js
rename to packages/expo-brownfield/cli/build/commands/android/build.js
index 508ad98eef34f9..1ec2be4d9d1081 100644
--- a/packages/expo-brownfield/plugin/build/cli/commands/android/build.js
+++ b/packages/expo-brownfield/cli/build/commands/android/build.js
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
-const node_path_1 = __importDefault(require("node:path"));
+const path_1 = __importDefault(require("path"));
const constants_1 = require("../../constants");
const utils_1 = require("../../utils");
const action = async () => {
@@ -38,7 +38,7 @@ const constructTask = (buildType, repository) => {
const runTask = async (task, verbose) => {
return (0, utils_1.withSpinner)({
operation: () => (0, utils_1.runCommand)('./gradlew', [task], {
- cwd: node_path_1.default.join(process.cwd(), 'android'),
+ cwd: path_1.default.join(process.cwd(), 'android'),
verbose,
}),
loaderMessage: 'Running task: ' + task,
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/index.d.ts b/packages/expo-brownfield/cli/build/commands/android/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/index.d.ts
rename to packages/expo-brownfield/cli/build/commands/android/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/index.js b/packages/expo-brownfield/cli/build/commands/android/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/index.js
rename to packages/expo-brownfield/cli/build/commands/android/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/tasks.d.ts b/packages/expo-brownfield/cli/build/commands/android/tasks.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/tasks.d.ts
rename to packages/expo-brownfield/cli/build/commands/android/tasks.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/android/tasks.js b/packages/expo-brownfield/cli/build/commands/android/tasks.js
similarity index 94%
rename from packages/expo-brownfield/plugin/build/cli/commands/android/tasks.js
rename to packages/expo-brownfield/cli/build/commands/android/tasks.js
index b723f3c9b811bb..93d96c8d3ec34a 100644
--- a/packages/expo-brownfield/plugin/build/cli/commands/android/tasks.js
+++ b/packages/expo-brownfield/cli/build/commands/android/tasks.js
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = __importDefault(require("chalk"));
-const node_path_1 = __importDefault(require("node:path"));
+const path_1 = __importDefault(require("path"));
const constants_1 = require("../../constants");
const utils_1 = require("../../utils");
const action = async () => {
@@ -19,7 +19,7 @@ const action = async () => {
}
const { stdout } = await (0, utils_1.withSpinner)({
operation: () => (0, utils_1.runCommand)('./gradlew', [`${config.libraryName}:tasks`, '--group', 'publishing'], {
- cwd: node_path_1.default.join(process.cwd(), 'android'),
+ cwd: path_1.default.join(process.cwd(), 'android'),
verbose: config.verbose,
}),
loaderMessage: 'Reading publish tasks from the android project...',
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/commands.d.ts b/packages/expo-brownfield/cli/build/commands/commands.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/commands.d.ts
rename to packages/expo-brownfield/cli/build/commands/commands.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/commands.js b/packages/expo-brownfield/cli/build/commands/commands.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/commands.js
rename to packages/expo-brownfield/cli/build/commands/commands.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/help.d.ts b/packages/expo-brownfield/cli/build/commands/general/help.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/help.d.ts
rename to packages/expo-brownfield/cli/build/commands/general/help.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/help.js b/packages/expo-brownfield/cli/build/commands/general/help.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/help.js
rename to packages/expo-brownfield/cli/build/commands/general/help.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/index.d.ts b/packages/expo-brownfield/cli/build/commands/general/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/index.d.ts
rename to packages/expo-brownfield/cli/build/commands/general/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/index.js b/packages/expo-brownfield/cli/build/commands/general/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/index.js
rename to packages/expo-brownfield/cli/build/commands/general/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/version.d.ts b/packages/expo-brownfield/cli/build/commands/general/version.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/version.d.ts
rename to packages/expo-brownfield/cli/build/commands/general/version.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/general/version.js b/packages/expo-brownfield/cli/build/commands/general/version.js
similarity index 83%
rename from packages/expo-brownfield/plugin/build/cli/commands/general/version.js
rename to packages/expo-brownfield/cli/build/commands/general/version.js
index c06afdc08b9018..ad5ef47a6118c6 100644
--- a/packages/expo-brownfield/plugin/build/cli/commands/general/version.js
+++ b/packages/expo-brownfield/cli/build/commands/general/version.js
@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-expect-error - the directory structure is different after building
-const package_json_1 = require("../../../../../package.json");
+const package_json_1 = require("../../../../package.json");
/**
* Prints the version of the CLI (= the version of the package).
*/
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/index.d.ts b/packages/expo-brownfield/cli/build/commands/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/index.d.ts
rename to packages/expo-brownfield/cli/build/commands/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/index.js b/packages/expo-brownfield/cli/build/commands/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/index.js
rename to packages/expo-brownfield/cli/build/commands/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/ios/build.d.ts b/packages/expo-brownfield/cli/build/commands/ios/build.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/ios/build.d.ts
rename to packages/expo-brownfield/cli/build/commands/ios/build.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/ios/build.js b/packages/expo-brownfield/cli/build/commands/ios/build.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/ios/build.js
rename to packages/expo-brownfield/cli/build/commands/ios/build.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/ios/index.d.ts b/packages/expo-brownfield/cli/build/commands/ios/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/ios/index.d.ts
rename to packages/expo-brownfield/cli/build/commands/ios/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/ios/index.js b/packages/expo-brownfield/cli/build/commands/ios/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/ios/index.js
rename to packages/expo-brownfield/cli/build/commands/ios/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/resolve.d.ts b/packages/expo-brownfield/cli/build/commands/resolve.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/resolve.d.ts
rename to packages/expo-brownfield/cli/build/commands/resolve.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/resolve.js b/packages/expo-brownfield/cli/build/commands/resolve.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/resolve.js
rename to packages/expo-brownfield/cli/build/commands/resolve.js
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/types.d.ts b/packages/expo-brownfield/cli/build/commands/types.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/types.d.ts
rename to packages/expo-brownfield/cli/build/commands/types.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/commands/types.js b/packages/expo-brownfield/cli/build/commands/types.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/commands/types.js
rename to packages/expo-brownfield/cli/build/commands/types.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/args.d.ts b/packages/expo-brownfield/cli/build/constants/args.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/args.d.ts
rename to packages/expo-brownfield/cli/build/constants/args.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/args.js b/packages/expo-brownfield/cli/build/constants/args.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/args.js
rename to packages/expo-brownfield/cli/build/constants/args.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/defaults.d.ts b/packages/expo-brownfield/cli/build/constants/defaults.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/defaults.d.ts
rename to packages/expo-brownfield/cli/build/constants/defaults.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/defaults.js b/packages/expo-brownfield/cli/build/constants/defaults.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/defaults.js
rename to packages/expo-brownfield/cli/build/constants/defaults.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/errors.d.ts b/packages/expo-brownfield/cli/build/constants/errors.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/errors.d.ts
rename to packages/expo-brownfield/cli/build/constants/errors.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/errors.js b/packages/expo-brownfield/cli/build/constants/errors.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/errors.js
rename to packages/expo-brownfield/cli/build/constants/errors.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/help.d.ts b/packages/expo-brownfield/cli/build/constants/help.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/help.d.ts
rename to packages/expo-brownfield/cli/build/constants/help.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/help.js b/packages/expo-brownfield/cli/build/constants/help.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/help.js
rename to packages/expo-brownfield/cli/build/constants/help.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/index.d.ts b/packages/expo-brownfield/cli/build/constants/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/index.d.ts
rename to packages/expo-brownfield/cli/build/constants/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/index.js b/packages/expo-brownfield/cli/build/constants/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/index.js
rename to packages/expo-brownfield/cli/build/constants/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/output.d.ts b/packages/expo-brownfield/cli/build/constants/output.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/output.d.ts
rename to packages/expo-brownfield/cli/build/constants/output.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/constants/output.js b/packages/expo-brownfield/cli/build/constants/output.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/constants/output.js
rename to packages/expo-brownfield/cli/build/constants/output.js
diff --git a/packages/expo-brownfield/plugin/build/cli/index.d.ts b/packages/expo-brownfield/cli/build/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/index.d.ts
rename to packages/expo-brownfield/cli/build/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/index.js b/packages/expo-brownfield/cli/build/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/index.js
rename to packages/expo-brownfield/cli/build/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/args.d.ts b/packages/expo-brownfield/cli/build/utils/args.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/args.d.ts
rename to packages/expo-brownfield/cli/build/utils/args.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/args.js b/packages/expo-brownfield/cli/build/utils/args.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/args.js
rename to packages/expo-brownfield/cli/build/utils/args.js
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/build.d.ts b/packages/expo-brownfield/cli/build/utils/build.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/build.d.ts
rename to packages/expo-brownfield/cli/build/utils/build.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/build.js b/packages/expo-brownfield/cli/build/utils/build.js
similarity index 96%
rename from packages/expo-brownfield/plugin/build/cli/utils/build.js
rename to packages/expo-brownfield/cli/build/utils/build.js
index be9b7d84920519..1c10228395047e 100644
--- a/packages/expo-brownfield/plugin/build/cli/utils/build.js
+++ b/packages/expo-brownfield/cli/build/utils/build.js
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.ensurePrebuild = exports.maybeRunPrebuild = exports.checkPrebuild = exports.withSpinner = exports.printConfig = void 0;
const chalk_1 = __importDefault(require("chalk"));
const promises_1 = __importDefault(require("node:fs/promises"));
-const node_path_1 = __importDefault(require("node:path"));
const ora_1 = __importDefault(require("ora"));
+const path_1 = __importDefault(require("path"));
const prompts_1 = __importDefault(require("prompts"));
const commands_1 = require("./commands");
const constants_1 = require("../constants");
@@ -58,7 +58,7 @@ const withSpinner = async ({ operation, loaderMessage, successMessage, errorMess
};
exports.withSpinner = withSpinner;
const checkPrebuild = async (platform) => {
- const nativeProjectPath = node_path_1.default.join(process.cwd(), platform);
+ const nativeProjectPath = path_1.default.join(process.cwd(), platform);
try {
await promises_1.default.access(nativeProjectPath);
}
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/commands.d.ts b/packages/expo-brownfield/cli/build/utils/commands.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/commands.d.ts
rename to packages/expo-brownfield/cli/build/utils/commands.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/commands.js b/packages/expo-brownfield/cli/build/utils/commands.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/commands.js
rename to packages/expo-brownfield/cli/build/utils/commands.js
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/config.d.ts b/packages/expo-brownfield/cli/build/utils/config.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/config.d.ts
rename to packages/expo-brownfield/cli/build/utils/config.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/config.js b/packages/expo-brownfield/cli/build/utils/config.js
similarity index 80%
rename from packages/expo-brownfield/plugin/build/cli/utils/config.js
rename to packages/expo-brownfield/cli/build/utils/config.js
index 54b471e87065c9..6f70473ac7b44a 100644
--- a/packages/expo-brownfield/plugin/build/cli/utils/config.js
+++ b/packages/expo-brownfield/cli/build/utils/config.js
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBuildTypeAndroid = exports.getBuildTypeCommon = exports.getTasksAndroidConfig = exports.getIosConfig = exports.getAndroidConfig = exports.getCommonConfig = void 0;
-const node_path_1 = __importDefault(require("node:path"));
+const path_1 = __importDefault(require("path"));
const constants_1 = require("../constants");
const infer_1 = require("./infer");
const getCommonConfig = (args) => {
@@ -26,15 +26,15 @@ const getAndroidConfig = async (args) => {
exports.getAndroidConfig = getAndroidConfig;
const getIosConfig = async (args) => {
const buildType = (0, exports.getBuildTypeCommon)(args);
- const derivedDataPath = node_path_1.default.join(process.cwd(), 'ios/build');
- const buildProductsPath = node_path_1.default.join(derivedDataPath, 'Build/Products');
+ const derivedDataPath = path_1.default.join(process.cwd(), 'ios/build');
+ const buildProductsPath = path_1.default.join(derivedDataPath, 'Build/Products');
return {
...(0, exports.getCommonConfig)(args),
- artifacts: node_path_1.default.join(process.cwd(), args['--artifacts'] || constants_1.Defaults.artifactsPath),
+ artifacts: path_1.default.join(process.cwd(), args['--artifacts'] || constants_1.Defaults.artifactsPath),
buildType,
derivedDataPath,
- device: node_path_1.default.join(buildProductsPath, `${buildType}-iphoneos`),
- simulator: node_path_1.default.join(buildProductsPath, `${buildType}-iphonesimulator`),
+ device: path_1.default.join(buildProductsPath, `${buildType}-iphoneos`),
+ simulator: path_1.default.join(buildProductsPath, `${buildType}-iphonesimulator`),
hermesFrameworkPath: args['--hermes-framework'] || constants_1.Defaults.hermesFrameworkPath,
scheme: args['--scheme'] || (await (0, infer_1.inferScheme)()),
workspace: args['--workspace'] || (await (0, infer_1.inferXCWorkspace)()),
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/help.d.ts b/packages/expo-brownfield/cli/build/utils/help.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/help.d.ts
rename to packages/expo-brownfield/cli/build/utils/help.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/help.js b/packages/expo-brownfield/cli/build/utils/help.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/help.js
rename to packages/expo-brownfield/cli/build/utils/help.js
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/index.d.ts b/packages/expo-brownfield/cli/build/utils/index.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/index.d.ts
rename to packages/expo-brownfield/cli/build/utils/index.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/index.js b/packages/expo-brownfield/cli/build/utils/index.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/index.js
rename to packages/expo-brownfield/cli/build/utils/index.js
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/infer.d.ts b/packages/expo-brownfield/cli/build/utils/infer.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/infer.d.ts
rename to packages/expo-brownfield/cli/build/utils/infer.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/infer.js b/packages/expo-brownfield/cli/build/utils/infer.js
similarity index 92%
rename from packages/expo-brownfield/plugin/build/cli/utils/infer.js
rename to packages/expo-brownfield/cli/build/utils/infer.js
index cb5aa5b35b7abf..4c75fe87a40f0e 100644
--- a/packages/expo-brownfield/plugin/build/cli/utils/infer.js
+++ b/packages/expo-brownfield/cli/build/utils/infer.js
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.inferScheme = exports.inferXCWorkspace = exports.inferAndroidLibrary = void 0;
const promises_1 = __importDefault(require("node:fs/promises"));
-const node_path_1 = __importDefault(require("node:path"));
+const path_1 = __importDefault(require("path"));
const constants_1 = require("../constants");
const inferAndroidLibrary = async () => {
const files = ['ReactNativeFragment.kt', 'ReactNativeHostManager.kt'];
@@ -32,7 +32,7 @@ const inferXCWorkspace = async () => {
try {
const xcworkspace = (await promises_1.default.readdir('ios', { withFileTypes: true })).find((item) => item.name.endsWith('.xcworkspace'));
if (xcworkspace) {
- return node_path_1.default.join(xcworkspace.parentPath, xcworkspace.name);
+ return path_1.default.join(xcworkspace.parentPath, xcworkspace.name);
}
throw new Error();
}
@@ -46,7 +46,6 @@ const inferScheme = async () => {
const subDirs = (await promises_1.default.readdir('ios', { withFileTypes: true })).filter((item) => item.isDirectory());
let scheme = undefined;
for (const subDir of subDirs) {
- // TODO: Rename this file to RNHostManager?
if ((await promises_1.default.readdir(`ios/${subDir.name}`)).includes('ReactNativeHostManager.swift')) {
scheme = subDir.name;
}
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/types.d.ts b/packages/expo-brownfield/cli/build/utils/types.d.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/types.d.ts
rename to packages/expo-brownfield/cli/build/utils/types.d.ts
diff --git a/packages/expo-brownfield/plugin/build/cli/utils/types.js b/packages/expo-brownfield/cli/build/utils/types.js
similarity index 100%
rename from packages/expo-brownfield/plugin/build/cli/utils/types.js
rename to packages/expo-brownfield/cli/build/utils/types.js
diff --git a/packages/expo-brownfield/plugin/src/cli/build.ts b/packages/expo-brownfield/cli/src/build.ts
similarity index 98%
rename from packages/expo-brownfield/plugin/src/cli/build.ts
rename to packages/expo-brownfield/cli/src/build.ts
index c4179a5ddef2fa..a53e1375b2d910 100644
--- a/packages/expo-brownfield/plugin/src/cli/build.ts
+++ b/packages/expo-brownfield/cli/src/build.ts
@@ -1,5 +1,5 @@
// import fs from 'node:fs/promises';
-// import path from 'node:path';
+// import path from 'path';
// import readline from 'node:readline/promises';
// import chalk from 'chalk';
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/android/build.ts b/packages/expo-brownfield/cli/src/commands/android/build.ts
similarity index 98%
rename from packages/expo-brownfield/plugin/src/cli/commands/android/build.ts
rename to packages/expo-brownfield/cli/src/commands/android/build.ts
index f9411fcc24f42e..608807cf8e6866 100644
--- a/packages/expo-brownfield/plugin/src/cli/commands/android/build.ts
+++ b/packages/expo-brownfield/cli/src/commands/android/build.ts
@@ -1,4 +1,4 @@
-import path from 'node:path';
+import path from 'path';
import { Args, Help } from '../../constants';
import {
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/android/index.ts b/packages/expo-brownfield/cli/src/commands/android/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/android/index.ts
rename to packages/expo-brownfield/cli/src/commands/android/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/android/tasks.ts b/packages/expo-brownfield/cli/src/commands/android/tasks.ts
similarity index 98%
rename from packages/expo-brownfield/plugin/src/cli/commands/android/tasks.ts
rename to packages/expo-brownfield/cli/src/commands/android/tasks.ts
index 2d8e7d62c7225d..af647fd78469fe 100644
--- a/packages/expo-brownfield/plugin/src/cli/commands/android/tasks.ts
+++ b/packages/expo-brownfield/cli/src/commands/android/tasks.ts
@@ -1,5 +1,5 @@
import chalk from 'chalk';
-import path from 'node:path';
+import path from 'path';
import { Args, Help } from '../../constants';
import { getTasksAndroidConfig, parseArgs, runCommand, withSpinner } from '../../utils';
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/commands.ts b/packages/expo-brownfield/cli/src/commands/commands.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/commands.ts
rename to packages/expo-brownfield/cli/src/commands/commands.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/general/help.ts b/packages/expo-brownfield/cli/src/commands/general/help.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/general/help.ts
rename to packages/expo-brownfield/cli/src/commands/general/help.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/general/index.ts b/packages/expo-brownfield/cli/src/commands/general/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/general/index.ts
rename to packages/expo-brownfield/cli/src/commands/general/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/general/version.ts b/packages/expo-brownfield/cli/src/commands/general/version.ts
similarity index 80%
rename from packages/expo-brownfield/plugin/src/cli/commands/general/version.ts
rename to packages/expo-brownfield/cli/src/commands/general/version.ts
index 76fc8ad84342fc..b1e1af579fb1e8 100644
--- a/packages/expo-brownfield/plugin/src/cli/commands/general/version.ts
+++ b/packages/expo-brownfield/cli/src/commands/general/version.ts
@@ -1,5 +1,5 @@
// @ts-expect-error - the directory structure is different after building
-import { version } from '../../../../../package.json';
+import { version } from '../../../../package.json';
/**
* Prints the version of the CLI (= the version of the package).
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/index.ts b/packages/expo-brownfield/cli/src/commands/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/index.ts
rename to packages/expo-brownfield/cli/src/commands/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/ios/build.ts b/packages/expo-brownfield/cli/src/commands/ios/build.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/ios/build.ts
rename to packages/expo-brownfield/cli/src/commands/ios/build.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/ios/index.ts b/packages/expo-brownfield/cli/src/commands/ios/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/ios/index.ts
rename to packages/expo-brownfield/cli/src/commands/ios/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/resolve.ts b/packages/expo-brownfield/cli/src/commands/resolve.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/resolve.ts
rename to packages/expo-brownfield/cli/src/commands/resolve.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/commands/types.ts b/packages/expo-brownfield/cli/src/commands/types.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/commands/types.ts
rename to packages/expo-brownfield/cli/src/commands/types.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/args.ts b/packages/expo-brownfield/cli/src/constants/args.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/args.ts
rename to packages/expo-brownfield/cli/src/constants/args.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/defaults.ts b/packages/expo-brownfield/cli/src/constants/defaults.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/defaults.ts
rename to packages/expo-brownfield/cli/src/constants/defaults.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/errors.ts b/packages/expo-brownfield/cli/src/constants/errors.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/errors.ts
rename to packages/expo-brownfield/cli/src/constants/errors.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/help.ts b/packages/expo-brownfield/cli/src/constants/help.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/help.ts
rename to packages/expo-brownfield/cli/src/constants/help.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/index.ts b/packages/expo-brownfield/cli/src/constants/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/index.ts
rename to packages/expo-brownfield/cli/src/constants/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/constants/output.ts b/packages/expo-brownfield/cli/src/constants/output.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/constants/output.ts
rename to packages/expo-brownfield/cli/src/constants/output.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/index.ts b/packages/expo-brownfield/cli/src/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/index.ts
rename to packages/expo-brownfield/cli/src/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/args.ts b/packages/expo-brownfield/cli/src/utils/args.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/utils/args.ts
rename to packages/expo-brownfield/cli/src/utils/args.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/build.ts b/packages/expo-brownfield/cli/src/utils/build.ts
similarity index 99%
rename from packages/expo-brownfield/plugin/src/cli/utils/build.ts
rename to packages/expo-brownfield/cli/src/utils/build.ts
index 3d1e13e4bf6329..a660472f336216 100644
--- a/packages/expo-brownfield/plugin/src/cli/utils/build.ts
+++ b/packages/expo-brownfield/cli/src/utils/build.ts
@@ -1,7 +1,7 @@
import chalk from 'chalk';
import fs from 'node:fs/promises';
-import path from 'node:path';
import ora, { type Ora } from 'ora';
+import path from 'path';
import prompts from 'prompts';
import { runCommand } from './commands';
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/commands.ts b/packages/expo-brownfield/cli/src/utils/commands.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/utils/commands.ts
rename to packages/expo-brownfield/cli/src/utils/commands.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/config.ts b/packages/expo-brownfield/cli/src/utils/config.ts
similarity index 98%
rename from packages/expo-brownfield/plugin/src/cli/utils/config.ts
rename to packages/expo-brownfield/cli/src/utils/config.ts
index 297cebbdbc1d53..edd8aa00f0b240 100644
--- a/packages/expo-brownfield/plugin/src/cli/utils/config.ts
+++ b/packages/expo-brownfield/cli/src/utils/config.ts
@@ -1,5 +1,5 @@
import type { Result, Spec } from 'arg';
-import path from 'node:path';
+import path from 'path';
import type {
BuildConfigAndroid,
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/help.ts b/packages/expo-brownfield/cli/src/utils/help.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/utils/help.ts
rename to packages/expo-brownfield/cli/src/utils/help.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/index.ts b/packages/expo-brownfield/cli/src/utils/index.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/utils/index.ts
rename to packages/expo-brownfield/cli/src/utils/index.ts
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/infer.ts b/packages/expo-brownfield/cli/src/utils/infer.ts
similarity index 95%
rename from packages/expo-brownfield/plugin/src/cli/utils/infer.ts
rename to packages/expo-brownfield/cli/src/utils/infer.ts
index 2e8f65558c4278..6291319de46204 100644
--- a/packages/expo-brownfield/plugin/src/cli/utils/infer.ts
+++ b/packages/expo-brownfield/cli/src/utils/infer.ts
@@ -1,5 +1,5 @@
import fs from 'node:fs/promises';
-import path from 'node:path';
+import path from 'path';
import { Defaults, Errors } from '../constants';
@@ -49,7 +49,6 @@ export const inferScheme = async (): Promise => {
);
let scheme: string | undefined = undefined;
for (const subDir of subDirs) {
- // TODO: Rename this file to RNHostManager?
if ((await fs.readdir(`ios/${subDir.name}`)).includes('ReactNativeHostManager.swift')) {
scheme = subDir.name;
}
diff --git a/packages/expo-brownfield/plugin/src/cli/utils/types.ts b/packages/expo-brownfield/cli/src/utils/types.ts
similarity index 100%
rename from packages/expo-brownfield/plugin/src/cli/utils/types.ts
rename to packages/expo-brownfield/cli/src/utils/types.ts
diff --git a/packages/expo-brownfield/cli/tsconfig.json b/packages/expo-brownfield/cli/tsconfig.json
new file mode 100644
index 00000000000000..354bddb4336eb1
--- /dev/null
+++ b/packages/expo-brownfield/cli/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "expo-module-scripts/tsconfig.plugin",
+ "compilerOptions": {
+ "outDir": "build",
+ "rootDir": "src"
+ },
+ "include": ["./src"],
+ "exclude": ["**/__mocks__/*", "**/__tests__/*"]
+}
diff --git a/packages/expo-brownfield/package.json b/packages/expo-brownfield/package.json
index c9dac8ba24c340..c44763cbaf3b24 100644
--- a/packages/expo-brownfield/package.json
+++ b/packages/expo-brownfield/package.json
@@ -4,7 +4,7 @@
"description": "Toolkit and APIs for adding brownfield setup to Expo projects",
"main": "./build/index.js",
"types": "./build/index.d.ts",
- "bin": "./plugin/build/cli/index.js",
+ "bin": "./cli/build/index.js",
"exports": {
".": {
"source": "./src/index.ts",
@@ -18,31 +18,13 @@
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
- "lint": "expo-module lint",
+ "lint": "expo-module lint && expo-module lint plugin && expo-module lint cli",
+ "lint:fix": "expo-module lint --fix && expo-module lint plugin --fix && expo-module lint cli --fix",
"test": "expo-module test",
"prepare": "expo-module prepare",
"prepublishOnly": "expo-module prepublishOnly",
"expo-module": "expo-module"
},
- "files": [
- "android/src",
- "android/build.gradle",
- "build/",
- "gradle-plugins/",
- "ios/",
- "plugin/",
- "templates/",
- "src/",
- ".eslintignore",
- ".eslintrc.js",
- "CHANGELOG.md",
- "README.md",
- "app.plugin.js",
- "babel.config.js",
- "expo-module.config.json",
- "package.json",
- "tsconfig.json"
- ],
"keywords": [
"react-native",
"expo",
diff --git a/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.d.ts b/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.d.ts
index 3dbae85087f86e..6ef58fceadddbd 100644
--- a/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.d.ts
+++ b/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.d.ts
@@ -1,3 +1,4 @@
import { type ConfigPlugin } from 'expo/config-plugins';
-declare const withPodfilePropertiesPlugin: ConfigPlugin;
+import type { PluginConfig } from '../types';
+declare const withPodfilePropertiesPlugin: ConfigPlugin;
export default withPodfilePropertiesPlugin;
diff --git a/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.js b/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.js
index f42f9738161085..66244d892e2ab1 100644
--- a/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.js
+++ b/packages/expo-brownfield/plugin/build/ios/plugins/withPodfilePropertiesPlugin.js
@@ -1,9 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("expo/config-plugins");
-const withPodfilePropertiesPlugin = (config) => {
+const withPodfilePropertiesPlugin = (config, pluginConfig) => {
return (0, config_plugins_1.withPodfileProperties)(config, (config) => {
config.modResults['ios.useFrameworks'] = 'static';
+ config.modResults['ios.brownfieldTargetName'] = pluginConfig.targetName;
return config;
});
};
diff --git a/packages/expo-brownfield/plugin/build/ios/types.d.ts b/packages/expo-brownfield/plugin/build/ios/types.d.ts
index 19dbf10b28135b..eda58957a4b9fc 100644
--- a/packages/expo-brownfield/plugin/build/ios/types.d.ts
+++ b/packages/expo-brownfield/plugin/build/ios/types.d.ts
@@ -4,6 +4,7 @@ export interface PluginConfig {
}
export type IOSPluginProps = Partial;
export type PluginProps = IOSPluginProps | undefined;
+export type PbxNativeTargetSection = Record;
export interface PbxNativeTarget {
isa: string;
name: string;
@@ -11,10 +12,14 @@ export interface PbxNativeTarget {
productReference: string;
productType: string;
buildConfigurationList: string;
- buildPhases: unknown[];
+ buildPhases: BuildPhase[];
buildRules: unknown[];
dependencies: unknown[];
}
+export interface BuildPhase {
+ value: string;
+ comment: string;
+}
export interface Target {
uuid: string;
pbxNativeTarget: PbxNativeTarget;
diff --git a/packages/expo-brownfield/plugin/build/ios/utils/podfile.js b/packages/expo-brownfield/plugin/build/ios/utils/podfile.js
index 17f3e4b4bf83fc..25fd3e701e66fb 100644
--- a/packages/expo-brownfield/plugin/build/ios/utils/podfile.js
+++ b/packages/expo-brownfield/plugin/build/ios/utils/podfile.js
@@ -4,8 +4,7 @@ exports.addCustomRubyScriptImport = exports.addNewPodsTarget = void 0;
const getTargetNameLines = (targetName) => {
return [` target '${targetName}' do`, ' inherit! :complete', ' end'];
};
-const getCustomScriptLines = (targetName) => [
- `$BROWNFIELD_TARGET_NAME = '${targetName}'`,
+const getCustomScriptLines = () => [
'require File.join(File.dirname(`node --print "require.resolve(\'expo-brownfield/package.json\')"`), "plugin/src/ios/scripts/reorder_build_phases.rb")',
];
const addNewPodsTarget = (podfile, targetName) => {
@@ -26,7 +25,7 @@ const addNewPodsTarget = (podfile, targetName) => {
};
exports.addNewPodsTarget = addNewPodsTarget;
const addCustomRubyScriptImport = (podfile, targetName) => {
- const requireLines = getCustomScriptLines(targetName);
+ const requireLines = getCustomScriptLines();
let podFileLines = podfile.split('\n');
if (podFileLines.find((line) => line.includes(requireLines[0].trim()))) {
console.info('Require for custom script is already added. Skipping...');
diff --git a/packages/expo-brownfield/plugin/build/ios/utils/project.js b/packages/expo-brownfield/plugin/build/ios/utils/project.js
index e3d83384c622b4..e4a67e1bd1fd8d 100644
--- a/packages/expo-brownfield/plugin/build/ios/utils/project.js
+++ b/packages/expo-brownfield/plugin/build/ios/utils/project.js
@@ -20,16 +20,12 @@ const createGroup = (project, name, path, files = []) => {
};
exports.createGroup = createGroup;
const configureBuildPhases = (project, target, targetName, projectName, files = []) => {
- const nativeTargetSection = project.pbxNativeTargetSection();
- const mainTargetKey = Object.keys(nativeTargetSection).find((key) => !key.endsWith('_comment') &&
- nativeTargetSection[key].productType === constants_1.Constants.Target.ApplicationProductType);
- const mainTarget = nativeTargetSection[mainTargetKey];
- // TODO: Fix types
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const mainTarget = findNativeTargetSection(project, (target) => target.productType === constants_1.Constants.Target.ApplicationProductType);
const bundlePhase = mainTarget.buildPhases.find((phase) => phase.comment.includes(constants_1.Constants.BuildPhase.RNBundlePhase));
- const destTargetKey = Object.keys(nativeTargetSection).find((key) => !key.endsWith('_comment') &&
- nativeTargetSection[key].productType !== constants_1.Constants.Target.ApplicationProductType);
- const destTarget = nativeTargetSection[destTargetKey];
+ if (!bundlePhase) {
+ throw new Error(`'${constants_1.Constants.BuildPhase.RNBundlePhase}' build phase cannot be found in main target build phases`);
+ }
+ const destTarget = findNativeTargetSection(project, (target) => target.productType !== constants_1.Constants.Target.ApplicationProductType);
destTarget.buildPhases = [...destTarget.buildPhases, bundlePhase];
const script = (0, utils_1.readFromTemplate)('patch-expo.sh', { targetName, projectName });
project.addBuildPhase([], constants_1.Constants.BuildPhase.Script, constants_1.Constants.BuildPhase.PatchExpoPhase, target.uuid, { shellPath: '/bin/sh', shellScript: script });
@@ -115,3 +111,13 @@ const inferProjectName = (platformProjectRoot) => {
return xcodeproj.replace('.xcodeproj', '');
};
exports.inferProjectName = inferProjectName;
+const findNativeTargetSection = (project, predicate) => {
+ const nativeTargetSection = project.pbxNativeTargetSection();
+ const key = Object.keys(nativeTargetSection).find((key) => !key.endsWith('_comment') &&
+ typeof nativeTargetSection[key] !== 'string' &&
+ predicate(nativeTargetSection[key]));
+ if (!key) {
+ throw new Error('Native target key mathching predicate cannot be found in native target section of PBXProj');
+ }
+ return nativeTargetSection[key];
+};
diff --git a/packages/expo-brownfield/plugin/build/ios/withIosPlugin.js b/packages/expo-brownfield/plugin/build/ios/withIosPlugin.js
index dd6ea5443cf4ee..55d6d769974281 100644
--- a/packages/expo-brownfield/plugin/build/ios/withIosPlugin.js
+++ b/packages/expo-brownfield/plugin/build/ios/withIosPlugin.js
@@ -6,7 +6,7 @@ const withIosPlugin = (config, props) => {
const pluginConfig = (0, utils_1.getPluginConfig)(props, config);
config = (0, plugins_1.withXcodeProjectPlugin)(config, pluginConfig);
config = (0, plugins_1.withPodfilePlugin)(config, pluginConfig);
- config = (0, plugins_1.withPodfilePropertiesPlugin)(config);
+ config = (0, plugins_1.withPodfilePropertiesPlugin)(config, pluginConfig);
config = (0, plugins_1.withBuildPropertiesPlugin)(config);
return config;
};
diff --git a/packages/expo-brownfield/plugin/src/ios/plugins/withPodfilePropertiesPlugin.ts b/packages/expo-brownfield/plugin/src/ios/plugins/withPodfilePropertiesPlugin.ts
index 19b84d0d610816..0d7e4e1e82c67b 100644
--- a/packages/expo-brownfield/plugin/src/ios/plugins/withPodfilePropertiesPlugin.ts
+++ b/packages/expo-brownfield/plugin/src/ios/plugins/withPodfilePropertiesPlugin.ts
@@ -1,8 +1,11 @@
import { type ConfigPlugin, withPodfileProperties } from 'expo/config-plugins';
-const withPodfilePropertiesPlugin: ConfigPlugin = (config) => {
+import type { PluginConfig } from '../types';
+
+const withPodfilePropertiesPlugin: ConfigPlugin = (config, pluginConfig) => {
return withPodfileProperties(config, (config) => {
config.modResults['ios.useFrameworks'] = 'static';
+ config.modResults['ios.brownfieldTargetName'] = pluginConfig.targetName;
return config;
});
};
diff --git a/packages/expo-brownfield/plugin/src/ios/scripts/reorder_build_phases.rb b/packages/expo-brownfield/plugin/src/ios/scripts/reorder_build_phases.rb
index a778769871853c..c70f1b5b57c507 100644
--- a/packages/expo-brownfield/plugin/src/ios/scripts/reorder_build_phases.rb
+++ b/packages/expo-brownfield/plugin/src/ios/scripts/reorder_build_phases.rb
@@ -18,6 +18,7 @@ class UserProjectIntegrator
results = _original_integrate_user_targets.bind(self).()
UI.message '- Ensuring correct order of build phases' do
+ podfile_properties = JSON.parse(File.read(File.join(Pod::Config.instance.project_root, 'Podfile.properties.json')))
all_projects = targets.map { |target| target.user_project }.uniq
projects_to_integrate = user_projects_to_integrate()
@@ -31,7 +32,7 @@ class UserProjectIntegrator
end
targets_with_modules_provider.each do |target|
- next unless target.target_definition.name == $BROWNFIELD_TARGET_NAME
+ next unless target.target_definition.name == podfile_properties['ios.brownfieldTargetName']
target_name = target.target_definition.name
native_target = project.native_targets.find { |native_target| native_target.name == target_name }
diff --git a/packages/expo-brownfield/plugin/src/ios/types.ts b/packages/expo-brownfield/plugin/src/ios/types.ts
index e0233ad97155e2..afe1b407fd168a 100644
--- a/packages/expo-brownfield/plugin/src/ios/types.ts
+++ b/packages/expo-brownfield/plugin/src/ios/types.ts
@@ -7,6 +7,8 @@ export type IOSPluginProps = Partial;
export type PluginProps = IOSPluginProps | undefined;
+export type PbxNativeTargetSection = Record;
+
export interface PbxNativeTarget {
isa: string;
name: string;
@@ -14,11 +16,16 @@ export interface PbxNativeTarget {
productReference: string;
productType: string;
buildConfigurationList: string;
- buildPhases: unknown[];
+ buildPhases: BuildPhase[];
buildRules: unknown[];
dependencies: unknown[];
}
+export interface BuildPhase {
+ value: string;
+ comment: string;
+}
+
export interface Target {
uuid: string;
pbxNativeTarget: PbxNativeTarget;
diff --git a/packages/expo-brownfield/plugin/src/ios/utils/podfile.ts b/packages/expo-brownfield/plugin/src/ios/utils/podfile.ts
index fc28220ed37188..2becee4815b58f 100644
--- a/packages/expo-brownfield/plugin/src/ios/utils/podfile.ts
+++ b/packages/expo-brownfield/plugin/src/ios/utils/podfile.ts
@@ -2,8 +2,7 @@ const getTargetNameLines = (targetName: string): string[] => {
return [` target '${targetName}' do`, ' inherit! :complete', ' end'];
};
-const getCustomScriptLines = (targetName: string): string[] => [
- `$BROWNFIELD_TARGET_NAME = '${targetName}'`,
+const getCustomScriptLines = (): string[] => [
'require File.join(File.dirname(`node --print "require.resolve(\'expo-brownfield/package.json\')"`), "plugin/src/ios/scripts/reorder_build_phases.rb")',
];
@@ -27,7 +26,7 @@ export const addNewPodsTarget = (podfile: string, targetName: string): string =>
};
export const addCustomRubyScriptImport = (podfile: string, targetName: string) => {
- const requireLines = getCustomScriptLines(targetName);
+ const requireLines = getCustomScriptLines();
let podFileLines = podfile.split('\n');
if (podFileLines.find((line) => line.includes(requireLines[0].trim()))) {
console.info('Require for custom script is already added. Skipping...');
diff --git a/packages/expo-brownfield/plugin/src/ios/utils/project.ts b/packages/expo-brownfield/plugin/src/ios/utils/project.ts
index fff927f1b269a8..6aa6e679f56897 100644
--- a/packages/expo-brownfield/plugin/src/ios/utils/project.ts
+++ b/packages/expo-brownfield/plugin/src/ios/utils/project.ts
@@ -1,7 +1,7 @@
import type { XcodeProject } from 'expo/config-plugins';
import { readdirSync } from 'node:fs';
-import type { Group, PbxGroup, Target } from '../types';
+import type { Group, PbxGroup, PbxNativeTarget, PbxNativeTargetSection, Target } from '../types';
import { readFromTemplate } from '../utils';
import { Constants } from './constants';
@@ -29,7 +29,6 @@ export const createGroup = (
files: string[] = []
): Group => {
const group = project.addPbxGroup(files, name, path, '""') as unknown as Group;
-
const mainGroup = getGroupByUUID(project, project.getFirstProject().firstProject.mainGroup);
mainGroup.children = [...mainGroup.children, { value: group.uuid, comment: name }];
@@ -44,28 +43,24 @@ export const configureBuildPhases = (
projectName: string,
files: string[] = []
) => {
- const nativeTargetSection = project.pbxNativeTargetSection();
-
- const mainTargetKey = Object.keys(nativeTargetSection).find(
- (key) =>
- !key.endsWith('_comment') &&
- nativeTargetSection[key].productType === Constants.Target.ApplicationProductType
+ const mainTarget = findNativeTargetSection(
+ project,
+ (target) => target.productType === Constants.Target.ApplicationProductType
);
- const mainTarget = nativeTargetSection[mainTargetKey];
- // TODO: Fix types
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const bundlePhase = mainTarget.buildPhases.find((phase: any) =>
+ const bundlePhase = mainTarget.buildPhases.find((phase) =>
phase.comment.includes(Constants.BuildPhase.RNBundlePhase)
);
+ if (!bundlePhase) {
+ throw new Error(
+ `'${Constants.BuildPhase.RNBundlePhase}' build phase cannot be found in main target build phases`
+ );
+ }
- const destTargetKey = Object.keys(nativeTargetSection).find(
- (key) =>
- !key.endsWith('_comment') &&
- nativeTargetSection[key].productType !== Constants.Target.ApplicationProductType
+ const destTarget = findNativeTargetSection(
+ project,
+ (target) => target.productType !== Constants.Target.ApplicationProductType
);
- const destTarget = nativeTargetSection[destTargetKey];
-
destTarget.buildPhases = [...destTarget.buildPhases, bundlePhase];
const script = readFromTemplate('patch-expo.sh', { targetName, projectName });
@@ -195,3 +190,24 @@ export const inferProjectName = (platformProjectRoot: string): string => {
return xcodeproj.replace('.xcodeproj', '');
};
+
+const findNativeTargetSection = (
+ project: XcodeProject,
+ predicate: (target: PbxNativeTarget) => boolean
+): PbxNativeTarget => {
+ const nativeTargetSection = project.pbxNativeTargetSection() as unknown as PbxNativeTargetSection;
+ const key = Object.keys(nativeTargetSection).find(
+ (key) =>
+ !key.endsWith('_comment') &&
+ typeof nativeTargetSection[key] !== 'string' &&
+ predicate(nativeTargetSection[key] as unknown as PbxNativeTarget)
+ );
+
+ if (!key) {
+ throw new Error(
+ 'Native target key mathching predicate cannot be found in native target section of PBXProj'
+ );
+ }
+
+ return nativeTargetSection[key] as unknown as PbxNativeTarget;
+};
diff --git a/packages/expo-brownfield/plugin/src/ios/withIosPlugin.ts b/packages/expo-brownfield/plugin/src/ios/withIosPlugin.ts
index 2382c6bcbb9264..a14c1b46f06090 100644
--- a/packages/expo-brownfield/plugin/src/ios/withIosPlugin.ts
+++ b/packages/expo-brownfield/plugin/src/ios/withIosPlugin.ts
@@ -14,7 +14,7 @@ const withIosPlugin: ConfigPlugin = (config, props) => {
config = withXcodeProjectPlugin(config, pluginConfig);
config = withPodfilePlugin(config, pluginConfig);
- config = withPodfilePropertiesPlugin(config);
+ config = withPodfilePropertiesPlugin(config, pluginConfig);
config = withBuildPropertiesPlugin(config);
return config;
diff --git a/packages/expo-brownfield/plugin/tsconfig.json b/packages/expo-brownfield/plugin/tsconfig.json
index 3f86749932120c..354bddb4336eb1 100644
--- a/packages/expo-brownfield/plugin/tsconfig.json
+++ b/packages/expo-brownfield/plugin/tsconfig.json
@@ -2,12 +2,7 @@
"extends": "expo-module-scripts/tsconfig.plugin",
"compilerOptions": {
"outDir": "build",
- "rootDir": "src",
- "typeRoots": [
- "./ts-declarations",
- "./node_modules/@types",
- "../../node_modules/@types",
- ]
+ "rootDir": "src"
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
From 3aacaff9517ae50f216e4a40d043b839086a2501 Mon Sep 17 00:00:00 2001
From: Aman Mittal
Date: Tue, 13 Jan 2026 01:32:10 +0530
Subject: [PATCH 6/8] [docs] Update HeadingCase for Vale (#42104)
---
docs/.vale/writing-styles/expo-docs/HeadingCase.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/.vale/writing-styles/expo-docs/HeadingCase.yml b/docs/.vale/writing-styles/expo-docs/HeadingCase.yml
index 64f2936076b032..a056b4bf6f7c7f 100644
--- a/docs/.vale/writing-styles/expo-docs/HeadingCase.yml
+++ b/docs/.vale/writing-styles/expo-docs/HeadingCase.yml
@@ -20,6 +20,7 @@ exceptions:
- '.*^iOS(.*)'
- '.*web.*'
- '.*AASA.*'
+ - '.*AES.*'
- '.*API.*'
- '.*APIs.*'
- '.*^Android(.*)'
@@ -215,7 +216,7 @@ exceptions:
# PascalCase for React component names that end with common component suffixes
- '^[A-Z][a-zA-Z]*(?:Input|Sheet|Picker|Progress|Menu|View|Button|Switch|Slider|Text|TextInput)(?:\s*\([^)]+\))?$'
# Standalone Expo UI component names
- - '^(?:BottomSheet|CircularProgress|LinearProgress|DateTimePicker|ContextMenu|ColorPicker|TextField)(?:\s*\([^)]+\))?$'
+ - '^(?:BottomSheet|Button|Chip|CircularProgress|ColorPicker|ContextMenu|DatePicker|DateTimePicker|DisclosureGroup|Divider|Form|Gauge|Host|LinearProgress|List|Menu|Modifiers|Namespace|Picker|Popover|ProgressView|Section|Slider|Switch|TextField|TextInput|Toggle)(?:\s*\([^)]+\))?$'
# Component, service and product names that are proper nouns
- '^(?:TinyBase|LiveStore|LaunchDarkly|OneSignal|CleverTap|LogRocket|Vexo|BugSnag|Meta|Vercel|TabTrigger|TabList|Tabs|Drawer|TextEncoder|TextDecoder|AudioPlayer|VideoPlayer)(?:\s*\([^)]+\))?$'
# Specific edge cases
From eeef90c71ffe2f96cb654c146a38789114e0b25e Mon Sep 17 00:00:00 2001
From: Alan Hughes <30924086+alanjhughes@users.noreply.github.com>
Date: Mon, 12 Jan 2026 20:30:46 +0000
Subject: [PATCH 7/8] [android][expo-go] Make module registration safer
(#42097)
---
.../versioned/host/exp/exponent/ExponentPackage.kt | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/apps/expo-go/android/expoview/src/main/java/versioned/host/exp/exponent/ExponentPackage.kt b/apps/expo-go/android/expoview/src/main/java/versioned/host/exp/exponent/ExponentPackage.kt
index c2a56675627036..8bfe552f90b8fc 100644
--- a/apps/expo-go/android/expoview/src/main/java/versioned/host/exp/exponent/ExponentPackage.kt
+++ b/apps/expo-go/android/expoview/src/main/java/versioned/host/exp/exponent/ExponentPackage.kt
@@ -131,10 +131,10 @@ class ExponentPackage : ReactPackage {
nativeModules.add(NetInfoModule(reactContext))
nativeModules.add(EdgeToEdgeModule(reactContext))
nativeModules.add(KeyboardControllerModule(reactContext))
- nativeModules.addAll(SvgPackage().getReactModuleInfoProvider().getReactModuleInfos().map { SvgPackage().getModule(it.value.name, reactContext)!! })
- nativeModules.addAll(MapsPackage().getReactModuleInfoProvider().getReactModuleInfos().map { MapsPackage().getModule(it.value.name, reactContext)!! })
- nativeModules.addAll(RNDateTimePickerPackage().getReactModuleInfoProvider().getReactModuleInfos().map { RNDateTimePickerPackage().getModule(it.value.name, reactContext)!! })
- nativeModules.addAll(stripePackage.getReactModuleInfoProvider().getReactModuleInfos().map { stripePackage.getModule(it.value.name, reactContext)!! })
+ nativeModules.addAll(svgPackage.getReactModuleInfoProvider().getReactModuleInfos().values.mapNotNull { svgPackage.getModule(it.name, reactContext) })
+ nativeModules.addAll(mapsPackage.getReactModuleInfoProvider().getReactModuleInfos().values.mapNotNull { mapsPackage.getModule(it.name, reactContext) })
+ nativeModules.addAll(dateTimePackage.getReactModuleInfoProvider().getReactModuleInfos().values.mapNotNull { dateTimePackage.getModule(it.name, reactContext) })
+ nativeModules.addAll(stripePackage.getReactModuleInfoProvider().getReactModuleInfos().values.mapNotNull { stripePackage.getModule(it.name, reactContext) })
nativeModules.addAll(skiaPackage.createNativeModules(reactContext))
// Call to create native modules has to be at the bottom --
@@ -214,6 +214,9 @@ class ExponentPackage : ReactPackage {
// Need to avoid initializing duplicated packages
private val stripePackage = StripeSdkPackage()
private val skiaPackage = RNSkiaPackage()
+ private val mapsPackage = MapsPackage()
+ private val dateTimePackage = RNDateTimePickerPackage()
+ private val svgPackage = SvgPackage()
fun kernelExponentPackage(
context: Context,
From b660ed14aea626fb9e3b34dec383060558494d9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bart=C5=82omiej=20Klocek?=
Date: Mon, 12 Jan 2026 21:32:57 +0100
Subject: [PATCH 8/8] [core][ios] Add support for `ArrayBuffer`s (#41548)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
# Why
Follow up #41404 and #41415 for Android.
Adds support for `JavaScriptArrayBuffer` and `NativeArrayBuffer` in Expo
modules.
# How
- Similarly to Android version, created two types of ArrayBuffers:
- `JavaScriptArrayBuffer` that wraps JSI ArrayBuffer object
- `NativeArrayBuffer` that manages direct memory, is thread safe, can be
created on native side. When used as argument type, a JS buffer is
copied. Then, zero-copy JSI ArrayBuffer is created upon returning.
- Both inherit the `ArrayBuffer` class which contains some utilities for
working with `Unsafe[...]Pointer`s and `Data`.
I tried to keep code organized similarly to the typed arrays
implementation, to keep it somehow consistent.
# Test Plan
- Created native unit test specs for the APIs.
- Manual testing in NCL
# Checklist
- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
---------
Co-authored-by: Ćukasz Kosmaty
---
packages/expo-modules-core/CHANGELOG.md | 1 +
.../common/cpp/JSI/MemoryBuffer.cpp | 24 ++
.../common/cpp/JSI/MemoryBuffer.h | 35 ++
.../Core/ArrayBuffers/AnyArrayBuffer.swift | 19 ++
.../ios/Core/ArrayBuffers/ArrayBuffer.swift | 71 ++++
.../ArrayBuffers/ArrayBufferExtensions.swift | 137 ++++++++
.../ArrayBuffers/ConcreteArrayBuffers.swift | 26 ++
.../DynamicTypes/DynamicArrayBufferType.swift | 57 ++++
.../ios/JS/JavaScriptValue.swift | 7 +
.../expo-modules-core/ios/JSI/EXArrayBuffer.h | 45 +++
.../ios/JSI/EXArrayBuffer.mm | 23 ++
.../ios/JSI/EXJSIConversions.mm | 5 +
.../ios/JSI/EXJavaScriptValue.h | 3 +
.../ios/JSI/EXJavaScriptValue.mm | 20 ++
.../ios/JSI/EXNativeArrayBuffer.h | 31 ++
.../ios/JSI/EXNativeArrayBuffer.mm | 41 +++
.../ios/JSI/EXRawJavaScriptArrayBuffer.h | 15 +
.../ios/JSI/EXRawJavaScriptArrayBuffer.mm | 44 +++
.../ios/Tests/ArrayBufferSpec.swift | 321 ++++++++++++++++++
19 files changed, 925 insertions(+)
create mode 100644 packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.cpp
create mode 100644 packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.h
create mode 100644 packages/expo-modules-core/ios/Core/ArrayBuffers/AnyArrayBuffer.swift
create mode 100644 packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBuffer.swift
create mode 100644 packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBufferExtensions.swift
create mode 100644 packages/expo-modules-core/ios/Core/ArrayBuffers/ConcreteArrayBuffers.swift
create mode 100644 packages/expo-modules-core/ios/Core/DynamicTypes/DynamicArrayBufferType.swift
create mode 100644 packages/expo-modules-core/ios/JSI/EXArrayBuffer.h
create mode 100644 packages/expo-modules-core/ios/JSI/EXArrayBuffer.mm
create mode 100644 packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.h
create mode 100644 packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.mm
create mode 100644 packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.h
create mode 100644 packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.mm
create mode 100644 packages/expo-modules-core/ios/Tests/ArrayBufferSpec.swift
diff --git a/packages/expo-modules-core/CHANGELOG.md b/packages/expo-modules-core/CHANGELOG.md
index c60a328c865b24..68d1db866d2a72 100644
--- a/packages/expo-modules-core/CHANGELOG.md
+++ b/packages/expo-modules-core/CHANGELOG.md
@@ -26,6 +26,7 @@
- [iOS] Added `appDelegateWillBeginInitialization` function to AppDelegate subscribers. ([#41456](https://github.com/expo/expo/pull/41456) by [@tsapeta](https://github.com/tsapeta))
- [iOS] Added `RNHost` to improve RN component layout inside SwiftUI views ([#40938](https://github.com/expo/expo/pull/40938) by [@nishan](https://github.com/intergalacticspacehighway))
- [iOS] Added `ignoreSafeAreaKeyboardInsets` to `SwiftUIHostingView`. ([#41302](https://github.com/expo/expo/pull/41302) by [@nishan](https://github.com/intergalacticspacehighway))
+- [iOS] Added support for `ArrayBuffer`s. ([#41548](https://github.com/expo/expo/pull/41548) by [@barthap](https://github.com/barthap))
- [iOS] JSI runtime is now accessed from public `RCTHostRuntimeDelegate` instead of unofficial `bridge.runtime`. ([#41311](https://github.com/expo/expo/pull/41311) by [@tsapeta](https://github.com/tsapeta))
- [iOS] Introduced global `JavaScriptActor` to isolate code requiring running on the JavaScript thread. ([#41793](https://github.com/expo/expo/pull/41793) by [@tsapeta](https://github.com/tsapeta))
diff --git a/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.cpp b/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.cpp
new file mode 100644
index 00000000000000..c0b5d992a50b8a
--- /dev/null
+++ b/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.cpp
@@ -0,0 +1,24 @@
+#include "MemoryBuffer.h"
+
+namespace expo {
+
+using namespace facebook;
+
+MemoryBuffer::MemoryBuffer(uint8_t* data, size_t size, CleanupFunc&& cleanupFunc)
+ : data_(data), size_(size), cleanupFunc(std::move(cleanupFunc)) {}
+
+MemoryBuffer::~MemoryBuffer() {
+ if (cleanupFunc != nullptr) {
+ cleanupFunc();
+ }
+}
+
+uint8_t* MemoryBuffer::data() {
+ return data_;
+}
+
+size_t MemoryBuffer::size() const {
+ return size_;
+}
+
+}
diff --git a/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.h b/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.h
new file mode 100644
index 00000000000000..d36bbbf4d36ad2
--- /dev/null
+++ b/packages/expo-modules-core/common/cpp/JSI/MemoryBuffer.h
@@ -0,0 +1,35 @@
+#ifdef __cplusplus
+
+#pragma once
+
+#include
+#include
+
+namespace jsi = facebook::jsi;
+
+namespace expo {
+
+using CleanupFunc = std::function;
+
+/**
+ * A JSI-compatible memory buffer that allows creating JSI ArrayBuffers from natively-managed memory.
+ * Since ArrayBuffers created from native memory don't automatically deallocate during GC,
+ * this class handles deallocation through a custom cleanup function.
+ */
+class MemoryBuffer final : public jsi::MutableBuffer {
+public:
+ MemoryBuffer(uint8_t* data, size_t size, CleanupFunc&& cleanupFunc);
+ ~MemoryBuffer() override;
+
+ uint8_t* data() override;
+ [[nodiscard]] size_t size() const override;
+
+private:
+ uint8_t* data_;
+ size_t size_;
+ CleanupFunc cleanupFunc;
+};
+
+}
+
+#endif
diff --git a/packages/expo-modules-core/ios/Core/ArrayBuffers/AnyArrayBuffer.swift b/packages/expo-modules-core/ios/Core/ArrayBuffers/AnyArrayBuffer.swift
new file mode 100644
index 00000000000000..a86299ff17dfc8
--- /dev/null
+++ b/packages/expo-modules-core/ios/Core/ArrayBuffers/AnyArrayBuffer.swift
@@ -0,0 +1,19 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+/**
+ A protocol for all array buffer types.
+ Array buffers represent a fixed-length raw binary data buffer.
+ */
+internal protocol AnyArrayBuffer: AnyArgument {
+ /**
+ Initializes an array buffer from the given underlying representation.
+ */
+ init(_ backingBuffer: RawArrayBuffer)
+}
+
+// Extend the protocol to provide custom dynamic type
+extension AnyArrayBuffer {
+ public static func getDynamicType() -> AnyDynamicType {
+ return DynamicArrayBufferType(innerType: Self.self)
+ }
+}
diff --git a/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBuffer.swift b/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBuffer.swift
new file mode 100644
index 00000000000000..60fad0617c5d4f
--- /dev/null
+++ b/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBuffer.swift
@@ -0,0 +1,71 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+/**
+ The base class for any type of array buffer.
+ ArrayBuffer objects are used to represent a generic, fixed-length raw binary data buffer.
+ */
+public class ArrayBuffer: AnyArrayBuffer {
+ let backingBuffer: RawArrayBuffer
+
+ /**
+ Initializes the array buffer with the given raw array buffer.
+
+ - Parameter RawArrayBuffer: The underlying raw buffer implementation
+ */
+ internal required init(_ RawArrayBuffer: RawArrayBuffer) {
+ self.backingBuffer = RawArrayBuffer
+ }
+
+ /**
+ The length of the ArrayBuffer in bytes.
+ Fixed at construction time and thus read only.
+ */
+ public lazy var byteLength: Int = backingBuffer.getSize()
+
+ /**
+ The unsafe mutable raw pointer to the start of the array buffer.
+ */
+ public lazy var rawPointer: UnsafeMutableRawPointer = backingBuffer.getUnsafeMutableRawPointer()
+
+ /**
+ Creates a copy of this ArrayBuffer with its own allocated memory.
+
+ - Returns: A new NativeArrayBuffer containing a copy of this buffer's data
+ */
+ public func copy() -> NativeArrayBuffer {
+ ArrayBuffer.copy(of: self)
+ }
+
+ /**
+ Wraps this ArrayBuffer in a Data instance without performing a copy.
+ The returned Data object shares the same memory as this ArrayBuffer.
+
+ - Note: Swift `Data` is a copy-on-write type. Mutating the data
+ doesn't guarantee to modify the array buffer's underlying memory.
+ */
+ public var data: Data {
+ // Get a strong reference to prevent deallocation while Data object exists
+ let sharedPointer = backingBuffer.memoryStrongRef()
+
+ return Data(
+ bytesNoCopy: rawPointer,
+ count: byteLength,
+ deallocator: .custom({ _, _ in sharedPointer?.reset() }))
+ }
+
+ /**
+ Creates an NSMutableData object that shares the same memory as this ArrayBuffer.
+
+ - Returns: An NSMutableData object backed by this ArrayBuffer's memory
+ */
+ public func mutableData() -> NSMutableData {
+ // Get a strong reference to prevent deallocation while NSMutableData object exists
+ let sharedPointer = backingBuffer.memoryStrongRef()
+
+ return NSMutableData(
+ bytesNoCopy: rawPointer,
+ length: byteLength,
+ deallocator: { _, _ in sharedPointer?.reset() }
+ )
+ }
+}
diff --git a/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBufferExtensions.swift b/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBufferExtensions.swift
new file mode 100644
index 00000000000000..7db5492ba9f049
--- /dev/null
+++ b/packages/expo-modules-core/ios/Core/ArrayBuffers/ArrayBufferExtensions.swift
@@ -0,0 +1,137 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+extension ArrayBuffer {
+ // MARK: - Wrap
+
+ /**
+ Wraps the given raw buffer pointer in an ArrayBuffer without copying data.
+
+ - Parameter data: The raw buffer to wrap
+ - Parameter cleanup: Closure called when the buffer is deallocated
+ - Returns: A new NativeArrayBuffer wrapping the data
+ - Throws: Exception if the buffer has no base address
+ */
+ public static func wrap(
+ dataWithoutCopy data: UnsafeMutableRawBufferPointer,
+ cleanup: @escaping () -> Void
+ ) throws -> NativeArrayBuffer {
+ guard let baseAddress = data.baseAddress else {
+ throw MissingBaseAddressError()
+ }
+ return NativeArrayBuffer(wrapping: baseAddress, count: data.count, cleanup: cleanup)
+ }
+
+ /**
+ Zero-copy wraps the given Data object in an ArrayBuffer.
+
+ - Warning: This bypasses Data's copy-on-write capabilities, effectively allowing
+ mutation of the Data from JavaScript code.
+ - Parameter data: The Data object to wrap
+ - Returns: An ArrayBuffer sharing memory with the Data object
+ */
+ public static func wrap(dataWithoutCopy data: Data) -> ArrayBuffer {
+ let size = data.count
+ let unamanagedData = Unmanaged.passRetained(data as NSData)
+
+ let pointer: UnsafePointer = unamanagedData
+ .takeUnretainedValue()
+ .bytes
+ .assumingMemoryBound(to: UInt8.self)
+ let mutablePtr = UnsafeMutablePointer(mutating: pointer)
+
+ // This should manage the memory of the underlying Data manually
+ return NativeArrayBuffer(wrapping: mutablePtr, count: size, cleanup: { unamanagedData.release() })
+ }
+
+ // MARK: - Allocate
+
+ /**
+ Allocates a new native ArrayBuffer of the given size.
+
+ - Parameter size: The size of the buffer in bytes
+ - Parameter initializeToZero: If true, all bytes are set to 0, otherwise they are uninitialized
+ - Returns: A new NativeArrayBuffer with the allocated memory
+ */
+ public static func allocate(size: Int, initializeToZero: Bool = false) -> NativeArrayBuffer {
+ let data = UnsafeMutablePointer.allocate(capacity: size)
+ if initializeToZero {
+ data.initialize(repeating: 0, count: size)
+ }
+ return NativeArrayBuffer(wrapping: data, count: size, cleanup: { data.deallocate() })
+ }
+
+ // MARK: - Copy
+
+ /**
+ Copies the given raw pointer into a new native ArrayBuffer.
+
+ - Parameter other: The pointer to copy data from
+ - Parameter count: The number of bytes to copy
+ - Returns: A new NativeArrayBuffer containing a copy of the data
+ */
+ public static func copy(
+ of other: UnsafeRawPointer,
+ count: Int
+ ) -> NativeArrayBuffer {
+ let copy = UnsafeMutablePointer.allocate(capacity: count)
+ copy.initialize(from: other.assumingMemoryBound(to: UInt8.self), count: count)
+ return NativeArrayBuffer(wrapping: copy, count: count, cleanup: { copy.deallocate() })
+ }
+
+ public static func copy(of other: UnsafeRawBufferPointer) throws -> NativeArrayBuffer {
+ guard let baseAddress = other.baseAddress else {
+ throw MissingBaseAddressError()
+ }
+ return ArrayBuffer.copy(of: baseAddress, count: other.count)
+ }
+
+ /**
+ Copies the given Data into a new native ArrayBuffer.
+
+ - Parameter data: The Data object to copy
+ - Returns: A new NativeArrayBuffer containing a copy of the data
+ - Throws: Exception if unable to access the Data's bytes
+ */
+ public static func copy(data: Data) throws -> NativeArrayBuffer {
+ // 1. Create new `ArrayBuffer` of same size
+ let size = data.count
+ let arrayBuffer = ArrayBuffer.allocate(size: size)
+ // 2. Copy all bytes from `Data` into our new `ArrayBuffer`
+
+ try data.withUnsafeBytes { rawPointer in
+ guard let baseAddress = rawPointer.baseAddress else {
+ throw MissingBaseAddressError()
+ }
+
+ memcpy(arrayBuffer.rawPointer, baseAddress, size)
+ }
+ return arrayBuffer
+ }
+
+ /**
+ Copies the given ArrayBuffer into a new native ArrayBuffer.
+
+ - Parameter other: The ArrayBuffer to copy
+ - Returns: A new NativeArrayBuffer containing a copy of the data
+ */
+ public static func copy(of other: ArrayBuffer) -> NativeArrayBuffer {
+ ArrayBuffer.copy(of: other.rawPointer, count: other.byteLength)
+ }
+}
+
+// MARK: - Data
+
+extension ArrayBuffer: ContiguousBytes {
+ public func withUnsafeBytes(_ body: (UnsafeRawBufferPointer) throws -> R) rethrows -> R {
+ try body(UnsafeRawBufferPointer(start: self.rawPointer, count: self.byteLength))
+ }
+}
+
+/**
+ An exception thrown when `baseAddress` of `UnsafeMutableRawBufferPointer` is `nil`.
+ */
+public final class MissingBaseAddressError: Exception, @unchecked Sendable {
+ override public var reason: String {
+ "Cannot get baseAddress of given data"
+ }
+}
diff --git a/packages/expo-modules-core/ios/Core/ArrayBuffers/ConcreteArrayBuffers.swift b/packages/expo-modules-core/ios/Core/ArrayBuffers/ConcreteArrayBuffers.swift
new file mode 100644
index 00000000000000..b701090457ff40
--- /dev/null
+++ b/packages/expo-modules-core/ios/Core/ArrayBuffers/ConcreteArrayBuffers.swift
@@ -0,0 +1,26 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+/**
+ Generic ArrayBuffer with an associated raw buffer type.
+ */
+public class GenericArrayBuffer: ArrayBuffer {
+ internal convenience init(_ backingBuffer: BufferType) {
+ self.init(backingBuffer as RawArrayBuffer)
+ }
+}
+
+/**
+ Native ArrayBuffer implementation that owns its memory and manages deallocation.
+ */
+public final class NativeArrayBuffer: GenericArrayBuffer {
+ convenience init(wrapping data: UnsafeMutableRawPointer, count: Int, cleanup: @escaping () -> Void) {
+ let backingBuffer = RawNativeArrayBuffer(data: data, size: count, cleanup: cleanup)
+ self.init(backingBuffer)
+ }
+}
+
+/**
+ JavaScript ArrayBuffer implementation that wraps a JavaScript ArrayBuffer object.
+ This provides a native Swift interface to ArrayBuffers created in JavaScript.
+ */
+public final class JavaScriptArrayBuffer: GenericArrayBuffer {}
diff --git a/packages/expo-modules-core/ios/Core/DynamicTypes/DynamicArrayBufferType.swift b/packages/expo-modules-core/ios/Core/DynamicTypes/DynamicArrayBufferType.swift
new file mode 100644
index 00000000000000..7824b57d4e8633
--- /dev/null
+++ b/packages/expo-modules-core/ios/Core/DynamicTypes/DynamicArrayBufferType.swift
@@ -0,0 +1,57 @@
+// Copyright 2015-present 650 Industries. All rights reserved.
+
+internal struct DynamicArrayBufferType: AnyDynamicType {
+ let innerType: AnyArrayBuffer.Type
+
+ func wraps(_ type: InnerType.Type) -> Bool {
+ return innerType == InnerType.self
+ }
+
+ func equals(_ type: AnyDynamicType) -> Bool {
+ if let arrayBufferType = type as? Self {
+ return arrayBufferType.innerType == innerType
+ }
+ return false
+ }
+
+ /**
+ Converts JS array buffer to its native representation.
+ */
+ func cast(jsValue: JavaScriptValue, appContext: AppContext) throws -> Any {
+ guard let rawArrayBuffer = jsValue.getArrayBuffer() else {
+ throw NotArrayBufferException(innerType)
+ }
+ let jsArrayBuffer = JavaScriptArrayBuffer(rawArrayBuffer)
+
+ return switch innerType {
+ case is JavaScriptArrayBuffer.Type: jsArrayBuffer
+ case is NativeArrayBuffer.Type: jsArrayBuffer.copy()
+ // this might happen when a user implemented own subclass of ArrayBuffer
+ // or uses 'ArrayBuffer' directly
+ default: throw ArrayBufferArgumentTypeException(innerType)
+ }
+ }
+
+ func convertResult(_ result: ResultType, appContext: AppContext) throws -> Any {
+ guard let arrayBuffer = result as? ArrayBuffer else {
+ throw Conversions.ConversionToJSFailedException((kind: .object, nativeType: ResultType.self))
+ }
+ return arrayBuffer.backingBuffer
+ }
+
+ var description: String {
+ return String(describing: Data.self)
+ }
+}
+
+internal final class NotArrayBufferException: GenericException, @unchecked Sendable {
+ override var reason: String {
+ "Given argument is not an instance of \(param)"
+ }
+}
+
+internal final class ArrayBufferArgumentTypeException: GenericException, @unchecked Sendable {
+ override var reason: String {
+ "\(param) cannot be used as argument type. Use either JavaScriptArrayBuffer or NativeArrayBuffer"
+ }
+}
diff --git a/packages/expo-modules-core/ios/JS/JavaScriptValue.swift b/packages/expo-modules-core/ios/JS/JavaScriptValue.swift
index 6083143dd88858..4aa8ab3113f83d 100644
--- a/packages/expo-modules-core/ios/JS/JavaScriptValue.swift
+++ b/packages/expo-modules-core/ios/JS/JavaScriptValue.swift
@@ -115,6 +115,13 @@ extension JavaScriptValue: AnyJavaScriptValue, AnyArgument {
}
throw JavaScriptValueConversionException((kind: kind, target: "TypedArray"))
}
+
+ func asArrayBuffer() throws -> JavaScriptArrayBuffer {
+ if let backingBuffer = getArrayBuffer() {
+ return JavaScriptArrayBuffer(backingBuffer)
+ }
+ throw JavaScriptValueConversionException((kind: kind, target: "ArrayBuffer"))
+ }
// MARK: - AnyJavaScriptValue
diff --git a/packages/expo-modules-core/ios/JSI/EXArrayBuffer.h b/packages/expo-modules-core/ios/JSI/EXArrayBuffer.h
new file mode 100644
index 00000000000000..7e7f628c85d095
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXArrayBuffer.h
@@ -0,0 +1,45 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#ifdef __cplusplus
+#import
+#import
+#endif
+
+/**
+ * A reference-counting wrapper around ArrayBuffer memory to manage lifetime.
+ * Used to ensure ArrayBuffer memory remains valid when shared between
+ * Swift Data objects and the underlying buffer.
+ */
+@interface EXArrayBufferStrongRef : NSObject
+
+#ifdef __cplusplus
+- (nonnull instancetype)initWith:(std::shared_ptr)ptr;
+#endif
+
+/**
+ * Releases the strong reference to the underlying memory buffer.
+ * After calling this method, the memory may be deallocated.
+ */
+- (void)reset;
+@end
+
+/**
+ * Protocol defining the interface for raw ArrayBuffer implementations.
+ * Provides access to the underlying memory and size information.
+ */
+NS_SWIFT_NAME(RawArrayBuffer)
+@protocol EXArrayBuffer
+
+- (size_t)getSize;
+
+- (nonnull void *)getUnsafeMutableRawPointer;
+
+/**
+ * Returns a strong reference to the underlying memory buffer, or nil if not applicable.
+ * Used to prevent deallocation when the memory is shared with other objects.
+ */
+- (EXArrayBufferStrongRef *_Nullable)memoryStrongRef;
+
+@end
+
+
diff --git a/packages/expo-modules-core/ios/JSI/EXArrayBuffer.mm b/packages/expo-modules-core/ios/JSI/EXArrayBuffer.mm
new file mode 100644
index 00000000000000..75628c2fd7b018
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXArrayBuffer.mm
@@ -0,0 +1,23 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#import
+#import
+
+@implementation EXArrayBufferStrongRef {
+ std::shared_ptr _ptr;
+}
+
+- (nonnull instancetype)initWith:(std::shared_ptr)ptr
+{
+ if (self = [super init]) {
+ _ptr = ptr;
+ }
+ return self;
+}
+
+- (void)reset
+{
+ _ptr.reset();
+}
+
+@end
diff --git a/packages/expo-modules-core/ios/JSI/EXJSIConversions.mm b/packages/expo-modules-core/ios/JSI/EXJSIConversions.mm
index 5064e7e4333731..73794de5e83881 100644
--- a/packages/expo-modules-core/ios/JSI/EXJSIConversions.mm
+++ b/packages/expo-modules-core/ios/JSI/EXJSIConversions.mm
@@ -9,6 +9,7 @@
#import
#import
#import
+#import
namespace expo {
@@ -101,6 +102,10 @@
if ([value isKindOfClass:[EXJavaScriptObjectBinding class]]) {
return jsi::Value(runtime, *[[(EXJavaScriptObjectBinding *)value get] get]);
}
+ if ([value isKindOfClass:[EXNativeArrayBuffer class]]) {
+ auto memoryBuffer = [(EXNativeArrayBuffer *)value jsiBuffer];
+ return jsi::ArrayBuffer(runtime, memoryBuffer);
+ }
if ([value isKindOfClass:[NSString class]]) {
return convertNSStringToJSIString(runtime, (NSString *)value);
} else if ([value isKindOfClass:[NSNumber class]]) {
diff --git a/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.h b/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.h
index 253c3921f13330..55544ffad71434 100644
--- a/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.h
+++ b/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.h
@@ -11,6 +11,7 @@ namespace jsi = facebook::jsi;
@class EXJavaScriptRuntime;
@class EXRawJavaScriptFunction;
@class EXJavaScriptTypedArray;
+@class EXJavaScriptArrayBuffer;
/**
Represents any JavaScript value. Its purpose is to exposes `facebook::jsi::Value` API back to Swift.
@@ -39,6 +40,7 @@ NS_SWIFT_NAME(JavaScriptValue)
- (BOOL)isObject;
- (BOOL)isFunction;
- (BOOL)isTypedArray;
+- (BOOL)isArrayBuffer;
#pragma mark - Type casting
@@ -52,6 +54,7 @@ NS_SWIFT_NAME(JavaScriptValue)
- (nonnull EXJavaScriptObject *)getObject;
- (nonnull EXRawJavaScriptFunction *)getFunction;
- (nullable EXJavaScriptTypedArray *)getTypedArray;
+- (nullable EXJavaScriptArrayBuffer *)getArrayBuffer;
#pragma mark - Helpers
diff --git a/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.mm b/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.mm
index 0934bd19b61835..cfce6d4ac91e05 100644
--- a/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.mm
+++ b/packages/expo-modules-core/ios/JSI/EXJavaScriptValue.mm
@@ -5,6 +5,7 @@
#import
#import
#import
+#import
#import
@implementation EXJavaScriptValue {
@@ -86,6 +87,15 @@ - (BOOL)isTypedArray
return false;
}
+- (BOOL)isArrayBuffer
+{
+ if (_value.isObject()) {
+ jsi::Runtime *runtime = [_runtime get];
+ return _value.getObject(*runtime).isArrayBuffer(*runtime);
+ }
+ return false;
+}
+
#pragma mark - Type casting
- (nullable id)getRaw
@@ -158,6 +168,16 @@ - (nullable EXJavaScriptTypedArray *)getTypedArray
return [[EXJavaScriptTypedArray alloc] initWith:objectPtr runtime:_runtime];
}
+- (nullable EXJavaScriptArrayBuffer *)getArrayBuffer
+{
+ if (![self isArrayBuffer]) {
+ return nil;
+ }
+ jsi::Runtime *runtime = [_runtime get];
+ std::shared_ptr objectPtr = std::make_shared(_value.asObject(*runtime));
+ return [[EXJavaScriptArrayBuffer alloc] initWith:objectPtr runtime:_runtime];
+}
+
#pragma mark - Helpers
- (nonnull NSString *)toString
diff --git a/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.h b/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.h
new file mode 100644
index 00000000000000..204ae8531f9030
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.h
@@ -0,0 +1,31 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#ifdef __cplusplus
+#import
+
+namespace jsi = facebook::jsi;
+#endif // __cplusplus
+
+#import
+
+/**
+ * Native ArrayBuffer implementation that manages its own memory allocation.
+ * This is used for ArrayBuffers created from native code that own their memory.
+ */
+NS_SWIFT_NAME(RawNativeArrayBuffer)
+@interface EXNativeArrayBuffer : NSObject
+
+- (nonnull instancetype)initWithData:(uint8_t*_Nonnull)data
+ size:(size_t)size
+ cleanup:(void (^_Nonnull)(void))cleanup
+NS_SWIFT_NAME(init(data:size:cleanup:));
+
+
+#ifdef __cplusplus
+/**
+ Returns a shared pointer to the underlying memory that can be used to create a JSI ArrayBuffer.
+ */
+- (std::shared_ptr)jsiBuffer;
+#endif
+
+@end
diff --git a/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.mm b/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.mm
new file mode 100644
index 00000000000000..0fac6e48fe7749
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXNativeArrayBuffer.mm
@@ -0,0 +1,41 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#import
+#import
+
+@implementation EXNativeArrayBuffer {
+ std::shared_ptr _buffer;
+}
+
+- (nonnull instancetype)initWithData:(uint8_t*)data
+ size:(size_t)size
+ cleanup:(void (^)(void))cleanup
+{
+ if (self = [super init]) {
+ expo::CleanupFunc cleanupFn = [=]() { cleanup(); };
+ _buffer = std::make_shared(data, size, std::move(cleanupFn));
+ }
+ return self;
+}
+
+- (std::shared_ptr)jsiBuffer
+{
+ return _buffer;
+}
+
+- (size_t)getSize
+{
+ return _buffer->size();
+}
+
+- (nonnull void *)getUnsafeMutableRawPointer
+{
+ return _buffer->data();
+}
+
+- (EXArrayBufferStrongRef * _Nullable)memoryStrongRef
+{
+ return [[EXArrayBufferStrongRef alloc] initWith:_buffer];
+}
+
+@end
diff --git a/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.h b/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.h
new file mode 100644
index 00000000000000..5a6f938a9e9095
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.h
@@ -0,0 +1,15 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#import
+#import
+#import
+
+/**
+ * JavaScript ArrayBuffer implementation that wraps a JSI ArrayBuffer.
+ * This provides access to ArrayBuffers created in JavaScript from native code.
+ */
+NS_SWIFT_NAME(RawJavaScriptArrayBuffer)
+@interface EXJavaScriptArrayBuffer : EXJavaScriptObject
+
+@end
+
diff --git a/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.mm b/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.mm
new file mode 100644
index 00000000000000..a0abe056a1a6d0
--- /dev/null
+++ b/packages/expo-modules-core/ios/JSI/EXRawJavaScriptArrayBuffer.mm
@@ -0,0 +1,44 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+#import
+#import
+
+@implementation EXJavaScriptArrayBuffer {
+ __weak EXJavaScriptRuntime *_runtime;
+
+ std::shared_ptr _jsiBuffer;
+}
+
+- (nonnull instancetype)initWith:(std::shared_ptr)jsObjectPtr
+ runtime:(EXJavaScriptRuntime *)runtime
+{
+ jsi::Runtime *rt = [runtime get];
+ if (!jsObjectPtr.get()->isArrayBuffer(*rt)) {
+ throw std::runtime_error("Object is not an ArrayBuffer");
+ }
+
+ if (self = [super initWith:jsObjectPtr runtime:runtime]) {
+ _runtime = runtime;
+ _jsiBuffer = std::make_shared(jsObjectPtr.get()->getArrayBuffer(*rt));
+ }
+ return self;
+}
+
+- (size_t)getSize
+{
+ return _jsiBuffer->size(*[_runtime get]);
+}
+
+- (nonnull void *)getUnsafeMutableRawPointer
+{
+ return _jsiBuffer->data(*[_runtime get]);
+}
+
+- (EXArrayBufferStrongRef * _Nullable)memoryStrongRef
+{
+ // JavaScript ArrayBuffers don't provide direct strong references to the underlying
+ // memory since the JS runtime owns the memory and manages its lifetime.
+ return nullptr;
+}
+
+@end
diff --git a/packages/expo-modules-core/ios/Tests/ArrayBufferSpec.swift b/packages/expo-modules-core/ios/Tests/ArrayBufferSpec.swift
new file mode 100644
index 00000000000000..7b1da8e6f66363
--- /dev/null
+++ b/packages/expo-modules-core/ios/Tests/ArrayBufferSpec.swift
@@ -0,0 +1,321 @@
+// Copyright 2022-present 650 Industries. All rights reserved.
+
+import ExpoModulesTestCore
+import Foundation
+
+@testable import ExpoModulesCore
+
+final class ArrayBufferSpec: ExpoSpec {
+ override class func spec() {
+ describe("ArrayBuffer") {
+ let appContext = AppContext.create()
+ let runtime = try! appContext.runtime
+
+ beforeSuite {
+ appContext.moduleRegistry.register(moduleType: ArrayBufferTestModule.self, name: "ArrayBufferTests")
+ }
+
+ describe("allocation") {
+ it("allocates with specified size") {
+ let size = 1024
+ let buffer = ArrayBuffer.allocate(size: size)
+
+ expect(buffer.byteLength) == size
+ expect(buffer.rawPointer).toNot(beNil())
+ }
+
+ it("initializes to zero when requested") {
+ let size = 100
+ let buffer = ArrayBuffer.allocate(size: size, initializeToZero: true)
+
+ expect(buffer.data.allSatisfy { $0 == 0 }) == true
+ }
+ }
+
+ describe("data wrapping") {
+ it("wraps Data without copying") {
+ let originalData = Data([1, 2, 3, 4, 5])
+ let buffer = ArrayBuffer.wrap(dataWithoutCopy: originalData)
+
+ expect(buffer.byteLength) == originalData.count
+
+ let wrappedData = buffer.data
+ expect(wrappedData) == originalData
+ }
+
+ it("wraps UnsafeMutableRawBufferPointer") {
+ let size = 10
+ let memory = UnsafeMutableRawPointer.allocate(byteCount: size, alignment: 1)
+ let buffer = UnsafeMutableRawBufferPointer(start: memory, count: size)
+
+ var cleanupCalled = false
+ let arrayBuffer = try ArrayBuffer.wrap(
+ dataWithoutCopy: buffer,
+ cleanup: {
+ memory.deallocate()
+ cleanupCalled = true
+ }
+ )
+
+ expect(arrayBuffer.byteLength) == size
+ expect(arrayBuffer.rawPointer) == memory
+ expect(cleanupCalled) == false
+ }
+ }
+
+ describe("copying") {
+ it("copies from UnsafeRawPointer") {
+ let originalData: [UInt8] = [10, 20, 30, 40, 50]
+ let copiedBuffer = originalData.withUnsafeBytes { ptr in
+ ArrayBuffer.copy(of: ptr.baseAddress!, count: originalData.count)
+ }
+
+ expect(copiedBuffer.byteLength) == originalData.count
+ expect(Array(copiedBuffer.data)) == originalData
+ }
+
+ it("copies from UnsafeRawBufferPointer") {
+ let originalData: [UInt8] = [100, 200, 255]
+ let copiedBuffer = try originalData.withUnsafeBytes { ptr in
+ try ArrayBuffer.copy(of: ptr)
+ }
+
+ expect(copiedBuffer.byteLength) == originalData.count
+ expect(Array(copiedBuffer.data)) == originalData
+ }
+
+ it("copies from Data") {
+ let originalData = Data([1, 2, 3, 4, 5, 6, 7, 8])
+ let copiedBuffer = try ArrayBuffer.copy(data: originalData)
+
+ expect(copiedBuffer.byteLength) == originalData.count
+ expect(copiedBuffer.data) == originalData
+ }
+
+ it("copies from another ArrayBuffer") {
+ let originalBuffer = ArrayBuffer.allocate(size: 50, initializeToZero: true)
+ // Write some test data
+ let testBytes: [UInt8] = [1, 2, 3, 4, 5]
+ memcpy(originalBuffer.rawPointer, testBytes, testBytes.count)
+
+ let copiedBuffer = originalBuffer.copy()
+
+ expect(copiedBuffer.byteLength) == originalBuffer.byteLength
+ expect(copiedBuffer.rawPointer) != originalBuffer.rawPointer // Different memory locations
+
+ // Verify content is the same
+ let originalFirst5 = Data(bytes: originalBuffer.rawPointer, count: 5)
+ let copiedFirst5 = Data(bytes: copiedBuffer.rawPointer, count: 5)
+ expect(copiedFirst5) == originalFirst5
+ }
+ }
+
+ describe("data conversion") {
+ it("converts to Data") {
+ let testData: [UInt8] = [1, 2, 3, 4, 5]
+ let buffer = ArrayBuffer.allocate(size: testData.count)
+ memcpy(buffer.rawPointer, testData, testData.count)
+
+ let convertedData = buffer.data
+ expect(convertedData.count) == testData.count
+ expect(Array(convertedData)) == testData
+ }
+
+ it("converts to NSMutableData") {
+ let testData: [UInt8] = [10, 20, 30]
+ let buffer = ArrayBuffer.allocate(size: testData.count)
+ memcpy(buffer.rawPointer, testData, testData.count)
+
+ let mutableData = buffer.mutableData()
+ expect(mutableData.length) == testData.count
+
+ let dataBytes = Data(bytes: mutableData.bytes, count: mutableData.length)
+ expect(Array(dataBytes)) == testData
+ }
+
+ it("conforms to ContiguousBytes") {
+ let testData: [UInt8] = [1, 2, 3, 4, 5, 6, 7, 8]
+ let buffer = ArrayBuffer.allocate(size: testData.count)
+ memcpy(buffer.rawPointer, testData, testData.count)
+
+ let extractedBytes = buffer.withUnsafeBytes { ptr in
+ Array(ptr.bindMemory(to: UInt8.self))
+ }
+
+ expect(extractedBytes) == testData
+ }
+ }
+
+ describe("JavaScript integration") {
+ it("creates ArrayBuffer from JavaScript") {
+ let jsArrayBuffer = try runtime.eval("new ArrayBuffer(16)").asArrayBuffer()
+ let arrayBuffer = try runtime.eval("expo.modules.ArrayBufferTests.createFromJS(new ArrayBuffer(16))").asArrayBuffer()
+
+ expect(jsArrayBuffer.byteLength) == 16
+ expect(arrayBuffer.byteLength) == 16
+ }
+
+ it("returns ArrayBuffer to JavaScript") {
+ let buffer = try runtime.eval("expo.modules.ArrayBufferTests.createNative(32)").asArrayBuffer()
+
+ expect(buffer.byteLength) == 32
+ }
+
+ it("reads and writes through JavaScript") {
+ // Create buffer and write data through JavaScript
+ let buffer = try runtime.eval([
+ "buffer = expo.modules.ArrayBufferTests.createNative(10)",
+ "view = new Uint8Array(buffer)",
+ "view[0] = 42",
+ "view[1] = 84",
+ "buffer"
+ ]).asArrayBuffer()
+
+ // Read back the data we wrote
+ let result = try runtime.eval("expo.modules.ArrayBufferTests.readBytesAsArray(buffer, 2)").asArray()
+
+ expect(try result[0]?.asInt()) == 42
+ expect(try result[1]?.asInt()) == 84
+ expect(buffer.byteLength) == 10
+ }
+
+ it("maintains data consistency between native and JS") {
+ // Create buffer and fill with pattern from native
+ let buffer = try runtime.eval([
+ "buffer = expo.modules.ArrayBufferTests.createNative(5)",
+ "expo.modules.ArrayBufferTests.fillWithPattern(buffer, 170)", // 10101010 in binary
+ "buffer"
+ ]).asArrayBuffer()
+
+ // Read back through JavaScript
+ let values = try runtime.eval([
+ "view = new Uint8Array(buffer)",
+ "Array.from(view)"
+ ]).asArray().map { try $0?.asInt() ?? 0 }
+
+ expect(buffer.byteLength) == 5
+ expect(values.allSatisfy { $0 == 170 }) == true
+ }
+
+ it("copies buffer when using NativeArrayBuffer argument") {
+ // Create original buffer with initial pattern
+ let originalBuffer = try runtime.eval([
+ "originalBuffer = new ArrayBuffer(4)",
+ "originalView = new Uint8Array(originalBuffer)",
+ "originalView.fill(42)",
+ "originalBuffer"
+ ]).asArrayBuffer()
+
+ // Process through native function that takes NativeArrayBuffer (creates copy)
+ let processedBuffer = try runtime.eval([
+ "processedBuffer = expo.modules.ArrayBufferTests.processNativeBuffer(originalBuffer, 99)",
+ "processedBuffer"
+ ]).asArrayBuffer()
+
+ // Check that original buffer is unchanged
+ let originalValues = try runtime.eval([
+ "Array.from(new Uint8Array(originalBuffer))"
+ ]).asArray().map { try $0?.asInt() ?? 0 }
+
+ // Check that processed buffer has new pattern
+ let processedValues = try runtime.eval([
+ "Array.from(new Uint8Array(processedBuffer))"
+ ]).asArray().map { try $0?.asInt() ?? 0 }
+
+ expect(originalBuffer.byteLength) == 4
+ expect(processedBuffer.byteLength) == 4
+ expect(originalValues.allSatisfy { $0 == 42 }) == true // Original unchanged
+ expect(processedValues.allSatisfy { $0 == 99 }) == true // Processed has new pattern
+ }
+ }
+
+ describe("error handling") {
+ it("throws when copying from invalid buffer pointer") {
+ expect {
+ let emptyBuffer = UnsafeRawBufferPointer(start: nil, count: 0)
+ _ = try ArrayBuffer.copy(of: emptyBuffer)
+ }.to(throwError())
+ }
+
+ it("throws when wrapping invalid buffer pointer") {
+ expect {
+ let emptyBuffer = UnsafeMutableRawBufferPointer(start: nil, count: 0)
+ _ = try ArrayBuffer.wrap(dataWithoutCopy: emptyBuffer, cleanup: {})
+ }.to(throwError())
+ }
+
+ it("does not throw when copying from empty Data") {
+ expect {
+ let emptyData = Data()
+ _ = try ArrayBuffer.copy(data: emptyData)
+ }.toNot(throwError())
+ }
+ }
+
+ describe("memory management") {
+ it("properly manages memory lifecycle") {
+ var cleanupCallCount = 0
+
+ autoreleasepool {
+ let memory = UnsafeMutableRawPointer.allocate(byteCount: 100, alignment: 1)
+ let buffer = UnsafeMutableRawBufferPointer(start: memory, count: 100)
+
+ _ = try! ArrayBuffer.wrap(
+ dataWithoutCopy: buffer,
+ cleanup: {
+ memory.deallocate()
+ cleanupCallCount += 1
+ }
+ )
+ }
+
+ expect(cleanupCallCount) > 0
+ }
+
+ it("handles zero-size buffers") {
+ let buffer = ArrayBuffer.allocate(size: 0)
+ expect(buffer.byteLength) == 0
+ expect(buffer.rawPointer).toNot(beNil())
+ }
+
+ it("allows direct memory access") {
+ let size = 1000
+ let buffer = ArrayBuffer.allocate(size: size)
+
+ let pattern: UInt8 = 0xAA
+ memset(buffer.rawPointer, Int32(pattern), size)
+
+ expect(buffer.data.allSatisfy { $0 == pattern }) == true
+ }
+ }
+ }
+ }
+}
+
+private final class ArrayBufferTestModule: Module {
+ func definition() -> ModuleDefinition {
+ Name("ArrayBufferTests")
+
+ Function("createFromJS") { (jsArrayBuffer: JavaScriptArrayBuffer) -> ArrayBuffer in
+ return jsArrayBuffer
+ }
+
+ Function("createNative") { (size: Int) -> NativeArrayBuffer in
+ return ArrayBuffer.allocate(size: size, initializeToZero: true)
+ }
+
+ Function("readBytesAsArray") { (buffer: JavaScriptArrayBuffer, count: Int) -> [UInt8] in
+ let data = Data(bytes: buffer.rawPointer, count: min(count, buffer.byteLength))
+ return Array(data)
+ }
+
+ Function("fillWithPattern") { (buffer: JavaScriptArrayBuffer, pattern: UInt8) in
+ memset(buffer.rawPointer, Int32(pattern), buffer.byteLength)
+ }
+
+ Function("processNativeBuffer") { (buffer: NativeArrayBuffer, newPattern: UInt8) -> NativeArrayBuffer in
+ memset(buffer.rawPointer, Int32(newPattern), buffer.byteLength)
+ return buffer
+ }
+ }
+}