Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Tray record popover

Linear: AUT-132

Top-level composition: the floating black rounded window the user sees first. Pulls UI-02 → UI-11 together — workspace chip, capture-mode tabs, display source card, camera + microphone rows, system audio, on-screen overlay summary, and the recording controls footer.

States

API

#![allow(unused)]
fn main() {
use ui_storybook::components::recorder::{
    TrayRecordPopover, OpenRecorderPopoverKind,
};
use ui_storybook::fixtures::recorder::sample_tray_record_popover;

view! {
    <TrayRecordPopover view=sample_tray_record_popover(OpenRecorderPopoverKind::None) />
}
}

Composition

flowchart TD
    Popover[TrayRecordPopover] --> Header[Workspace chip + CaptureModeTabs]
    Popover --> Body[tray-record-body]
    Body --> Display[DisplaySourceCard]
    Body --> Sources[CaptureSourceRow × 2]
    Body --> Audio[SystemAudioRow + AppList]
    Body --> OnScreen[On-screen summary chip]
    Popover --> Footer[RecordingControlsFooter]
    Popover --> Overlay[OpenRecorderPopoverKind overlay]

Open overlays are controlled

OpenRecorderPopoverKind is the only state. The component itself doesn't track which menu is open — the parent (app-ui) owns that signal. This keeps the popover snapshot-stable and lets the same component drive both keyboard-navigation closing and outside-click closing without owning either policy.