پلاک خودرو
plate-inputکامپوننتچیدمان ۲ رقم، حرف، ۳ رقم و کد شهر مثل پلاک واقعی؛ انتخاب حرف از فهرست با معنی هر حرف؛ تایپ پیوسته بین جعبهها.
نصب
با CLI
اگر هنوز init نکردهاید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور قطعه و وابستگیهایش را مینویسد.
$ npx vibefarsi add plate-inputنصب دستی
محتوای تب «کد» را در
components/ui/plate-input.tsxبگذارید.$ npm i lucide-reactکپی کل فایلregistry json
استفاده
usage.tsx
1import { PlateInput } from "@/components/ui/plate-input"2import { stringifyPlate } from "@/lib/persian"34<PlateInput onChange={(plate, complete) => complete && setPlate(stringifyPlate(plate))} />56// فقط تاکسی:7<PlateInput letters={["ت"]} />پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| value / defaultValue | PlateValue | - | { left, letter, middle, region } با رقمهای لاتین. |
| onChange | (value, complete) => void | - | complete وقتی هر چهار بخش پر و حرف مجاز باشد. |
| letters | string[] | - | محدود کردن حرفهای مجاز، مثلاً ["ت"] برای تاکسی. |
| name | string | - | ورودی مخفی با مقدار «12ب345-11» برای فرم معمولی. |
نکتههای راستچین
- خود پلاک dir="ltr" است چون روی فلز از چپ خوانده میشود؛ فهرست حرفها rtl است و کلیدهای چپ/راست در آن برعکس میشوند.
- تایپ حرف روی جعبهی حرف هم کار میکند: ي و ك عربی به ی و ک، و «ا» به «الف» تبدیل میشود.
- چسباندن کل پلاک در جعبهی اول همهی بخشها را پر میکند.