Skip to content

feat(builder-carto): refonte « carte plein écran » (panneaux flottants, onboarding, export) - #472

Merged
bmatge merged 1 commit into
mainfrom
feat/builder-carto-refonte-design
Aug 19, 2026
Merged

feat(builder-carto): refonte « carte plein écran » (panneaux flottants, onboarding, export)#472
bmatge merged 1 commit into
mainfrom
feat/builder-carto-refonte-design

Conversation

@bmatge

@bmatge bmatge commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Refonte du builder carto

Implémente la maquette Claude Design « Builder carto - refonte » : l'app passe d'un layout 3 colonnes + panneau d'aperçu à une carte plein écran qui EST l'aperçu, éditée par panneaux flottants.

Ce qui change

  • La carte est l'aperçu : la vraie dsfr-data-map (pipeline complet) occupe tout l'écran ; le cadrage exporté suit la navigation (sync moveend/zoomend → state via getLeafletMap()). L'aperçu ne diffère de l'export que sur 3 points : hauteur plein écran, compagnon a11y omis, fit-bounds ponctuel sur « Exécuter ».
  • Barre du haut : logo RF → hub, Guide, Favoris, « Obtenir le code », « Exécuter » (app-header/app-preview-panel retirés de cette app).
  • 3 panneaux flottants : Carte (replié par défaut) · Couches (liste, données, localisation avec détection auto) · Éléments (tuiles de représentation, nuancier DSFR + couleur libre, interactions, animation temporelle, options avancées).
  • Modale d'onboarding « D'où viennent vos données ? » (jeu d'exemple 1 clic / URL / sources enregistrées) et modale d'export (embarqué/autonome, copie, favori, playground).
  • Encarts territoriaux visibles en bandeau de vignettes dans l'aperçu ; le diagnostic « N éléments affichés » exclut leurs clones et se re-vérifie au retour de visibilité de l'onglet.
  • Tour guidé partagé réaligné (v2, packages/shared) — démarre après le premier choix de données.
  • Parité fonctionnelle conservée : bbox (+debounce/champ), shape-class, 8 fonds de carte, 12 territoires d'encart, drag & drop et suppression de couches, persistance/reprise de session, favoris, playground.

Non modifié

state.ts, ui/code-generator.ts, field-service.ts — le code généré est identique.

Vérifications

  • 3 699 tests Vitest verts · typecheck · build Vite OK
  • e2e smoke + axe WCAG 2a/2aa « Builder Carto » verts (contrats #layers-list, #btn-execute, __BUILDER_CARTO_STATE__ préservés)
  • check:accents propre · changeset patch inclus
  • Validation visuelle Chrome : exemple → 13 marqueurs, panneau latéral au clic, vignettes DROM, code exporté correct (template popup auto + compagnon a11y)

🤖 Generated with Claude Code

…nboarding, export)

La carte générée devient l'aperçu permanent : plein écran, cadrage exporté
synchronisé sur la navigation (moveend/zoomend → state). Édition dans trois
panneaux flottants (Carte / Couches / Éléments), choix des données dans une
modale d'onboarding (jeu d'exemple, URL, source enregistrée), export dans une
modale dédiée (mode embarqué/autonome, copie, favori, playground). Encarts
territoriaux visibles en bandeau de vignettes dans l'aperçu, diagnostic
d'aperçu conservé (compte hors encarts, re-check au retour de visibilité).
Tour guidé partagé réaligné (v2). Implémente la maquette Claude Design
« Builder carto - refonte ».

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bmatge
bmatge force-pushed the feat/builder-carto-refonte-design branch from 4359560 to 8d14055 Compare August 19, 2026 10:58
@bmatge
bmatge merged commit 2b50471 into main Aug 19, 2026
8 of 9 checks passed
@bmatge
bmatge deleted the feat/builder-carto-refonte-design branch August 19, 2026 11:00
@github-actions github-actions Bot mentioned this pull request Aug 19, 2026
bmatge added a commit that referenced this pull request Aug 19, 2026
…481)

La refonte carte plein écran (#472) avait retiré l'app-header partagé
au profit d'une topbar carto minimaliste. On perdait ainsi la
navigation vers les autres apps (Sources, Builder, Dashboard...).

Solution : superposer les deux barres, header commun en haut avec
la nav DSFR + les liens outils, topbar carto simplifiée en dessous
avec les actions carto-spécifiques (Exécuter / Obtenir le code).
Les liens redondants (logo RF, Guide, bouton Favoris) sont retirés
de la topbar carto — le bouton « Sauvegarder en favori » reste
accessible depuis la modale d'export.

Le layout passe de position:absolute plein-viewport à flex column,
avec une CSS variable --carto-header-h mesurée au runtime via
ResizeObserver (le fr-header varie selon breakpoint). state.map.height
inclut désormais cette variable dans son calc().

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bmatge added a commit that referenced this pull request Aug 19, 2026
Format non-conforme laissé par la refonte builder-carto (#472) :
union type pipé sur 4 lignes → single-line (règle prettier 3.9.6).
Le pre-commit hook n'écrit que sur les fichiers modifiés dans le
commit, ce bout de fichier n'ayant pas été retouché depuis, il
passait sous le radar. La CI `format:check` scanne tout et bloque.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bmatge added a commit that referenced this pull request Aug 19, 2026
)

* chore(security): bump jsdom>undici override 7.28 → ^7.29.0 (5 CVE)

Ferme les 5 alertes Dependabot ouvertes sur bmatge/dsfr-data
(GHSA #81, #83, #85, #87, #89, toutes sur undici 7.0.0–7.28.0) :

- CRLF Injection via blob-like body 'type' (moderate)
- cookie attribute injection via unsanitized domain (moderate)
- cross-user info disclosure via whitespace in Cache-Control (moderate)
- cross-user info disclosure + parse-time crash via private cache directives (high)
- downstream response desynchronization via retry interceptor (moderate)

L'override root a été introduit en #343 (juin) pour patcher un lot HIGH
précédent — même pattern ici, on bump juste vers la version fixed.
undici@8.10.0 direct (racine) reste tel quel (non affecté par ces CVE).

Bonus : `npm audit fix` remonte brace-expansion@5.0.8 → 5.0.9
(GHSA-rgw5-rvv9-x895, high, DoS via unbounded intermediate arrays).

`npm audit --audit-level=high` : 0 vulnerabilities.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(format): prettier sur apps/builder-carto/src/main.ts

Format non-conforme laissé par la refonte builder-carto (#472) :
union type pipé sur 4 lignes → single-line (règle prettier 3.9.6).
Le pre-commit hook n'écrit que sur les fichiers modifiés dans le
commit, ce bout de fichier n'ayant pas été retouché depuis, il
passait sous le radar. La CI `format:check` scanne tout et bloque.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant