"use client"; import React from "react"; import { CHART, TOOLTIP_SCHATTEN } from "../../utils/chartTheme"; /** * Einheitlicher Tooltip für alle Charts. * * Carbon-Vorgabe (@carbon/charts, .cds--cc--tooltip): helle Fläche * (--cds-layer-02), Text in --cds-text-primary, 12 px, abgesetzt allein durch * den Schatten, kein Rahmen, kein Doppelpunkt zwischen Name und Wert, * maximal 270 px breit. * * Bis Carbon v10 war der Tooltip dunkel (#393939). Viele Quellen im Netz * zeigen noch diesen Stand; maßgeblich ist das ausgelieferte Stylesheet. * Geprüft von scripts/verify-carbon.mjs. * * Die Props sind bewusst weit typisiert: Recharts reicht sein internes * Payload-Format durch, das je nach Chart-Typ leicht abweicht. */ interface TooltipPayload { name?: unknown; value?: unknown; color?: string; dataKey?: unknown; } export function ChartTooltip({ active, label, payload, formatWert, labelPrefix, }: { active?: boolean; label?: unknown; payload?: readonly TooltipPayload[]; formatWert: (wert: number) => string; labelPrefix?: string; }) { if (!active || !payload?.length) return null; const reihen = payload .filter((eintrag) => typeof eintrag.value === "number") .map((eintrag) => ({ name: String(eintrag.name ?? eintrag.dataKey ?? ""), value: eintrag.value as number, color: eintrag.color, })); if (!reihen.length) return null; const labelText = label === undefined || label === null ? "" : String(label); return (