KQ-652 · BLOCK/STREAM

Block Stream

A rail of blocks that fills from the right: a new block enters from a shift beyond the right edge on snap while the tiles already on the rail slide one place left under a layout animation on glide, and the tile pushed off the end leaves on the exit ease. Each tile carries its height, its transaction count, and a fullness bar that extends on glide. Pointing at the rail or focusing any tile holds the stream through onPauseChange, and tiles are buttons on a roving tabindex where Left and Right step, Home and End jump, and Enter pins a tile's detail.

KQ-652 · BLOCK/STREAM
Basin ledger
Block 812,443, 1,434 transactions.

Head 812443 · stopped · 1434 tx

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/block-stream

Props

blocks
StreamBlock[]
default
Blocks oldest first; the newest sits at the right of the rail.
max
number
default 5
Tiles kept on the rail; older ones leave to the left.
capacity
number
default 2400
Transactions a full block holds; sets each fullness bar.
paused
boolean
default false
Host-driven hold, OR-ed with the pointer and focus hold.
onPauseChange
(paused: boolean) => void
default
Fires from the pointer or focus event that changed the hold.
onSelect
(block: StreamBlock | null) => void
default
Fires from the press that pins or unpins a tile.
format
(value: number) => string
default Intl.NumberFormat, grouped
Formats heights and transaction counts.
announce
boolean
default true
Announces each settled block politely; turn it off in a busy page.
label
string
default "Block stream"
Names the rail for assistive technology.
emptyLabel
string
default "No blocks yet."
Shown while the rail is empty.