Files
ApiCore/ApiCore-Frontend/src/components/rounds/round-next-panel.tsx
T
Nick.RosenloecherandClaude Opus 5.5 d8238855fc feat(t5): neue Farbwerte, Dunkel für alle, Farb-Codemod (T5a A4)
- 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]>
2026-10-16 17:23:21 +02:00

54 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"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>
);
}