حقل الإدخال (Input)

يتيح لك مكوّن حقل الإدخال كتابة إجابة قصيرة في سطر واحد، مع تسمية ونص مساعد وأيقونات عند الحاجة. ويُظهر الحقل نتيجة التحقق من القيمة، بأربعة أحجام وشكلين للزوايا.

التثبيت

bash
npx @smicolon/fasla-ui@latest add input

قبل إضافة أي مكوّن، شغّل الأمر init مرة واحدة في مشروعك. التفاصيل في صفحة التثبيت.

معاينة

كما يظهر في بطاقة الهوية.

الأنماط (variant)

طُبِّق الخصم على طلبك.

أدخل بريدًا إلكترونيًا صحيحًا، مثل name@example.com

تواصل مع الدعم لتغييره.

الأحجام

التسميات والأيقونات

اختياري

كما يظهر في بطاقة الهوية.

10/40

8 أحرف على الأقل.

الخصائص (props)

الخاصيةالنوعالافتراضيالوصف
size"xs" | "sm" | "md" | "lg""md"ارتفاع الحقل: 28 أو 32 أو 36 أو 40px.
radius"standard" | "rounded""standard"شكل الزوايا: بنصف قطر 8px، أو مستديرة بالكامل فيبدو الحقل كبسولة.
status"default" | "success""default"اختر القيمة success لتمييز قيمة اجتازت التحقق.
invalidbooleanfalseيجعل الحقل غير صالح، وللسمة aria-invalid الأثر نفسه.
disabledbooleanfalseيعطّل الحقل ويُظهر المجموعة كلها باهتة.
labelReactNodeلا يوجدتسمية الحقل، ترتبط بحقل الإدخال تلقائيًا.
labelEndReactNodeلا يوجدملاحظة قصيرة في نهاية سطر التسمية، مثل «اختياري».
descriptionReactNodeلا يوجدنص مساعد تحت الحقل، يقرؤه قارئ الشاشة مع الحقل.
descriptionEndReactNodeلا يوجدملاحظة في نهاية سطر النص المساعد، مثل عدّاد الأحرف.
errorReactNodeلا يوجدرسالة تظهر مكان description ما دام الحقل غير صالح.
startIconReactNodeلا يوجدأيقونة في بداية الحقل.
endIconReactNodeلا يوجدأيقونة أو زر صغير في نهاية الحقل.
placeholderstringلا يوجدنص يظهر والحقل فارغ.
typestring"text"نوع الحقل، مثل email.
valuestringلا يوجدقيمة الحقل، وتُستخدم مع onChange.
onChange(event) => voidلا يوجدتُستدعى عند تغيير النص.
classNamestringلا يوجدأصناف CSS إضافية لمجموعة الحقل.

الاستخدام

tsx
import { Mail } from "lucide-react"
import { Input } from "@/components/ui/input"

export function EmailField() {
  return (
    <Input
      name="email"
      type="email"
      label="البريد الإلكتروني"
      description="نرسل إليه إيصال الطلب."
      startIcon={<Mail />}
    />
  )
}