Sonarist project

Sonarist / Design system

Documentation v1.0.0 · Work in progress · UI prototype with separate server foundations

Design system contents

Components

Reply composer

Prepare a thoughtful reply with explicit sender, recipients and optional draft assistance.

On this page

Purpose and composition

Prepare a thoughtful reply with explicit sender, recipients and optional draft assistance.

Compose only in active conversations; inactive threads must be reopened/restored first.

Anatomy

Anatomy
PartResponsibility
EnvelopeFrom/To plus optional Cc/Bcc
BodyAuto-growing textarea, minimum 176px
ToolsAI draft, formatting and attachment affordances
FooterLocal draft status and Send reply

Configuration and variants

Configuration and variants
Input / variantContract
conversationSeeds inbox/contact and internal recipients
onSendReceives body + OutgoingEnvelope
onDraftWithAiPromise<string>; failure shows alert
send gateNonblank body, sender identity and at least one To

States and feedback

States and feedback
StateVisible / behavioral result
EmptySend disabled; AI enabled
DraftingAI disabled and label changes
Saving/saved500ms fingerprint comparison
AttachmentFixed migration-checklist.pdf placeholder
Errorrole=alert with retry guidance

Interaction and responsive behavior

  • AI only drafts on explicit action and refuses to overwrite a nonempty body.
  • Textarea height recomputes on body/resize.
  • Send emits callback then clears body/attachment.
  • Toolbar wraps on phone.

Accessibility contract

  • Reply message hidden label names textarea.
  • AI error has role=alert.
  • Send button has visible text.
  • The displayed ⌘ + Enter hint has no implemented key handler.

Known implementation limits

Draft saved is not durable storage. Formatting/link tools have no handlers; attachment is a fixed placeholder; default AI uses canned content.

Composition example

<Composer conversation={thread} onSend={sendLocalReply} onDraftWithAi={draftForReview} />

Source references

Source references
FileResponsibility
components/inbox/composer.tsxComposer
components/helpdesk-app.tsxLocal reply creation

Examples from the app

Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.

Composer · Component detail · Light · Desktop · 1792 × 758 px
Composer · Component detail · Light · Desktop · Draft With Attachment · 1792 × 1030 px
Composer Error · Component detail · Light · Desktop · 1792 × 758 px
Composer Error · Component detail · Light · Desktop · Error · 1792 × 844 px

Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0