Feature #1283
openFeature #1280: Tutoriels de la fiche événement (coachmarks page par page) — /EventDetails + 9 onglets
Frontend — Ancres data-tour + triggers : header/T0 + Plateau, Budget, Régie, Contrat
0%
Description
Poser les clés `data-tour` STABLES (jamais liées à une classe/position) sur le header de `src/pages/EventDetails.jsx` et les composants des 4 premiers onglets, puis câbler le déclencheur 1re ouverture (`first_open_tab`) de chacun via le contexte de tuto.
- **Header / T0** (`evt.overview`) : `evt.header.status`, `evt.tabs`, `evt.topcards`, `evt.nav`, `evt.actions` — T0 se déclenche à la 1re ouverture de N'IMPORTE QUEL événement.
- **Plateau** (`evt.plateau`) : `evt.plateau.add`, `evt.plateau.stats`.
- **Budget / EventBudget** (`evt.budget`) : `evt.budget.status`, `evt.budget.kpis`, `evt.budget.deal`, `evt.budget.lines`, `evt.budget.export`.
- **Régie** (`evt.regie`) : `evt.regie.planning`, `evt.regie.fiches`, `evt.regie.catering`, `evt.regie.hebergement`.
- **Édition contrat** (`evt.contrat`) : `evt.contrat.type`, `evt.contrat.suivi`, `evt.contrat.modele`, `evt.contrat.mail`, `evt.contrat.signature`.
Chaque onglet vit dans un composant distinct : brancher l'ouverture d'onglet (`activeTab` de EventDetails) sur le déclencheur du contexte correspondant. Toute cible absente fait ignorer l'étape sans casser le tuto.
Dépend de : Moteur Coachmark (#2).
## Critères d'acceptation
- Ancres `data-tour` stables présentes sur le header (evt.header.status/tabs/topcards/nav/actions) et les onglets Plateau, Budget, Régie, Contrat (toutes les clés listées).
- T0 se déclenche à la 1re ouverture de n'importe quel événement.
- T1 Plateau, T2 Budget, T3 Régie, T4 Contrat se déclenchent chacun à la 1re ouverture de LEUR onglet.
- Étape dont la cible est absente ignorée proprement (tuto non bloqué).
- Aucune régression sur la gestion de `activeTab` dans EventDetails. lint + typecheck + tests verts.