From 212420ec623855a6cebca92f8bd178d1a3214c4a Mon Sep 17 00:00:00 2001 From: Antigravity Date: Fri, 29 May 2026 12:46:57 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20graphe=20labels=20visibles=20+=20tooltip?= =?UTF-8?q?/cursor=20adaptatifs=20au=20th=C3=A8me=20clair/sombre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SlideChart reçoit isDark et adapte tooltip, tick, grid, cursor, légende - margin bottom 40px pour que les labels X-axis ne soient plus coupés - cursor et tooltip blancs en thème clair (fini le carré noir) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../components/lab/slides-renderer.tsx | 92 +++++++++++-------- 1 file changed, 53 insertions(+), 39 deletions(-) diff --git a/memento-note/components/lab/slides-renderer.tsx b/memento-note/components/lab/slides-renderer.tsx index 3b004e9..5b70b79 100644 --- a/memento-note/components/lab/slides-renderer.tsx +++ b/memento-note/components/lab/slides-renderer.tsx @@ -19,30 +19,44 @@ const MermaidDiagram = dynamic( // ── Constants ────────────────────────────────────────────────────────────────── const CHART_COLORS = ['#6366f1', '#22d3ee', '#f59e0b', '#ef4444', '#10b981', '#a78bfa', '#fb923c', '#14b8a6'] -const TT_STYLE: CSSProperties = { background: '#1C1C1C', border: '1px solid rgba(255,255,255,0.08)', borderRadius: 8, fontSize: 12 } -const TICK = { fill: 'rgba(255,255,255,0.55)', fontSize: 11 } -const GRID_STROKE = 'rgba(255,255,255,0.07)' + +function chartTheme(isDark: boolean) { + return { + ttStyle: { + background: isDark ? '#1C1C1C' : '#ffffff', + border: `1px solid ${isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.1)'}`, + borderRadius: 8, + fontSize: 12, + color: isDark ? '#fff' : '#111', + } as CSSProperties, + tick: { fill: isDark ? 'rgba(255,255,255,0.55)' : 'rgba(0,0,0,0.55)', fontSize: 11 }, + grid: isDark ? 'rgba(255,255,255,0.07)' : 'rgba(0,0,0,0.08)', + cursor: isDark ? 'rgba(255,255,255,0.04)' : 'rgba(0,0,0,0.04)', + legColor: isDark ? 'rgba(255,255,255,0.6)' : 'rgba(0,0,0,0.6)', + } +} // ── Chart ────────────────────────────────────────────────────────────────────── -function SlideChart({ slide }: { slide: SlideSpec }) { +function SlideChart({ slide, isDark }: { slide: SlideSpec; isDark: boolean }) { const chart = slide.chart if (!chart?.data?.length) return null + const { ttStyle, tick, grid, cursor, legColor } = chartTheme(isDark) const colors = (chart as any).colors ?? CHART_COLORS const xKey = chart.xKey ?? 'name' const yKeys = chart.yKeys ?? Object.keys(chart.data[0]).filter(k => k !== xKey) const legend = chart.showLegend !== false && yKeys.length > 1 - const legSt = { fontSize: 12, color: 'rgba(255,255,255,0.6)' } + const legSt = { fontSize: 12, color: legColor } switch (chart.type) { case 'bar': return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {legend && } {yKeys.map((k, i) => )} @@ -51,11 +65,11 @@ function SlideChart({ slide }: { slide: SlideSpec }) { case 'line': return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {legend && } {yKeys.map((k, i) => )} @@ -64,11 +78,11 @@ function SlideChart({ slide }: { slide: SlideSpec }) { case 'area': return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {legend && } {yKeys.map((k, i) => )} @@ -81,7 +95,7 @@ function SlideChart({ slide }: { slide: SlideSpec }) { {chart.data.map((_, i) => )} - + {chart.showLegend !== false && } @@ -93,7 +107,7 @@ function SlideChart({ slide }: { slide: SlideSpec }) { {yKeys.map((k, i) => )} - + {legend && } @@ -101,11 +115,11 @@ function SlideChart({ slide }: { slide: SlideSpec }) { case 'stacked-bar': return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {yKeys.map((k, i) => )} @@ -116,11 +130,11 @@ function SlideChart({ slide }: { slide: SlideSpec }) { const barKeys = yKeys.filter(k => !lineKeys.includes(k)) return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {barKeys.map((k, i) => )} {lineKeys.map((k, i) => )} @@ -132,7 +146,7 @@ function SlideChart({ slide }: { slide: SlideSpec }) { return ( - + ({ ...d, fill: colors[i % colors.length] }))} isAnimationActive> @@ -168,11 +182,11 @@ function SlideChart({ slide }: { slide: SlideSpec }) { }) return ( - - {chart.showGrid !== false && } - - - + + {chart.showGrid !== false && } + + + {waterfallData.map((d, i) => )} @@ -395,7 +409,7 @@ function SlideContent({ slide, index, palette, radius }: { slide: SlideSpec; ind {slide.subtitle &&

{slide.subtitle}

}
- +
)