افزودن سیستم Motion به تمام بخشهای رابط کاربری
واژگان مشترک حرکت در globals.css: شش @keyframes و شش کلاس .anim-* بههمراه .anim-stagger برای ورود آبشاری. همهٔ مدتزمانها پشت custom property هستند تا یک override کل اپ را تنظیم کند. - packages/ui: Button، Card، Stat، Loading/Empty/ErrorState، UsageBar، Timeline، Modal، Drawer، Table، ToastStack و ArtifactViewer - ریشهٔ هر صفحهٔ (app) با .anim-stagger وارد میشود - AppShell: محتوا fade، منوی کنار stagger، منوهای کشویی slide-up - prefers-reduced-motion مدتزمانها را به ۰.۰۱ms میرساند تا وضعیت پایانی حفظ شود - قرارداد motion در src/test/motion.test.tsx تست میشود تا بازنویسی بعدی آن را بیصدا حذف نکند - تستهای فرانتاند: ۳۵ ← ۴۵
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
> **وضعیت (بهروزرسانی نهایی):** پیادهسازی کامل شده است.
|
||||
>
|
||||
> - بکاند: **۲۱۶ تست سبز**، `ruff check` تمیز، `mypy` روی **۹۰ فایل** بدون خطا.
|
||||
> - فرانتاند: **۲۵ تست سبز**، `next lint` بدون هشدار، `tsc --noEmit` تمیز.
|
||||
> - فرانتاند: **۴۵ تست سبز**، `next lint` بدون هشدار، `tsc --noEmit` تمیز.
|
||||
> - دو migration در `apps/api/alembic/versions/` ساخته و با `alembic check`
|
||||
> تأیید شد که هیچ drift ندارد. مسیر upgrade و downgrade هر دو تست شدهاند.
|
||||
> - workerها (`billing-worker`, `ai-runtime`, `sandbox-gateway`) واقعی و تستشدهاند.
|
||||
@@ -15,6 +15,20 @@
|
||||
> `error_events` ذخیره میشود و در `/admin/errors` قابل مشاهده و رسیدگی است.
|
||||
> هیچ خطایی بدون پاکسازی secret ذخیره نمیشود (`app/core/redact.py`).
|
||||
>
|
||||
> **افزودهٔ بعد از بستن مراحل (درخواست کاربر):** پالت فرمان (`⌘K`) و صفحهٔ
|
||||
> `/admin/usage`.
|
||||
>
|
||||
> **افزودهٔ بعد از بستن مراحل (درخواست کاربر):** Motion system. یک واژگان
|
||||
> مشترک در `apps/web/src/app/globals.css` — شش `@keyframes` و شش کلاس
|
||||
> `.anim-*` بههمراه `.anim-stagger` برای ورود آبشاری — و همهٔ مدتزمانها
|
||||
> پشت custom property. در `packages/ui/src/index.tsx` روی Button، Card،
|
||||
> Stat، Loading/Empty/ErrorState، UsageBar، Timeline، Modal، Drawer، Table،
|
||||
> ToastStack و ArtifactViewer اعمال شده و ریشهٔ هر صفحهٔ `(app)` با
|
||||
> `.anim-stagger` وارد میشود. `prefers-reduced-motion` مدتزمانها را به
|
||||
> ۰.۰۱ms میرساند تا وضعیت پایانی حفظ شود. قرارداد motion در
|
||||
> `src/test/motion.test.tsx` Tests میشود تا بازنویسی بعدی آن را بیصدا
|
||||
> حذف نکند.
|
||||
>
|
||||
> **چیزهایی که عمداً باز ماندهاند:** در `docs/security-checklist.md` دو مورد
|
||||
> «⚠️ بدون تست اختصاصی» علامت خوردهاند (نبود secret در frontend، و مقدار پیشفرض
|
||||
> `NetworkPolicy.DENY_ALL`). هر دو کنترل در کد درست کار میکنند، فقط تست مستقل
|
||||
|
||||
Reference in New Issue
Block a user