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
47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { PageHeader } from "./PageHeader";
|
|
import { AnalyticsInnerNav } from "./AnalyticsInnerNav";
|
|
import { AnalyticsToolbar } from "../filters/AnalyticsToolbar";
|
|
import { ANALYSE_SEITEN } from "./navigation";
|
|
import type { SeitenId } from "../../data/filtering";
|
|
import type { FilterOptionen } from "../../view-models/filter-optionen";
|
|
|
|
/**
|
|
* Rahmen des Analytics-Bereichs.
|
|
*
|
|
* „Analytics" ist in der Seitenleiste **ein** Menüpunkt. Die fünf Analyse-Seiten
|
|
* sind darin über Reiter erreichbar und tauchen nicht als Unterpunkte in der
|
|
* Navigation auf, sonst konkurrieren zwei Navigationsebenen um dieselbe Sache.
|
|
*
|
|
* Die Unter-Navigation ist eine **innere Leiste**, kein Reiterband: Das
|
|
* Zielsystem benutzt für Arbeitsbereiche mit Geschwisterseiten durchgängig
|
|
* `SidebarIconsLayout` (Leads, Termine, HR, Einstellungen). Reiter sind dort
|
|
* für Abschnitte *innerhalb einer Seite* reserviert, und sind zugleich der
|
|
* Rückfall der inneren Leiste auf schmalen Fenstern. Begründung ausführlich
|
|
* in docs/NAVIGATION.md.
|
|
*
|
|
* Kopfzeile und Filterleiste liegen hier und nicht in den Seiten: Sie sind für
|
|
* alle fünf gleich, und der Filterzustand gilt bereichsweit.
|
|
*/
|
|
export function AnalyticsShell({
|
|
aktiv,
|
|
optionen,
|
|
children,
|
|
}: {
|
|
aktiv: SeitenId;
|
|
optionen: FilterOptionen;
|
|
children: React.ReactNode;
|
|
}) {
|
|
const seite = ANALYSE_SEITEN.find((s) => s.id === aktiv) ?? ANALYSE_SEITEN[0];
|
|
|
|
return (
|
|
<AnalyticsInnerNav aktiv={aktiv}>
|
|
<PageHeader titel={seite.label} beschreibung={seite.beschreibung} />
|
|
<AnalyticsToolbar seite={aktiv} optionen={optionen} />
|
|
{children}
|
|
</AnalyticsInnerNav>
|
|
);
|
|
}
|