انتخاب تاریخ
وضعیت: پیشنویس
انجام بدهفیلدی که هم تایپ و هم تقویم را میپذیرد، با الگوی «سال/ماه/روز» زیر آن. انجام ندهتقویم میلادی یا فیلدی که فقط با کلیک روی تقویم پر میشود.
سال/ماه/روز
<div class="hq-field"> <label class="hq-field__label" for="meeting">تاریخ جلسهٔ اول</label> <div class="hq-datepicker" data-hq-datepicker> <input class="hq-input" id="meeting" type="text" inputmode="numeric" placeholder="۱۴۰۵/۰۸/۱۵" aria-describedby="meeting-help" /> <button class="hq-datepicker__button" type="button" aria-label="باز کردن تقویم" aria-expanded="false" aria-controls="meeting-panel"><svg class="hq-icon" viewBox="0 0 32 32" aria-hidden="true" focusable="false"><path d="M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20 V26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"/></svg></button> <div class="hq-datepicker__panel" id="meeting-panel" role="dialog" aria-label="انتخاب تاریخ" hidden></div> </div> <p class="hq-field__helper" id="meeting-help">سال/ماه/روز</p></div>چه وقت استفاده کنیم
Section titled “چه وقت استفاده کنیم”- وقتی کاربر یک روز مشخص را انتخاب میکند: جلسه، شروع پروژه، مهلت.
- تقویم کمک است، نه تنها راه؛ فیلد همیشه تایپ را هم میپذیرد.
چه وقت استفاده نکنیم
Section titled “چه وقت استفاده نکنیم”- تاریخ تولد یا تاریخهای دور: سه فیلد سال، ماه و روز سادهتر از ورق زدن دهها سال است.
- وقتی فقط ماه یا سال مهم است.
قواعد تقویم
Section titled “قواعد تقویم”- تقویم شمسی با نام ماههای فارسی و رقم فارسی. هفته از شنبه شروع میشود.
- جمعه با رنگ
negativeمشخص است، همانطور که در تقویمهای ایرانی رایج است. - امروز حلقهٔ
accentدارد و روز انتخابشده زمینهٔaccent. - مقدار نمایشی
۱۴۰۵/۰۸/۰۷است؛ همان تاریخ به میلادی (2026-10-29) درdata-hq-valueفیلد نوشته میشود تا سامانهها بیدردسر بخوانندش. - فیلد رقم فارسی و لاتین را میپذیرد و بعد از ترک فیلد آن را به شکل استاندارد درمیآورد. تاریخ نادرست (مثلاً ۳۱ مهر) خطا میگیرد.
سال/ماه/روز
<div class="hq-field"> <label class="hq-field__label" for="start">شروع پروژه</label> <div class="hq-datepicker" data-hq-datepicker> <input class="hq-input" id="start" type="text" inputmode="numeric" placeholder="۱۴۰۵/۰۸/۱۵" aria-describedby="start-help" value="۱۴۰۵/۰۹/۰۱" /> <button class="hq-datepicker__button" type="button" aria-label="باز کردن تقویم" aria-expanded="false" aria-controls="start-panel"><svg class="hq-icon" viewBox="0 0 32 32" aria-hidden="true" focusable="false"><path d="M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20 V26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"/></svg></button> <div class="hq-datepicker__panel" id="start-panel" role="dialog" aria-label="انتخاب تاریخ" hidden></div> </div> <p class="hq-field__helper" id="start-help">سال/ماه/روز</p></div>آناتومی
Section titled “آناتومی”- فیلد: فیلد متنی با دکمهٔ تقویم در انتهای آن.
- پنل: زمینهٔ
surface-raised، خطborder، گوشهٔradius-md، بدون سایه (کارتهای برند تختاند). - سربرگ: نام ماه و سال در وسط، دکمهٔ ماه قبل در راست و ماه بعد در چپ.
- روزها: هر خانه
size-control-md، گرد. - پابرگ: «امروز» و «بستن».
حالت تیره
Section titled “حالت تیره”سال/ماه/روز
<div class="hq-field"> <label class="hq-field__label" for="meeting-dark">تاریخ جلسهٔ اول</label> <div class="hq-datepicker" data-hq-datepicker> <input class="hq-input" id="meeting-dark" type="text" inputmode="numeric" placeholder="۱۴۰۵/۰۸/۱۵" aria-describedby="meeting-dark-help" /> <button class="hq-datepicker__button" type="button" aria-label="باز کردن تقویم" aria-expanded="false" aria-controls="meeting-dark-panel"><svg class="hq-icon" viewBox="0 0 32 32" aria-hidden="true" focusable="false"><path d="M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20 V26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"/></svg></button> <div class="hq-datepicker__panel" id="meeting-dark-panel" role="dialog" aria-label="انتخاب تاریخ" hidden></div> </div> <p class="hq-field__helper" id="meeting-dark-help">سال/ماه/روز</p></div><div class="hq-datepicker" data-hq-datepicker> <input class="hq-input" id="meeting" type="text" inputmode="numeric" /> <button class="hq-datepicker__button" type="button" aria-label="باز کردن تقویم" aria-expanded="false" aria-controls="meeting-panel">…</button> <div class="hq-datepicker__panel" id="meeting-panel" role="dialog" aria-label="انتخاب تاریخ" hidden></div></div>lib/components.js تقویم را داخل پنل میسازد. تبدیل تاریخ با window.HQJalali هم در دسترس است:
HQJalali.toJalali(2026, 10, 29); // { jy: 1405, jm: 8, jd: 7 }HQJalali.toGregorian(1405, 8, 7); // { gy: 2026, gm: 10, gd: 29 }| کلاس | توضیح |
|---|---|
hq-datepicker |
ظرف فیلد و پنل |
hq-datepicker__button |
دکمهٔ باز کردن تقویم |
hq-datepicker__panel |
پنل تقویم |
hq-datepicker__day |
هر روز؛ --friday برای جمعه |
- دکمهٔ تقویم
aria-expandedوaria-controlsدارد؛ پنلrole="dialog". - هر روز نام کامل دارد («پنجشنبه ۷ آبان ۱۴۰۵»)؛ امروز
aria-current="date"و روز انتخابشدهaria-selected="true". - صفحهکلید در تقویم: پیکانها یک روز و یک هفته جابهجا میکنند (پیکان چپ یعنی روز بعد، چون جهت راستبهچپ است)، Home و End اول و آخر هفته، PageUp و PageDown ماه قبل و بعد، Enter انتخاب، Escape بستن و برگشت به دکمه.
- Alt و پیکان پایین در فیلد، تقویم را باز میکند.