@explita/daily-toolset-form
Version:
A lightweight form toolkit for React built with developer ergonomics in mind. Includes a flexible Form component, useForm, useField, and useFormContext hooks for managing form state and validation with ease. Designed to simplify complex forms while remain
15 lines (14 loc) • 1.14 kB
TypeScript
import React from "react";
import { useForm } from "../hooks/useForm";
import z, { ZodObject } from "zod";
export type FormContextValue<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>> = ReturnType<typeof useForm<TSchema, DefaultValues>>;
type FormProps<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>> = {
use?: FormContextValue<TSchema, DefaultValues>;
onValid?: (values: any) => void;
children: React.ReactNode;
as?: "form" | "div" | "section";
className?: string;
} & React.HTMLAttributes<HTMLFormElement | HTMLDivElement>;
export declare const FormContext: React.Context<import("..").UseFormHook<Record<string, any>, any> | null>;
export declare function Form<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>>({ children, use, onValid, as, className, ...rest }: FormProps<TSchema, DefaultValues>): React.JSX.Element;
export {};