components / lane-bar

lane-bar.

multi-lane sibling of now-playing-bar: several activities running in parallel, each with a live elapsed timer and its own action slot, all driven by one shared tick.

lanes
nothing running
installation
bunx @justin06lee/chrome@latest add lane-bar
props
nametypedefaultdescription
lanes *Lane[]-{ id, title, subtitle?, startedAt?, accent?, actions? }[] — activities running in parallel, top to bottom. a lane without startedAt reads as paused.
onLaneClick(id: string) => void-click handler for a lane row; omit to make rows inert.
actionsReactNode-right-side slot on the header row, applying to every lane.
labelReactNode'lanes'mono label on the header row; the lane count is appended.
emptyLabelReactNode'nothing running'copy shown when lanes is empty.
visiblebooleantruehide the bar and tear down the shared timer.
position'fixed' | 'sticky''fixed'pin to the viewport or to the scroll container.
classNamestring-