config-driven-form 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -1
- package/dist/index.d.mts +23 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +318 -136
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +318 -136
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/fields/TextField.tsx","../src/components/fields/PasswordField.tsx","../src/components/fields/NumberField.tsx","../src/components/fields/RichTextField.tsx","../src/components/fields/SelectField.tsx","../src/components/fields/RadioField.tsx","../src/components/fields/CheckboxField.tsx","../src/components/fields/CheckboxGroupField.tsx","../src/components/fields/FileField.tsx","../src/components/FieldRenderer.tsx","../src/components/SchemaForm.tsx"],"names":["useFormContext","jsxs","jsx","AlertCircle","editor","useState","_a"],"mappings":"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","file":"index.mjs","sourcesContent":["import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\nimport { AlertCircle } from 'lucide-react';\n\ninterface TextFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const TextField: React.FC<TextFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\" htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type={schema.format === 'email' ? 'email' : 'text'}\n className={`cdf-input ${error ? 'cdf-input--error' : ''}`}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name)}\n />\n </div>\n {error && (\n <span className=\"cdf-error-message\">\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\nimport { AlertCircle, Eye, EyeOff } from 'lucide-react';\n\ninterface PasswordFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const PasswordField: React.FC<PasswordFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const [showPassword, setShowPassword] = useState(false);\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\" htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type={showPassword ? 'text' : 'password'}\n className={`cdf-input ${error ? 'cdf-input--error' : ''}`}\n style={{ paddingRight: '2.5rem' }}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name)}\n />\n <button\n type=\"button\"\n className=\"cdf-toolbar-btn\"\n style={{ position: 'absolute', right: '0.5rem' }}\n onClick={() => setShowPassword(!showPassword)}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {error && (\n <span className=\"cdf-error-message\">\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\nimport { AlertCircle } from 'lucide-react';\n\ninterface NumberFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const NumberField: React.FC<NumberFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\" htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type=\"number\"\n className={`cdf-input ${error ? 'cdf-input--error' : ''}`}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name, {\n valueAsNumber: true,\n })}\n />\n </div>\n {error && (\n <span className=\"cdf-error-message\">\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useEditor, EditorContent } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { JSONSchema } from '../../types/schema';\nimport { AlertCircle, Bold, Italic, List, ListOrdered, Heading2 } from 'lucide-react';\n\ninterface RichTextFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const RichTextField: React.FC<RichTextFieldProps> = ({ name, schema, isRequired }) => {\n const {\n setValue,\n watch,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n const value = watch(name);\n\n const editor = useEditor({\n extensions: [StarterKit],\n content: value || '',\n onUpdate: ({ editor }) => {\n setValue(name, editor.getHTML(), { shouldValidate: true, shouldDirty: true });\n },\n });\n\n // Keep editor in sync with external form changes (if any)\n useEffect(() => {\n if (editor && value !== editor.getHTML()) {\n editor.commands.setContent(value || '');\n }\n }, [value, editor]);\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\" htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className={`cdf-rich-text-wrapper ${error ? 'cdf-input--error' : ''}`}>\n <div className=\"cdf-rich-text-toolbar\">\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleBold().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('bold') ? 'is-active' : ''}`}\n >\n <Bold size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleItalic().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('italic') ? 'is-active' : ''}`}\n >\n <Italic size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleHeading({ level: 2 }).run()}\n className={`cdf-toolbar-btn ${editor?.isActive('heading', { level: 2 }) ? 'is-active' : ''}`}\n >\n <Heading2 size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleBulletList().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('bulletList') ? 'is-active' : ''}`}\n >\n <List size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleOrderedList().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('orderedList') ? 'is-active' : ''}`}\n >\n <ListOrdered size={16} />\n </button>\n </div>\n\n <EditorContent editor={editor} className=\"cdf-rich-text-content\" />\n </div>\n\n {error && (\n <span className=\"cdf-error-message\">\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\n\ninterface SelectFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const SelectField: React.FC<SelectFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <label htmlFor={name} className=\"cdf-label\">\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className=\"cdf-input-wrapper\">\n <select\n id={name}\n {...register(name)}\n className={`cdf-input cdf-select ${error ? 'cdf-input--error' : ''}`}\n >\n <option value=\"\">Select an option...</option>\n {schema.enum?.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n </div>\n\n {error && (\n <span className=\"cdf-error-message\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\n\ninterface RadioFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const RadioField: React.FC<RadioFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\">\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className=\"cdf-radio-group\">\n {schema.enum?.map((option) => (\n <label key={option} className=\"cdf-radio-label\">\n <input type=\"radio\" value={option} {...register(name)} className=\"cdf-radio-input\" />\n {option}\n </label>\n ))}\n </div>\n\n {error && (\n <span className=\"cdf-error-message\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\n\ninterface CheckboxFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({ name, schema, isRequired }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className=\"cdf-field-group\">\n <div className=\"cdf-checkbox-group\">\n <label className=\"cdf-checkbox-label\">\n <input type=\"checkbox\" {...register(name)} className=\"cdf-checkbox-input\" />\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n </div>\n\n {schema.description && (\n <p style={{ fontSize: '0.875rem', color: 'var(--cdf-text-muted)', marginTop: '0.25rem' }}>\n {schema.description}\n </p>\n )}\n\n {error && (\n <span className=\"cdf-error-message\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\n\ninterface CheckboxGroupFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const CheckboxGroupField: React.FC<CheckboxGroupFieldProps> = ({\n name,\n schema,\n isRequired,\n}) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n // Extract enum options from items definition\n let options: any[] = [];\n if (schema.items && !Array.isArray(schema.items) && schema.items.enum) {\n options = schema.items.enum;\n }\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\">\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className=\"cdf-checkbox-group\">\n {options.map((option) => (\n <label key={option} className=\"cdf-checkbox-label\">\n <input\n type=\"checkbox\"\n value={option}\n {...register(name)}\n className=\"cdf-checkbox-input\"\n />\n {option}\n </label>\n ))}\n </div>\n\n {error && (\n <span className=\"cdf-error-message\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema } from '../../types/schema';\n\ninterface FileFieldProps {\n name: string;\n schema: JSONSchema;\n isRequired?: boolean;\n}\n\nexport const FileField: React.FC<FileFieldProps> = ({ name, schema, isRequired }) => {\n const {\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const [fileName, setFileName] = useState<string | null>(null);\n const error = errors[name];\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) {\n setValue(name, undefined, { shouldValidate: true });\n setFileName(null);\n return;\n }\n\n setFileName(file.name);\n\n // Convert file to base64 data-url\n const reader = new FileReader();\n reader.onload = (event) => {\n setValue(name, event.target?.result, { shouldValidate: true });\n };\n reader.readAsDataURL(file);\n };\n\n return (\n <div className=\"cdf-field-group\">\n <label className=\"cdf-label\">\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className={`cdf-file-wrapper ${error ? 'cdf-input--error' : ''}`}>\n <input type=\"file\" className=\"cdf-file-input\" onChange={handleFileChange} />\n <div className=\"cdf-file-text\">\n <span>Click to upload</span> or drag and drop\n </div>\n {fileName && (\n <div className=\"cdf-file-preview\">\n Selected: <strong>{fileName}</strong>\n </div>\n )}\n </div>\n\n {error && (\n <span className=\"cdf-error-message\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { JSONSchema, UISchema } from '../types/schema';\nimport { TextField } from './fields/TextField';\nimport { PasswordField } from './fields/PasswordField';\nimport { NumberField } from './fields/NumberField';\nimport { RichTextField } from './fields/RichTextField';\nimport { SelectField } from './fields/SelectField';\nimport { RadioField } from './fields/RadioField';\nimport { CheckboxField } from './fields/CheckboxField';\nimport { CheckboxGroupField } from './fields/CheckboxGroupField';\nimport { FileField } from './fields/FileField';\n\ninterface FieldRendererProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const FieldRenderer: React.FC<FieldRendererProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const columnSpan = uiSchema?.['ui:columnSpan'] || 1;\n const widget = uiSchema?.['ui:widget'];\n\n const renderField = () => {\n // Arrays (Checkbox Groups)\n if (schema.type === 'array') {\n return <CheckboxGroupField name={name} schema={schema} isRequired={isRequired} />;\n }\n\n // Booleans (Single Checkbox)\n if (schema.type === 'boolean') {\n return <CheckboxField name={name} schema={schema} isRequired={isRequired} />;\n }\n\n // Enums (Select vs Radio)\n if (schema.enum) {\n if (widget === 'radio') {\n return <RadioField name={name} schema={schema} isRequired={isRequired} />;\n }\n return <SelectField name={name} schema={schema} isRequired={isRequired} />;\n }\n\n // Strings\n if (schema.type === 'string') {\n if (schema.format === 'data-url') {\n return <FileField name={name} schema={schema} isRequired={isRequired} />;\n }\n if (schema.format === 'password') {\n return <PasswordField name={name} schema={schema} isRequired={isRequired} />;\n }\n if (schema.format === 'rich-text') {\n return <RichTextField name={name} schema={schema} isRequired={isRequired} />;\n }\n return <TextField name={name} schema={schema} isRequired={isRequired} />;\n }\n\n // Numbers\n if (schema.type === 'number' || schema.type === 'integer') {\n return <NumberField name={name} schema={schema} isRequired={isRequired} />;\n }\n\n // Fallback\n return (\n <div className=\"cdf-field-group\">\n <p className=\"cdf-error-message\">Unsupported field type: {schema.type}</p>\n </div>\n );\n };\n\n return (\n <div style={{ gridColumn: `span ${columnSpan} / span ${columnSpan}` }}>{renderField()}</div>\n );\n};\n","import React from 'react';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport { ajvResolver } from '@hookform/resolvers/ajv';\nimport { JSONSchema, UISchema } from '../types/schema';\nimport { FieldRenderer } from './FieldRenderer';\nimport '../styles/form.css';\n\ninterface SchemaFormProps {\n schema: JSONSchema;\n uiSchema?: Record<string, UISchema>;\n onSubmit: (data: any) => void;\n defaultValues?: any;\n columns?: 1 | 2 | 3 | 4;\n theme?: {\n primary?: string;\n background?: string;\n text?: string;\n error?: string;\n surface?: string;\n border?: string;\n };\n}\n\nexport const SchemaForm: React.FC<SchemaFormProps> = ({\n schema,\n uiSchema = {},\n onSubmit,\n defaultValues,\n columns = 1,\n theme,\n}) => {\n const methods = useForm({\n resolver: ajvResolver(schema as any, {\n formats: {\n 'rich-text': true,\n password: true,\n 'data-url': true,\n email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n },\n }),\n defaultValues,\n });\n\n if (schema.type !== 'object' || !schema.properties) {\n return <div className=\"cdf-error-message\">Root schema must be an object with properties.</div>;\n }\n\n const themeStyles = theme\n ? ({\n '--cdf-primary': theme.primary,\n '--cdf-bg': theme.background,\n '--cdf-text': theme.text,\n '--cdf-error': theme.error,\n '--cdf-surface': theme.surface,\n '--cdf-border': theme.border,\n } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"cdf-form-container\" style={themeStyles}>\n {schema.title && <h2 className=\"cdf-form-title\">{schema.title}</h2>}\n {schema.description && (\n <p style={{ color: 'var(--cdf-text-muted)', marginBottom: '1.5rem' }}>\n {schema.description}\n </p>\n )}\n\n <FormProvider {...methods}>\n <form onSubmit={methods.handleSubmit(onSubmit)} noValidate>\n <div className={`cdf-form-grid-${columns}`}>\n {Object.entries(schema.properties).map(([key, propSchema]) => (\n <FieldRenderer\n key={key}\n name={key}\n schema={propSchema}\n uiSchema={uiSchema[key]}\n isRequired={schema.required?.includes(key)}\n />\n ))}\n </div>\n <button type=\"submit\" className=\"cdf-submit-btn\">\n Submit\n </button>\n </form>\n </FormProvider>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ClassNamesContext.tsx","../src/components/fields/TextField.tsx","../src/components/fields/PasswordField.tsx","../src/components/fields/NumberField.tsx","../src/components/fields/RichTextField.tsx","../src/components/fields/SelectField.tsx","../src/components/fields/RadioField.tsx","../src/components/fields/CheckboxField.tsx","../src/components/fields/CheckboxGroupField.tsx","../src/components/fields/FileField.tsx","../src/components/FieldRenderer.tsx","../src/components/SchemaForm.tsx"],"names":["jsx","useFormContext","jsxs","AlertCircle","editor","useState","_a"],"mappings":"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","file":"index.mjs","sourcesContent":["import React, { createContext, useContext } from 'react';\nimport { FormClassNames } from '../types/schema';\n\nconst ClassNamesContext = createContext<FormClassNames>({});\n\nexport const ClassNamesProvider: React.FC<{\n value?: FormClassNames;\n children: React.ReactNode;\n}> = ({ value = {}, children }) => {\n return <ClassNamesContext.Provider value={value}>{children}</ClassNamesContext.Provider>;\n};\n\nexport const useClassNames = () => useContext(ClassNamesContext);\n\n// Utility to merge class strings easily without an external library\nexport const cx = (...classes: (string | undefined | null | false)[]) => {\n return classes.filter(Boolean).join(' ').trim();\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\nimport { AlertCircle } from 'lucide-react';\n\ninterface TextFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const TextField: React.FC<TextFieldProps> = ({ name, schema, uiSchema, isRequired }) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)} htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type={schema.format === 'email' ? 'email' : 'text'}\n className={cx(\n 'cdf-input',\n globalClasses.input,\n localClasses.input,\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name)}\n />\n </div>\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\nimport { AlertCircle, Eye, EyeOff } from 'lucide-react';\n\ninterface PasswordFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const PasswordField: React.FC<PasswordFieldProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const [showPassword, setShowPassword] = useState(false);\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)} htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type={showPassword ? 'text' : 'password'}\n className={cx(\n 'cdf-input',\n globalClasses.input,\n localClasses.input,\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n style={{ paddingRight: '2.5rem' }}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name)}\n />\n <button\n type=\"button\"\n className=\"cdf-toolbar-btn\"\n style={{ position: 'absolute', right: '0.5rem' }}\n onClick={() => setShowPassword(!showPassword)}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\nimport { AlertCircle } from 'lucide-react';\n\ninterface NumberFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const NumberField: React.FC<NumberFieldProps> = ({ name, schema, uiSchema, isRequired }) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)} htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n <div className=\"cdf-input-wrapper\">\n <input\n id={name}\n type=\"number\"\n className={cx(\n 'cdf-input',\n globalClasses.input,\n localClasses.input,\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n placeholder={`Enter ${schema.title || name}`}\n {...register(name, {\n valueAsNumber: true,\n })}\n />\n </div>\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useEditor, EditorContent } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\nimport { AlertCircle, Bold, Italic, List, ListOrdered, Heading2 } from 'lucide-react';\n\ninterface RichTextFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const RichTextField: React.FC<RichTextFieldProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n setValue,\n watch,\n formState: { errors },\n } = useFormContext();\n const error = errors[name];\n const value = watch(name);\n\n const editor = useEditor({\n extensions: [StarterKit],\n content: value || '',\n onUpdate: ({ editor }) => {\n setValue(name, editor.getHTML(), { shouldValidate: true, shouldDirty: true });\n },\n });\n\n // Keep editor in sync with external form changes (if any)\n useEffect(() => {\n if (editor && value !== editor.getHTML()) {\n editor.commands.setContent(value || '');\n }\n }, [value, editor]);\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)} htmlFor={name}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div\n className={cx(\n 'cdf-rich-text-wrapper',\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n >\n <div className=\"cdf-rich-text-toolbar\">\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleBold().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('bold') ? 'is-active' : ''}`}\n >\n <Bold size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleItalic().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('italic') ? 'is-active' : ''}`}\n >\n <Italic size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleHeading({ level: 2 }).run()}\n className={`cdf-toolbar-btn ${editor?.isActive('heading', { level: 2 }) ? 'is-active' : ''}`}\n >\n <Heading2 size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleBulletList().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('bulletList') ? 'is-active' : ''}`}\n >\n <List size={16} />\n </button>\n <button\n type=\"button\"\n onClick={() => editor?.chain().focus().toggleOrderedList().run()}\n className={`cdf-toolbar-btn ${editor?.isActive('orderedList') ? 'is-active' : ''}`}\n >\n <ListOrdered size={16} />\n </button>\n </div>\n\n <EditorContent editor={editor} className=\"cdf-rich-text-content\" />\n </div>\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <AlertCircle size={14} />\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\n\ninterface SelectFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const SelectField: React.FC<SelectFieldProps> = ({ name, schema, uiSchema, isRequired }) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label htmlFor={name} className={cx('cdf-label', globalClasses.label, localClasses.label)}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className=\"cdf-input-wrapper\">\n <select\n id={name}\n {...register(name)}\n className={cx(\n 'cdf-input',\n 'cdf-select',\n globalClasses.input,\n localClasses.input,\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n >\n <option value=\"\">Select an option...</option>\n {schema.enum?.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n </div>\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\n\ninterface RadioFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const RadioField: React.FC<RadioFieldProps> = ({ name, schema, uiSchema, isRequired }) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div className={cx('cdf-radio-group', globalClasses.radioGroup, localClasses.radioGroup)}>\n {schema.enum?.map((option) => (\n <label\n key={option}\n className={cx('cdf-radio-label', globalClasses.radioLabel, localClasses.radioLabel)}\n >\n <input\n type=\"radio\"\n value={option}\n {...register(name)}\n className={cx('cdf-radio-input', globalClasses.radioInput, localClasses.radioInput)}\n />\n {option}\n </label>\n ))}\n </div>\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\n\ninterface CheckboxFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <div\n className={cx(\n 'cdf-checkbox-group',\n globalClasses.checkboxGroup,\n localClasses.checkboxGroup,\n )}\n >\n <label\n className={cx(\n 'cdf-checkbox-label',\n globalClasses.checkboxLabel,\n localClasses.checkboxLabel,\n )}\n >\n <input\n type=\"checkbox\"\n {...register(name)}\n className={cx(\n 'cdf-checkbox-input',\n globalClasses.checkboxInput,\n localClasses.checkboxInput,\n )}\n />\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n </div>\n\n {schema.description && (\n <p style={{ fontSize: '0.875rem', color: 'var(--cdf-text-muted)', marginTop: '0.25rem' }}>\n {schema.description}\n </p>\n )}\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\n\ninterface CheckboxGroupFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const CheckboxGroupField: React.FC<CheckboxGroupFieldProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const error = errors[name];\n\n // Extract enum options from items definition\n let options: any[] = [];\n if (schema.items && !Array.isArray(schema.items) && schema.items.enum) {\n options = schema.items.enum;\n }\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div\n className={cx(\n 'cdf-checkbox-group',\n globalClasses.checkboxGroup,\n localClasses.checkboxGroup,\n )}\n >\n {options.map((option) => (\n <label\n key={option}\n className={cx(\n 'cdf-checkbox-label',\n globalClasses.checkboxLabel,\n localClasses.checkboxLabel,\n )}\n >\n <input\n type=\"checkbox\"\n value={option}\n {...register(name)}\n className={cx(\n 'cdf-checkbox-input',\n globalClasses.checkboxInput,\n localClasses.checkboxInput,\n )}\n />\n {option}\n </label>\n ))}\n </div>\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { JSONSchema, UISchema } from '../../types/schema';\nimport { useClassNames, cx } from '../ClassNamesContext';\n\ninterface FileFieldProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const FileField: React.FC<FileFieldProps> = ({ name, schema, uiSchema, isRequired }) => {\n const globalClasses = useClassNames();\n const localClasses = uiSchema?.['ui:classNames'] || {};\n const {\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const [fileName, setFileName] = useState<string | null>(null);\n const error = errors[name];\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) {\n setValue(name, undefined, { shouldValidate: true });\n setFileName(null);\n return;\n }\n\n setFileName(file.name);\n\n // Convert file to base64 data-url\n const reader = new FileReader();\n reader.onload = (event) => {\n setValue(name, event.target?.result, { shouldValidate: true });\n };\n reader.readAsDataURL(file);\n };\n\n return (\n <div className={cx('cdf-field-group', globalClasses.fieldGroup, localClasses.fieldGroup)}>\n <label className={cx('cdf-label', globalClasses.label, localClasses.label)}>\n {schema.title || name}\n {isRequired && <span className=\"cdf-required-mark\">*</span>}\n </label>\n\n <div\n className={cx(\n 'cdf-file-wrapper',\n globalClasses.fileWrapper,\n localClasses.fileWrapper,\n error && 'cdf-input--error',\n error && globalClasses.inputError,\n error && localClasses.inputError,\n )}\n >\n <input type=\"file\" className=\"cdf-file-input\" onChange={handleFileChange} />\n <div className={cx('cdf-file-text', globalClasses.fileText, localClasses.fileText)}>\n <span>Click to upload</span> or drag and drop\n </div>\n {fileName && (\n <div className=\"cdf-file-preview\">\n Selected: <strong>{fileName}</strong>\n </div>\n )}\n </div>\n\n {error && (\n <span className={cx('cdf-error-message', globalClasses.errorText, localClasses.errorText)}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line>\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\n </svg>\n {error.message as string}\n </span>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { JSONSchema, UISchema } from '../types/schema';\nimport { TextField } from './fields/TextField';\nimport { PasswordField } from './fields/PasswordField';\nimport { NumberField } from './fields/NumberField';\nimport { RichTextField } from './fields/RichTextField';\nimport { SelectField } from './fields/SelectField';\nimport { RadioField } from './fields/RadioField';\nimport { CheckboxField } from './fields/CheckboxField';\nimport { CheckboxGroupField } from './fields/CheckboxGroupField';\nimport { FileField } from './fields/FileField';\n\ninterface FieldRendererProps {\n name: string;\n schema: JSONSchema;\n uiSchema?: UISchema;\n isRequired?: boolean;\n}\n\nexport const FieldRenderer: React.FC<FieldRendererProps> = ({\n name,\n schema,\n uiSchema,\n isRequired,\n}) => {\n const columnSpan = uiSchema?.['ui:columnSpan'] || 1;\n const widget = uiSchema?.['ui:widget'];\n\n const renderField = () => {\n // Arrays (Checkbox Groups)\n if (schema.type === 'array') {\n return (\n <CheckboxGroupField\n name={name}\n schema={schema}\n uiSchema={uiSchema}\n isRequired={isRequired}\n />\n );\n }\n\n // Booleans (Single Checkbox)\n if (schema.type === 'boolean') {\n return (\n <CheckboxField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n\n // Enums (Select vs Radio)\n if (schema.enum) {\n if (widget === 'radio') {\n return (\n <RadioField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n return (\n <SelectField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n\n // Strings\n if (schema.type === 'string') {\n if (schema.format === 'data-url') {\n return (\n <FileField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n if (schema.format === 'password') {\n return (\n <PasswordField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n if (schema.format === 'rich-text') {\n return (\n <RichTextField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n return <TextField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />;\n }\n\n // Numbers\n if (schema.type === 'number' || schema.type === 'integer') {\n return (\n <NumberField name={name} schema={schema} uiSchema={uiSchema} isRequired={isRequired} />\n );\n }\n\n // Fallback\n return (\n <div className=\"cdf-field-group\">\n <p className=\"cdf-error-message\">Unsupported field type: {schema.type}</p>\n </div>\n );\n };\n\n return (\n <div style={{ gridColumn: `span ${columnSpan} / span ${columnSpan}` }}>{renderField()}</div>\n );\n};\n","import React from 'react';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport { ajvResolver } from '@hookform/resolvers/ajv';\nimport { JSONSchema, UISchema, FormClassNames } from '../types/schema';\nimport { FieldRenderer } from './FieldRenderer';\nimport { ClassNamesProvider, cx } from './ClassNamesContext';\nimport '../styles/form.css';\n\ninterface SchemaFormProps {\n schema: JSONSchema;\n uiSchema?: Record<string, UISchema>;\n onSubmit: (data: any) => void;\n defaultValues?: any;\n columns?: 1 | 2 | 3 | 4;\n theme?: {\n primary?: string;\n background?: string;\n text?: string;\n error?: string;\n surface?: string;\n border?: string;\n };\n classNames?: FormClassNames;\n}\n\nexport const SchemaForm: React.FC<SchemaFormProps> = ({\n schema,\n uiSchema = {},\n onSubmit,\n defaultValues,\n columns = 1,\n theme,\n classNames = {},\n}) => {\n const methods = useForm({\n resolver: ajvResolver(schema as any, {\n formats: {\n 'rich-text': true,\n password: true,\n 'data-url': true,\n email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n },\n }),\n defaultValues,\n });\n\n if (schema.type !== 'object' || !schema.properties) {\n return <div className=\"cdf-error-message\">Root schema must be an object with properties.</div>;\n }\n\n const themeStyles = theme\n ? ({\n '--cdf-primary': theme.primary,\n '--cdf-bg': theme.background,\n '--cdf-text': theme.text,\n '--cdf-error': theme.error,\n '--cdf-surface': theme.surface,\n '--cdf-border': theme.border,\n } as React.CSSProperties)\n : {};\n\n return (\n <ClassNamesProvider value={classNames}>\n <div className={cx('cdf-form-container', classNames.container)} style={themeStyles}>\n {schema.title && <h2 className={cx('cdf-form-title', classNames.title)}>{schema.title}</h2>}\n {schema.description && (\n <p\n className={classNames.description}\n style={{ color: 'var(--cdf-text-muted)', marginBottom: '1.5rem' }}\n >\n {schema.description}\n </p>\n )}\n\n <FormProvider {...methods}>\n <form className={classNames.form} onSubmit={methods.handleSubmit(onSubmit)} noValidate>\n <div className={`cdf-form-grid-${columns}`}>\n {Object.entries(schema.properties).map(([key, propSchema]) => (\n <FieldRenderer\n key={key}\n name={key}\n schema={propSchema}\n uiSchema={uiSchema[key]}\n isRequired={schema.required?.includes(key)}\n />\n ))}\n </div>\n <button type=\"submit\" className={cx('cdf-submit-btn', classNames.submitButton)}>\n Submit\n </button>\n </form>\n </FormProvider>\n </div>\n </ClassNamesProvider>\n );\n};\n"]}
|