import { Field } from "@base-ui/react/field"; import { Input as BaseInput } from "@base-ui/react/input"; import { Asterisk } from "lucide-react"; import type { ComponentProps } from "react"; import cn from "~/utils/cn"; export interface InputProps extends Omit, "onChange"> { label: string; labelHidden?: boolean; required?: boolean; className?: string; invalid?: boolean; errorMessage?: string; description?: string; onChange?: (value: string) => void; } export default function Input(props: InputProps) { const { label, labelHidden, className, invalid, errorMessage, description, required, onChange, ...rest } = props; return ( {label} {required && } ) => onChange(e.target.value) : undefined } /> {description && ( {description} )} {invalid && errorMessage ? ( {errorMessage} ) : null} ); }