UNPKG

@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
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 {};