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}
;
}