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