UNPKG

giggle-guard

Version:

🛡️ Giggle Guard - A curated collection of 3000+ hilarious validation messages that turn boring form errors into delightful user experiences. Make your users smile instead of rage-quit!

112 lines (92 loc) 3.96 kB
type Tone = "casual" | "dark" | "dramatic" | "friendly" | "funny" | "genZ" | "millennial" | "motivational" | "mysterious" | "nerdy" | "poetic" | "popCulture" | "professional" | "sarcastic" | "witty"; type FieldType = "address" | "checkbox" | "creditCard" | "date" | "email" | "file" | "general" | "name" | "password" | "phone" | "radio" | "select" | "time" | "url" | "zipcode"; type ErrorType = "doesntMatch" | "duplicate" | "expired" | "exists" | "format" | "inFuture" | "inPast" | "invalid" | "invalidCVV" | "invalidType" | "notSelected" | "outOfRange" | "required" | "tooLarge" | "tooLong" | "tooShort" | "tooSmall" | "tooWeak"; interface ValidationMessage { id: string; message: string; tone: Tone; fieldType: FieldType; errorType: ErrorType; category: string; } interface GetMessageOptions { fieldType: FieldType; errorType: ErrorType; tone?: Tone; excludeUsed?: boolean; } interface ValidationMessageMap { [key: string]: ValidationMessage[]; } interface GiggleGuardConfig { defaultTone?: Tone | "random"; trackUsedMessages?: boolean; fallbackToGeneric?: boolean; strictValidation?: boolean; } declare const addressMessages: ValidationMessage[]; declare const checkboxMessages: ValidationMessage[]; declare const creditCardMessages: ValidationMessage[]; declare const dateMessages: ValidationMessage[]; declare const emailMessages: ValidationMessage[]; declare const fileMessages: ValidationMessage[]; declare const generalMessages: ValidationMessage[]; declare const nameMessages: ValidationMessage[]; declare const passwordMessages: ValidationMessage[]; declare const phoneMessages: ValidationMessage[]; declare const radioMessages: ValidationMessage[]; declare const selectMessages: ValidationMessage[]; declare const timeMessages: ValidationMessage[]; declare const urlMessages: ValidationMessage[]; declare const zipcodeMessages: ValidationMessage[]; declare const allMessages: ValidationMessage[]; declare const validateFieldErrorCombo: (fieldType: FieldType, errorType: ErrorType) => { valid: boolean; allowedErrors?: ErrorType[]; }; declare class GiggleGuard { private config; private usedMessages; constructor(config?: GiggleGuardConfig); /** * Get a random validation message based on field type and error type */ getMessage(options: GetMessageOptions): string; /** * Get multiple messages for the same validation */ getMessages(options: GetMessageOptions, count?: number): string[]; /** * Get a message by specific ID */ getMessageById(id: string): ValidationMessage | undefined; /** * Get all messages for a specific field type */ getMessagesByField(fieldType: FieldType): ValidationMessage[]; /** * Get all messages with a specific tone */ getMessagesByTone(tone: Tone): ValidationMessage[]; /** * Reset used messages tracking */ resetUsedMessages(): void; /** * Get statistics about available messages */ getStats(): { total: number; byFieldType: Record<FieldType, number>; byTone: Record<Tone, number>; byErrorType: Record<ErrorType, number>; }; /** * Update configuration */ updateConfig(newConfig: Partial<GiggleGuardConfig>): void; } declare const getMessage: (options: GetMessageOptions) => string; declare const getMessages: (options: GetMessageOptions, count?: number) => string[]; export { GiggleGuard, addressMessages, allMessages, checkboxMessages, creditCardMessages, dateMessages, GiggleGuard as default, emailMessages, fileMessages, generalMessages, getMessage, getMessages, nameMessages, passwordMessages, phoneMessages, radioMessages, selectMessages, timeMessages, urlMessages, validateFieldErrorCombo, zipcodeMessages }; export type { ErrorType, FieldType, GetMessageOptions, GiggleGuardConfig, Tone, ValidationMessage, ValidationMessageMap };