Sidebar
Collapsible app rail: provider, header, groups, menu buttons with injected links, nested sub-menus that fly out once collapsed, badges, off-canvas below the mobile breakpoint, trigger, inset.
Activity indicator
One row's activity mark. A count when something arrived, a pulsing dot while something is working — and when both are true the count wins, because it is the one you can act on. Collapse the rail to see the 56px form: the badge goes sr-only there, so a dot takes over.
<SidebarMenuActivity count={3} label="3 tasks finished" />Activity in the rail
The three rows that can light up, against the ones that never do. Only Chat, Cloud Agents and Background Tasks carry an indicator — the point of the paradigm is that the rail stays quiet, so this is the view that shows whether it does.
<SidebarMenuButton
href="/user/status"
tooltip="3 tasks finished · 1 still running"
tooltipAlways
>
<ActivityIcon />
<SidebarMenuLabel>Background Tasks</SidebarMenuLabel>
<SidebarMenuActivity count={3} working />
</SidebarMenuButton>Playground
<SidebarProvider>
<Sidebar>
<SidebarHeader><SidebarBrand /></SidebarHeader>
<SidebarContent>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton href="/chat" link={Link} isActive>
<MessageSquareIcon />
<SidebarMenuLabel>Chat</SidebarMenuLabel>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarContent>
</Sidebar>
<SidebarInset>
<SidebarTrigger />
{children}
</SidebarInset>
</SidebarProvider>Toggle the rail