Nachricht (Chat)
Chat-Nachricht: Nutzer als Blase rechts, Assistent als Fließtext links mit Avatar; optionale Anhänge, Aktions-Leiste (Kopieren, Bewerten, Neu erzeugen) und Zeitstempel
Nutzt: ui.icon
Beispiele
Nutzer-Beitrag (Blase rechts) mit Anhang
Assistenten-Antwort mit Aktions-Leiste (erscheint beim Überfahren)
Antwort im Schreiben (Cursor)
System-Hinweis
Eigenschaften
| Prop | Typ | Default | Builder-Label |
|---|---|---|---|
| role | string: user | assistant | system | "assistant" | Rolle |
| text * | string | — | Text |
| author | string | "" | Name (Assistent/System) |
| avatarUrl | string | "" | Avatar-Bild |
| time | string | "" | Zeitstempel |
| attachments | array | [] | Anhänge |
| actions | boolean | false | Aktions-Leiste zeigen |
| streaming | boolean | false | Schreibt gerade (Cursor) |
* Pflicht-Prop
Events & Slots
Events:
⚡ action — im Surface per on: {<event>: {action, params}} verdrahtbar.
Slot default:
akzeptiert component.*, ui.*
Genutzte Design-Tokens
border.hairlinecolor.action.primarycolor.border.defaultcolor.status.infocolor.status.successcolor.surface.defaultcolor.surface.sunkencolor.text.defaultcolor.text.mutedcontainer.mdduration.fasteasing.standardfont.family.defaultleading.looseradius.controlradius.fullradius.smradius.surfacesize.1size.2size.3size.4size.6size.8text.mdtext.smtext.xsweight.semibold
LLM-Notizen
component.message
Eine Chat-Nachricht. role steuert das Layout: user = Blase rechts, assistant = Fließtext links mit Avatar, system = schmaler Hinweis-Streifen.
Wann nutzen
- Immer INNERHALB von
component.conversation(die kümmert sich um Scrollen und Sticky-Bottom). - Zusatz-Bausteine (reasoning, tool, plan, sources, task) kommen in den default-Slot der Nachricht — sie gehören inhaltlich zur Antwort.
Wichtige Props
text* (nl2br-gerendert, immer escaped),author,time,avatarUrlattachments=[{name, meta?}]actions: blendet Kopieren/Neu erzeugen/Daumen ein (erscheinen beim Überfahren)streaming: blinkender Cursor am Textende („schreibt gerade")
Beispiel-Node
{
"definition": "component.message",
"props": {"role": "assistant", "author": "NEX-Assistent", "text": "Zwei Aufträge sind überfällig.", "actions": true},
"slots": {"default": [{"definition": "component.tool", "props": {"name": "snappy_cli__task_list", "state": "done"}}]}
}
Hinweise
- Emittiert
actionmit{action: copy|retry|up|down}— Kopieren funktioniert eigenständig.