KQ-644 · SIGN/REQUEST

Sign Request

A signing sheet that rises inside the wallet's own frame from a shift on glide and lays the request out one row at a time, each arriving from a nudge behind a cascade delay. A scroll listener writes reading progress into a motion value that scales the hairline beneath the list, and reaching the end arms the sign control, whose fill sweeps in from the left on snap. Focus moves to the list on open and back to the opener on close, Tab is trapped, Escape rejects, and a press on the closed gate takes the reader to the end instead.

KQ-644 · SIGN/REQUEST
Waylight Walletbsn1q9f4…cwyd
128.40BSN on Basin
  • Received · Coldbrook Bank+40.00
  • Sent · Fernworks Supply−12.25
  • Received · Gaugeworks+6.10
  • Sent · Basinworks Exchange−3.00

Sign request idle

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/sign-request

Props

open
boolean
default
Raises the sheet. Render it inside a relative frame.
fields
SignField[]
default
The request in reading order: id, label, value or amount, and an optional warn tone.
origin
string
default
Who is asking. Shown under the title and read out with it.
title
string
default "Signature request"
Sheet heading and the dialog's accessible name.
format
(value: number) => string
default Intl.NumberFormat("en-US")
Every amount goes through this — the sheet never invents a currency.
signLabel
string
default "Sign"
Copy on the arming control.
onSign
() => void
default
Fires from the sign press, only ever while armed.
onReject
() => void
default
Fires from the reject press, the scrim, or Escape.
onArmedChange
(armed: boolean) => void
default
Fires from the scroll or resize callback that armed or disarmed the control.