import React, { useId } from 'react'; import { ChevronDown } from 'lucide-react'; interface SettingsSubSectionProps { title: string; icon?: React.ReactNode; defaultOpen?: boolean; description?: string; searchText?: string; // Rechts im Summary neben dem Chevron (z.B. Reset-Button). Clicks werden // gestoppt, damit sie das Accordion nicht togglen. action?: React.ReactNode; children: React.ReactNode; } // Wird innerhalb eines Settings-Tabs als Accordion-Gruppe genutzt. Natives //
liefert Keyboard + ARIA gratis; der CSS-Stil setzt den Chevron // im Summary mittels [open]-Selektor. export default function SettingsSubSection({ title, icon, defaultOpen = false, description, searchText, action, children, }: SettingsSubSectionProps) { const headingId = useId(); return (
{icon && {icon}} {title} {action && ( e.stopPropagation()} onKeyDown={e => e.stopPropagation()} > {action} )} {description && (

{description}

)}
{children}
); }