چندانتخابی

multi-selectکامپوننت

فهرست انتخاب چندتایی با جست‌وجو، تیک کنار هر گزینه و چیپ‌هایی که داخل فیلد می‌نشینن و بعد از چند تا به «+۲ مورد دیگر» جمع میشن.

نصب

  1. با CLI

    اگر هنوز init نکردید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور کامپوننت و وابستگی‌هاش را می‌نویسه.

    $ npx vibefarsi add multi-select
  2. نصب دستی

    محتوای تب «کد» را در components/ui/multi-select.tsx بگذارید.

    $ npm i lucide-react
    کپی کل فایلregistry json

استفاده

usage.tsx
1import { MultiSelect } from "@/components/ui/multi-select"23<MultiSelect4  placeholder="مهارت‌ها…"5  options={[{ value: "react", label: "ری‌اکت" }, { value: "next", label: "نکست" }, { value: "ts", label: "تایپ‌اسکریپت" }]}6  max={3}7  onChange={setSkills}8/>

پراپ‌ها

پراپنوعپیش‌فرضتوضیح
options{ value; label; disabled? }[]-گزینه‌ها. جست‌وجو روی label انجام میشه.
value / onChangestring[]-مقدارهای انتخاب‌شده، کنترل‌شده یا آزاد.
searchablebooleantrueفیلد فیلتر بالای فهرست.
maxVisiblenumber3تعداد چیپ‌هایی که داخل فیلد نشان داده میشن و بقیه به «+n مورد دیگر» تبدیل میشن.
maxnumber-سقف انتخاب. بعد از رسیدن به آن، گزینه‌های دیگر غیرفعال میشن.

نکته‌های راست‌چین

  • پنل با lib/float.tsx داخل body رندر میشه تا overflow والد آن را نبره و هم‌عرض فیلد باز میشه.
  • با کلید پایین فهرست باز میشه، Space یا Enter تیک می‌زنه، Backspace روی جست‌وجوی خالی آخرین چیپ را حذف می‌کنه و Escape می‌بنده.