claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
89 lines • 2.87 kB
TypeScript
type ValidationRule = {
rule: (value: any, data?: any) => boolean | string | Promise<boolean | string>;
message: string;
validateIf?: (data: any) => boolean;
};
type FormData = Record<string, any>;
interface Props {
validateOn?: 'blur' | 'input' | 'submit' | 'manual';
validateAllOnSubmit?: boolean;
showAllErrors?: boolean;
debounce?: number;
scrollToError?: boolean;
scrollOffset?: number;
focusFirstError?: boolean;
onvalid?: (event: CustomEvent<{
valid: boolean;
data: FormData;
}>) => void;
oninvalid?: (event: CustomEvent<{
errors: Record<string, string>;
data: FormData;
}>) => void;
onsubmit?: (event: CustomEvent<{
data: FormData;
preventDefault: () => void;
}>) => void;
onfieldchange?: (event: CustomEvent<{
field: string;
value: any;
valid: boolean | null;
error: string | null;
}>) => void;
onfieldblur?: (event: CustomEvent<{
field: string;
value: any;
valid: boolean | null;
error: string | null;
}>) => void;
children?: import('svelte').Snippet<[
{
formData: FormData;
formValid: boolean | null;
isSubmitting: boolean;
submitAttempted: boolean;
onsubmit: (event: Event) => Promise<void>;
onreset: () => void;
}
]>;
}
declare const FormValidation: import("svelte").Component<Props, {
validateField: (fieldId: string) => Promise<boolean>;
validateAll: () => Promise<boolean>;
handleSubmit: (event?: Event) => Promise<void>;
resetForm: () => void;
getFieldState: (fieldId: string) => {
id: string;
value: any;
touched: boolean;
dirty: boolean;
valid: boolean | null;
error: string | null;
pending: boolean;
} | null;
getFormState: () => {
valid: boolean | null;
isSubmitting: boolean;
submitAttempted: boolean;
fields: Record<string, any>;
values: {
[x: string]: any;
};
};
setFieldValue: (fieldId: string, value: any, validate?: boolean) => void;
setFieldError: (fieldId: string, error: string | null) => void;
setErrors: (errors: Record<string, string>) => void;
setValues: (values: Record<string, any>) => void;
registerField: (id: string, initialValue: any, rules: ValidationRule[] | undefined, validate: () => Promise<boolean>) => {
update: (value: any) => void;
blur: () => void;
destroy: () => void;
} | undefined;
formData: FormData;
formValid: boolean | null;
isSubmitting: false;
submitAttempted: false;
}, "">;
type FormValidation = ReturnType<typeof FormValidation>;
export default FormValidation;
//# sourceMappingURL=FormValidation.svelte.d.ts.map