Date Picker

دکمه‌ای که تاریخ انتخاب‌شده را نشان می‌دهد و با کلیک، Calendar را داخل Popover باز می‌کند؛ همان ترکیب Button و Popover و Calendar که در مستندات Calendar هم توضیح داده شده، اینجا به‌عنوان یک کامپوننت آماده.

ری‌اکت ۱۹ و Next.js با پیاده‌سازی دسترس‌پذیری داخلی دیگویو ۳ با Composition API و Reka UISvelte ۵ با runes و Bits UIانگولار با signals و Angular CDK

این کامپوننت فعلاً برای ۱ فریم‌ورک از ۴ فریم‌ورک آماده است.

این نمونه هنوز برای Vue پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Svelte پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Angular پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

نصب

با CLI اختصاصی dig-ui کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگی‌ها و فایل‌ها خودکار اضافه می‌شوند.

نصب سریع با لینک سخت و دیسک مشترکپکیج‌منیجر پیش‌فرض Node.jsYarn نسخهٔ ۲ به بالا (Berry)رانتایم و پکیج‌منیجر Bun
pnpm dlx dig-ui@latest add https://design-system-tau-green.vercel.app/r/date-picker.json
npx dig-ui@latest add https://design-system-tau-green.vercel.app/r/date-picker.json
yarn dlx dig-ui@latest add https://design-system-tau-green.vercel.app/r/date-picker.json
bunx --bun dig-ui@latest add https://design-system-tau-green.vercel.app/r/date-picker.json

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.

استفاده

import { DatePicker } from "@/components/ui/date-picker"

<DatePicker value={date} onChange={setDate} calendar="jalali" aria-label="تاریخ سفر" />

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.

ترکیب اجزا

مقدار یک Date میلادیِ خام است (نه y/m/d شمسی)، دقیقاً همان چیزی که خودِ Calendar می‌گیرد؛ پراپ calendar فقط فرمت متنِ دکمه و اعداد گرید را عوض می‌کند.

با انتخاب یک روز، Popover خودکار بسته می‌شود.

برای فیلد قابل‌تایپ (بدون تقویم شناور) به‌جای این از DateField استفاده کنید.

دسترس‌پذیری

  • دکمهٔ باز کننده یک Button معمولی است؛ با Space/Enter باز می‌شود و Popover خودش فوکوس و Escape را مدیریت می‌کند.
  • وقتی مقداری انتخاب نشده، متن دکمه با رنگ کم‌رنگ‌تر (text-muted-foreground) نشان داده می‌شود تا از مقدار واقعی متمایز باشد.

مرجع API

DatePicker

ویژگینوعپیش‌فرضتوضیح
value / defaultValueDateمقدار کنترل‌شده یا اولیه.
onChange(date: Date | undefined) => voidفراخوانی هنگام انتخاب یک روز.
calendar"jalali" | "gregorian""jalali"تقویمِ نمایش (متن دکمه و گرید Calendar).
placeholderstring"انتخاب تاریخ"متن دکمه وقتی هنوز چیزی انتخاب نشده.
disabledbooleanfalseغیرفعال کردن دکمه.

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.