# 确认卡片

- 页面: https://jiguang132.com/zh/resources/beautiful-ui/docs/approval-card
- 资源: Beautiful UI (https://jiguang132.com/zh/resources/beautiful-ui.md)
- 全部指南: https://jiguang132.com/zh/resources/beautiful-ui/docs.md

Beautiful UI 的独立组件，请不要替换为 JGuang UI/Base UI 的同名 API。

## 安装

```bash
npx shadcn@latest add https://jiguang132.com/r/beautiful-ui/approval-card.json
```

Registry 将复制可编辑源码和依赖到独立命名空间。检查主题变量与 Tailwind CSS v4 配置；不要覆盖已有的项目组件。

## 使用与验证

在左侧选择组件，在预览中操作它的状态；使用“查看代码”检查真实源码。安装后执行类型检查和构建，再验证键盘焦点、手机布局与深浅色主题。

## 来源

https://github.com/slev12397/beautiful-ui/tree/44a274e598395ab61e7c96c26fda2758780253b7
MIT 许可证；不包括付费内容。下方提供上游英文参考内容，中文使用指南已适配；上游详细参考暂保留英文。

---



## 适用场景

在智能体继续执行前收集人工确认。

## 关键参数与数据

| 原生参数 | 说明 |
|---|---|
| `questions` | 传入 q、type（radio/check）、options；用户决策期间保持选项顺序稳定。 |
| `onAnswerChange` | 每次点击选项后接收题目索引和已选选项索引。 |
| `onSubmitted` | 接收 Record<number, number[]>；先映射到原题目和选项，再调用业务后端。 |
| `labels` | 可局部翻译 skip、continue、send、customPlaceholder、sentMessage。 |
| `resettable` | 决定提交后的界面是否允许重新开始。 |

## 交互与状态检查

单选会在 480ms 后自动下一题或提交；多选等待继续/提交。检查最后一题单选、多选反复切换、重置，以及计时结束前修改自定义文字。

## 业务接入边界

公开提交数据仅包含选项索引，不包含自定义文本。跳过可能产生缺失答案，必填校验需由业务完成。更换问卷时使用新 key 重建实例。

以下安装用法和源码参数参考保留原生 API 名称。上游英文参考未宣称全文中文化。


## 可运行用法

先安装下方完整示例，再使用已安装的示例入口。参数化示例、共享工具、原生组件和 CSS 均随安装包提供，不需要手工修正相对导入。

```tsx
import Demo from '@/components/beautiful-ui/examples/presets/approval-card-single-choice';
import '@/styles/beautiful-ui.css';
export default function Example() { return <Demo />; }

```


## 可用状态与示例

默认示例、单选确认、多选确认

组件中的状态与数据为演示用途，不包含后端接口。接入实际项目时请检查源码中的公开参数，再连接业务数据。
Human-in-the-loop questions the agent asks before acting.



## 完整示例安装

这些是实际运行的原生状态和参数化业务示例，不是额外的独立组件。每份包包含必要源码、辅助文件、固定依赖、独立 CSS 和许可证。业务示例选择名不是新增的原生组件属性；真实 API 见下方参数参考。

### 默认示例

```bash
npx shadcn@latest add https://jiguang132.com/r/beautiful-ui/examples/approval-card/approval-card-default.json
```

默认导入: `@/components/beautiful-ui/examples/presets/approval-card-default`

依赖: `class-variance-authority@0.7.1`, `clsx@2.1.1`, `tailwind-merge@3.6.0`, `shadow-plugin@2.1.1`

### 单选确认

```bash
npx shadcn@latest add https://jiguang132.com/r/beautiful-ui/examples/approval-card/approval-card-single-choice.json
```

默认导入: `@/components/beautiful-ui/examples/presets/approval-card-single-choice`

依赖: `class-variance-authority@0.7.1`, `clsx@2.1.1`, `tailwind-merge@3.6.0`, `shadow-plugin@2.1.1`

### 多选确认

```bash
npx shadcn@latest add https://jiguang132.com/r/beautiful-ui/examples/approval-card/approval-card-multiple-choice.json
```

默认导入: `@/components/beautiful-ui/examples/presets/approval-card-multiple-choice`

依赖: `class-variance-authority@0.7.1`, `clsx@2.1.1`, `tailwind-merge@3.6.0`, `shadow-plugin@2.1.1`

入口初始化 Tailwind CSS v4，导入 beautiful-ui.css 一次，并由宿主 html 的 dark 类同步主题。示例按 html lang 选择中英文，不包含后端、认证或录屏。网络/剪贴板权限仍取决于浏览器。


## 源码参数参考

以下实现签名和类型从本地固定版本源码生成。保留可选属性、原生继承类型、联合分支和 never 限制；不会将其他设计系统的 API 混入。forwardRef 实现中的 ref 属于 React 引用，不是新增业务属性。此区域是原始类型参考，不是上游说明的全文翻译。


```ts
ApprovalCard({
  questions = QUESTIONS,
  labels,
  onSubmitted,
  onAnswerChange,
  resettable = true,
}: {
  questions?: ApprovalQuestion[];
  labels?: Partial<ApprovalLabels>;
  onSubmitted?: (answers: Record<number, number[]>) => void;
  onAnswerChange?: (questionIndex: number, answer: number[]) => void;
  resettable?: boolean;
  variant?: string;
} = {})
```



```ts
export type ApprovalQuestion = {
  q: string;
  type: "radio" | "check";
  options: string[];
};

export type ApprovalLabels = {
  skip: string;
  continue: string;
  send: string;
  customPlaceholder: string;
  sentMessage: string;
};
```


### 源码中的解构默认值

只列出直接写在参数或 props 解构中的默认表达式。条件表达式、运行时主题和其他计算值请结合源码；这里不是全部行为的默认值清单。


```ts
// ApprovalCard
questions = QUESTIONS

// ApprovalCard
resettable = true
```


### 原生与外部类型

以下外部类型仍由 React 或资源自身依赖定义，没有手工展开为虚构属性。实际可用类型以安装版本的 TypeScript 检查为准。


```ts
Partial<ApprovalLabels>
Record<number, number[]>
```

---

JGuang 全部资源索引: https://jiguang132.com/llms.txt
