import * as React from "react" import { Controller, type Control, type FieldPath, type FieldValues, type RegisterOptions } from "react-hook-form" import { FormFieldShell, type FormFieldShellControlProps, resolveFormFieldIds, } from "@/components/form/form-field-shell" import { Textarea } from "@/components/ui/textarea" export type FormTextareaProps< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath, > = Omit, "name" | "value" | "defaultValue"> & FormFieldShellControlProps & { control: Control name: TName rules?: RegisterOptions fieldClassName?: string transformIn?: (value: unknown) => string | number | readonly string[] | undefined transformOut?: (event: React.ChangeEvent) => unknown } function FormTextarea< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath, >({ control, name, rules, label, description, success, loading, required, className, layout, descriptionPosition, labelAction, requiredIndicator, errorIcon, showErrorIcon, disabled, readOnly, labelClassName, labelRowClassName, descriptionClassName, errorClassName, contentClassName, fieldClassName, transformIn, transformOut, id, onChange, onBlur, ...props }: FormTextareaProps) { const textareaId = id ?? name return ( { const error = fieldState.error?.message const resolvedIds = resolveFormFieldIds(textareaId, { description, error }) return (