KQ-1845 · MANGLE/PRESS
Mangle Press
A press seen from above: plain grey pages slide in from the left, are drawn under heavy steel rollers and come out on the right as finished results — a card, a chart, a poster, a ticket, a report, a badge — that land on a fanned pile on springs.recoil. Each pair of rollers is a stage and every part of a sheet shows the stage it has passed, clipped exactly at each nip, while the rollers turn by the distance the paper moves, ride up over each sheet and drop back with a bounce. A flywheel motor drives it; winding the crank turns the rollers 1:1 and the flywheel carries the wind, and the crank is a button whose Right, Enter or Space wind one document through on springs.glide, Left winds one back and Home and End go to the first and last.
Gaugeworks · print room
Drafts in, deliverables out
Wind the crank to run the press faster. With the crank focused, Right, Enter or Space presses the next document, Left winds the last one back, Home and End go to the first and last.
printed 0 · warming up · 1.0×
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/mangle-press
Props
- items
- MangleItem[]
- default defaultMangleItems
- The documents in the queue: { id, title, kind?, input?, output? }; they go round and round.
- speed
- number
- default 1
- The motor's pace, 0.25× to 2×.
- rollers
- number
- default 2
- Rollers on the press, in pairs: 2, 4 or 6. Each pair is a stage — colour, then detail, then varnish.
- palette
- "studio" | "garden" | "harbour" | "ember"
- default "studio"
- The inks the results come out in.
- heft
- number
- default 0.6
- How heavy the rollers are, 0 to 1: a heavy press carries a wind for longer.
- squeeze
- number
- default 0.6
- How hard the rollers press, 0 to 1: how far they ride up over a sheet and how plain the crease is.
- spacing
- number
- default 0.35
- Space between sheets in the queue, 0 to 1.
- crank
- boolean
- default true
- Show the crank.
- paused
- boolean
- default false
- The motor is off: the press turns only when wound or stepped.
- sound
- boolean
- default false
- Play the press's creak while you wind it. Off unless asked for.
- label
- string
- default "Press"
- The press's accessible name.
- onResult
- (item: MangleItem, index: number) => void
- default —
- Fires when a finished result lands on the pile, with the item and its place in the queue.
- disabled
- boolean
- default false
- No winding and no steps.
- className
- string
- default "h-56 w-full"
- Sizes the box.
| Prop | Type | Default | Description |
|---|---|---|---|
| items | MangleItem[] | defaultMangleItems | The documents in the queue: { id, title, kind?, input?, output? }; they go round and round. |
| speed | number | 1 | The motor's pace, 0.25× to 2×. |
| rollers | number | 2 | Rollers on the press, in pairs: 2, 4 or 6. Each pair is a stage — colour, then detail, then varnish. |
| palette | "studio" | "garden" | "harbour" | "ember" | "studio" | The inks the results come out in. |
| heft | number | 0.6 | How heavy the rollers are, 0 to 1: a heavy press carries a wind for longer. |
| squeeze | number | 0.6 | How hard the rollers press, 0 to 1: how far they ride up over a sheet and how plain the crease is. |
| spacing | number | 0.35 | Space between sheets in the queue, 0 to 1. |
| crank | boolean | true | Show the crank. |
| paused | boolean | false | The motor is off: the press turns only when wound or stepped. |
| sound | boolean | false | Play the press's creak while you wind it. Off unless asked for. |
| label | string | "Press" | The press's accessible name. |
| onResult | (item: MangleItem, index: number) => void | — | Fires when a finished result lands on the pile, with the item and its place in the queue. |
| disabled | boolean | false | No winding and no steps. |
| className | string | "h-56 w-full" | Sizes the box. |