import * as React from 'react' import Link from 'next/link' import { ChevronRight, Inbox } from 'lucide-react' import { cn } from '@/lib/utils' /** * Kopfzeile einer Seite: Ueberschrift, Erklaerung, Aktionen. * * Die Erklaerung beantwortet moeglichst die Frage "was muss ich hier als * Naechstes tun?" - nicht "was steht hier". */ export function SeitenKopf({ titel, beschreibung, aktionen, pfad, className, }: { titel: string beschreibung?: React.ReactNode aktionen?: React.ReactNode pfad?: { titel: string; href?: string }[] className?: string }) { return (
{pfad && pfad.length > 0 && ( )}

{titel}

{beschreibung && (
{beschreibung}
)}
{aktionen &&
{aktionen}
}
) } /** * Leerer Zustand. Zeigt nie nur "keine Daten", sondern immer den naechsten * moeglichen Schritt - eine leere Liste soll nicht ratlos machen. */ export function Leerzustand({ titel, beschreibung, aktion, icon: Icon = Inbox, className, }: { titel: string beschreibung?: React.ReactNode aktion?: React.ReactNode icon?: React.ComponentType<{ className?: string; 'aria-hidden'?: boolean }> className?: string }) { return (

{titel}

{beschreibung && (

{beschreibung}

)} {aktion &&
{aktion}
}
) }