قائمة منسدلة بالبحث (Combobox)

يتيح لك مكوّن قائمة منسدلة بالبحث (Combobox) البحث في الخيارات، واختيار عدة خيارات، وإنشاء خيار جديد.

التثبيت

bash
npx @smicolon/cli add combobox

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

معاينة

مع البحث

اختيار متعدد

إنشاء خيار جديد

الحالات

الخصائص (props)

الخاصيةالنوعالافتراضيالوصف
optionsComboboxOption[]لا يوجدالخيارات المتاحة للاختيار.
valuestring | string[]لا يوجدالقيمة المحددة، أو القيم مع multiple.
onChange(value) => voidلا يوجدتُستدعى عند تغيير الاختيار.
placeholderstring"Select option..."نص يظهر قبل الاختيار.
searchPlaceholderstring"Search..."نص يظهر في حقل البحث.
multiplebooleanfalseيسمح باختيار عدة خيارات.
creatablebooleanfalseيتيح إضافة خيار جديد.
onCreate(value) => voidلا يوجدتُستدعى بنص الخيار الجديد.
emptyTextstring"No options found."نص يظهر حين لا تطابق النتائج.
createTextstring"Create"تسمية خيار الإضافة.
loadingbooleanfalseيعرض حالة التحميل.
loadingTextstring"Loading..."نص يظهر أثناء التحميل.
openLabelstring"Open"اسم زر الفتح لقارئ الشاشة.
closeLabelstring"Close"اسم زر الإغلاق لقارئ الشاشة.
removeLabel(label) => stringلا يوجداسم زر إزالة الخيار المحدد.
disabledbooleanfalseيعطّل القائمة ويُظهرها باهتة.
classNamestringلا يوجدأصناف (class) إضافية للمكوّن.

الاستخدام

tsx
import { Combobox } from "@/components/ui/combobox"

const options = [
  { value: "sa", label: "السعودية" },
  { value: "ae", label: "الإمارات" },
  { value: "eg", label: "مصر" },
]

// قائمة منسدلة بالبحث بسيطة
<Combobox
  options={options}
  placeholder="اختر خيارًا…"
/>

// التحكّم بالقيمة مع البحث
const [value, setValue] = useState("")

<Combobox
  options={options}
  value={value}
  onChange={setValue}
/>

// اختيار متعدد
<Combobox
  options={options}
  multiple
  value={selectedValues}
  onChange={setSelectedValues}
/>

// إنشاء خيار جديد
<Combobox
  options={options}
  creatable
  onCreate={(value) => {
    // أضف الخيار الجديد إلى قائمتك
  }}
/>