KQ-913 · SLOW/MODE

Slow Mode

A slow-mode wait drawn on the control it is holding. A shutter fills the send button and drains on a linear tween one second per step while a mono countdown replaces the word, fed by a timeout that lives in an effect and never runs while the tab is hidden; when it empties the button wakes with one snap overshoot from 1.06x. Hovering or focusing Send swaps the hint line to the remainder — two readings in one grid cell, cross-faded — and Send stays in the tab order while held, with the wait spoken in its name.

KQ-913 · SLOW/MODE
One message every 8 seconds.
Enter sends, Shift and Enter breaks the line.

awake · draft 0 chars · 0 sent

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/slow-mode

Props

value / defaultValue
string
default ""
Controlled or initial draft.
onValueChange
(value: string) => void
default
Fires from every keystroke and from the clear after a send.
interval
number
default 60
The slow-mode window, in seconds; it also builds the default rule line.
remaining / defaultRemaining
number
default 0
Seconds left. Passing `remaining` hands the clock to the host; `defaultRemaining` is a plain number for the first paint, never a clock.
onRemainingChange
(seconds: number) => void
default
Fires on every tick, on a send, and on the wake, with whole seconds.
onSend
(text: string) => void
default
Fires from Enter or the Send button with the trimmed draft.
onWake
() => void
default
Fires once when the wait reaches zero.
ruleLabel
string
default
The rest reading under the composer. Built from `interval` by default: "One message a minute." at 60.
placeholder
string
default "Message the room"
The textarea's placeholder.
disabled
boolean
default false
Holds the composer and the button.
label
string
default
Names the textarea for assistive technology.