import * as React from 'react' import { AlertCircle } from 'lucide-react' import { Label } from '@/components/ui/label' import { cn } from '@/lib/utils' /** * Ein Formularfeld mit Beschriftung, Erklaerung und Fehlermeldung. * * Der Erklaerungstext ist kein Beiwerk: Diese Anwendung benutzt an vielen * Stellen Begriffe aus dem Betreuungs- und Sozialrecht. Wer sie nicht * kennt, soll sie hier erklaert bekommen, statt nachschlagen zu muessen. * * Beschriftung, Erklaerung und Fehler sind ueber aria-describedby mit dem * Eingabefeld verbunden - Screenreader lesen sie mit vor. */ export function Feld({ id, beschriftung, erklaerung, fehler, pflicht, className, children, }: { id: string beschriftung: string erklaerung?: React.ReactNode fehler?: string | string[] | null pflicht?: boolean className?: string children: React.ReactNode }) { const fehlertext = Array.isArray(fehler) ? fehler[0] : fehler const erklaerungId = erklaerung ? `${id}-erklaerung` : undefined const fehlerId = fehlertext ? `${id}-fehler` : undefined const beschriftungVon = [erklaerungId, fehlerId].filter(Boolean).join(' ') || undefined return (
{erklaerung}
)} {fehlertext && ({fehlertext}
)}