npm package • Darvix

Persian Date Kit

کامپوننت Date Picker حرفه‌ای برای React با نمایش جلالی و ذخیره‌سازی گرگوری

Production-ready Persian (Jalali) date pickers for React with support for single, range, multiple selection and time picker. تمام مقادیر به صورت Date (گرگوری) مدیریت می‌شوند. جلالی فقط برای نمایش و ورودی کاربر استفاده می‌شود.

React
TypeScript
Jalali Calendar
SSR Safe
RTL First
Zero Dependencies
Persian Date Kit Demo

ویژگی‌های کلیدی

هر چیزی که برای کار با تاریخ جلالی در React نیاز داری، از قبل برایت آماده شده است.

نمایش جلالی، ذخیره گرگوری

تمام مقادیر به صورت Date (گرگوری) مدیریت می‌شوند. جلالی فقط برای نمایش و ورودی کاربر استفاده می‌شود.

کامپوننت‌های کنترل شده

شما مالک state هستید. کامپوننت‌ها controlled هستند و با value و onChange کار می‌کنند.

انتخاب تکی و بازه

پشتیبانی از انتخاب یک تاریخ یا بازه زمانی با کامپوننت‌های جداگانه PersianDatePicker و PersianDateRangePicker.

Time Picker

امکان انتخاب زمان به همراه تاریخ با قابلیت تنظیم ساعت، دقیقه و ثانیه.

انتخاب چندتایی

قابلیت انتخاب چندین تاریخ در یک کامپوننت با محدودیت تعداد انتخابات.

Inline و Popover

دو حالت نمایش: inline (همیشه باز) و popover (با input و باز شدن با کلیک).

React Hook Form

اداپتر آماده برای اتصال به React Hook Form بدون نیاز به کد اضافی.

قابل سفارشی‌سازی

استایل‌دهی کامل با CSS variables و classes prop برای کنترل کامل بر ظاهر.

نصب و راه‌اندازی

شروع سریع با چند خط کد

bash

سپس استایل‌های پیش‌فرض را import کنید (اختیاری):

typescript

نمونه‌های لایو

تمام کامپوننت‌ها به صورت واقعی و قابل تعامل هستند

Single Date Picker

انتخاب یک تاریخ با نمایش جلالی و ذخیره‌سازی گرگوری

مقدار گرگوری: ۱۴۰۴/۱۲/۶
ISO String: 2026-02-25T06:44:22.346Z

مثال‌های استفاده

انواع مختلف استفاده از کامپوننت‌ها

Single Date Picker

انتخاب یک تاریخ با نمایش جلالی و ذخیره‌سازی گرگوری

typescript

مستندات Props

تمام props و تنظیمات قابل استفاده

PropTypeDefaultDescription
valueDate | null | Date[]مقدار کنترل شده (گرگوری)
onChange(date: Date | null | Date[]) => voidتابع callback برای تغییر مقدار
placeholderstringundefinedPlaceholder برای input (حالت popover)
multiplebooleanfalseفعال‌سازی انتخاب چندتایی
maxSelectionsnumberundefinedحداکثر تعداد انتخابات (فقط با multiple=true)
timePickerTimePickerConfig | booleanundefinedفعال‌سازی time picker
mode'popover' | 'inline''popover'حالت نمایش: popover یا inline
minDateDateundefinedحداقل تاریخ قابل انتخاب (گرگوری)
maxDateDateundefinedحداکثر تاریخ قابل انتخاب (گرگوری)
theme'light' | 'dark' | 'auto''light'تم استایل‌های پیش‌فرض
monthLabelsstring[]numericبرچسب‌های 12 ماه (index 0 => ماه 1)
weekdaysstring[]numericبرچسب‌های 7 روز هفته
classesPersianDatePickerClassesundefinedکلاس‌های سفارشی برای هر بخش

راهنمای استایل‌دهی

شخصی‌سازی ظاهر با CSS variables و classes

CSS Variables

VariablePurposeDefault
--dvx-pdp-bgپس‌زمینه سطح#ffffff
--dvx-pdp-fgمتن اصلی#111827
--dvx-pdp-mutedمتن muted#6b7280
--dvx-pdp-borderحاشیه‌ها#e5e7eb
--dvx-pdp-shadowسایه popover0 10px 20px rgba(0, 0, 0, 0.08)
--dvx-pdp-accentرنگ accent / انتخاب شده#2563eb
--dvx-pdp-accentFgمتن روی accent#ffffff
--dvx-pdp-ringحلقه focusrgba(37, 99, 235, 0.3)
--dvx-pdp-dayHoverپس‌زمینه hoverrgba(37, 99, 235, 0.08)

مثال: Theme با CSS Variables

css

مثال: Override با Classes

typescript

آماده‌ای شروع کنی؟

با استفاده از Persian Date Kit، به‌جای ساخت از صفر، روی ویژگی‌های منحصربه‌فرد محصولت تمرکز می‌کنی و زمان توسعه را کوتاه‌تر می‌کنی.