# منتقي Select

اختيار منسدل. يُركَّب المنسدل افتراضياً على body (تموضع fixed يتبع المُشغِّل)، ويمكن تحديد الحاوية عبر popperContainer أو تمرير قيمة فارغة ليرسم في مكانه؛ مع تنقّل كامل بلوحة المفاتيح (مفاتيح الاتجاه / Enter / ESC).

منتقي
<template>
  <div class="demo-col" style="gap: 18px">
    <div class="demo-row" style="gap: 12px; flex-wrap: wrap">
      <LhSelect v-model="value" :options="options" placeholder="يرجى اختيار الموضوع" clearable name="theme" />
      <LhSelect v-model="value" :options="options" size="small" />
      <LhSelect v-model="value" :options="options" size="large" />
    </div>
    <div class="demo-row" style="gap: 12px; flex-wrap: wrap">
      <LhSelect v-model="value" :options="options" disabled />
      <LhSelect v-model="empty" :options="[]" aria-label="لا توجد بيانات">
        <template #empty>
          <span class="demo-note">فتحة empty: لا يوجد موضوع مطابق</span>
        </template>
      </LhSelect>
    </div>
    <p class="demo-note">القيمة الحالية: {{ value || '(غير محدد)' }}</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    value: 'ink',
    empty: undefined,
    options: [
      { value: 'ink', label: 'رسم الحبر' },
      { value: 'paper', label: 'ورق الأرز' },
      { value: 'seal', label: 'ختم' },
      { value: 'blank', label: 'فراغ' },
    ],
  }),
}
</script>

# Props

خاصية الوصف النوع الافتراضي
v-model القيمة المحددة (تطابق option.value؛ الخاصية modelValue المُتحكَّم بها) unknown —
options قائمة الخيارات { value, label, disabled? } LhSelectOption[] []
placeholder نص العنصر النائب، يُؤخَذ من حزمة اللغة عند غيابه string t('select.placeholder')
clearable إظهار زر المسح boolean false
size الحجم 'small' \| 'medium' \| 'large' 'medium'
disabled تعطيل boolean false
popperContainer هدف تركيب المنسدل 'body' \| HTMLElement \| string 'body'
name / ariaLabel وسم إمكانية الوصول string —
sx تخطيط سريع عبر sx — —

# Events

حدث الوصف معامل الاستدعاء
input حدث v-model —
change يُطلق عند تغيّر القيمة المحددة (value, option)
clear يُطلق عند المسح —

# Slots

فتحة الوصف
empty المحتوى عند عدم وجود بيانات (افتراضياً «لا توجد بيانات»)

# إمكانية الوصول

المُشغِّل role="combobox" + aria-expanded/haspopup، والمنسدل role="listbox"، والخيارات role="option"؛ وعند وضعه داخل LhFormItem وفشل التحقق يُضاف aria-invalid تلقائياً.

Copyright © 2024-2026 FengMo WenXue