-
Notifications
You must be signed in to change notification settings - Fork 0
D-2: DesignSystem — add StatusIndicator primitive #252
Copy link
Copy link
Open
Labels
a11yAccessibility: VoiceOver, Dynamic Type, Reduce Motion, etc.Accessibility: VoiceOver, Dynamic Type, Reduce Motion, etc.complexity:SdialogueDialogue feature — structured chat UI for agent sessionsDialogue feature — structured chat UI for agent sessionsds-apiChanges to DesignSystem public API — requires owner approvalChanges to DesignSystem public API — requires owner approvalfrontendwave-1
Milestone
Metadata
Metadata
Assignees
Labels
a11yAccessibility: VoiceOver, Dynamic Type, Reduce Motion, etc.Accessibility: VoiceOver, Dynamic Type, Reduce Motion, etc.complexity:SdialogueDialogue feature — structured chat UI for agent sessionsDialogue feature — structured chat UI for agent sessionsds-apiChanges to DesignSystem public API — requires owner approvalChanges to DesignSystem public API — requires owner approvalfrontendwave-1
Description
Add
StatusIndicator— generic pill / dot component for rendering tool-call lifecycle states (pending / in_progress / completed / failed) and session status (idle / streaming / thinking / error). Used byToolCallCardView, top status strip inDialogueView, and tab-icon indicators.Spec: Epic #250 §6 (UI concept — live feel).
Scope
Either extend
StatusBadgewith missing variants or createStatusIndicator(decide based on API fit):dot— 8pt circle, no label.pill— icon + optionallabel+ inline color fill (using SF Symbol + DS.Color.{success, warning, destructive, textSecondary}).large— headline-sized badge for top status strip.Kindpairs color + SF Symbol + animation (never color alone — a11y req).@Environment(\.accessibilityReduceMotion)— when on, spinner becomes static icon, pulse becomes fade-in only..accessibilityLabelfromKind.descriptionand.accessibilityValuereflecting active state.Acceptance Criteria
StatusBadgeor createStatusIndicator(with rationale vs existing API).Kind,Size, public init(kind:size:label:).Kinds renders a unique icon + color + motion signature — no color-only signaling.accessibilityReduceMotion..accessibilityLabelpresent and meaningful for every combination.DesignSystemCatalogwith all 6 kinds × 3 sizes × light/dark/HCR/reduceTransparency.ds-api.Relationships