KQ-1153 · PNEUMATIC/TUBE

Pneumatic Tube

Notices wait as capsules in the foot of a glass tube and are delivered one at a time: the next shoots up on an accelerating tween, turning with the tube round both bends while the glass fogs behind it and an air gauge's needle swings up on the snap spring, drops into the cup, lands squashing on the recoil spring, pops its cap on snap and unrolls its note on the glide spring. Tap the note and it rolls back up on glide, the cap shuts on flick and the capsule leaves down the return tube on the exit ease as the next one launches. The note and the waiting capsules share one tab stop: Up and Down move, Enter or Delete sends the note back, and Delete drops a waiting capsule unread.

KQ-1153 · PNEUMATIC/TUBE

Basinworks mail2 waiting

Press the note to roll it up and send it back. Delete removes a waiting capsule unread.

reading · Invoice approved · 2 waiting

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/pneumatic-tube

Props

notices
{ id: string; title: string; body?: string; tone?: "info" | "success" | "warn" | "danger" }[]
default —
Every notice, oldest first: the oldest is in the cup, the rest wait in the tube in order.
onDismiss
(id: string) => void
default —
Fires when the reader sends a note back, or drops a waiting capsule unread.
label
string
default "Tube mail"
The station's accessible name, shown at its top corner with the waiting count.
speed
number
default 1
How fast capsules travel and drop, 0.5 to 2.
glass
"clear" | "frosted" | "amber"
default "clear"
The tubes' glass and the colour of the fog it holds.
capsule
"brass" | "copper" | "steel"
default "brass"
The capsules' metal.
sound
boolean
default false
The whoosh, the landing thud and the cap's pop (a delivery is heard only when it follows the visitor's own press).
disabled
boolean
default false
Notes are still delivered and can be read, but not sent back or dropped.
className
string
default —
Classes for the root; the station keeps an 8:11 aspect at the root's width.