import { cn } from './utils';
import type { VariantProps } from 'class-variance-authority';
import { cva } from 'class-variance-authority';
import { forwardRef } from 'react';

const variants = cva(
  '[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none focus:ring-0 hover:border-primary-500 focus:border-primary-500 block w-full rounded-sm border disabled:hover:border-gray-300 border-gray-300 h-9 p-2 px-3 text-sm text-gray-900 outline-none transition-all ease-in-out disabled:cursor-not-allowed disabled:text-opacity-30'
);

export type InputProps = React.InputHTMLAttributes<HTMLInputElement> &
  VariantProps<typeof variants>;

export const Input = forwardRef<HTMLInputElement, InputProps>(({ className, ...props }, ref) => (
  <input ref={ref} type="text" className={cn(variants({ className }))} {...props} />
));

export const InputNumber = forwardRef<HTMLInputElement, InputProps>((props, ref) => (
  <Input ref={ref} type="number" {...props} />
));
