docs: Rangfolge beim Einbau festhalten — HiveGrid gewinnt
Klarstellung, damit beim Port keine globalen Regeln aus diesem Repo in die Software wandern. Verbindlich ist aus diesem Repo nur das Analytics-Eigene und das Fachliche: Kennzahl-Definitionen, Diagrammregeln, Verhalten — und die Navigationsstruktur als Verabredung (zwei Einträge in der Seitenleiste, Analytics mit innerer Leiste). Nicht verbindlich ist alles Globale: Schrift, Schriftgrößen, Abstände, Farben, Radien, Control-Höhen, App-Shell, Kopfzeile, i18n, Formatierung. Das kommt ausschließlich aus HiveGrid. Dass dieser Prototyp dieselbe Schrift, dieselbe Seitenleisten-Komponente und dieselben Token benutzt, dient allein der Lesbarkeit neben der Software — es ist keine Vorlage, an der sich die Software auszurichten hätte. Weicht ein Wert hier von HiveGrid ab, ist der Wert hier falsch. Ebenso festgehalten, was Gerüst ist und wegfällt: AppShell, unsere Kopie der Seitenleiste, PageHeader, die Kopfzeile, die Routen unter app/ und die Dashboard-Platzhalterseite. Der Nachbau der inneren Leiste wird nicht portiert; in HiveGrid entsteht sie über das dortige SidebarIconsLayout. Vermerkt in ZIELSYSTEM.md (neuer Abschnitt 0 mit Zuständigkeitstabelle), im Kopf von HANDOVER.md und README.md, bei der Struktur in NAVIGATION.md, als Vorbemerkung zu den bewussten Abweichungen in LEITPLANKEN.md — und als Kommentarblock in AppShell.tsx und AnalyticsInnerNav.tsx, weil beim Port oft zuerst der Code gelesen wird. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPeZNwSeU7qG3RRCwaxEZX
This commit is contained in:
1 parent
9eec855f57
commit
b3d71c1f19
7 files changed
+109
-2
No files matched your search
+10
-1
@@ -1,6 +1,15 @@
|
||||
# Übergabe an die Entwicklung
|
||||
|
||||
> **Vor dem Einbau lesen:**
|
||||
> **Rangfolge:** Wo dieser Prototyp von HiveGrid Cloud abweicht, **gilt
|
||||
> HiveGrid** — Schrift, Schriftgrößen, Abstände, Farben, Control-Höhen,
|
||||
> App-Shell. Dass hier dieselbe Schrift und dieselbe Seitenleisten-Komponente
|
||||
> stecken, dient nur der Lesbarkeit neben der Software; es ist keine Vorlage,
|
||||
> an der sich die Software auszurichten hätte. Verbindlich sind aus diesem Repo
|
||||
> die Kennzahl-Definitionen, die Diagrammregeln, das Verhalten und die
|
||||
> Navigationsstruktur als Verabredung. Ausführlich:
|
||||
> [`docs/ZIELSYSTEM.md`](docs/ZIELSYSTEM.md) Abschnitt 0.
|
||||
>
|
||||
> **Ebenfalls vor dem Einbau lesen:**
|
||||
> [`docs/SCOPE-ANALYTICS-DASHBOARD.md`](docs/SCOPE-ANALYTICS-DASHBOARD.md).
|
||||
> Der Zuschnitt zwischen Analytics und Dashboard ist noch offen und betrifft die
|
||||
> Übersichtsseite und den Handlungsbedarf.
|
||||
|
||||
@@ -145,7 +145,12 @@ ist noch offen und läuft bis dahin auf Interim-UI. Für diesen Prototyp heißt
|
||||
das: Verbindlich zu übergeben sind **Kennzahl-Definitionen, Chart-Regeln und
|
||||
Verhalten** — die Pixelanordnung ist ein Vorschlag.
|
||||
|
||||
**Rangfolge:** Wo dieser Prototyp von HiveGrid abweicht, gilt HiveGrid. Schrift,
|
||||
Größen, Abstände, Farben und App-Shell kommen von dort; aus diesem Repo kommen
|
||||
die Kennzahl-Definitionen, die Diagrammregeln, das Verhalten und die
|
||||
Navigationsstruktur als Verabredung.
|
||||
|
||||
Details, Dateipfade und die konkrete Einbau-Liste stehen in
|
||||
[`docs/ZIELSYSTEM.md`](docs/ZIELSYSTEM.md). Welche Bereiche der Zielanwendung
|
||||
[`docs/ZIELSYSTEM.md`](docs/ZIELSYSTEM.md) — die Rangfolge in Abschnitt 0. Welche Bereiche der Zielanwendung
|
||||
bereits finale Subframe-Screens tragen — und damit als Leitplanke taugen — steht
|
||||
in [`docs/LEITPLANKEN.md`](docs/LEITPLANKEN.md).
|
||||
@@ -190,6 +190,14 @@ lieber neu zählen.
|
||||
|
||||
## 6. Wo dieser Prototyp bewusst abweicht
|
||||
|
||||
> Vorab, damit die folgende Tabelle nicht falsch gelesen wird: **Eine bewusste
|
||||
> Abweichung ist eine Bitte um eine Entscheidung, kein Freibrief.** Bei
|
||||
> globalen Regeln — Schrift, Größen, Abstände, Farben, Control-Höhen — gilt
|
||||
> ohne Diskussion HiveGrid. Die Punkte unten betreffen ausschließlich den
|
||||
> Analytics-Bereich und sind begründet, damit sie beim Einbau nicht
|
||||
> versehentlich „korrigiert" werden. Rangfolge: [ZIELSYSTEM.md](ZIELSYSTEM.md)
|
||||
> Abschnitt 0.
|
||||
|
||||
Ein Abgleich mit den nachgezogenen Cloud-Screens fördert drei Stellen zutage, an
|
||||
denen dieser Prototyp anders arbeitet. Sie stehen hier, damit sie beim Einbau
|
||||
als **Entscheidung** erkennbar sind und nicht als Versehen wegkorrigiert werden.
|
||||
|
||||
@@ -19,6 +19,15 @@ Gerendert wird mit derselben Komponente wie in der Software
|
||||
(`ui/components/SidebarWithSections`, aus der Cloud-Fassung portiert) und
|
||||
derselben Schrift (Instrument Sans, selbst gehostet aus denselben Dateien).
|
||||
|
||||
> **Für den Einbau:** Verbindlich ist an dieser Seitenleiste die **Struktur** —
|
||||
> zwei Einträge, Analytics mit innerer Leiste. Nicht verbindlich ist ihre
|
||||
> Umsetzung hier. In der Software werden die zwei Einträge in die bestehende
|
||||
> `AppSidebar` eingehängt und die innere Leiste über das dortige
|
||||
> `SidebarIconsLayout` gebaut; unser Nachbau wird nicht mitportiert. Globale
|
||||
> Regeln — Schrift, Größen, Abstände, Farben — kommen ausschließlich aus
|
||||
> HiveGrid und werden von hier aus **nicht** überschrieben. Siehe
|
||||
> [ZIELSYSTEM.md](ZIELSYSTEM.md) Abschnitt 0.
|
||||
|
||||
**Analytics ist ein einzelner Menüpunkt**, kein aufklappbarer Bereich. Die fünf
|
||||
Analyse-Seiten sind darin über eine **innere Leiste** erreichbar:
|
||||
|
||||
|
||||
@@ -11,6 +11,58 @@ Größenordnung: 678 Route-Dateien, davon 575 im Core-Manifest.
|
||||
|
||||
---
|
||||
|
||||
## 0. Rangfolge beim Einbau — HiveGrid gewinnt
|
||||
|
||||
**Dieser Prototyp ist nachrangig.** Wo er von HiveGrid Cloud abweicht, gilt
|
||||
HiveGrid — ohne Rückfrage, ohne Ausnahme. Das betrifft alles Globale:
|
||||
|
||||
| | Wer bestimmt |
|
||||
|---|---|
|
||||
| Schrift, Schriftgrößen, Zeilenhöhen | **HiveGrid** |
|
||||
| Abstände, Paddings, Margins, Raster | **HiveGrid** |
|
||||
| Farben der Oberfläche, Rahmen, Radien, Schatten | **HiveGrid** |
|
||||
| Control-Höhen, Komponentenvarianten, Zustände | **HiveGrid** |
|
||||
| App-Shell, Seitenleiste, Kopfzeile, Seitenkopf | **HiveGrid** |
|
||||
| i18n, Formatierung, Zeitzone | **HiveGrid** |
|
||||
|
||||
Dass dieser Prototyp dieselbe Schrift, dieselbe Seitenleisten-Komponente und
|
||||
dieselben Token benutzt, hat **einen einzigen Zweck**: Er soll neben der
|
||||
Software lesbar sein und nicht wie ein Fremdkörper wirken. Es ist **keine
|
||||
Vorlage, an der sich die Software auszurichten hätte.** Fällt beim Einbau auf,
|
||||
dass hier ein Wert von HiveGrid abweicht, ist der Wert hier falsch — nicht dort.
|
||||
|
||||
### Was aus diesem Repo verbindlich ist
|
||||
|
||||
Nur das Fachliche und das Analytics-Eigene:
|
||||
|
||||
1. **Die Navigationsstruktur als Verabredung** — zwei Einträge in der
|
||||
Seitenleiste (`Dashboard`, `Analytics`), und Analytics trägt eine **innere
|
||||
Leiste** mit den fünf Analyse-Seiten. Verbindlich ist die *Struktur*, nicht
|
||||
ihre Umsetzung hier: In der Software werden diese zwei Einträge in die
|
||||
bestehende `AppSidebar` eingehängt und die innere Leiste über das dortige
|
||||
`SidebarIconsLayout` gebaut. Unser Nachbau ist die Beschreibung, nicht das
|
||||
Bauteil.
|
||||
2. **Kennzahl-Definitionen** ([KPI-KATALOG.md](KPI-KATALOG.md)) —
|
||||
was gerechnet wird, mit welchem Zeitbezug.
|
||||
3. **Diagrammregeln** ([DESIGN-SYSTEM.md](DESIGN-SYSTEM.md)) — Palette,
|
||||
Achsen, Diagrammwahl, Leerzustände. Das ist die Lücke, die HiveGrid heute
|
||||
nicht füllt (siehe [LEITPLANKEN.md](LEITPLANKEN.md) Abschnitt 4).
|
||||
4. **Verhalten** — Filterlogik, Zeitbezüge, Widget-Sichtbarkeit,
|
||||
Sortier- und Blätterverhalten.
|
||||
|
||||
### Was aus diesem Repo Gerüst ist und wegfällt
|
||||
|
||||
`components/layout/AppShell.tsx`, unsere Kopie der Seitenleiste, `PageHeader`,
|
||||
die Kopfzeile mit Suche und Glocke, die Routen unter `app/` und die
|
||||
Platzhalterseite für das Dashboard. All das existiert, damit der Prototyp
|
||||
alleine lauffähig und beurteilbar ist. Beim Einbau übernehmen
|
||||
`SubframeAppShell`, `AppSidebar`, `PageShell` und die Loader der Software.
|
||||
|
||||
**Kurz:** Aus diesem Repo kommt der Inhalt des Analytics-Bereichs und die
|
||||
Verabredung, wo er in der Navigation sitzt. Alles andere kommt aus HiveGrid.
|
||||
|
||||
---
|
||||
|
||||
## 1. Der Platz dieses Prototyps
|
||||
|
||||
Das Ziel ist der Tenant-Dashboard-Screen unter `…/<tenant>/dashboard`.
|
||||
|
||||
@@ -20,6 +20,16 @@ import type { SeitenId } from "../../data/filtering";
|
||||
* Tastaturfokus auf Beschriftungen aufklappt — verzögert, damit sie beim
|
||||
* bloßen Überstreichen nicht aufspringt. Unterhalb `sm` tritt an ihre Stelle
|
||||
* eine Reiterleiste; auch das ist aus dem Original übernommen.
|
||||
*
|
||||
* ────────────────────────────────────────────────────────────────────────────
|
||||
* BEIM EINBAU: Dieser Nachbau wird NICHT portiert.
|
||||
*
|
||||
* Verbindlich ist die Verabredung — Analytics bekommt eine innere Leiste mit
|
||||
* den fünf Analyse-Seiten. Gebaut wird sie in HiveGrid mit dem dortigen
|
||||
* `SidebarIconsLayout`, das genau diesen Zweck hat (Leads, Termine, HR,
|
||||
* Einstellungen nutzen es bereits). Diese Datei beschreibt das Ziel, sie ist
|
||||
* nicht das Bauteil. Rangfolge: docs/ZIELSYSTEM.md Abschnitt 0.
|
||||
* ────────────────────────────────────────────────────────────────────────────
|
||||
*/
|
||||
|
||||
const OEFFNEN_MS = 300;
|
||||
|
||||
@@ -23,6 +23,20 @@ import { HEUTE } from "../../utils/dateUtils";
|
||||
* Platzhalterseite, weil es ein eigenes Feature ist und hier nicht gestaltet
|
||||
* wird — aber ein Menüpunkt, der nur einen Hinweis auslöst, lässt offen, ob
|
||||
* etwas fehlt oder etwas kaputt ist.
|
||||
*
|
||||
* ────────────────────────────────────────────────────────────────────────────
|
||||
* BEIM EINBAU: Diese Datei wird NICHT portiert.
|
||||
*
|
||||
* Sie existiert, damit der Prototyp alleine lauffähig ist. In HiveGrid Cloud
|
||||
* übernehmen `SubframeAppShell` und `AppSidebar`. Verbindlich ist aus dieser
|
||||
* Datei allein die **Struktur**: zwei Einträge in der Seitenleiste, Dashboard
|
||||
* und Analytics — mehr nicht, weil alles Übrige dort schon steht.
|
||||
*
|
||||
* Globale Regeln (Schrift, Größen, Abstände, Farben, Control-Höhen) kommen
|
||||
* ausschließlich aus HiveGrid und werden von hier aus nicht überschrieben.
|
||||
* Weicht ein Wert hier von dort ab, ist der Wert hier falsch.
|
||||
* Rangfolge: docs/ZIELSYSTEM.md Abschnitt 0.
|
||||
* ────────────────────────────────────────────────────────────────────────────
|
||||
*/
|
||||
export function AppShell({ children }: { children: React.ReactNode }) {
|
||||
const pathname = usePathname();
|
||||
|
||||
Reference in new issue
Block a user