
# 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. |
