Content

Chats

Render only the visible subset of heterogeneous messages, actions, a footer, and an input composer.

Generated previewCharm
Dedicated Chats example rendered in the Charm skin

The site build compiles the dedicated Ada component example, constructs Chats through its public API, and exports that exact styled surface. Read the capture source.

When to use it

Use a chat for ordinary conversations or AI transcripts whose message bodies can be any caller-owned component surface. The input composer is the caller-owned input area below the transcript.

State and ownership

The Flyology_TUI.Components.Chats package defines this component.

The chat owns stable message metadata, measurements, viewport state, selection, automatic tail-following state, and unread counts. Bodies remain external.

  • The application model owner applies updates during serial event dispatch.
  • Appearance and skin values are borrowed only while the component renders.

Input and updates

Route input to visible child body and action regions before transcript scrolling. The application owns input-area submission.

Integration sequence

  1. Create the bounded model and populate it with caller-owned data.
  2. Route the current keyboard or local mouse event through the component handler.
  3. Apply the typed result, then render from the updated model with the current appearance.

See the linked package reference for its exact declarations and contracts.

Responsive and accessible behavior

  • Use dimensions and regions from the current layout or presentation value.
  • When a component owns mouse capture, route its matching release even when the pointer leaves the original bounds.
  • Retain a glyph, label, border, or text-attribute cue when the terminal reduces color.