# LeoCRM Frontend — Vollständige Bestandsanalyse

**Verzeichnis:** `/a0/usr/workdir/leocrm-fix/frontend`
**Architektur-Referenz:** `architecture.md` Abschnitt 7
**Datum:** 2026-07-23

---

## 1. Pages/Routes (27 Pages, 7.826 Zeilen)

### Vorhandene Seiten

| Seite | File | Lines | Status |
|-------|------|-------|--------|
| Login | src/pages/Login.tsx | 92 | ✅ |
| PasswordReset Request | src/pages/PasswordResetRequest.tsx | 91 | ✅ |
| PasswordReset Confirm | src/pages/PasswordResetConfirm.tsx | 106 | ✅ |
| Dashboard | src/pages/Dashboard.tsx | 79 | ✅ |
| ContactsList | src/pages/ContactsList.tsx | 445 | ✅ |
| Calendar | src/pages/Calendar.tsx | 717 | ✅ |
| CalendarKanban | src/pages/CalendarKanban.tsx | 123 | ✅ |
| DMS | src/pages/Dms.tsx | 731 | ✅ |
| DmsTrash | src/pages/DmsTrash.tsx | 155 | ✅ |
| Mail | src/pages/Mail.tsx | 978 | ✅ |
| MailSettings | src/pages/MailSettings.tsx | 449 | ✅ |
| AuditLog | src/pages/AuditLog.tsx | 167 | ✅ |
| GlobalSearchResults | src/pages/GlobalSearchResults.tsx | 228 | ✅ |
| Settings (Hub) | src/pages/Settings.tsx | 52 | ✅ |
| SettingsProfile | src/pages/SettingsProfile.tsx | 181 | ✅ |
| SettingsUsers | src/pages/SettingsUsers.tsx | 298 | ✅ |
| SettingsRoles | src/pages/SettingsRoles.tsx | 522 | ✅ |
| SettingsGroups | src/pages/SettingsGroups.tsx | 688 | ✅ |
| SettingsPlugins | src/pages/SettingsPlugins.tsx | 255 | ✅ |
| SettingsSystem | src/pages/SettingsSystem.tsx | 277 | ✅ |
| SettingsCurrencies | src/pages/SettingsCurrencies.tsx | 142 | ✅ |
| SettingsTaxes | src/pages/SettingsTaxes.tsx | 143 | ✅ |
| SettingsSequences | src/pages/SettingsSequences.tsx | 138 | ✅ |
| SettingsNotifications | src/pages/SettingsNotifications.tsx | 158 | ✅ |
| AIAssistant | src/pages/AIAssistant.tsx | 122 | ✅ |
| AISettings | src/pages/AISettings.tsx | 332 | ✅ |
| ProactiveAISettings | src/pages/ProactiveAISettings.tsx | 157 | ✅ |

### Fehlende Seiten
| Seite | Status | Anmerkung |
|-------|--------|-----------|
| Companies List | ❌ MISSING | Keine Companies.tsx, API-Hooks existieren |
| Company Detail | ❌ MISSING | Keine CompanyDetail.tsx |
| Contact Detail Route | ❌ MISSING | ContactDetail.tsx existiert als Komponente (372 Zeilen), aber keine Route /contacts/:id |

## 2. Component Library (12+2 Komponenten)

Alle 12 geforderten UI-Komponenten vorhanden: Button, Input, Select, Modal, Toast, Table, Card, Badge, Avatar, Pagination, EmptyState, Skeleton.
Zusätzlich: ConfirmDialog, ResizablePanel.

## 3. Layout
- AppShell ✅, Sidebar ✅ (237 Zeilen), TopBar ✅ (146 Zeilen)
- ContentArea ⚠️ Inline in AppShell
- PluginToolbar ✅, AISidebar ✅ (322 Zeilen), MessageSidebar ✅ (689 Zeilen)

## 4. Plugin UI System
- PluginRegistry.tsx ❌ MISSING
- PluginLoader.tsx ❌ MISSING
- src/plugins/ Verzeichnis ❌ MISSING
- Plugin-Routes hartkodiert in routes/index.tsx

## 5. State Management
- TanStack Query: 138 Aufrufe, 60+ Hooks ✅
- Zustand: 5 Stores (authStore, uiStore, commStore, pluginToolbarStore, calendarStore) ✅

