Ponytail UI assistant library

One hundred ten concepts. One native vocabulary.

A clean-room, no-JavaScript catalog of semantic assistant surfaces. Every example is labelled sample state; database-backed behavior remains server-authoritative.

Sample component state

Conversation shell and navigation

Session structure uses landmarks, URL-backed links, native disclosure, and bounded panels.

Release review

Sample component state · one configured agent

Operator

Verify the native release.

Bunfork agent

The local checks passed. Production action still needs approval.

  • Assistant Modaldeferred
  • Assistant Sidebarnative
  • Threadnative
  • Thread Listnative
  • Thread-list Sidebarnative
  • Chatnative
  • Chat Contextnative
  • Headernative
  • Help Modaldeferred
  • Chat Modaldeferred
  • Popupprimitive
  • Sidebarnative
  • Threads Drawernative
  • Windownative
  • Conversationnative
  • Connectionnative
  • Contextnative
  • Open in Chatnative
  • Panelnative
  • App Framenative
  • App Rendererfallback

Sample component state

Messages and response rendering

Responses remain readable, escaped, attributable, and source-aware.

Bunfork agentVerified

Three checks passed. See source 1 for the route contract.

<output>escaped model text</output>
  1. Source 1: component coverage
  • Markdown Textfallback
  • Directive Textfallback
  • Message Timingnative
  • Quotenative
  • Sourcesnative
  • Assistant Messagenative
  • Error Messagenative
  • Legacy Render Messagenative
  • Markdownfallback
  • Messagesnative
  • Powered By Tagnative
  • Render Messagenative
  • User Messagenative
  • Code Blockfallback
  • Messagenative
  • Inline Citationnative

Sample component state

Composer, attachments, selection, and actions

Visible labels and native states replace framework-owned client state.

Sample only. Durable send and artifact admission require server contracts.

  • Attachmentnative
  • Composer Trigger Popovernative
  • Follow-up Suggestionsnative
  • Model Selectordeferred
  • Selectprimitive
  • Tooltip Icon Buttonprimitive
  • Attachment Queuedeferred
  • Attachment Renderernative
  • Buttonprimitive
  • Image Upload Queuedeferred
  • Inputprimitive
  • Suggestionnative
  • Suggestionsnative
  • Textareaprimitive
  • Attachmentsnative
  • Confirmationnative
  • Controlsnative
  • Prompt Inputnative
  • Toolbarnative

Sample component state

Reasoning, tools, and progress

Reasoning is a summary; tool and task state remains explicit and textual.

Reasoning summary

Checked format, tests, and release policy. Hidden chain-of-thought is not displayed.

Tool result · succeeded
cargo test: passed
3 of 4
  • Accordionprimitive
  • Badgeprimitive
  • Context Displaynative
  • Heat Graphnative
  • MCP Confignative
  • Number Rollnative
  • Reasoningnative
  • Tabsprimitive
  • Tool Fallbacknative
  • Tool Groupnative
  • Agentnative
  • Chain of Thoughtnative
  • Checkpointnative
  • Plannative
  • Queuenative
  • Shimmerprimitive
  • Tasknative
  • Toolnative

Sample component state

Artifacts, workflow, and developer surfaces

Code and generated content stay escaped; workflows retain a textual order.

Release diffEscaped text
- old value
+ new value
  1. Plan
  2. Verify
  3. Release
Preview disabled

Generated JSX, Mermaid, HTML, SVG, sandbox, and web content are not executed.

  • Diff Viewerfallback
  • Dot Matrixnative
  • Filenative
  • Flownative
  • Flow Canvasnative
  • Flow Expandnative
  • Mermaid Diagramfallback
  • Shiki Highlighterfallback
  • Syntax Highlighterfallback
  • Dev Consolenative
  • Artifactnative
  • Canvasnative
  • Commitnative
  • Edgenative
  • Environment Variablesnative
  • File Treenative
  • JSX Previewfallback
  • Nodenative
  • Package Infonative
  • Sandboxfallback
  • Schema Displaynative
  • Snippetnative
  • Stack Tracenative
  • Terminalnative
  • Test Resultsnative
  • Web Previewfallback

Sample component state

Media, voice, and identity

Native media controls and labelled fallbacks preserve access without provider state.

Bunfork agent

One configured agent · sample identity

Audio player deferred

Provider-backed media requires permission, persistence, and an accessible transcript.

Sample identity only; no media source is loaded.
  • Imagenative
  • Logosnative
  • Voicedeferred
  • Image Renderernative
  • Audio Playerdeferred
  • Microphone Selectordeferred
  • Personanative
  • Speech Inputdeferred
  • Transcriptiondeferred
  • Voice Selectordeferred

Coverage contract

All 116 pinned source aliases map to these 110 concepts. Native and primitive rows work with semantic HTML now; fallback rows render escaped or disabled content; deferred rows name the missing database, runtime, permission, or security contract.

Read the component and accessibility rules.