خط زمانی — Timeline
خط زمانی رویدادها یا مراحل یک فرایند را به ترتیب زمان نشان میدهد؛ مثل پیگیری وضعیت یک درخواست، ایده یا تراکنش. هر رویداد یکی از پنج وضعیت را دارد و وضعیت همیشه با برچسب متنی بیان میشود، نه تنها با رنگ. کامپوننت غیرتعاملی و ایستاست؛ برای مراحلی که کاربر در آنها ورودی میدهد، از استپر استفاده کنید.
وضعیت: beta · لایه: ۳ (کپی کد) · کد: کپی کد
import { Timeline } from '@tokapps/tuk';نمونهٔ زنده
- ۱۴۰۵/۰۷/۰۱انجام شدثبت ایدهایده ثبت و برای بررسی ارسال شد
- ۱۴۰۵/۰۷/۰۵در حال انجامبررسی تیمدر حال بررسی توسط داوران
- ۱۴۰۵/۰۷/۱۰در انتظاررأیگیری عمومی
- ۱۰:۰۰انجام شددرخواست ثبت شد
- ۱۰:۰۵هشدارتأیید بانککد پیگیری دریافت نشد
- ۱۰:۱۰خطابازگشت وجهتراکنش ناموفق بود
- ۱۴۰۵/۰۷/۰۱تمامشدهثبت ایدهایده ثبت و برای بررسی ارسال شد
- ۱۴۰۵/۰۷/۰۵جاریبررسی تیمدر حال بررسی توسط داوران
- ۱۴۰۵/۰۷/۱۰بعدیرأیگیری عمومی
کد قابل کپی
پایه: مراحل یک ایده
import { Timeline } from '@tokapps/tuk';const steps = [ { id: 'idea', title: 'ثبت ایده', time: '۱۴۰۵/۰۷/۰۱', description: 'ایده ثبت و برای بررسی ارسال شد', status: 'complete' as const }, { id: 'review', title: 'بررسی تیم', time: '۱۴۰۵/۰۷/۰۵', description: 'در حال بررسی توسط داوران', status: 'current' as const }, { id: 'vote', title: 'رأیگیری عمومی', time: '۱۴۰۵/۰۷/۱۰', status: 'upcoming' as const },];export function IdeaProgress() { return <Timeline aria-label="مراحل ایده" items={steps} />;}پیشرفته: رویدادهای با هشدار و خطا
import { Timeline } from '@tokapps/tuk';export function PaymentTrail() { return ( <Timeline aria-label="وضعیت پرداخت" items={[ { id: 'a', title: 'درخواست ثبت شد', time: '۱۰:۰۰', status: 'complete' }, { id: 'b', title: 'تأیید بانک', time: '۱۰:۰۵', description: 'کد پیگیری دریافت نشد', status: 'warning' }, { id: 'c', title: 'بازگشت وجه', time: '۱۰:۱۰', description: 'تراکنش ناموفق بود', status: 'danger' }, ]} /> );}حالت خطا با برچسب سفارشی
برچسبهای وضعیت را میتوان ترجمه یا تغییر داد. در این نمونه برچسبها کوتاه شدهاند.
import { Timeline } from '@tokapps/tuk';const steps = [ { id: 'req', title: 'درخواست', time: '۱۰:۰۰', status: 'complete' as const }, { id: 'pay', title: 'پرداخت', time: '۱۰:۰۵', description: 'پرداخت رد شد', status: 'danger' as const }, { id: 'next', title: 'ارسال', status: 'upcoming' as const },];export function CustomLabelTimeline() { return ( <Timeline aria-label="مراحل سفارش" labels={{ complete: 'تمامشده', current: 'جاری', upcoming: 'بعدی', danger: 'ناموفق' }} items={steps} /> );}همهٔ پیکربندیها
کپی کد
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — (الزامی) | فهرست رویدادها به ترتیب نمایش. |
| کپی کد | کپی کد | برچسبهای فارسی هر وضعیت | برچسب متنی هر وضعیت؛ مقادیر دادهشده با پیشفرضها ادغام میشوند. |
| کپی کد | کپی کد | کپی کد | نام فهرست برای صفحهخوان. |
| کپی کد | کپی کد · کپی کد | کپی کد | کپی کد کل خط زمانی را در چاپ پنهان میکند. |
| کپی کد | کپی کد | — | کلاس روی ریشهٔ کپی کد. |
برچسبهای پیشفرض وضعیت: کپی کد «انجام شد»، کپی کد «در حال انجام»، کپی کد «در انتظار»، کپی کد «هشدار»، کپی کد «خطا».
کپی کد
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — (الزامی) | کلید یکتای رویداد. |
| کپی کد | کپی کد | — (الزامی) | عنوان رویداد. |
| کپی کد | کپی کد | — | زمان یا تاریخ نمایشی؛ متن است و قالببندی خودکار ندارد. |
| کپی کد | کپی کد | — | توضیح کوتاه زیر عنوان. |
| کپی کد | کپی کد · کپی کد · کپی کد · کپی کد · کپی کد | کپی کد | وضعیت رویداد. |
ساختار و اسلاتها
ol data-tds="timeline" data-print aria-label└─ li (هر رویداد) data-part="item" data-status [aria-current="step"] ├─ span «نشانه» data-part="marker" aria-hidden="true" └─ div «محتوا» data-part="content" ├─ div «زمان و وضعیت» data-part="meta" │ ├─ span «زمان» data-part="time" dir="auto" (وقتی time داده شده) │ └─ span «برچسب» data-part="status-label" ├─ div «عنوان» data-part="title" └─ div «توضیح» data-part="description" (وقتی description داده شده)بخش ثابت: فهرست کپی کد، ترتیب کپی کد و کپی کد و کپی کد، نشانه با کپی کد و برچسب متنی وضعیت. بخش قابلتغییر: محتوای کپی کد، کپی کد و کپی کد، کپی کد، کپی کد و توکنهای کپی کد.
همهٔ حالتها
| حالت | نشانه | نمایش |
|---|---|---|
| complete (انجام شد) | کپی کد روی کپی کد | نشانهٔ پرشده با رنگ کپی کد و آیکون تیک؛ خط اتصال به رنگ کپی کد. |
| current (در حال انجام) | کپی کد و کپی کد | نشانه با حلقهٔ فوکوس کپی کد و آیکون اطلاعات. |
| upcoming (در انتظار) | کپی کد | نشانهٔ خالی بدون آیکون؛ خط اتصال خنثی. |
| warning (هشدار) | کپی کد | آیکون هشدار با رنگ کپی کد. |
| danger (خطا) | کپی کد | آیکون خطا با رنگ کپی کد. |
| آخرین رویداد | کپی کد | بدون خط اتصال به پایین. |
| چاپ پنهان | کپی کد | خط زمانی در چاپ پنهان. |
تعاملی نیست؛ حالت hover یا focus ندارد. در کد حالت بارگذاری (کپی کد) تعریف نشده است. حالت کپی کد عمداً آیکون ندارد و فقط با برچسب متنی و نشانهٔ خالی بیان میشود.
تغییرات مجاز برای توسعهدهنده
- وضعیت هر رویداد: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- برچسبها: کپی کد برای ترجمه یا لحن دیگر (مثلاً «تمامشده» بهجای «انجام شد»).
- نام فهرست: کپی کد.
- محتوا: کپی کد، کپی کد و کپی کد با هر کپی کد.
- چاپ: کپی کد یا کپی کد.
- نقاط توسعه: کپی کد روی فهرست؛ توکنهای سطح کامپوننت کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- اندازه: در کد پراپ کپی کد یا کپی کد تعریف نشده است.
تغییرات ممنوع (بنیان ثابت)
- ریشه باید کپی کد بومی باشد و هر رویداد کپی کد باشد.
- وضعیت باید همیشه برچسب متنی داشته باشد (کپی کد)؛ حذف آن یا اتکا به رنگ یا آیکون بهتنهایی ممنوع است.
- مرحلهٔ جاری باید کپی کد داشته باشد؛ فقط یک رویداد باید کپی کد باشد.
- نشانهها باید کپی کد بمانند.
- ترتیب زمانی رویدادها با ترتیب آرایهٔ کپی کد تعیین میشود؛ کامپوننت مرتبسازی خودکار ندارد.
- رنگ خام یا گرادیان ممنوع است.
RTL، کیبورد و صفحهخوان
- خط اتصال و نشانه با حاشیهٔ منطقی ساخته شدهاند؛ در RTL خط زمانی از راست به چپ و نشانه سمت راست قرار میگیرد.
- زمان با کپی کد نمایش داده میشود تا ترکیب فارسی و لاتین درست جهتدهی شود.
- کیبورد: غیرتعاملی است؛ کپی کد از آن عبور میکند.
- صفحهخوان: فهرست با کپی کد (پیشفرض «خط زمانی») خوانده میشود؛ وضعیت بهصورت متن خوانده میشود؛ مرحلهٔ جاری با کپی کد مشخص است.
صدا، حرکت، چاپ و کاهش حرکت
- صدا: در کد پراپ کپی کد تعریف نشده و کامپوننت بیصداست. معادل بصری: متن وضعیت و آیکون.
- حرکت: ندارد؛ نمایش ایستاست (کپی کد). در کاهش حرکت تغییری لازم نیست.
- چاپ: پیشفرض کپی کد با رنگ تکرنگ؛ وضعیت با متن در چاپ سیاهوسفید هم خوانده میشود؛ کپی کد ندارد؛ با کپی کد پنهان میشود.
توکنها
- معنایی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- کامپوننتی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- کنترل: کپی کد، کپی کد، کپی کد، کپی کد.
- فایل توکن: کپی کد؛ فهرست مصرفی در کپی کد.
قرارداد ARCH
- آیکونهای نشانه (تیک، اطلاعات، هشدار، خطا) فقط از طریق کامپوننت کپی کد با نام معنایی رسم میشوند؛ مسیر asset مستند نمیشود.
- تم فقط توکنها را تغییر میدهد؛ ساختار فهرست و ARIA ثابت است.
- Gesture ندارد.