## 6. Code-Splitting
- React.lazy ❌ MISSING (0 Verwendungen)
- Suspense ❌ MISSING

## 7. i18n
- de.json: 750 Keys ✅
- en.json: 750 Keys ✅
- Perfekt synchron

## 8. Forms
- React Hook Form + Zod installiert ✅
- Nur in 3 Pages aktiv genutzt ⚠️

## 9. Feature Modules (70 Components, 13.893 Zeilen)
- ai/ (5 Komponenten) ✅
- calendar/ (12 Komponenten) ✅
- comm/ (11 Block-Typen) ✅
- contacts/ (4 Komponenten) ✅
- dms/ (9 Komponenten) ✅
- mail/ (13 Komponenten) ✅
- tags/ (3 Komponenten) ✅
- companies/ ❌ MISSING
- dashboard/ ❌ MISSING

## 10. API Client (12 Module, 3.456 Zeilen)
- client.ts, hooks.ts (Re-Export-Hub), auth.ts, users.ts, contacts.ts, roles.ts, groups.ts, audit.ts, notifications.ts, plugins.ts, settings.ts, attachments.ts, unifiedContacts.ts ✅
- workflows.ts ❌ MISSING

## 11. Custom Hooks (5 Hooks)
useAuth, useTenant, usePermission, useAIContext, useCommWebSocket ✅

## 12. Accessibility
- ARIA roles ⚠️ Partial
- sr-only ⚠️ Partial
- prefers-reduced-motion ✅
- 44px touch targets ✅
- focus-ring ✅

## 13. Tests (38 Dateien, 3.045 Zeilen)
- UI Components: 13 Tests ✅
- Shell/Layout: 4 Tests ✅
- Auth: 2 Tests ✅
- Dashboard: 1 Test ✅
- Contacts: 1 Test ✅
- Settings: 3 Tests ✅
- Calendar: 3 Tests ✅
- Mail: 3 Tests ✅
- DMS: 2 Tests ✅
- Search: 2 Tests ✅
- Tags: 2 Tests ✅
- Permissions: 1 Test ✅
- AuditLog: 1 Test ✅
- i18n: 1 Test ✅
- AI Components ❌ MISSING
- SettingsGroups/System/Currencies/Taxes/Sequences/Notifications/Plugins ❌ MISSING
- Calendar Page ❌ MISSING
- DMS Sub-Components ❌ MISSING
- Contact Sub-Components ❌ MISSING
- Comm Blocks ❌ MISSING
- API Hooks ❌ MISSING
- Stores ❌ MISSING

## 14. E2E Tests (Playwright)
- Playwright ❌ MISSING (komplett)

## 15. Frontend Build
- vite.config.ts ✅
- tsconfig.json ✅
- package.json ✅ (26 deps, 15 devDeps)
- tailwind.config.js ✅
- postcss.config.js ✅

## 16. Frontend Dockerfile
- ❌ MISSING (Multi-Stage Build im Haupt-Dockerfile)

## 17. Nginx Config
- ❌ MISSING

## 18. TipTap (Rich Text Editor)
- RichTextEditor.tsx (231 Zeilen) ✅
- 8 TipTap-Extensions ✅

## 19. PDF.js
- Nicht nötig — FilePreviewModal nutzt iframe mit Browser-PDF-Viewer ✅

## 20. TanStack Table
- DataGrid.tsx (160 Zeilen) ✅
- AuditLog ColumnDef ✅
- Virtual Scrolling ❌ MISSING

## Zusammenfassung

| Kategorie | Dateien | Zeilen |
|-----------|---------|--------|
| Pages | 27 | 7.826 |
| Components | 70 | 13.893 |
| API Modules | 12+ | 3.456 |
| Stores | 5 | 461 |
| Hooks | 5 | 247 |
| Routes | 2 | ~100 |
| i18n | 3 | 1.749 |
| Tests | 38 | 3.045 |
| Config | 5 | ~200 |
| Utils | 1 | ~100 |
| **Total** | **~167** | **~30.000** |

**Frontend ist zu ~70% vollständig.** Kritische Lücken: Plugin-UI-System, Code-Splitting, E2E Tests, Contact-Detail-Route. Alle im MASTER-PLAN.md eingeplant.
