467 Stellen. Nicht durch einen anderen Strich ersetzt, sondern durch das
Satzzeichen, das an der jeweiligen Stelle richtig ist: Doppelpunkt, wo eine
Erlaeuterung folgt; Komma, wo der Satz weiterlaeuft; Punkt, wo zwei
Hauptsaetze aneinanderstiessen. Ein Halbgeviertstrich waere nur derselbe
Griff mit kuerzerem Strich gewesen.
Regelbasiert ersetzt und danach nachgeprueft, weil eine Regel allein nicht
reicht. Gefunden und einzeln korrigiert:
- Eingeschobene Saetze mit Strichpaar. Nur der oeffnende Strich passte ins
Muster, der schliessende blieb als "—," stehen. Drei Stellen, jetzt mit
Klammern oder als eigener Satz.
- Doppelte Doppelpunkte, wo beide Striche eines Paars zu Doppelpunkten wurden
("Globale Regeln: Schrift, Groessen, Abstaende: kommen aus HiveGrid").
Sieben Stellen in Doku und Oberflaeche, jetzt in Klammern.
- Pfade, denen ein Komma statt eines Doppelpunkts folgte.
- Ausgerichtete Kommentartabellen, in denen der Strich eine Spalte war.
Nicht angefasst: drei Geviertstriche, die keine Prosa sind, sondern
Tabellenplatzhalter fuer "kein Wert" (Trichter, Auftraege, Kunden). Dort ist
der Strich die Angabe selbst; ihn zu entfernen liesse leere Zellen zurueck.
tsc, lint, build, verify:carbon und verify:layout laufen sauber.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QPeZNwSeU7qG3RRCwaxEZX
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import React from "react";
|
|
|
|
/**
|
|
* Kompakte Zusatzkennzahlen unter einem Chart,
|
|
* beantwortet "und was heißt das jetzt?" ohne eigene Karte.
|
|
*/
|
|
export function StatZeile({
|
|
eintraege,
|
|
/**
|
|
* Spalten auf breiten Schirmen. In einer Drittelkarte brechen vier Spalten
|
|
* mitten im Betrag um ("1,22 Mio." / "€"): dort gehoeren zwei hin.
|
|
*/
|
|
spalten = 4,
|
|
}: {
|
|
eintraege: { label: string; wert: string; hinweis?: string }[];
|
|
spalten?: 2 | 3 | 4;
|
|
}) {
|
|
const raster = { 2: "md:grid-cols-2", 3: "md:grid-cols-3", 4: "md:grid-cols-4" }[spalten];
|
|
return (
|
|
<div
|
|
className={`grid grid-cols-2 gap-x-6 gap-y-3 border-t border-solid border-border-default pt-3 ${raster}`}
|
|
>
|
|
{eintraege.map((eintrag) => (
|
|
<div key={eintrag.label} className="flex flex-col gap-0.5">
|
|
<span className="break-words text-[11px] uppercase tracking-[0.06em] text-text-neutral-tertiary">
|
|
{eintrag.label}
|
|
</span>
|
|
<span className="text-[14px] font-semibold tabular-nums text-text-neutral-primary">
|
|
{eintrag.wert}
|
|
</span>
|
|
{eintrag.hinweis ? (
|
|
<span className="text-[11px] text-text-neutral-tertiary">{eintrag.hinweis}</span>
|
|
) : null}
|
|
</div>
|
|
))}
|
|
</div>
|
|
);
|
|
}
|