- globals.css: Hell, Dunkel und Druck mit den Spec-Werten aus 4.2, Fokusring = --primary-ink, Verlaufs-Token entfernt. - Codemod scripts/codemod-t5-colors.mjs: text-primary/-warning auf -ink, Vordergrund nur auf voller Fläche, Auswahlrahmen dunkel; --check-Modus und Spec halten src sauber. - Kontrast-Wächter misst die echte globals.css (VALUES_SWITCHED), alle 21 Zeilen aus 4.4 in allen vier Sätzen; keine dark:-Klassen mehr in src. - Dunkel ist ohne Entwickler-Schalter wählbar, Standard bleibt Hell. - Review-Nacharbeit: Auswahl-Umrisse und aktueller Schritt in Vordergrund, deaktivierte Felder bg-muted, Avatar ohne Blend, Honig-Check-Rahmen über --input. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
54 lines
1.8 KiB
TypeScript
54 lines
1.8 KiB
TypeScript
"use client";
|
||
|
||
import { ArrowRight, CheckCircle2 } from "lucide-react";
|
||
import { Button } from "@/components/ui/button";
|
||
import { Card, CardContent } from "@/components/ui/card";
|
||
|
||
interface RoundNextPanelProps {
|
||
/** Next colony to do, or null when the round is complete. */
|
||
next: { id: string; code: string } | null;
|
||
/** Colonies inspected in this round (for the closing message). */
|
||
doneCount: number;
|
||
/** Saved without a network: it syncs later. */
|
||
savedOffline: boolean;
|
||
onNext: () => void;
|
||
onEnd: () => void;
|
||
}
|
||
|
||
/** After a save in a round: one main step - on to the next colony. */
|
||
export function RoundNextPanel({ next, doneCount, savedOffline, onNext, onEnd }: RoundNextPanelProps) {
|
||
return (
|
||
<Card className="max-w-lg">
|
||
<CardContent className="flex flex-col gap-4">
|
||
<p role="status" className="flex items-center gap-2 text-lg font-medium">
|
||
<CheckCircle2 className="size-5 text-condition-good-ink" aria-hidden />
|
||
Gespeichert
|
||
</p>
|
||
{savedOffline ? (
|
||
<p className="text-sm text-muted-foreground">
|
||
Kein Netzwerk – die Durchsicht wird synchronisiert, sobald du wieder Netz hast.
|
||
</p>
|
||
) : null}
|
||
{next ? (
|
||
<>
|
||
<Button type="button" size="touch" className="h-12 text-base" onClick={onNext}>
|
||
Weiter mit {next.code}
|
||
<ArrowRight aria-hidden />
|
||
</Button>
|
||
<Button type="button" size="touch" variant="outline" onClick={onEnd}>
|
||
Runde beenden
|
||
</Button>
|
||
</>
|
||
) : (
|
||
<>
|
||
<p>Runde abgeschlossen – alle {doneCount} Völker</p>
|
||
<Button type="button" size="touch" className="h-12 text-base" onClick={onEnd}>
|
||
Zum Stand
|
||
</Button>
|
||
</>
|
||
)}
|
||
</CardContent>
|
||
</Card>
|
||
);
|
||
}
|