واژگان مشترک حرکت در 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 تست میشود تا
بازنویسی بعدی آن را بیصدا حذف نکند
- تستهای فرانتاند: ۳۵ ← ۴۵
دو شکاف رسیدگیشده از بازبینی PLAN.md و TODO.md:
- پالت فرمان: جستوجو و رفتن سریع بین بخشها با ⌘K/Ctrl+K، پیمایش با
کلیدهای جهتدار، Enter برای رفتن، و Escape برای بستن. گروه اختصاصی
«کنسول مالک سامانه» فقط برای مالک سامانه نمایش داده میشود.
- صفحهٔ /admin/usage: گزارش مصرف سراسری به تفکیک سازمان. اندپوینت
`GET /admin/usage` و کلاینت `adminUsage()` از قبل وجود داشتند و توسط
صفحات نمای کلی و سازمانها مصرف میشدند؛ این صفحهٔ اختصاصی آن است.
همچنین `NAV_ITEMS` به `lib/nav.ts` منتقل شد تا sidebar و پالت فرمان
هرگز از هم واگرا نشوند.
تست: ۱۰ تست جدید برای پالت فرمان. مجموع تستهای فرانتاند از ۲۵ به ۳۵
رسید. tsc، eslint و ruff تمیز.