implementation
Implement in your agent
# Implement Spinner in your agent ## Objective Implement Spinner for this verified behavior: A compact animated indicator for work whose completion amount is unknown, paired with a meaningful busy status. ## Prerequisites - Inspect the repository, design system, and existing tests first. - Preserve unrelated changes and keep the file scope bounded. - Confirm that Spinner matches the need before writing code. ## Required behavior - The content region exposes its busy state while a separate visual indicator remains redundant. - A live region announces new status only when the update is important and not already focused. ## States to cover - Task idle — Task idle - Task loading — Task loading - Task taking longer than expected — Task taking longer than expected - Task cancelled — Task cancelled - Task done — Task done ## Accessibility - The primary control or named region for Spinner has a stable accessible name from visible text or an explicit programmatic label; placeholder text and tooltips are not names. - Focus remains on the initiating control unless a documented transition replaces the whole view. - The indicator ends when work resolves or is cancelled; it is never a manually dismissible message by itself. - Tab reaches the initiating control - The pending control blocks duplicate activation - Cancel remains keyboard reachable when offered ## Non-goals - A known percentage can be reported - The wait is long enough to require progress detail or cancellation ## Acceptance criteria - The wait is truly indeterminate - A textual busy state accompanies the visual - Duplicate actions are prevented - The long-wait state offers explanation and recovery
sha256:5e3373ba7908cb2a166b3b44643e7858baa764fea95c6134c3b1a832ece3b0e6