ns-ui
Card-triage queue driven by a literal one-way ratchet — deciding a card clicks a toothed rail forward one notch; undo means visibly lifting the pawl before the rail eases back.
Use when a card-at-a-time decision queue where progress should feel earned and one-way, each decision clicking a sawtooth rail forward a notch and undo visibly lifting the pawl before the rail eases back, so reversal is possible but never free; pick swipe-row-detent instead when the items stay in a list and the gesture is lateral per row, or confirm-hold-ink when a single action needs a deliberate gate rather than a stream of decisions.
Install
npx shadcn add https://design.helpmarq.com /r/queue-triage-ratchet.jsonns-ui / queue-triage-ratchet — triage queue with a one-way ratchet
Automated report
jrivera · code review
Billing · due in 4 days
Plan renews at the current rate unless changed before the 26th. No action needed to continue as-is.
Left/Right or J/K to triage, U (or Cmd/Ctrl+Z) to undo — undo lifts the pawl before the rack eases back.
| Prop | Type | Default | Description |
|---|---|---|---|
| cards | PawlClickCard[] | — | Initial queue, top of stack first. Managed internally after mount. |
| onArchive? | (card: PawlClickCard) => void | — | Called with the card whenever it's archived. |
| onKeep? | (card: PawlClickCard) => void | — | Called with the card whenever it's kept. |
| onUndo? | (card: PawlClickCard) => void | — | Called with the card whenever an archive/keep is undone. |
| onEmpty? | () => void | — | Called once the queue is fully drained. |
| className? | string | — | — |