solid-hook-form 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.d.ts CHANGED
@@ -1,4 +1,74 @@
1
- export { useForm } from './use_form';
2
- export { FormProvider } from './form_provider';
3
- export { useFormContext } from './use_form_context';
4
- export type { FieldError, FieldErrors } from './types/errors';
1
+ import { Path, LiteralUnion, FieldPath, FieldPathValue, Resolver } from 'react-hook-form';
2
+ import * as solid_js from 'solid-js';
3
+ import { Accessor, ParentProps } from 'solid-js';
4
+
5
+ type Message = string;
6
+ type FieldError = {
7
+ type: LiteralUnion<keyof Rules, string>;
8
+ ref?: HTMLElement;
9
+ message?: Message;
10
+ };
11
+ type FieldErrors<F extends FormValues = FormValues> = Partial<Record<Path<F>, FieldError>>;
12
+
13
+ type ValidateResult = Message | boolean | undefined;
14
+ type Validate<V, F> = (value: V, formValues: F) => ValidateResult | Promise<ValidateResult>;
15
+ type ValidationValue = boolean | number | string | RegExp;
16
+ type ValidationRule<V extends ValidationValue = ValidationValue> = V | ValidationValueMessage<V>;
17
+ type ValidationValueMessage<V extends ValidationValue = ValidationValue> = {
18
+ value: V;
19
+ message: Message;
20
+ };
21
+ type Rules<F extends FormValues = FormValues, N extends FieldPath<F> = FieldPath<F>> = {
22
+ required?: Message | ValidationRule<boolean>;
23
+ min?: ValidationRule<number | string>;
24
+ max?: ValidationRule<number | string>;
25
+ maxLength?: ValidationRule<number>;
26
+ minLength?: ValidationRule<number>;
27
+ pattern?: ValidationRule<RegExp>;
28
+ valueAsNumber?: boolean;
29
+ validate?: Validate<FieldPathValue<F, N>, F>;
30
+ };
31
+
32
+ type FormValues = Record<string, any>;
33
+ type Ref = HTMLElement | null;
34
+ type RegisterReturn<F extends FormValues> = {
35
+ name: Path<F>;
36
+ ref(ref: Ref): void;
37
+ onInput(event: Event): void;
38
+ onChange(event: Event): void;
39
+ };
40
+ type Register<T extends FormValues> = (name: Path<T>, options?: Rules<T, Path<T>>) => RegisterReturn<T>;
41
+ type GetValues<F extends FormValues> = {
42
+ (): F;
43
+ <N extends FieldPath<F>>(name: N): FieldPathValue<F, N>;
44
+ };
45
+ type SetValue<F extends FormValues> = (name: Path<F>, value: FieldPathValue<F, Path<F>>) => void;
46
+ type SubmitCallback<F extends FormValues> = (values: F) => void;
47
+ type OnSubmit<F extends FormValues> = (submit: SubmitCallback<F>) => (event: SubmitEvent) => void;
48
+ type Reset<F extends FormValues> = (newDefaultValues?: Partial<F>) => void;
49
+ type UseFormReturn<F extends FormValues = FormValues> = {
50
+ values: Accessor<F>;
51
+ errors: Accessor<FieldErrors<F>>;
52
+ isValid: Accessor<boolean>;
53
+ register: Register<F>;
54
+ getValues: GetValues<F>;
55
+ setValue: SetValue<F>;
56
+ onSubmit: OnSubmit<F>;
57
+ reset: Reset<F>;
58
+ };
59
+
60
+ type UseFormArg<F extends FormValues> = {
61
+ defaultValues: F;
62
+ mode?: "onChange" | "onSubmit";
63
+ resolver?: Resolver<F>;
64
+ };
65
+ declare const useForm: <F extends FormValues>(arg?: UseFormArg<F>) => UseFormReturn<F>;
66
+
67
+ type FormProviderProps<T extends FormValues> = ParentProps & {
68
+ form: UseFormReturn<T>;
69
+ };
70
+ declare const FormProvider: <T extends FormValues>(props: FormProviderProps<T>) => solid_js.JSX.Element;
71
+
72
+ declare const useFormContext: <T extends FormValues>() => UseFormReturn<T>;
73
+
74
+ export { type FieldError, type FieldErrors, FormProvider, useForm, useFormContext };