export type FormField = { id: string; type: 'text' | 'email' | 'password' | 'textarea' | 'checkbox' | 'select'; label: string; placeholder?: string; required?: boolean; icon?: string; options?: { label: string; value: string; }[]; }; export type FormStep = { title: string; fields: FormField[]; }; export interface JSONFormProps { schema?: FormStep[]; submitLabel?: string; nextLabel?: string; prevLabel?: string; customColor?: string; buttonVariant?: 'solid' | 'outline' | 'ghost'; buttonSize?: 'sm' | 'md' | 'lg'; buttonRadius?: 'none' | 'sm' | 'md' | 'lg' | 'full'; onSubmit?: (values: Record) => void; onChange?: (values: Record) => void; validate?: (values: Record) => any; /** * @type|class * @schema [{ * "key": "Theme", * "prefix": "", * "type": "select", * "options": [ * {"key": "bg-white dark:bg-gray-900 border-black/10 dark:border-white/10", "label": "Solid (Default)"}, * {"key": "bg-transparent border-transparent", "label": "Transparent"}, * {"key": "bg-white/40 dark:bg-black/40 backdrop-blur-xl border-white/50 dark:border-white/10", "label": "Glassmorphism"} * ] * },{ * "key": "Padding", * "prefix": "p", * "type": "select", * "options": [ * {"key": "4", "label": "Small"}, * {"key": "6", "label": "Medium"}, * {"key": "8", "label": "Large"} * ] * },{ * "key": "Shadow", * "prefix": "shadow", * "type": "select", * "options": [ * {"key": "none", "label": "None"}, * {"key": "sm", "label": "Small"}, * {"key": "md", "label": "Medium"}, * {"key": "xl", "label": "Large"} * ] * }] */ className?: string; } export default function JSONForm({ schema, submitLabel, nextLabel, prevLabel, customColor, buttonVariant, buttonSize, buttonRadius, onSubmit, onChange, validate, className, }: JSONFormProps): import("react/jsx-runtime").JSX.Element | null;