import React from 'react'; import { toEnglishDigits } from '../../lib/utils'; type Props = React.InputHTMLAttributes & { hasError?: boolean; /** فیلد فقط‌عددی: کیبورد عددی، جهت LTR، و تبدیل زندهٔ ارقام فارسی/عربی به لاتین. */ numeric?: boolean; }; /** * Input متنی پایهٔ design system: کلاس `cp-input`، حالت خطا (قاب قرمز)، * و forwardRef برای سازگاری با react-hook-form `register`. * با `numeric`، ورودی به لاتین نرمال می‌شود تا از ثبت ارقام فارسی جلوگیری شود. */ export default React.forwardRef(function Input( { hasError, numeric, className, style, onChange, inputMode, dir, lang, ...rest }, ref, ) { const handleChange = numeric ? (e: React.ChangeEvent) => { const latin = toEnglishDigits(e.target.value); if (latin !== e.target.value) e.target.value = latin; onChange?.(e); } : onChange; return ( ); });