import * as React from 'react'

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

function Input({className, type, ...props}: React.ComponentProps<'input'>) {
  return (
    <input
      type={type}
      data-slot="input"
      className={merge(
        `transition-[color] duration-200 ease-in-out`,
        `h-10 min-w-0 w-full`,
        'placeholder:text-weak',
        'selection:bg-primary selection:text-primary-foreground',
        'flex rounded-md border bg-card px-3 py-1 text-base',
        'outline-none focus-visible:ring-4 ring-ring/50',
        'disabled:cursor-not-allowed disabled:opacity-50',
        'aria-invalid:ring-fail/20 aria-invalid:border-fail dark:aria-invalid:ring-fail/40 dark:bg-input/30',
        'file:text-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:disabled:pointer-events-none',
        className,
      )}
      {...props}
    />
  )
}

export {Input}
