KQ-641 · SEED/REVEAL
Seed Reveal
A recovery phrase under hatched plates that lift one at a time while the control is held, each on snap with the word beneath arriving from a nudge; letting go re-covers the grid on the exit ease. The furthest word reached is kept as seen, and the copy control stays shut until every word has shown. Space or Enter held down runs the same walk as a press, Escape or blur ends it.
KQ-641 · SEED/REVEAL
Waylight Wallet · backup 1 of 2
Recovery phrase0 / 12 seen
- Word 1, hidden
- Word 2, hidden
- Word 3, hidden
- Word 4, hidden
- Word 5, hidden
- Word 6, hidden
- Word 7, hidden
- Word 8, hidden
- Word 9, hidden
- Word 10, hidden
- Word 11, hidden
- Word 12, hidden
Hold the control until all words have shown to unlock copy.
Phrase seen 0 / 12 · copy locked
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/seed-reveal
Props
- words
- string[]
- default —
- The phrase, in order. Twelve or twenty-four — the grid takes any length.
- revealMs
- number
- default 120
- Milliseconds between words while the control is held.
- label
- React.ReactNode
- default "Recovery phrase"
- Visible heading for the card.
- holdLabel
- string
- default "Hold to reveal"
- Copy on the hold control.
- onSeenChange
- (seen: number, total: number) => void
- default —
- Fires from the tick that uncovers a word never seen before.
- onRevealComplete
- () => void
- default —
- Fires from the tick that uncovers the last word.
- onCopy
- (ok: boolean) => void
- default —
- Fires from the copy press once the clipboard has answered.
| Prop | Type | Default | Description |
|---|---|---|---|
| words | string[] | — | The phrase, in order. Twelve or twenty-four — the grid takes any length. |
| revealMs | number | 120 | Milliseconds between words while the control is held. |
| label | React.ReactNode | "Recovery phrase" | Visible heading for the card. |
| holdLabel | string | "Hold to reveal" | Copy on the hold control. |
| onSeenChange | (seen: number, total: number) => void | — | Fires from the tick that uncovers a word never seen before. |
| onRevealComplete | () => void | — | Fires from the tick that uncovers the last word. |
| onCopy | (ok: boolean) => void | — | Fires from the copy press once the clipboard has answered. |