@easykit/design
Version:
Easy kit design components
26 lines (25 loc) • 1.05 kB
TypeScript
import { FC, FormHTMLAttributes, PropsWithChildren, ReactElement, ReactNode, Ref } from 'react';
import { ControllerRenderProps, DefaultValues, SubmitHandler, UseFormReturn, Control, FieldValues, WatchObserver } from 'react-hook-form';
import { ZodType } from 'zod';
export interface RenderProps extends ControllerRenderProps {
placeholder?: string;
}
export interface FieldItem<T extends FieldValues> extends PropsWithChildren {
name: string;
label?: string | ReactNode;
description?: string;
control?: Control<T>;
className?: string;
}
export type FormProps<T extends FieldValues> = Omit<FormHTMLAttributes<HTMLFormElement>, 'onSubmit'> & {
schema?: ZodType<T>;
defaultValues?: DefaultValues<T>;
onSubmit?: SubmitHandler<T>;
className?: string;
onValuesChange?: WatchObserver<T>;
stopPropagation?: boolean;
};
export declare const FormItem: FC<FieldItem<any>>;
export declare const Form: <T extends FieldValues>(props: FormProps<T> & {
ref?: Ref<UseFormReturn<T> | undefined>;
}) => ReactElement;