| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | import type { FC } from 'react'import { CheckCircle } from '@/app/components/base/icons/src/vender/solid/general'type InputProps = {  value?: string  onChange: (v: string) => void  onFocus?: () => void  placeholder?: string  validated?: boolean  className?: string  disabled?: boolean  type?: string  min?: number  max?: number}const Input: FC<InputProps> = ({  value,  onChange,  onFocus,  placeholder,  validated,  className,  disabled,  type = 'text',  min,  max,}) => {  const toLimit = (v: string) => {    const minNum = parseFloat(`${min}`)    const maxNum = parseFloat(`${max}`)    if (!isNaN(minNum) && parseFloat(v) < minNum) {      onChange(`${min}`)      return    }    if (!isNaN(maxNum) && parseFloat(v) > maxNum)      onChange(`${max}`)  }  return (    <div className='relative'>      <input        tabIndex={0}        className={`          block px-3 w-full h-9 bg-gray-100 text-sm rounded-lg border border-transparent          appearance-none outline-none caret-primary-600          hover:border-[rgba(0,0,0,0.08)] hover:bg-gray-50          focus:bg-white focus:border-gray-300 focus:shadow-xs          placeholder:text-sm placeholder:text-gray-400          ${validated && 'pr-[30px]'}          ${className}        `}        placeholder={placeholder || ''}        onChange={e => onChange(e.target.value)}        onBlur={e => toLimit(e.target.value)}        onFocus={onFocus}        value={value}        disabled={disabled}        type={type}        min={min}        max={max}      />      {        validated && (          <div className='absolute top-2.5 right-2.5'>            <CheckCircle className='w-4 h-4 text-[#039855]' />          </div>        )      }    </div>  )}export default Input
 |