feat(ui): add reusable components for FIGMA-based UI system

- Implemented new reusable components including Label, Input, InputOTP, HoverCard, Popover, Pagination, NavigationMenu, Menubar, ScrollArea, Resizable, RadioGroup, and Progress under `docs/06_Frontend/FIGMA/src/app/components/ui/`.
- Enhanced structural organization to improve scalability and maintainability.
- Updated `settings.gradle.kts` to include the new module `frontend:features:nennung-feature`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-03-21 13:40:37 +01:00
parent 575ef18034
commit 439551951b
84 changed files with 8898 additions and 3 deletions
@@ -0,0 +1,81 @@
---
type: Log
agent: Curator
date: 2026-03-21
status: COMPLETED
---
# 🧹 Session Log: 21. März 2026
## Zusammenfassung
Diese Session hatte zwei Schwerpunkte: (1) Etablierung eines neuen **Figma → Repo → Compose**-Workflows für die
UI-Entwicklung und (2) Implementierung der ersten vollständigen Feature-Maske der **Master Desktop-App** die
`NennungsMaske`.
## Erreichte Meilensteine
### 1. Figma-Workflow etabliert
- Stefan hat in **Figma Make** einen interaktiven Prototyp der Desktop-Nennungs-Maske erstellt.
- Der Export (React/TypeScript-Code + Assets) wurde direkt ins Repo unter `docs/06_Frontend/FIGMA/` kopiert.
- Dieser "brutale aber geniale" Workflow ermöglicht es, Figma-Exports als **direkte Blaupause** für die
Compose-Implementierung zu nutzen.
- Neuer Standard-Workflow: `Figma Make (Stefan) → Export ins Repo → Compose-Implementierung (Agent)`
### 2. Neues Feature-Modul: `nennung-feature`
- Neues KMP-Modul erstellt: `frontend/features/nennung-feature`
- Enthält:
- `NennungModels.kt` Domain-Modelle (Pferd, Reiter, Bewerb, Nennung, VerkaufsArtikel)
- `NennungViewModel.kt` State-Management mit Koin DI
- `NennungsMaske.kt` Vollständige 3-Spalten-Composable (Pferd/Reiter-Suche | Aktions-Hub | Verkauf/Buchungen +
Bewerbsliste)
- Mock-Daten aus dem Figma-Export übernommen (echte Preise: Boxenpauschale 115€, Heu 13€, etc.)
### 3. Navigation & Shell-Integration
- `AppScreen.Nennung` in der Navigation registriert (`AppScreen.kt`)
- `expect/actual`-Pattern für `NennungScreenContent` implementiert (JVM: vollständige Maske, JS: Placeholder)
- `main.kt`: `nennungFeatureModule` in Koin registriert
- `MainApp.kt`: Dashboard-Button "Nennungs-Maske öffnen" + Nennung-Branch in der Navigation
## Fachlicher Kontext: Nennungs-Maske
Die Nennungs-Maske ist das **Herzstück der Desktop-App**. Sie basiert auf dem Altsystem SuDo und wurde analysiert anhand
von:
- `docs/BilderSuDo/Nennungen.PNG`
- `docs/BilderSuDo/Nennungen-Buchungen.PNG`
- `docs/BilderSuDo/NennungsTausch.PNG`
- `docs/06_Frontend/Screenshots/Desktop-Nennmaske-Entwurf_2026-03-21_11-53.png` (Stefans Figma-Entwurf)
Layout: 3 Spalten
- **Links:** Pferd- und Reiter-Suche + Nennungstabelle (Tabs: Reiter | Pferd | Bewerbe)
- **Mitte:** Aktions-Hub (Nennung durchführen, Stornieren, Startliste, Ergebnisse, Abrechnung)
- **Rechts:** Verkauf/Buchungen (Tabs) + Bewerbsliste mit Filter
## Offene Punkte / Nächste Schritte
- **Nennungstausch-Dialog** eigene Maske/Modal (3-teilig: Quell-Nennung | Tausch-Optionen | Ziel-Nennung)
- **Keyboard-Shortcuts** F5 (Nennung), F6 (Stornieren), F7 (Startliste), F8 (Ergebnisse), Escape (Leeren)
- **Lizenz-Badge** grün/rot bei Reiter-Metadaten (nach Auswahl)
- **Konto-Saldo** rot wenn negativ, bei Reiter-Info
- **Offline-Indikator** Badge in der Titelleiste
- **Weitere Masken** Ergebnis-Erfassung, Startlisten-Erstellung (nächste Figma-Exports von Stefan)
## Dokumentation
- Neu: `frontend/features/nennung-feature/` (vollständiges KMP-Modul)
- Neu: `docs/06_Frontend/FIGMA/` (Figma Make Export React/TypeScript Blaupause)
- Neu: `docs/06_Frontend/Screenshots/Desktop-Nennmaske-Entwurf_2026-03-21_11-53.png`
- Update: `frontend/core/navigation/src/commonMain/kotlin/at/mocode/frontend/core/navigation/AppScreen.kt`
- Update: `frontend/shells/meldestelle-portal/src/commonMain/kotlin/MainApp.kt`
- Update: `frontend/shells/meldestelle-portal/src/jvmMain/kotlin/main.kt`
## Build-Status
-`./gradlew :frontend:features:nennung-feature:compileKotlinJvm` → BUILD SUCCESSFUL
-`./gradlew :frontend:shells:meldestelle-portal:compileKotlinJvm` → BUILD SUCCESSFUL
- ✅ Desktop-App startet erfolgreich (Koin initialisiert, lokale DB erstellt)