UNPKG

aura-glass

Version:

A comprehensive glassmorphism design system for React applications with 142+ production-ready components

101 lines 3.68 kB
/** * Form validation utilities for form templates */ export interface ValidationRule { type: 'required' | 'email' | 'min' | 'max' | 'pattern' | 'custom'; value?: any; message: string; validator?: (value: any) => boolean; } export interface FieldValidation { [fieldId: string]: ValidationRule[]; } export interface ValidationResult { isValid: boolean; errors: Record<string, string>; } /** * Built-in validation rules */ export declare const validationRules: { required: (message?: string) => ValidationRule; email: (message?: string) => ValidationRule; minLength: (min: number, message?: string) => ValidationRule; maxLength: (max: number, message?: string) => ValidationRule; minValue: (min: number, message?: string) => ValidationRule; maxValue: (max: number, message?: string) => ValidationRule; pattern: (regex: RegExp, message: string) => ValidationRule; custom: (validator: (value: any) => boolean, message: string) => ValidationRule; phone: (message?: string) => ValidationRule; url: (message?: string) => ValidationRule; strongPassword: (message?: string) => ValidationRule; }; /** * Validate a single field value against its rules */ export declare const validateField: (value: any, rules: ValidationRule[]) => string | null; /** * Validate multiple fields */ export declare const validateFields: (values: Record<string, any>, validation: FieldValidation) => ValidationResult; /** * Common validation schemas */ export declare const commonValidationSchemas: { userRegistration: { firstName: ValidationRule[]; lastName: ValidationRule[]; email: ValidationRule[]; password: ValidationRule[]; confirmPassword: ValidationRule[]; terms: ValidationRule[]; }; contactForm: { name: ValidationRule[]; email: ValidationRule[]; subject: ValidationRule[]; message: ValidationRule[]; }; profileUpdate: { displayName: ValidationRule[]; bio: ValidationRule[]; website: ValidationRule[]; phone: ValidationRule[]; }; passwordChange: { currentPassword: ValidationRule[]; newPassword: ValidationRule[]; confirmNewPassword: ValidationRule[]; }; }; /** * Custom validation functions for common scenarios */ export declare const customValidators: { passwordsMatch: (password: string, confirmPassword: string) => boolean; uniqueEmail: (email: string, checkFunction: (email: string) => Promise<boolean>) => Promise<boolean>; fileSize: (file: File, maxSizeInMB: number) => boolean; fileType: (file: File, allowedTypes: string[]) => boolean; dateRange: (date: Date, minDate?: Date, maxDate?: Date) => boolean; creditCard: (cardNumber: string) => boolean; }; /** * Async validation utilities */ export declare const asyncValidation: { debounce: (func: Function, delay: number) => (...args: any[]) => Promise<unknown>; createAsyncValidator: (asyncCheck: (value: any) => Promise<boolean>, message: string, debounceMs?: number) => (value: any) => Promise<string | null>; }; /** * Form validation state manager */ export declare class FormValidator { private validationSchema; private asyncValidators; constructor(validationSchema?: FieldValidation); setValidationSchema(schema: FieldValidation): void; addAsyncValidator(fieldId: string, validator: (value: any) => Promise<string | null>): void; validateForm(values: Record<string, any>): Promise<ValidationResult>; validateField(fieldId: string, value: any): Promise<string | null>; } //# sourceMappingURL=FormValidationUtils.d.ts.map