Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
import type { FormErrors } from '../../../types';
export declare function filterErrors(errors: FormErrors): FormErrors;

View File

@@ -0,0 +1,9 @@
import { ClearErrors, ClearFieldError, FormErrors, SetErrors, SetFieldError } from '../../types';
export interface $FormErrors<Values extends Record<string, any>> {
errorsState: FormErrors;
setErrors: SetErrors;
clearErrors: ClearErrors;
setFieldError: SetFieldError<Values>;
clearFieldError: ClearFieldError;
}
export declare function useFormErrors<Values extends Record<string, any>>(initialErrors: FormErrors): $FormErrors<Values>;

View File

@@ -0,0 +1,16 @@
import { InsertListItem, RemoveListItem, ReorderListItem, ReplaceListItem } from '../../types';
import type { $FormErrors } from '../use-form-errors/use-form-errors';
import type { $FormStatus } from '../use-form-status/use-form-status';
import type { $FormValues } from '../use-form-values/use-form-values';
interface UseFormListInput<Values extends Record<string, any>> {
$values: $FormValues<Values>;
$errors: $FormErrors<Values>;
$status: $FormStatus<Values>;
}
export declare function useFormList<Values extends Record<string, any>>({ $values, $errors, $status, }: UseFormListInput<Values>): {
reorderListItem: ReorderListItem<Values>;
removeListItem: RemoveListItem<Values>;
insertListItem: InsertListItem<Values>;
replaceListItem: ReplaceListItem<Values>;
};
export {};

View File

@@ -0,0 +1,30 @@
import { ClearFieldDirty, FormMode, FormStatus, GetFieldStatus, ResetStatus, SetCalculatedFieldDirty, SetFieldDirty, SetFieldTouched } from '../../types';
import type { $FormValues } from '../use-form-values/use-form-values';
export interface $FormStatus<Values extends Record<string, any>> {
touchedState: FormStatus;
dirtyState: FormStatus;
touchedRef: React.RefObject<FormStatus>;
dirtyRef: React.RefObject<FormStatus>;
setTouched: React.Dispatch<React.SetStateAction<FormStatus>>;
setDirty: React.Dispatch<React.SetStateAction<FormStatus>>;
resetDirty: ResetStatus;
resetTouched: ResetStatus;
isTouched: GetFieldStatus<Values>;
setFieldTouched: SetFieldTouched<Values>;
setFieldDirty: SetFieldDirty<Values>;
setTouchedState: React.Dispatch<React.SetStateAction<FormStatus>>;
setDirtyState: React.Dispatch<React.SetStateAction<FormStatus>>;
clearFieldDirty: ClearFieldDirty;
isDirty: GetFieldStatus<Values>;
getDirty: () => FormStatus;
getTouched: () => FormStatus;
setCalculatedFieldDirty: SetCalculatedFieldDirty<Values>;
}
interface UseFormStatusInput<Values extends Record<string, any>> {
initialDirty: FormStatus;
initialTouched: FormStatus;
mode: FormMode;
$values: $FormValues<Values>;
}
export declare function useFormStatus<Values extends Record<string, any>>({ initialDirty, initialTouched, mode, $values, }: UseFormStatusInput<Values>): $FormStatus<Values>;
export {};

View File

@@ -0,0 +1,40 @@
import { FormMode } from '../../types';
export interface $FormValues<Values extends Record<PropertyKey, any>> {
initialized: React.RefObject<boolean>;
stateValues: Values;
refValues: React.RefObject<Values>;
valuesSnapshot: React.RefObject<Values>;
setValues: (payload: SetValuesInput<Values>) => void;
setFieldValue: (payload: SetFieldValueInput<Values>) => void;
resetValues: () => void;
setValuesSnapshot: (payload: Values) => void;
initialize: (values: Values, onInitialize: () => void) => void;
getValues: () => Values;
getValuesSnapshot: () => Values;
resetField: (path: PropertyKey, subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]) => void;
}
export interface SetValuesSubscriberPayload<Values> {
path?: PropertyKey;
updatedValues: Values;
previousValues: Values;
}
export interface SetValuesInput<Values> {
values: Partial<Values> | ((values: Values) => Partial<Values>);
mergeWithPreviousValues?: boolean;
updateState?: boolean;
subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];
}
export type SetFieldValueSubscriber<Values> = (payload: SetValuesSubscriberPayload<Values>) => void;
export interface SetFieldValueInput<Values> {
path: PropertyKey;
value: any;
updateState?: boolean;
subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];
}
interface UseFormValuesInput<Values extends Record<PropertyKey, any>> {
initialValues: Values | undefined;
mode: FormMode;
onValuesChange?: ((values: Values, previousValues: Values) => void) | undefined;
}
export declare function useFormValues<Values extends Record<PropertyKey, any>>({ initialValues, onValuesChange, mode, }: UseFormValuesInput<Values>): $FormValues<Values>;
export {};

View File

@@ -0,0 +1,14 @@
import { LooseKeys } from '../../paths.types';
import { FormFieldSubscriber, Watch } from '../../types';
import { $FormStatus } from '../use-form-status/use-form-status';
import { SetValuesSubscriberPayload } from '../use-form-values/use-form-values';
interface UseFormWatchInput<Values extends Record<string, any>> {
$status: $FormStatus<Values>;
cascadeUpdates?: boolean;
}
export declare function useFormWatch<Values extends Record<string, any>>({ $status, cascadeUpdates, }: UseFormWatchInput<Values>): {
subscribers: import("react").RefObject<Record<LooseKeys<Values>, FormFieldSubscriber<Values, any>[]>>;
watch: Watch<Values>;
getFieldSubscribers: (path: LooseKeys<Values>) => ((input: SetValuesSubscriberPayload<Values>) => void)[];
};
export {};