KQ-642 · SEED/CONFIRM
Seed Confirm
The check that follows a backup: a right pick flies its chip out of the tray and into the numbered slot on a shared layoutId move on glide, while the tray closes the gap behind it on the same spring. A wrong pick never moves — the chip shakes on a four-keyframe tween, the active slot tints danger, and the miss is counted — and the last placement stamps a seal on recoil. The tray is a roving-tabindex group: Arrow keys step, Home and End jump, Enter or Space picks, Backspace undoes.
KQ-642 · SEED/CONFIRM
Waylight Wallet · backup 2 of 2
Confirm your phrase0 / 3
- Word 3, empty
- Word 7, empty
- Word 11, empty
Pick the word for position 3.
Confirm 0 of 3 · 0 misses
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/seed-confirm
Props
- positions
- number[]
- default —
- The word numbers being checked, in ask order.
- answers
- string[]
- default —
- The correct word for each position; same length as positions.
- options
- string[]
- default —
- The tray in display order — answers plus decoys, distinct, so the shuffle stays deterministic.
- value / defaultValue
- string[]
- default —
- Controlled or initial placements, shortest first.
- onValueChange
- (placed: string[]) => void
- default —
- Fires from the pick or the undo that changed the placements.
- onMistake
- (position: number, word: string) => void
- default —
- Fires from the pick that put the wrong word in the active slot.
- onComplete
- () => void
- default —
- Fires from the pick that filled the last slot.
- label
- React.ReactNode
- default "Confirm your phrase"
- Visible heading for the card.
| Prop | Type | Default | Description |
|---|---|---|---|
| positions | number[] | — | The word numbers being checked, in ask order. |
| answers | string[] | — | The correct word for each position; same length as positions. |
| options | string[] | — | The tray in display order — answers plus decoys, distinct, so the shuffle stays deterministic. |
| value / defaultValue | string[] | — | Controlled or initial placements, shortest first. |
| onValueChange | (placed: string[]) => void | — | Fires from the pick or the undo that changed the placements. |
| onMistake | (position: number, word: string) => void | — | Fires from the pick that put the wrong word in the active slot. |
| onComplete | () => void | — | Fires from the pick that filled the last slot. |
| label | React.ReactNode | "Confirm your phrase" | Visible heading for the card. |