KQ-694 · RISK/HOLD
Risk Hold
A payment held for review. The notice beneath the row drains a review ring across the window and releases at zero, or sooner when a reviewer presses Release: the notice slides away on the exit ease while its height closes, and the row's chip turns to Sent with a tick drawn on flick. Escalate stops the ring and turns the notice amber by colour alone; the notice itself arrives on glide, and both controls are real buttons one Tab apart.
KQ-694 · RISK/HOLD
Waylight Pay1,240.00BSNto Fernworks Ltd
Held0:08
Held for reviewNew payee. Releases when the window closes.
Held · review 8s
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/risk-hold
Props
- status / defaultStatus
- "held" | "released" | "escalated"
- default "held"
- Controlled or initial state of the hold.
- onStatusChange
- (status, cause: "reviewer" | "timer") => void
- default —
- Fires from the press, or from the ring running out with cause "timer".
- amount
- number
- default —
- The held sum, in symbol.
- symbol
- string
- default —
- Asset code shown after the amount.
- payee
- string
- default —
- Who the payment goes to.
- reason
- string
- default "New payee"
- Why it was held.
- format
- (value: number) => string
- default —
- Formats the amount; defaults to a two-decimal number format.
- reviewMs
- number
- default 10000
- The review window; the ring drains across it and releases at zero.
- label
- ReactNode
- default —
- Visible heading; omit it and pass aria-label.
| Prop | Type | Default | Description |
|---|---|---|---|
| status / defaultStatus | "held" | "released" | "escalated" | "held" | Controlled or initial state of the hold. |
| onStatusChange | (status, cause: "reviewer" | "timer") => void | — | Fires from the press, or from the ring running out with cause "timer". |
| amount | number | — | The held sum, in symbol. |
| symbol | string | — | Asset code shown after the amount. |
| payee | string | — | Who the payment goes to. |
| reason | string | "New payee" | Why it was held. |
| format | (value: number) => string | — | Formats the amount; defaults to a two-decimal number format. |
| reviewMs | number | 10000 | The review window; the ring drains across it and releases at zero. |
| label | ReactNode | — | Visible heading; omit it and pass aria-label. |