UNPKG

@lifespikes/ui

Version:
45 lines (44 loc) 3.18 kB
import * as React from 'react'; import * as LabelPrimitive from '@radix-ui/react-label'; import { ControllerProps, FieldPath, FieldValues, useForm } from 'react-hook-form'; import { UseFormStateReturn } from 'react-hook-form/dist/types'; import { ControllerFieldState, ControllerRenderProps } from 'react-hook-form/dist/types/controller'; declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues extends FieldValues | undefined = undefined>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element; export type RenderContext<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = { field: ControllerRenderProps<TFieldValues, TName>; fieldState: ControllerFieldState; formState: UseFormStateReturn<TFieldValues>; label: string; labelFromName?: string; requiredSign?: boolean; fieldContext: UseFormFieldReturnType; }; export type FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = { render: (context: RenderContext<TFieldValues, TName>) => React.ReactElement; label?: string; requiredSign?: boolean; showErrors?: boolean; } & Omit<ControllerProps<TFieldValues, TName>, 'render'>; export type FormFieldType<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Omit<FormFieldProps<TFieldValues, TName>, 'render'> & { _label?: React.ComponentPropsWithoutRef<typeof FormLabel>; }; declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ label, requiredSign, showErrors, ...props }: FormFieldProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element; declare const useFormField: () => { invalid: boolean; isDirty: boolean; isTouched: boolean; isValidating: boolean; error?: import("react-hook-form").FieldError | undefined; id: string; name: string; formItemId: string; formDescriptionId: string; formMessageId: string; }; export type UseFormFieldReturnType = ReturnType<typeof useFormField>; declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>; declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>; declare const FormControl: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-slot").SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>; declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>; declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>; export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, useForm, };