| author | |
| committer | |
| log | ce96e4c3de1973c7e0088ef8806043841f902080 |
| tree | 07ecd8b3f29f3d0a598b46673445ac4423d40514 |
| parent | 54084ae1e6c32809db040e4fa571c80fdf2d8ae4 |
| signature | Signed by PGP key B5690EEEBB952194 |
10 files changed, 38 insertions(+), 34 deletions(-)
apps/mobile/src/features/archive/ArchivedThreadsScreen.tsx+2-2| ... | @@ -190,7 +190,7 @@ function ArchivedThreadRow(props: { | ... | @@ -190,7 +190,7 @@ function ArchivedThreadRow(props: { |
| 190 | readonly thread: EnvironmentThreadShell; | 190 | readonly thread: EnvironmentThreadShell; |
| 191 | }) { | 191 | }) { |
| 192 | const { width: windowWidth } = useWindowDimensions(); | 192 | const { width: windowWidth } = useWindowDimensions(); |
| 193 | const cardColor = useUniwindTheme()["--color-card"]; | 193 | const cardColor = useUniwindTheme()["--color-grouped-card"]; |
| 194 | const timestamp = relativeTime(props.thread.archivedAt ?? props.thread.updatedAt); | 194 | const timestamp = relativeTime(props.thread.archivedAt ?? props.thread.updatedAt); |
| 195 | const subtitle = [props.environmentLabel, props.thread.branch].filter((part): part is string => | 195 | const subtitle = [props.environmentLabel, props.thread.branch].filter((part): part is string => |
| 196 | Boolean(part), | 196 | Boolean(part), |
| ... | @@ -224,7 +224,7 @@ function ArchivedThreadRow(props: { | ... | @@ -224,7 +224,7 @@ function ArchivedThreadRow(props: { |
| 224 | > | 224 | > |
| 225 | {() => ( | 225 | {() => ( |
| 226 | <View | 226 | <View |
| 227 | className={`flex-row items-center gap-3 bg-card px-4 py-3 ${props.isLast ? "" : "border-b border-separator"}`} | 227 | className={`flex-row items-center gap-3 bg-grouped-card px-4 py-3 ${props.isLast ? "" : "border-b border-separator"}`} |
| 228 | > | 228 | > |
| 229 | <View className="h-[34px] w-[34px] items-center justify-center rounded-[11px] bg-subtle"> | 229 | <View className="h-[34px] w-[34px] items-center justify-center rounded-[11px] bg-subtle"> |
| 230 | <SymbolView | 230 | <SymbolView |
apps/mobile/src/features/cloud/ConnectOnboardingRouteScreen.tsx+1-1| ... | @@ -117,7 +117,7 @@ function ConfiguredConnectOnboardingRouteScreen() { | ... | @@ -117,7 +117,7 @@ function ConfiguredConnectOnboardingRouteScreen() { |
| 117 | showHeader={false} | 117 | showHeader={false} |
| 118 | /> | 118 | /> |
| 119 | ) : ( | 119 | ) : ( |
| 120 | <View collapsable={false} className="rounded-[24px] bg-card p-5"> | 120 | <View collapsable={false} className="rounded-[24px] bg-grouped-card p-5"> |
| 121 | <Text className="text-sm leading-normal text-foreground-muted"> | 121 | <Text className="text-sm leading-normal text-foreground-muted"> |
| 122 | Sign in to your T3 account to set up T3 Connect. | 122 | Sign in to your T3 account to set up T3 Connect. |
| 123 | </Text> | 123 | </Text> |
apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx+2-2| ... | @@ -226,7 +226,7 @@ export function ConnectionsNewRouteScreen({ | ... | @@ -226,7 +226,7 @@ export function ConnectionsNewRouteScreen({ |
| 226 | /> | 226 | /> |
| 227 | </View> | 227 | </View> |
| 228 | ) : ( | 228 | ) : ( |
| 229 | <View className="items-center gap-3 rounded-[24px] border-continuous bg-card px-5 py-8"> | 229 | <View className="items-center gap-3 rounded-[24px] border-continuous bg-grouped-card px-5 py-8"> |
| 230 | <Text className="text-center text-sm leading-normal text-foreground-muted"> | 230 | <Text className="text-center text-sm leading-normal text-foreground-muted"> |
| 231 | Camera permission is required to scan a QR code. | 231 | Camera permission is required to scan a QR code. |
| 232 | </Text> | 232 | </Text> |
| ... | @@ -242,7 +242,7 @@ export function ConnectionsNewRouteScreen({ | ... | @@ -242,7 +242,7 @@ export function ConnectionsNewRouteScreen({ |
| 242 | </View> | 242 | </View> |
| 243 | ) | 243 | ) |
| 244 | ) : ( | 244 | ) : ( |
| 245 | <View collapsable={false} className="gap-4 rounded-[24px] bg-card p-4"> | 245 | <View collapsable={false} className="gap-4 rounded-[24px] bg-grouped-card p-4"> |
| 246 | <ConnectionFormField | 246 | <ConnectionFormField |
| 247 | label="Host" | 247 | label="Host" |
| 248 | autoCapitalize="none" | 248 | autoCapitalize="none" |
apps/mobile/src/features/projects/AddProjectScreen.tsx+6-5| ... | @@ -175,8 +175,8 @@ function ListSection(props: { readonly children: ReactNode }) { | ... | @@ -175,8 +175,8 @@ function ListSection(props: { readonly children: ReactNode }) { |
| 175 | <View | 175 | <View |
| 176 | className={ | 176 | className={ |
| 177 | Platform.OS === "android" | 177 | Platform.OS === "android" |
| 178 | ? "overflow-hidden rounded-[28px] bg-card" | 178 | ? "overflow-hidden rounded-[28px] bg-grouped-card" |
| 179 | : "overflow-hidden rounded-[24px] bg-card" | 179 | : "overflow-hidden rounded-[24px] bg-grouped-card" |
| 180 | } | 180 | } |
| 181 | > | 181 | > |
| 182 | {props.children} | 182 | {props.children} |
| ... | @@ -197,6 +197,7 @@ function ListRow(props: { | ... | @@ -197,6 +197,7 @@ function ListRow(props: { |
| 197 | if (Platform.OS === "android") { | 197 | if (Platform.OS === "android") { |
| 198 | return ( | 198 | return ( |
| 199 | <MaterialListRow | 199 | <MaterialListRow |
| 200 | className="bg-grouped-card" | ||
| 200 | title={props.title} | 201 | title={props.title} |
| 201 | subtitle={props.subtitle} | 202 | subtitle={props.subtitle} |
| 202 | leading={props.icon} | 203 | leading={props.icon} |
| ... | @@ -213,7 +214,7 @@ function ListRow(props: { | ... | @@ -213,7 +214,7 @@ function ListRow(props: { |
| 213 | disabled={props.disabled} | 214 | disabled={props.disabled} |
| 214 | onPress={props.onPress} | 215 | onPress={props.onPress} |
| 215 | className={cn( | 216 | className={cn( |
| 216 | "bg-card px-3.5 py-2.5 active:opacity-70", | 217 | "bg-grouped-card px-3.5 py-2.5 active:opacity-70", |
| 217 | !props.isFirst && "border-t border-border-subtle", | 218 | !props.isFirst && "border-t border-border-subtle", |
| 218 | props.disabled && "opacity-[0.45]", | 219 | props.disabled && "opacity-[0.45]", |
| 219 | )} | 220 | )} |
| ... | @@ -448,7 +449,7 @@ function EmptyEnvironmentState() { | ... | @@ -448,7 +449,7 @@ function EmptyEnvironmentState() { |
| 448 | const navigation = useNavigation(); | 449 | const navigation = useNavigation(); |
| 449 | 450 | ||
| 450 | return ( | 451 | return ( |
| 451 | <View className="items-center gap-3 rounded-2xl bg-card px-5 py-8"> | 452 | <View className="items-center gap-3 rounded-2xl bg-grouped-card px-5 py-8"> |
| 452 | <Text className="text-center text-lg font-t3-bold">Environment unavailable</Text> | 453 | <Text className="text-center text-lg font-t3-bold">Environment unavailable</Text> |
| 453 | <Text className="text-center text-sm leading-normal text-foreground-muted"> | 454 | <Text className="text-center text-sm leading-normal text-foreground-muted"> |
| 454 | Start or reconnect an environment before adding a project. | 455 | Start or reconnect an environment before adding a project. |
| ... | @@ -1333,7 +1334,7 @@ export function AddProjectDestinationScreen(props: { | ... | @@ -1333,7 +1334,7 @@ export function AddProjectDestinationScreen(props: { |
| 1333 | <AddProjectShell title="Clone destination"> | 1334 | <AddProjectShell title="Clone destination"> |
| 1334 | {error ? <ErrorBanner message={error} /> : null} | 1335 | {error ? <ErrorBanner message={error} /> : null} |
| 1335 | {repositoryTitle ? ( | 1336 | {repositoryTitle ? ( |
| 1336 | <View className="rounded-[24px] bg-card px-4 py-3"> | 1337 | <View className="rounded-[24px] bg-grouped-card px-4 py-3"> |
| 1337 | <Text className="text-base font-t3-bold">{repositoryTitle}</Text> | 1338 | <Text className="text-base font-t3-bold">{repositoryTitle}</Text> |
| 1338 | <Text className="mt-0.5 text-xs text-foreground-muted" numberOfLines={2}> | 1339 | <Text className="mt-0.5 text-xs text-foreground-muted" numberOfLines={2}> |
| 1339 | {remoteUrl} | 1340 | {remoteUrl} |
apps/mobile/src/features/threads/NewTaskContextPickerScreens.tsx+5-4| ... | @@ -54,6 +54,7 @@ function SelectionRow(props: { | ... | @@ -54,6 +54,7 @@ function SelectionRow(props: { |
| 54 | if (Platform.OS === "android") { | 54 | if (Platform.OS === "android") { |
| 55 | return ( | 55 | return ( |
| 56 | <MaterialListRow | 56 | <MaterialListRow |
| 57 | className="bg-grouped-card" | ||
| 57 | title={props.title} | 58 | title={props.title} |
| 58 | subtitle={props.subtitle} | 59 | subtitle={props.subtitle} |
| 59 | leading={ | 60 | leading={ |
| ... | @@ -85,7 +86,7 @@ function SelectionRow(props: { | ... | @@ -85,7 +86,7 @@ function SelectionRow(props: { |
| 85 | accessibilityRole="radio" | 86 | accessibilityRole="radio" |
| 86 | accessibilityState={{ checked: props.selected }} | 87 | accessibilityState={{ checked: props.selected }} |
| 87 | className={cn( | 88 | className={cn( |
| 88 | "min-h-14 flex-row items-center gap-3 bg-card px-4 py-3 active:bg-subtle", | 89 | "min-h-14 flex-row items-center gap-3 bg-grouped-card px-4 py-3 active:bg-subtle", |
| 89 | !props.isLast && "border-b border-border-subtle", | 90 | !props.isLast && "border-b border-border-subtle", |
| 90 | )} | 91 | )} |
| 91 | disabled={props.disabled} | 92 | disabled={props.disabled} |
| ... | @@ -131,7 +132,7 @@ function ToggleRow(props: { | ... | @@ -131,7 +132,7 @@ function ToggleRow(props: { |
| 131 | readonly onValueChange: (value: boolean) => void; | 132 | readonly onValueChange: (value: boolean) => void; |
| 132 | }) { | 133 | }) { |
| 133 | return ( | 134 | return ( |
| 134 | <View className="min-h-14 flex-row items-center gap-3 bg-card px-4 py-3"> | 135 | <View className="min-h-14 flex-row items-center gap-3 bg-grouped-card px-4 py-3"> |
| 135 | <Text | 136 | <Text |
| 136 | className={cn( | 137 | className={cn( |
| 137 | "min-w-0 flex-1 text-base text-foreground", | 138 | "min-w-0 flex-1 text-base text-foreground", |
| ... | @@ -192,8 +193,8 @@ function PickerSurface(props: { readonly children: ReactNode }) { | ... | @@ -192,8 +193,8 @@ function PickerSurface(props: { readonly children: ReactNode }) { |
| 192 | <View | 193 | <View |
| 193 | className={ | 194 | className={ |
| 194 | Platform.OS === "android" | 195 | Platform.OS === "android" |
| 195 | ? "overflow-hidden rounded-[28px] bg-card" | 196 | ? "overflow-hidden rounded-[28px] bg-grouped-card" |
| 196 | : "overflow-hidden rounded-2xl bg-card" | 197 | : "overflow-hidden rounded-2xl bg-grouped-card" |
| 197 | } | 198 | } |
| 198 | > | 199 | > |
| 199 | {props.children} | 200 | {props.children} |
apps/mobile/src/features/threads/NewTaskRouteScreen.tsx+9-7| ... | @@ -314,8 +314,9 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -314,8 +314,9 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 314 | > | 314 | > |
| 315 | {canStartScratch && listScopes.length > 0 ? ( | 315 | {canStartScratch && listScopes.length > 0 ? ( |
| 316 | Platform.OS === "android" ? ( | 316 | Platform.OS === "android" ? ( |
| 317 | <View collapsable={false} className="overflow-hidden rounded-[28px] bg-card"> | 317 | <View collapsable={false} className="overflow-hidden rounded-[28px] bg-grouped-card"> |
| 318 | <MaterialListRow | 318 | <MaterialListRow |
| 319 | className="bg-grouped-card" | ||
| 319 | title="No project" | 320 | title="No project" |
| 320 | subtitle="Start a task without a project" | 321 | subtitle="Start a task without a project" |
| 321 | onPress={() => void startScratch()} | 322 | onPress={() => void startScratch()} |
| ... | @@ -330,12 +331,12 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -330,12 +331,12 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 330 | /> | 331 | /> |
| 331 | </View> | 332 | </View> |
| 332 | ) : ( | 333 | ) : ( |
| 333 | <View collapsable={false} className="overflow-hidden rounded-[24px] bg-card"> | 334 | <View collapsable={false} className="overflow-hidden rounded-[24px] bg-grouped-card"> |
| 334 | <Pressable | 335 | <Pressable |
| 335 | accessibilityRole="button" | 336 | accessibilityRole="button" |
| 336 | accessibilityLabel="No project" | 337 | accessibilityLabel="No project" |
| 337 | onPress={() => void startScratch()} | 338 | onPress={() => void startScratch()} |
| 338 | className="flex-row items-center gap-3 bg-card px-4 py-3.5" | 339 | className="flex-row items-center gap-3 bg-grouped-card px-4 py-3.5" |
| 339 | > | 340 | > |
| 340 | <View className="h-7 w-7 items-center justify-center"> | 341 | <View className="h-7 w-7 items-center justify-center"> |
| 341 | <SymbolView | 342 | <SymbolView |
| ... | @@ -366,7 +367,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -366,7 +367,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 366 | collapsable={false} | 367 | collapsable={false} |
| 367 | className={cn( | 368 | className={cn( |
| 368 | "items-center gap-3 px-6 py-8", | 369 | "items-center gap-3 px-6 py-8", |
| 369 | Platform.OS !== "android" && "rounded-[24px] bg-card", | 370 | Platform.OS !== "android" && "rounded-[24px] bg-grouped-card", |
| 370 | )} | 371 | )} |
| 371 | > | 372 | > |
| 372 | {projectEmptyState.loading ? ( | 373 | {projectEmptyState.loading ? ( |
| ... | @@ -443,8 +444,8 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -443,8 +444,8 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 443 | collapsable={false} | 444 | collapsable={false} |
| 444 | className={ | 445 | className={ |
| 445 | Platform.OS === "android" | 446 | Platform.OS === "android" |
| 446 | ? "overflow-hidden rounded-[28px] bg-card" | 447 | ? "overflow-hidden rounded-[28px] bg-grouped-card" |
| 447 | : "overflow-hidden rounded-[24px] bg-card" | 448 | : "overflow-hidden rounded-[24px] bg-grouped-card" |
| 448 | } | 449 | } |
| 449 | > | 450 | > |
| 450 | {visibleScopes.map((scope, scopeIndex) => { | 451 | {visibleScopes.map((scope, scopeIndex) => { |
| ... | @@ -456,6 +457,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -456,6 +457,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 456 | if (Platform.OS === "android") { | 457 | if (Platform.OS === "android") { |
| 457 | return ( | 458 | return ( |
| 458 | <MaterialListRow | 459 | <MaterialListRow |
| 460 | className="bg-grouped-card" | ||
| 459 | key={scope.key} | 461 | key={scope.key} |
| 460 | title={scope.title} | 462 | title={scope.title} |
| 461 | subtitle={ | 463 | subtitle={ |
| ... | @@ -488,7 +490,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara | ... | @@ -488,7 +490,7 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps<NewTaskRoutePara |
| 488 | accessibilityLabel={scope.title} | 490 | accessibilityLabel={scope.title} |
| 489 | disabled={reservedDestinationProject !== null} | 491 | disabled={reservedDestinationProject !== null} |
| 490 | onPress={() => void selectProject(selectionTarget)} | 492 | onPress={() => void selectProject(selectionTarget)} |
| 491 | className="flex-row items-center gap-3 bg-card px-4 py-3.5" | 493 | className="flex-row items-center gap-3 bg-grouped-card px-4 py-3.5" |
| 492 | > | 494 | > |
| 493 | <View className="h-7 w-7 items-center justify-center"> | 495 | <View className="h-7 w-7 items-center justify-center"> |
| 494 | <ProjectFavicon | 496 | <ProjectFavicon |
apps/mobile/src/features/threads/ThreadSettingsRows.shared.tsx+2-2| ... | @@ -41,7 +41,7 @@ export function ModelRowContent( | ... | @@ -41,7 +41,7 @@ export function ModelRowContent( |
| 41 | <View | 41 | <View |
| 42 | style={props.minimumHeight === undefined ? undefined : { minHeight: props.minimumHeight }} | 42 | style={props.minimumHeight === undefined ? undefined : { minHeight: props.minimumHeight }} |
| 43 | className={cn( | 43 | className={cn( |
| 44 | "mx-4 min-h-11 flex-row items-center gap-2 bg-card px-4", | 44 | "mx-4 min-h-11 flex-row items-center gap-2 bg-grouped-card px-4", |
| 45 | props.selectedClassName, | 45 | props.selectedClassName, |
| 46 | props.isFirst && "rounded-t-2xl", | 46 | props.isFirst && "rounded-t-2xl", |
| 47 | props.isLast ? "rounded-b-2xl" : "border-b border-border-subtle", | 47 | props.isLast ? "rounded-b-2xl" : "border-b border-border-subtle", |
| ... | @@ -123,7 +123,7 @@ export function ChoiceRowContent(props: ChoiceRowProps & RowSelectionProps) { | ... | @@ -123,7 +123,7 @@ export function ChoiceRowContent(props: ChoiceRowProps & RowSelectionProps) { |
| 123 | onPress={props.onPress} | 123 | onPress={props.onPress} |
| 124 | style={props.minimumHeight === undefined ? undefined : { minHeight: props.minimumHeight }} | 124 | style={props.minimumHeight === undefined ? undefined : { minHeight: props.minimumHeight }} |
| 125 | className={cn( | 125 | className={cn( |
| 126 | "min-h-14 flex-row items-center gap-3 bg-card px-4 py-3 active:bg-subtle", | 126 | "min-h-14 flex-row items-center gap-3 bg-grouped-card px-4 py-3 active:bg-subtle", |
| 127 | !props.isLast && "border-b border-border-subtle", | 127 | !props.isLast && "border-b border-border-subtle", |
| 128 | )} | 128 | )} |
| 129 | > | 129 | > |
apps/mobile/src/features/threads/ThreadSettingsSheet.tsx+5-5| ... | @@ -186,7 +186,7 @@ function DisclosureRow(props: { | ... | @@ -186,7 +186,7 @@ function DisclosureRow(props: { |
| 186 | accessibilityRole="button" | 186 | accessibilityRole="button" |
| 187 | onPress={props.onPress} | 187 | onPress={props.onPress} |
| 188 | className={cn( | 188 | className={cn( |
| 189 | "min-h-11 flex-row items-center gap-2 bg-card px-4 py-2 active:bg-subtle android:min-h-14", | 189 | "min-h-11 flex-row items-center gap-2 bg-grouped-card px-4 py-2 active:bg-subtle android:min-h-14", |
| 190 | !props.isLast && "border-b border-border-subtle", | 190 | !props.isLast && "border-b border-border-subtle", |
| 191 | )} | 191 | )} |
| 192 | > | 192 | > |
| ... | @@ -216,7 +216,7 @@ function SwitchRow(props: { | ... | @@ -216,7 +216,7 @@ function SwitchRow(props: { |
| 216 | return ( | 216 | return ( |
| 217 | <View | 217 | <View |
| 218 | className={cn( | 218 | className={cn( |
| 219 | "min-h-11 flex-row items-center justify-between bg-card px-4 py-1", | 219 | "min-h-11 flex-row items-center justify-between bg-grouped-card px-4 py-1", |
| 220 | !props.isLast && "border-b border-border-subtle", | 220 | !props.isLast && "border-b border-border-subtle", |
| 221 | )} | 221 | )} |
| 222 | > | 222 | > |
| ... | @@ -700,7 +700,7 @@ function ThreadSettingsOptionsItem(props: { | ... | @@ -700,7 +700,7 @@ function ThreadSettingsOptionsItem(props: { |
| 700 | <ChatGptSharingStatus provider={selectedProvider} /> | 700 | <ChatGptSharingStatus provider={selectedProvider} /> |
| 701 | <Text className="px-5 pb-2 pt-2 text-sm font-t3-medium text-foreground-muted">Options</Text> | 701 | <Text className="px-5 pb-2 pt-2 text-sm font-t3-medium text-foreground-muted">Options</Text> |
| 702 | <Animated.View | 702 | <Animated.View |
| 703 | className="mx-4 overflow-hidden rounded-2xl bg-card" | 703 | className="mx-4 overflow-hidden rounded-2xl bg-grouped-card" |
| 704 | layout={THREAD_SETTINGS_OPTIONS_LAYOUT_TRANSITION} | 704 | layout={THREAD_SETTINGS_OPTIONS_LAYOUT_TRANSITION} |
| 705 | > | 705 | > |
| 706 | {session.displayedDescriptors.map((descriptor) => { | 706 | {session.displayedDescriptors.map((descriptor) => { |
| ... | @@ -754,7 +754,7 @@ function ThreadSettingsOptionsItem(props: { | ... | @@ -754,7 +754,7 @@ function ThreadSettingsOptionsItem(props: { |
| 754 | <Text className="px-5 pb-2 pt-7 text-sm font-t3-medium text-foreground-muted"> | 754 | <Text className="px-5 pb-2 pt-7 text-sm font-t3-medium text-foreground-muted"> |
| 755 | Catalog | 755 | Catalog |
| 756 | </Text> | 756 | </Text> |
| 757 | <View className="mx-4 overflow-hidden rounded-2xl bg-card"> | 757 | <View className="mx-4 overflow-hidden rounded-2xl bg-grouped-card"> |
| 758 | <SwitchRow | 758 | <SwitchRow |
| 759 | isLast | 759 | isLast |
| 760 | label="Legacy models" | 760 | label="Legacy models" |
| ... | @@ -999,7 +999,7 @@ function ThreadSettingsChoiceContent(props: { | ... | @@ -999,7 +999,7 @@ function ThreadSettingsChoiceContent(props: { |
| 999 | contentInsetAdjustmentBehavior="automatic" | 999 | contentInsetAdjustmentBehavior="automatic" |
| 1000 | showsVerticalScrollIndicator={false} | 1000 | showsVerticalScrollIndicator={false} |
| 1001 | > | 1001 | > |
| 1002 | <View className="overflow-hidden rounded-2xl bg-card"> | 1002 | <View className="overflow-hidden rounded-2xl bg-grouped-card"> |
| 1003 | {submenuContent.rows.map((row, index) => ( | 1003 | {submenuContent.rows.map((row, index) => ( |
| 1004 | <ChoiceRow | 1004 | <ChoiceRow |
| 1005 | key={row.id} | 1005 | key={row.id} |
apps/mobile/src/features/usage/UsageLimitsPooled.tsx+4-4| ... | @@ -100,7 +100,7 @@ function PoolWindowCard({ | ... | @@ -100,7 +100,7 @@ function PoolWindowCard({ |
| 100 | }, | 100 | }, |
| 101 | }); | 101 | }); |
| 102 | return ( | 102 | return ( |
| 103 | <View className="gap-3 rounded-[24px] border-continuous bg-card p-4"> | 103 | <View className="gap-3 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 104 | <View className="flex-row items-start justify-between gap-3"> | 104 | <View className="flex-row items-start justify-between gap-3"> |
| 105 | <View className="gap-1"> | 105 | <View className="gap-1"> |
| 106 | <Text className="text-sm font-t3-medium text-foreground">{label ?? pool.label}</Text> | 106 | <Text className="text-sm font-t3-medium text-foreground">{label ?? pool.label}</Text> |
| ... | @@ -383,7 +383,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { | ... | @@ -383,7 +383,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { |
| 383 | </Text> | 383 | </Text> |
| 384 | ) : null} | 384 | ) : null} |
| 385 | </View> | 385 | </View> |
| 386 | <View className="gap-3 rounded-[24px] border-continuous bg-card p-4"> | 386 | <View className="gap-3 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 387 | <Text className="text-sm font-t3-medium text-foreground">{window.label}</Text> | 387 | <Text className="text-sm font-t3-medium text-foreground">{window.label}</Text> |
| 388 | <Text className="text-3xl font-t3-bold tabular-nums text-foreground"> | 388 | <Text className="text-3xl font-t3-bold tabular-nums text-foreground"> |
| 389 | {remainingPercent(window)}% left | 389 | {remainingPercent(window)}% left |
| ... | @@ -403,7 +403,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { | ... | @@ -403,7 +403,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { |
| 403 | </Text> | 403 | </Text> |
| 404 | ) : null} | 404 | ) : null} |
| 405 | </View> | 405 | </View> |
| 406 | <View className="gap-2 rounded-[24px] border-continuous bg-card p-4"> | 406 | <View className="gap-2 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 407 | <Text className="text-sm font-t3-medium text-foreground"> | 407 | <Text className="text-sm font-t3-medium text-foreground"> |
| 408 | {account.environments.length ? "Signed in" : "Source"} | 408 | {account.environments.length ? "Signed in" : "Source"} |
| 409 | </Text> | 409 | </Text> |
| ... | @@ -418,7 +418,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { | ... | @@ -418,7 +418,7 @@ export function UsageLimitAccountScreen({ route }: AccountScreenProps) { |
| 418 | )} | 418 | )} |
| 419 | </View> | 419 | </View> |
| 420 | {account.redeem && account.limits.resetCredits ? ( | 420 | {account.redeem && account.limits.resetCredits ? ( |
| 421 | <View className="gap-3 rounded-[24px] border-continuous bg-card p-4"> | 421 | <View className="gap-3 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 422 | <Text className="text-sm font-t3-medium text-foreground">Reset credits</Text> | 422 | <Text className="text-sm font-t3-medium text-foreground">Reset credits</Text> |
| 423 | <ResetCredits | 423 | <ResetCredits |
| 424 | key={account.key} | 424 | key={account.key} |
apps/mobile/src/features/usage/UsageRouteScreen.tsx+2-2| ... | @@ -457,7 +457,7 @@ function CursorEnableLimits({ | ... | @@ -457,7 +457,7 @@ function CursorEnableLimits({ |
| 457 | <ProviderIcon provider="cursor" size={18} /> | 457 | <ProviderIcon provider="cursor" size={18} /> |
| 458 | <Text className="text-base font-t3-medium text-foreground">Cursor</Text> | 458 | <Text className="text-base font-t3-medium text-foreground">Cursor</Text> |
| 459 | </View> | 459 | </View> |
| 460 | <View className="items-start gap-3 rounded-[24px] border-continuous bg-card p-4"> | 460 | <View className="items-start gap-3 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 461 | <Text className="text-xs text-foreground-muted">{CURSOR_KEYCHAIN_COPY}</Text> | 461 | <Text className="text-xs text-foreground-muted">{CURSOR_KEYCHAIN_COPY}</Text> |
| 462 | <View className="flex-row flex-wrap gap-2"> | 462 | <View className="flex-row flex-wrap gap-2"> |
| 463 | {environments.map((environment) => ( | 463 | {environments.map((environment) => ( |
| ... | @@ -491,7 +491,7 @@ function ChartCard(props: { | ... | @@ -491,7 +491,7 @@ function ChartCard(props: { |
| 491 | const hasActivity = props.daily.some((period) => period.totalTokens > 0); | 491 | const hasActivity = props.daily.some((period) => period.totalTokens > 0); |
| 492 | 492 | ||
| 493 | return ( | 493 | return ( |
| 494 | <View className="gap-4 rounded-[24px] border-continuous bg-card p-4"> | 494 | <View className="gap-4 rounded-[24px] border-continuous bg-grouped-card p-4"> |
| 495 | <View className="gap-0.5"> | 495 | <View className="gap-0.5"> |
| 496 | <Text className="text-sm text-foreground-muted"> | 496 | <Text className="text-sm text-foreground-muted"> |
| 497 | {metric === "cost" ? "Raw token cost" : "Processed tokens"} | 497 | {metric === "cost" ? "Raw token cost" : "Processed tokens"} |