import type { ComponentProps, ReactNode } from "react"; /** A titled list of rows separated by hairlines, without a surrounding card. */ export function Group( { title, description, children }: { title?: string; description?: ReactNode; children: ReactNode; }, ) { return (
{title &&

{title}

} {description &&

{description}

}
{children}
); } /** Label and description on the left, compact controls on the right; stacks in narrow panes. */ export function Row({ label, description, children, footer, id }: { label: ReactNode; description?: ReactNode; children?: ReactNode; /** Full-width content under the row: inline forms, confirmations, and action results. */ footer?: ReactNode; id?: string; }) { return (
{label}
{description && (
{description}
)}
{children &&
{children}
}
{footer}
); } /** Secondary detail that should not dominate common settings. */ export function Disclosure({ summary, children }: { summary: string; children: ReactNode }) { return (
{summary}
{children}
); } export function Select({ className, ...props }: ComponentProps<"select">) { return (