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}
}
)
}