feat(runde-5): Startseite mit Agenten-Meetingraum, sticky Chat und Noras Kanäle
Hauptnavigation und Startseite (§2) - Hauptseite «Übersicht» samt Route, Menüeintrag, Hook, Service und den nur dort verwendeten Widgets entfernt; /supply/dashboard leitet auf die Startseite um, damit Lesezeichen nicht ins Leere laufen. - «Meine Objekte» heisst im Menü «Startseite»; die frühere Überschrift «Objektverwaltung» heisst jetzt «Meine Objekte». - Die Startseite scrollt als Ganzes. Die Höhe des Meetingraums rechnet gegen die Viewport-Höhe, damit Titel und Balken «Filter & Übersicht» beim Einstieg auf jeder Monitorgrösse sichtbar bleiben (geprüft 1280–1920 px). Agenten-Meetingraum (§3) - Zentralperspektive aus clip-path-Flächen, ohne 3D-Engine und ohne Animationsbibliothek: rechts geschlossene Wand, links und gegenüber boden- bis deckenhohe Glasfronten mit Blick auf Rhein, Basler Münster, Altstadt und Wettsteinbrücke. - Sitzordnung, Zielrouten, Grössen und Plakettenversatz liegen in einer zentralen Konfiguration (meetingRoomSeats.ts). - Neuer Agent Giorgio, Personalverwalter, sitzt vis-à-vis und führt in «Meine Agenten». Er steht bewusst nicht in AGENT_WORKSPACES: er hat keine Arbeitsseite, sondern ist die Adminfläche selbst. - Auf schmalen Schirmen tritt eine vereinfachte Kachelanordnung an die Stelle der Perspektive; ausgeblendet wird kein Agent. Sticky Chat bei allen Agenten (§5, §9–§11) - Scrollt der Chatkopf unter den globalen Balken, übernimmt dort eine kompakte Fassung mit Porträt, Name, Frage und Eingabefeld. - Ein gemeinsamer Zustand (agentChatStore) statt zweier Chat-Instanzen: Eingabetext und Fokus überstehen den Wechsel in beide Richtungen. - Noras Seite scrollte bisher gar nicht — Chatkopf ausserhalb des Scrollbereichs, zwei getrennt scrollende Spalten darunter. Behoben über den Seitenaufbau, nicht über eine Nora-Sonderlösung. Nora: CRM-Kanal und gemeinsame Lead-Liste (§12, §13) - Dritter Kanal «CRM» mit eigenem Domänentyp, Mockdaten, Provider, Service und Hook nach dem bestehenden Schichtenmuster. - Die Reiter «KI-Signale»/«Netzwerk» sind einer gemeinsamen Liste gewichen. Jede Zeile trägt ihre Kanalherkunft als Badge; die Herkunft steht im Datenmodell (LeadChannel) und wird nicht aus der Darstellung geraten. - Der frühere Reiterbalken ist der Filter «Kanaltyp» mit Alle/KI Signal/ Netzwerk/CRM, Standard «Alle», mit Empty State und Rücksetzung. Produkttour und Profilmenü (§8) - Tour auf die neue Struktur umgeschrieben: Startseite, Meetingraum, Agenten, sticky Chat, Leadkanäle. «Übersicht» kommt nicht mehr vor, «Meine Objekte» bezeichnet nur noch den Objektbereich. - Bereich «Demo-Modus» mit «Verwaltung» und «Bürosuche» entfernt. Geprüft: 413 Tests, Typecheck, Build, ESLint, Token-Schwelle (889/925). Im Browser: Navigation, Agentenklicks aller sechs Plätze, Kanalfilter und Detailschubladen, Sticky Chat bei vier Agenten, 1280–1920 px sowie Tablet- und Mobilbreite, keine 404 für Bilder oder Routen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d200d4e930
commit
9ed21e33a7
59 files changed
+2545
-1309
No files matched your search
@@ -0,0 +1,60 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200" role="img">
|
||||
<title>Giorgio</title>
|
||||
<defs>
|
||||
<linearGradient id="g-bg" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#efe9e0"/>
|
||||
<stop offset="1" stop-color="#ddd5c9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="g-suit" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#2c3a4f"/>
|
||||
<stop offset="1" stop-color="#1c2637"/>
|
||||
</linearGradient>
|
||||
<clipPath id="g-clip">
|
||||
<rect x="0" y="0" width="200" height="200"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
|
||||
<g clip-path="url(#g-clip)">
|
||||
<rect width="200" height="200" fill="url(#g-bg)"/>
|
||||
|
||||
<!-- Schultern und Sakko -->
|
||||
<path d="M100 128c34 0 62 20 68 48 3 13 4 20 4 24H28c0-4 1-11 4-24 6-28 34-48 68-48z" fill="url(#g-suit)"/>
|
||||
<!-- Hemdkragen -->
|
||||
<path d="M100 128l18 8-18 30-18-30z" fill="#f3f1ec"/>
|
||||
<path d="M100 166l-9-16 9 4 9-4z" fill="#7c5f3a"/>
|
||||
<path d="M100 154l7 5-3 41h-8l-3-41z" fill="#7c5f3a"/>
|
||||
<!-- Reversgrat -->
|
||||
<path d="M82 136l18 22-24 42-8-52z" fill="#26334a"/>
|
||||
<path d="M118 136l-18 22 24 42 8-52z" fill="#26334a"/>
|
||||
|
||||
<!-- Hals -->
|
||||
<path d="M84 104h32v28c0 4-16 10-16 10s-16-6-16-10z" fill="#c9a184"/>
|
||||
<path d="M84 110c9 7 23 7 32 0v8c-9 7-23 7-32 0z" fill="#b08a70" opacity=".5"/>
|
||||
|
||||
<!-- Kopf -->
|
||||
<ellipse cx="100" cy="80" rx="34" ry="40" fill="#dcb193"/>
|
||||
<!-- Ohren -->
|
||||
<ellipse cx="66" cy="82" rx="6" ry="9" fill="#d3a688"/>
|
||||
<ellipse cx="134" cy="82" rx="6" ry="9" fill="#d3a688"/>
|
||||
|
||||
<!-- Haar, grau meliert -->
|
||||
<path d="M100 34c22 0 36 14 36 33 0 5-1 10-2 13-2-3-3-9-3-14-8 4-20 6-31 6-11 0-21-2-28-6-1 5-2 11-4 14-1-3-2-8-2-13 0-19 12-33 34-33z" fill="#8d8d8f"/>
|
||||
<path d="M100 34c14 0 24 6 30 16-9-6-19-9-30-9s-21 3-30 9c6-10 16-16 30-16z" fill="#a5a5a7"/>
|
||||
|
||||
<!-- Brille -->
|
||||
<g fill="none" stroke="#3b4350" stroke-width="3">
|
||||
<rect x="72" y="70" width="24" height="18" rx="6"/>
|
||||
<rect x="104" y="70" width="24" height="18" rx="6"/>
|
||||
<path d="M96 78h8M72 76l-8 3M128 76l8 3"/>
|
||||
</g>
|
||||
<!-- Augen -->
|
||||
<ellipse cx="84" cy="79" rx="3" ry="3.4" fill="#3a3128"/>
|
||||
<ellipse cx="116" cy="79" rx="3" ry="3.4" fill="#3a3128"/>
|
||||
<!-- Brauen -->
|
||||
<path d="M74 63c6-3 14-3 20 0" stroke="#8d8d8f" stroke-width="3.5" fill="none" stroke-linecap="round"/>
|
||||
<path d="M106 63c6-3 14-3 20 0" stroke="#8d8d8f" stroke-width="3.5" fill="none" stroke-linecap="round"/>
|
||||
<!-- Nase und Mund -->
|
||||
<path d="M100 84v10c0 2-2 3-4 4" stroke="#bc8f74" stroke-width="3" fill="none" stroke-linecap="round"/>
|
||||
<path d="M89 106c7 4 15 4 22 0" stroke="#a9705a" stroke-width="3.2" fill="none" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
Reference in new issue
Block a user