From 78ede01d11879efddc99d36353172876f6f6d4a2 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 24 Mar 2026 13:12:24 +0100 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20d=C3=A9placer=20bouton=20=E2=84=B9?= =?UTF-8?q?=20hors=20du=20PeriodSelector=20=E2=86=92=20bouton=20flottant?= =?UTF-8?q?=20isol=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sous ☰ sur mobile (top-16 left-4), top-4 left-4 sur desktop - PeriodSelector : suppression prop onInfo + bouton ℹ intégré Co-Authored-By: Claude Sonnet 4.6 --- src/App.tsx | 10 +++++++++- src/components/PeriodSelector.tsx | 12 +----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 0f9d2a8..1d71eb6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -131,6 +131,15 @@ export default function App() { )} + {/* Bouton info — sous ☰ sur mobile, top-left sur desktop */} + + {/* Period selector — floating over map */}
0 ? Math.round((visibleStats.geoCount / visibleStats.transactionCount) * 100) : null} - onInfo={() => setInfoOpen(true)} />
diff --git a/src/components/PeriodSelector.tsx b/src/components/PeriodSelector.tsx index 2ccb8ad..3fb7953 100644 --- a/src/components/PeriodSelector.tsx +++ b/src/components/PeriodSelector.tsx @@ -8,7 +8,6 @@ interface PeriodSelectorProps { viewMode: 'heatmap' | 'flow'; onViewModeChange: (mode: 'heatmap' | 'flow') => void; geoPercent?: number | null; - onInfo: () => void; } const PERIODS = [ @@ -19,7 +18,7 @@ const PERIODS = [ const PRESET_DAYS = new Set([1, 7, 30]); -export function PeriodSelector({ value, onChange, animationActive, onAnimate, viewMode, onViewModeChange, geoPercent, onInfo }: PeriodSelectorProps) { +export function PeriodSelector({ value, onChange, animationActive, onAnimate, viewMode, onViewModeChange, geoPercent }: PeriodSelectorProps) { const [customOpen, setCustomOpen] = useState(false); const [inputVal, setInputVal] = useState(''); const inputRef = useRef(null); @@ -132,15 +131,6 @@ export function PeriodSelector({ value, onChange, animationActive, onAnimate, vi )} -
- -
); } From 46b11710cc66fc9ad44a0dd9110f0832885881de Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 24 Mar 2026 13:15:41 +0100 Subject: [PATCH 2/6] fix: supprimer label 'Vitesse' dans AnimationPlayer (gain de place mobile) Co-Authored-By: Claude Sonnet 4.6 --- src/components/AnimationPlayer.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/AnimationPlayer.tsx b/src/components/AnimationPlayer.tsx index cf993f0..bb50ac3 100644 --- a/src/components/AnimationPlayer.tsx +++ b/src/components/AnimationPlayer.tsx @@ -78,8 +78,7 @@ export function AnimationPlayer({ {/* Speed selector */}
- Vitesse - {([1, 2, 4] as const).map((s) => ( +{([1, 2, 4] as const).map((s) => (
- {/* Close */} - From bac113e51b04b714646e469be3fe1a150f055854 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 24 Mar 2026 13:22:45 +0100 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20couleur=20=C3=A9metteurs=20#e53935?= =?UTF-8?q?=20(rouge)=20au=20lieu=20de=20#ff6d00=20(orange)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Meilleur contraste avec la couleur neutre or #d4a843. Co-Authored-By: Claude Sonnet 4.6 --- src/components/FlowMap.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/FlowMap.tsx b/src/components/FlowMap.tsx index e78ae65..29e5289 100644 --- a/src/components/FlowMap.tsx +++ b/src/components/FlowMap.tsx @@ -17,7 +17,7 @@ function lerpColor(hex1: string, hex2: string, t: number): string { } const COLOR_NEUTRAL = '#d4a843'; // or Ğ1 -const COLOR_NEG = '#ff6d00'; // orange vif +const COLOR_NEG = '#e53935'; // rouge vif const COLOR_POS = '#00c853'; // vert vif const NEUTRAL_THRESHOLD = 0.05; // ±5 % → couleur neutre const CLUSTER_RADIUS = 38; // pixels — distance max pour regrouper deux villes From 15807c7bcb8edba125496cbd05053ec8daac5f44 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 24 Mar 2026 13:27:16 +0100 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20InfoPanel=20=E2=80=94=20couleur=20?= =?UTF-8?q?=C3=A9metteurs=20rouge=20(d=C3=A9grad=C3=A9=20or=E2=86=92rouge)?= =?UTF-8?q?=20+=20description=20d=C3=A9grad=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- src/components/InfoPanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/InfoPanel.tsx b/src/components/InfoPanel.tsx index b0a4724..82563c5 100644 --- a/src/components/InfoPanel.tsx +++ b/src/components/InfoPanel.tsx @@ -54,8 +54,8 @@ export function InfoPanel({ onClose }: InfoPanelProps) { Vert = receveur net (reçoit plus que ce qu'il émet) ·{' '} - Or = équilibré ·{' '} - Orange = émetteur net. + Or = équilibré (dégradé or → vert selon l'excédent reçu) ·{' '} + Rouge = émetteur net (dégradé or → rouge selon l'excédent émis). Affiche la liste des villes du cluster avec leur balance individuelle, From 6fc1705f6d8d453786d74f7788ad39847cd7dc36 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 24 Mar 2026 13:31:36 +0100 Subject: [PATCH 6/6] chore: bump version to 1.4.0 Co-Authored-By: Claude Sonnet 4.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7eea991..f14220a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "g1flux", "private": true, - "version": "1.3.2", + "version": "1.4.0", "type": "module", "scripts": { "dev": "vite",