import { ReactNode } from "react"; import { cn } from "../../utils"; // FormBody — the rhythm container; replaces an editor's root
export function FormBody({ children, className }: { children: ReactNode; className?: string }) { return
{children}
; } // FormSection — titled/untitled group; pt-4 (first:pt-0) yields 32px before the header export function FormSection({ title, children, className, }: { title?: ReactNode; children: ReactNode; className?: string; }) { return (
{title &&

{title}

} {children}
); } // FormRow — responsive column grid, both axes gapped export function FormRow({ children, columns = 2, className, }: { children: ReactNode; columns?: 2 | 3; className?: string; }) { return (
{children}
); } // FormCol — column span for a child inside FormRow (replaces
) export function FormCol({ children, span = 1, className, }: { children: ReactNode; span?: 1 | 2 | 3; className?: string; }) { const spanClass = span === 3 ? "md:col-span-3" : span === 2 ? "md:col-span-2" : ""; return
{children}
; }