Mobile Number Input
A plain Iranian mobile number field — no carrier logo, no carrier detection. It normalizes +989121234567, 989121234567, 09121234567, 9121234567, and Persian/Arabic-Indic digits to the standard 09xxxxxxxxx form as you type or paste, using Normalize Persian Digits, and shows a shape-based (not color-only) checkmark or alert icon once the value looks complete.
Last updated August 17, 2026
Overview
Installation
Install the input, its normalization/validation utility, and the input-group primitives in one step.
$ npx shadcn@latest add https://ui.persian-labs.ir/r/mobile-number-input.jsonUsage
import { MobileNumberInput } from "@/components/ui/mobile-number-input"
export function Example() {
return <MobileNumberInput />
}Examples
RTL
Labels and helper text follow the surrounding RTL interface while the phone value remains intentionally LTR. Persian digits and +98/98/0098 prefixes are normalized as you type or paste.