import * as React from 'react'

import { cn } from '@/lib/utils'

function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
  return (
    <input
      type={type}
      data-slot="input"
      className={cn(
        'file:text-foreground placeholder:text-muted-foreground',
        'selection:bg-primary selection:text-primary-foreground',
        'dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md',
        'border bg-transparent px-3 py-1',
        'transition-[color,border-color] outline-none file:inline-flex',
        'file:h-7 file:border-0 file:bg-transparent file:text-sm',
        'file:font-medium disabled:pointer-events-none',
        'disabled:cursor-not-allowed disabled:opacity-50',
        'focus-visible:border-ring duration-300',
        'placeholder:text-gray-400',
        'text-sm md:text-sm',
        'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
        'invalid:border-destructive invalid:ring-destructive/20 dark:invalid:ring-destructive/40',
        'placeholder-shown:invalid:border-input placeholder-shown:invalid:ring-transparent dark:placeholder-shown:invalid:ring-transparent',
        className,
      )}
      {...props}
    />
  )
}

export { Input }
