@ooopenlab/quiz-form-fields
Version:
Form field type definitions and components for SuperQuiz modules
53 lines (46 loc) • 1.2 kB
text/typescript
export interface BaseFormFieldProps {
label?: string;
value?: any;
onChange?: (value: any) => void;
required?: boolean;
disabled?: boolean;
error?: string;
placeholder?: string;
className?: string;
}
export interface TextInputProps extends BaseFormFieldProps {
type?: 'text' | 'email' | 'password' | 'url';
maxLength?: number;
minLength?: number;
}
export interface TextareaProps extends BaseFormFieldProps {
rows?: number;
maxLength?: number;
autoResize?: boolean;
}
export interface SelectProps extends BaseFormFieldProps {
options: Array<{
label: string;
value: any;
}>;
multiple?: boolean;
}
export interface NumberInputProps extends BaseFormFieldProps {
min?: number;
max?: number;
step?: number;
}
export interface ColorPickerProps extends BaseFormFieldProps {
format?: 'hex' | 'rgb' | 'hsl';
presets?: string[];
}
export interface ImageUploaderProps extends BaseFormFieldProps {
accept?: string;
maxSize?: number; // in bytes
maxFiles?: number;
preview?: boolean;
}
export interface RichTextEditorProps extends BaseFormFieldProps {
toolbar?: string[];
height?: number;
}