import { InputHTMLAttributes, forwardRef } from "react" import { cva, type VariantProps } from "class-variance-authority" import { LucideIcon } from "lucide-react" import { cn } from "@/lib/utils" const inputVariants = cva( [ "w-full rounded-md bg-zinc-50", "text-anakiwa-950 placeholder-anakiwa-950", "border-[1.5px] border-tuatara-200", "transition-colors duration-100 animate", "focus:ring-0", "focus-visible:border-2 focus-visible:border-tuatara-950", "focus-visible:ring-0 focus-visible:none focus-visible:outline-none", "dark:bg-transparent dark:border dark:border-anakiwa-800 dark:text-anakiwa-300 dark:placeholder-anakiwa-300", ].join(" "), { variants: { size: { default: "text-sm py-2 px-4", sm: "text-xs py-2 px-4", lg: "text-lg py-3 px-6", }, }, defaultVariants: { size: "default", }, } ) interface InputProps extends VariantProps, Omit, "size" | "id" | "children"> { icon?: LucideIcon iconPosition?: "left" | "right" onIconClick?: () => void } const Input = forwardRef( ( { size, className, icon: Icon, iconPosition = "left", onIconClick, ...props }, ref ) => { if (!Icon) { return ( ) } return ( {onIconClick ? ( ) : ( )} ) } ) Input.displayName = "Input" export { Input }