a341d254e1
Vier-Etappen-Umbau der MC2-Oberfläche für Endnutzer (kein Fachjargon): 1. Klartext-Schicht (lib/roleMeta.ts): Rollen-Kürzel → Zweck-Namen mit Icons (hermes=Lucys Hirn, embed=Lucys Gedächtnis, vision=Lucys Augen, …), zentral in ModelBadges/ModelsCard/Cockpit. Veraltete Rollenliste korrigiert (Phantom-„fast" raus; embed/coder-lite ergänzt). 2. „Geht's Lucy gut?"-Panel (lib/useLucyHealth.ts + LucyHealthCard): 5 Fähigkeiten in Klartext, Ampel-Verdikt, Speicher-Ampel, 1-Klick-Reparatur (echte Unit-Namen). 3. Einfach/Experte-Schalter (lib/useExpertMode.ts + ExpertToggle) + Schutzgeländer: Hirn/Gedächtnis (protected) nicht löschbar/entladbar; Ctx/Spec/Slots/Lane-Details im Einfach-Modus versteckt. 4. „Immer-bereit-Set"-Manager (WarmSetManager): brains-Gruppe in Klartext + ehrliches Speicher-Budget (inkl. KV) mit Verdrängungs-Hinweis. Live gegen die Box verifiziert. frontend/dist mitgebaut. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
import { Sparkles, SlidersHorizontal } from "lucide-react"
|
|
import { useExpertMode, setExpertMode } from "@/lib/useExpertMode"
|
|
import { cn } from "@/lib/utils"
|
|
|
|
// Zwei-Zustand-Pille im Header: „Einfach" (aufgeräumt) ↔ „Experte" (alle Details).
|
|
export function ExpertToggle() {
|
|
const expert = useExpertMode()
|
|
return (
|
|
<div
|
|
className="flex items-center rounded-md border border-border/40 bg-background/40 p-0.5"
|
|
role="group"
|
|
aria-label="Ansichtsmodus"
|
|
title="Einfach zeigt nur das Wichtigste. Experte zeigt alle technischen Details."
|
|
>
|
|
<button
|
|
onClick={() => setExpertMode(false)}
|
|
aria-pressed={!expert}
|
|
className={cn(
|
|
"flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",
|
|
!expert ? "bg-primary/15 text-primary shadow-sm" : "text-muted-foreground hover:text-foreground",
|
|
)}
|
|
>
|
|
<Sparkles className="h-3.5 w-3.5" /> Einfach
|
|
</button>
|
|
<button
|
|
onClick={() => setExpertMode(true)}
|
|
aria-pressed={expert}
|
|
className={cn(
|
|
"flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",
|
|
expert ? "bg-primary/15 text-primary shadow-sm" : "text-muted-foreground hover:text-foreground",
|
|
)}
|
|
>
|
|
<SlidersHorizontal className="h-3.5 w-3.5" /> Experte
|
|
</button>
|
|
</div>
|
|
)
|
|
}
|