# Chanora Component Catalog — Material 3 Baseline **Version:** 0.9.2 **Status:** Baseline Candidate **Language:** English **Repo path:** `docs/ui-ux/material3-component-catalog.md` --- ## 1. Purpose This catalog defines Chanora UI components that sit above Material 3 widgets. Components shall consume design tokens and expose accessible, testable APIs. ## 2. Core Components | Component | Stage | Responsibility | |---|---|---| | `ChanoraAdaptiveShell` | P0 | Layout and navigation shell for compact, medium, expanded classes | | `ChanoraVoiceBar` | P0 | Persistent voice controls | | `ChanoraChannelTree` | P0 | Hierarchical channel and client browser | | `ChanoraClientTile` | P0 | Client display row | | `ChanoraStatusBadge` | P0 | Connection, voice, latency, and diagnostic status | | `ChanoraAudioMeter` | P0 | Input audio level indicator | | `ChanoraConnectionBanner` | P0 | Connection, reconnect, and error feedback | | `ChanoraSettingsSection` | P0 | Settings grouping | | `ChanoraDiagnosticPanel` | P0 | Diagnostics status and export entry | | `ChanoraContextMenuAnchor` | P1 | Desktop and tablet context menu behavior | ## 3. Component API Requirements ### `ChanoraVoiceBar` Required properties: - connected status - current channel name - microphone muted state - output deafened state - push-to-talk active state - input level - latency summary - localized labels - callbacks for mute, deaf, push-to-talk, and settings ### `ChanoraChannelTree` Required properties: - root channel nodes - expanded channel IDs - selected channel ID - current voice channel ID - client node list - speaking client IDs - join-channel callback - context-menu callback - keyboard traversal support ### `ChanoraStatusBadge` Required properties: - state - label - icon - semantic label - optional severity - optional tooltip ### `ChanoraAudioMeter` Required properties: - level - disabled state - semantic value - reduced-motion mode ## 4. Accessibility Rules - Icon-only controls require semantic labels. - Status components must not rely on color only. - Components must support focus where interactive. - Components must preserve touch target size where practical. - Components must be testable through widget tests. ## 5. Change History | Version | Date | Description | |---|---|---| | 0.1.0 | 2026-05-14 | Initial Chanora component catalog. | ## Baseline Candidate 0.9.1 Update | Version | Date | Description | |---|---|---| | 0.9.1 | 2026-05-14 | Updated baseline after product decision closure: Apple App Store SDK gate uses Xcode 26+ and iOS 26 / iPadOS 26 SDK+ since 2026-04-28, platform baselines and decision traceability propagated across the document set. | ## Baseline Candidate 0.9.2 Update | Version | Date | Description | |---|---|---| | 0.9.2 | 2026-05-14 | Corrected Apple App Store Connect upload gate to 2026-04-28 and checked full-package naming, references, and coverage. |