feat: initialisation de ĞéoFlux — visualisation géographique Ğ1

- Carte Leaflet plein écran avec heatmap (OpenStreetMap, dark mode)
- Sélecteur de période 24h / 7j / 30j
- Panneau latéral : volume total, compteur de transactions, top 3 villes
- mockData.ts : 2 400 transactions simulées sur 24 villes FR/EU
- DataService.ts : abstraction prête pour branchement Subsquid/Ğ1v2
- Schémas Zod (g1.schema.ts) : validation runtime Duniter GVA + Cesium+
- Adaptateurs DuniterAdapter et CesiumAdapter (Ğ1v1, à migrer v2)
- Suite de tests Vitest : 43 tests, conformité schéma Ğ1 vérifiée

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-03-22 15:49:01 +01:00
commit d20d042bca
34 changed files with 6397 additions and 0 deletions

62
src/index.css Normal file
View File

@@ -0,0 +1,62 @@
@import "tailwindcss";
@import "leaflet/dist/leaflet.css";
:root {
color-scheme: dark;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
background: #0a0b0f;
font-family: 'Inter', system-ui, sans-serif;
}
#root {
width: 100%;
height: 100svh;
}
/* Leaflet dark overrides */
.leaflet-container {
background: #0a0b0f;
}
.leaflet-tile-pane {
filter: brightness(0.6) saturate(0.4) hue-rotate(180deg) invert(1);
}
.leaflet-control-zoom a {
background: #1a1b23 !important;
color: #d4a843 !important;
border-color: #2e2f3a !important;
}
.leaflet-control-zoom a:hover {
background: #2e2f3a !important;
}
.leaflet-control-attribution {
background: rgba(10, 11, 15, 0.8) !important;
color: #4b5563 !important;
}
.leaflet-control-attribution a {
color: #6b7280 !important;
}
/* Scrollbar styling */
::-webkit-scrollbar {
width: 4px;
}
::-webkit-scrollbar-track {
background: #0a0b0f;
}
::-webkit-scrollbar-thumb {
background: #2e2f3a;
border-radius: 2px;
}