authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-10-02 09:43:40-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-02 09:43:40-07:00
logce96e4c3de1973c7e0088ef8806043841f902080
tree07ecd8b3f29f3d0a598b46673445ac4423d40514
parent54084ae1e6c32809db040e4fa571c80fdf2d8ae4
signature Signed by PGP key B5690EEEBB952194

fix(mobile): project picker cards match the settings card color (#14756)


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 <View226 <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 <SymbolView230 <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 <ConnectionFormField246 <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 <View175 <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 <MaterialListRow199 <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();
449450
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 <MaterialListRow56 <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 <Text136 <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 <View193 <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 <MaterialListRow318 <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 <Pressable335 <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 <SymbolView342 <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 <MaterialListRow459 <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 <ProjectFavicon496 <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 <View41 <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 <View217 <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.View702 <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 Catalog755 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 <SwitchRow758 <SwitchRow
759 isLast759 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 <ChoiceRow1004 <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)}% left389 {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 <ResetCredits423 <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);
492492
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"}