Skip to content
Sign in
Computer useParallel tabsMenu

Parallel tabsPro

Every tab an agent works in at once, each with its own status and progress.

ProFour stores checked at once. Open a tile to watch it large.

Installation

$ pnpm dlx shadcn@latest add @chatcn-pro/parallel-tabs

Usage

tsx
import { ParallelTabs } from "@/components/ui/chatcn/pro/parallel-tabs"

<ParallelTabs tabs={tabs} onTakeOver={takeOver} />

Tiles never reorder: a tab stays where you last saw it, and the ones that need you are drawn in amber with a hand. Screens are sized in cqw units so live pages scale into tiles. Open a tile and it grows into the large view; the other tabs become chips above it.

Examples

States

ProSix tabs with queued and paused, one expanded, and opening.

Props

PropTypeNotes
tabsParallelTab[]{ id, title, url, status, progress?, activity?, result?, error?, screen? }
status"queued" | "running" | "waiting" | "paused" | "done" | "failed"Per tab
focused, defaultFocused, onFocusedChangestring | nullThe expanded tab
onTakeOver, onRetry(id) => voidOn waiting and failed tabs
columns2 | 3 | 4Default 2, or 3 for five or more
loadingbooleanSkeleton tiles

Keyboard

KeyAction
Arrow keysMove between tiles
Enter, SpaceOpen the tile
EscapeBack to the grid, focus returns to the tile

Accessibility

  • Each tile is one button named by its title and status.
  • Status never relies on color: every state has its own glyph and word.

Motion

  • Opening grows the panel from the tile's rect with a transform, 280 ms. Keyboard opens swap instantly; reduced motion fades.
  • Progress bars move by scaleX, 300 ms.