AI elements
Response recap
A persistent, read-only summary of an accepted response.
- Which entity?
- Meridian UK Ltd
- Send documents?
- Approved
Alex Morgan ·
Usage
import { ResponseRecap } from '@commenda/pathfinder/response-recap';
<ResponseRecap
kind="approval"
items={[{ id: 'approval', question: 'Send documents?', answer: 'Approved' }]}
attribution={{
name: 'Alex Morgan',
dateTime: '2026-10-13T10:30:00Z',
label: '13 Oct 2026, 10:30 UTC',
}}
/>;Long answers and Unicode text wrap within the available width.
API reference
| Prop | Type | Behavior |
|---|---|---|
itemsRequired | readonly ResponseRecapItem[] | Stable IDs and plain text; each pair renders as dt/dd |
kindConditional | "questions"|"upload"|"approval"|"plan" | Defaults to questions |
attributionConditional | ObjectView fields | Required by TypeScript for approval and plan; ISO dateTime plus localized display label |
className | string | Layout override |
attributionObject fields
| Field | Type | Requirement |
|---|---|---|
name | string | Required |
dateTime | string | Required |
label | string | Required |
Design rules
- RECAP-01: Flat white card, hairline border, radius16, padding16. Questions use Label12 pearl800; answers use Copy13 with 4px separation and 12px between groups.
- RECAP-02: Render only accepted responses. Approval/plan recaps require actor and timestamp. Persist the receipt in its originating message so it survives reload and appears in history.
The recap is informational, not editable. Use the original question for corrections or a new request. Long text wraps; no Markdown parser or AI provider is imported.
Integration and accessibility
Buttons have explicit names and keyboard focus. No network transport or AI SDK provider is required. Requests, tool execution, permission checks, durable outcomes and composer coordination stay in the application. See AI content integration for migration mappings; application migration is outside this build.