- GraphView : barre hashtags du haut supprimee, sidebar droite 200px
groupee par famille (heuristique majoritaire, egalite -> famille la
plus petite), toggle >>/<< vers 40px replie
- pages/index.vue : ChatbotPlaceholder ajoute sous GraphView en flex-column
- watch sidebarOpen : reinit D3 apres transition CSS pour SVG resize
M1 - Chips a11y : converti les <span> chips mobile (criteres, types,
echelle, fonctions) en <button type=button> avec aria-pressed pour
support clavier et lecteurs d'ecran (sidebar desktop deja en boutons).
M2 - Effacer les filtres ne vide pas la search : resetFilters() reset
maintenant aussi mobileSearch dans pratiques-regeneratives.vue et
index.vue.
M3 - FAB Soutenir overlap chip Agence : repositionne le FAB Soutenir
en stack vertical avec le FAB Chatbot (right: 16px, bottom: 84px) au
lieu de left: 16px, bottom: 68px. Evite l'overlap avec les chips de
la bottom-sheet sur viewport intermediaire.
L1 - /fiche/[id] introuvable pour pratiques : ajoute un fallback dans
pages/fiche/[id].vue qui detecte si l'id correspond a une pratique
regenerative et redirige vers /pratique/[id] (navigateTo replace).
L2 - Label retour incorrect sur /proposer-pratique : harmonise en
'Retour aux pratiques regeneratives'.
L3 - Map ne fitBounds pas apres filtre : EuropeMap et NavMap appellent
maintenant fitBounds(bounds, padding 40px, maxZoom 10) quand la liste
filtree contient 1 a 15 markers. Saute le tout premier rendu pour
preserver la vue initiale.
- Nouveau endpoint server/api/chatbot-pratiques.post.ts qui interroge
le JSON statique pratiques-regeneratives.json (52 fiches V1) avec
Mistral Small. Prompt systeme adapte aux 8 criteres rege et types
d'entites. Rate limit 10/jour, circuit breaker partage.
- ChatbotPlaceholder + ChatbotSheet rendus generiques via props
(endpoint, title, placeholder, ficheBasePath) + slot onboarding.
La carte ecosysteme AEP continue d'utiliser /api/chatbot, la carte
pratiques rege utilise /api/chatbot-pratiques.
- pratiques-regeneratives.vue : ChatbotPlaceholder integre sous la
carte Europe desktop (replie par defaut), FAB mobile + ChatbotSheet
bottom sheet, handler highlightOrgs pour surligner la fiche reco.
- app.vue : bouton + Proposer du header pointe vers /proposer-pratique
si on est sur la carte pratiques regenerative (et sous-pages /pratique/),
sinon vers /contribuer (ecosysteme AEP par defaut). Idem icone mobile.
- NavSidebar.vue : ajoute le CTA + Proposer une fiche en pied de sidebar
(style aligne sur PratiqueSidebar.vue)
- Remplace le bandeau DOM-TOM 140px (UX cassée, pin inaccessible) par
un pattern 2 onglets en haut de carte (Metropole/Europe vs Outre-mer)
- Applique le pattern symetriquement sur pratiques-regeneratives.vue
et index.vue
- Carte selectionnee occupe toute la hauteur dispo, accordeon DOM-TOM
scrollable
pratiques-pending.json initialisé vide (file modération V1).
PratiqueSidebar : lien + Proposer une pratique en bas de sidebar,
style sidebar-cta-link réutilisant variables CSS existantes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>