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
TypeScript
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