UNPKG

react-vite-themes

Version:

A test/experimental React theme system created for learning purposes. Features atomic design components, SCSS variables, and dark/light theme support. Not intended for production use.

68 lines 1.75 kB
export interface ValidationRule { required?: boolean; minLength?: number; maxLength?: number; pattern?: RegExp; email?: boolean; url?: boolean; min?: number; max?: number; custom?: (value: any, allValues?: Record<string, any>) => string | null; } export interface ValidationResult { isValid: boolean; errors: string[]; } export interface FieldValidation { value: any; errors: string[]; isTouched: boolean; isValid: boolean; } export declare const validateField: (value: any, rules: ValidationRule, allValues?: Record<string, any>) => ValidationResult; export declare const validateForm: (values: Record<string, any>, validationSchema: Record<string, ValidationRule>) => Record<string, ValidationResult>; export declare const isFormValid: (validationResults: Record<string, ValidationResult>) => boolean; export declare const VALIDATION_PATTERNS: { EMAIL: RegExp; PHONE: RegExp; PASSWORD: RegExp; URL: RegExp; ALPHANUMERIC: RegExp; ALPHA_ONLY: RegExp; NUMERIC: RegExp; DECIMAL: RegExp; }; export declare const VALIDATION_RULES: { REQUIRED: { required: boolean; }; EMAIL: { required: boolean; email: boolean; }; PASSWORD: { required: boolean; minLength: number; pattern: RegExp; }; PHONE: { required: boolean; pattern: RegExp; }; URL: { required: boolean; url: boolean; }; NAME: { required: boolean; pattern: RegExp; minLength: number; }; USERNAME: { required: boolean; pattern: RegExp; minLength: number; maxLength: number; }; }; //# sourceMappingURL=validation.d.ts.map