import type { ReactNode } from 'react'; import { getModuleIcon, type ModuleIconId } from '@/lib/module-identity'; const GLYPHS: Record = { radar: ( <> ), fuel: ( <> ), certificate: ( <> ), globe: ( <> ), server: ( <> ), tile: ( <> ), }; interface ModuleTileProps { slug: string; /** Kantenlaenge in Pixeln (Seitenleiste 20, Karten 40, Seitenkopf 36). */ size?: number; /** * `neutral` (Vorgabe): graue Flaeche, dunkelgraues Symbol. * `accent`: Akzentflaeche mit passender Schrift — fuer das Modul im Fokus. */ tone?: 'neutral' | 'accent'; className?: string; } /** * App-Kachel eines Moduls: abgerundetes Quadrat mit Symbol (siehe * lib/module-identity.ts). Kontrast Symbol/Flaeche: neutral hell 7,4:1, * dunkel 8,9:1; Akzent ueber `--primary-foreground`, das fuer jede * persoenliche Akzentfarbe hell oder dunkel gewaehlt wird (lib/color.ts). * Rein dekorativ — der Modulname steht immer als Text daneben. */ export function ModuleTile({ slug, size = 20, tone = 'neutral', className = '' }: ModuleTileProps) { const icon = getModuleIcon(slug); const glyph = Math.round(size * 0.6); return ( ); }