Approval Card

Questions

index.tsx

How focused should the first release be?

1/3
Question 1 of 3

Review and Approve

index.tsx

Publish the component update?

Input required

The agent has prepared the release and is waiting for your decision.

Release
approval-card
Checks
4 passed
Visibility
Public registry

API Reference

title?
ReactNode
DefaultApproval required
description?
ReactNode
Default—
questions?
ApprovalCardQuestion[]
Default[]
status?
"pending" | "submitting" | "approved" | "rejected" | "changes-requested" | "answered"
Defaultpending
answers?
ApprovalCardAnswers
Default—
defaultAnswers?
ApprovalCardAnswers
Default{}
onAnswersChange?
((answers: ApprovalCardAnswers) => void)
Default—
step?
number
Default—
defaultStep?
number
Default0
onStepChange?
((step: number) => void)
Default—
onSubmit?
((answers: ApprovalCardAnswers) => void)
Default—
onApprove?
(() => void)
Default—
onReject?
(() => void)
Default—
onRequestChanges?
(() => void)
Default—
onDismiss?
(() => void)
Default—
approveLabel?
ReactNode
DefaultApprove
submitLabel?
ReactNode
DefaultSubmit response
result?
ReactNode
Default—
className?
string
Default—

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @beui/approval-card

Composition

Place the approval surface inside the message that pauses the agent run.

Message
└── MessageContent
    └── ApprovalCard

Note: Tool Approval handles the narrower case of one tool permission. Message places the decision inside the conversation history. Todo List shows which planned work is paused by the decision.

How it works

Human-in-the-loop work is a temporary transfer of control. The card should state the decision clearly, collect only the required input, and return a durable answer to the paused agent run.

Also on React Native. Swipeable questions, or a review to approve.

Updated