import type { ReactNode } from "react"; /** * Rahmen aller öffentlichen Landingpages. * * Diese Seiten sehen Leute, die einen Code gescannt haben — meist auf dem * Handy, oft unterwegs, ohne Bezug zu dieser Anwendung. Deshalb: eine Spalte, * große Schrift, keine Navigation, kein Hinweis auf die Verwaltung. */ export function LandingShell({ title, subtitle, children, footer, }: { title: string; subtitle?: string | null; children: ReactNode; footer?: ReactNode; }) { return (

{title}

{subtitle ? (

{subtitle}

) : null}
{children}
{footer ? ( ) : null}
); } /** * Ein Fehlerbild im selben Gewand — etwa wenn ein Code gelöscht wurde. * Bewusst ohne Schuldzuweisung: wer hier landet, kann nichts dafür. */ export function LandingNotice({ title, children, }: { title: string; children: ReactNode; }) { return (

{title}

{children}

); }