import type { ReactNode } from 'react' import type { LucideIcon } from 'lucide-react' import { cn } from '@/lib/utils' /** * Shared Form-Layout für das Mieterportal. * Jede FormSection rendert ihre Felder in zwei gleich breiten Spalten * (mobil: eine Spalte). Elemente, die über die volle Breite laufen sollen * (Checkbox-Blöcke, Textareas, Uploads, Hinweistexte), in packen. */ export function FormSection({ titel, icon: Icon, children, className, }: { titel: string icon?: LucideIcon children: ReactNode className?: string }) { return (
{Icon && ( )}

{titel}

{children}
) } /** Volle Breite innerhalb einer 2-spaltigen FormSection. */ export function Wide({ children, className }: { children: ReactNode; className?: string }) { return
{children}
} /** Fehlerzeile am Ende eines Formulars. */ export function FormFehler({ fehler }: { fehler: string | null }) { if (!fehler) return null return (
{fehler}
) }