feat(admin): shell + dashboard + ⌘K (Sprint 1) #40

Merged
tarzzan merged 1 commit from feat/admin-shell-foundation into main 2026-05-31 18:22:09 +00:00
Owner

Foundation admin : layout sidebar + topbar + breadcrumbs + dashboard 7 KPIs + recherche globale ⌘K. Theme sobre indépendant. Sprints 2-5 viendront pour Carbets/Activité/Écosystème/Gouvernance.

Foundation admin : layout sidebar + topbar + breadcrumbs + dashboard 7 KPIs + recherche globale ⌘K. Theme sobre indépendant. Sprints 2-5 viendront pour Carbets/Activité/Écosystème/Gouvernance.
tarzzan added 1 commit 2026-05-31 18:21:52 +00:00
Layout admin :
- src/app/admin/layout.tsx : route protégée requireRole(ADMIN), sidebar + topbar + breadcrumbs, data-admin sur racine pour theme sobre indépendant du theme public
- Sidebar : 12 sections groupées (Vue d'ensemble, Catalogue, Activité, Membres, Contenu, Système), highlight de la route courante
- TopBar : prompt ⌘K, lien vers site public, email admin
- Breadcrumbs : auto depuis pathname
- CommandPalette : ⌘K / Ctrl K, navigation ↑↓ + Entrée, recherche live debounced 150ms

Dashboard :
- 7 KPI cards avec tone neutral/ok/warn/info (réservations semaine, confirmées 30j, revenus reversés, occupation, nouveaux users, carbets publiés, avis à modérer)
- Section raccourcis fréquents

Theme admin :
- globals.css : [data-admin] override le background+font, neutralise les borders sépia/papier teinté du theme aquarelle, garantit lisibilité permanente

Recherche globale :
- lib/admin/search.ts : query parallèle sur Carbet, User, Booking, ContentPage, PirogueProvider (5 résultats par catégorie, LIKE insensitive)
- api/admin/search?q=… route handler avec requireRole

KPI :
- lib/admin/kpis.ts : 7 métriques live (cache 0), Promise.all, helper formatEur

Pas de dépendance externe ajoutée (cmdk, shadcn) — composants custom Tailwind pour rester léger.
tarzzan merged commit 3ec7a3ff10 into main 2026-05-31 18:22:09 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: tarzzan/karbe#40
No description provided.