feat: implement 8 features across full stack
- Leaderboard: rank-based percentile tiers (champion/gold/silver/bronze),
deterministic tie-breaking (xp DESC, user_id ASC)
- Mentor chat: md: breakpoints, safe-area-inset-bottom padding
- Learning progress: server-side progressPct, curriculum expansion safety
- Physical orders: hard-disabled with 410 Gone
- Certificate approval: pending/issued flow, admin issue/revoke endpoints,
certificate_requires_approval setting (migration 0031)
- Draft/publish: is_published on lessons and chapters, admin publish UI
(migration 0030)
- Video panel: static thumbnails (no preload), client-side pagination
- Rich editor: TipTap + tiptap-markdown for lesson descriptions,
marked + DOMPurify for SafeMarkdown rendering
This commit is contained in:
@@ -20,13 +20,19 @@
|
||||
"@radix-ui/react-switch": "^1.1.2",
|
||||
"@radix-ui/react-tabs": "^1.1.2",
|
||||
"@tanstack/react-query": "^5.62.0",
|
||||
"@tiptap/extension-placeholder": "^3.32.0",
|
||||
"@tiptap/react": "^3.32.0",
|
||||
"@tiptap/starter-kit": "^3.32.0",
|
||||
"@types/dompurify": "^3.0.5",
|
||||
"boring-avatars": "^2.0.4",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"dompurify": "^3.4.17",
|
||||
"emoji-datasource-apple": "^15.1.2",
|
||||
"framer-motion": "^12.0.0",
|
||||
"lucide-react": "^0.468.0",
|
||||
"marked": "^18.1.1",
|
||||
"next": "15.5.27",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "^19.0.0",
|
||||
@@ -34,6 +40,7 @@
|
||||
"react-multi-date-picker": "^4.5.2",
|
||||
"sonner": "^1.7.1",
|
||||
"tailwind-merge": "^2.6.0",
|
||||
"tiptap-markdown": "^0.9.0",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"zustand": "^5.0.2"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user