# API Diff Audit

本报告执行方案 A：全量组件 API 双向 diff 审计。

## 需要 re-audit

| 组件 | 原 audit 决策项数 | 不可信原因 | 应 re-scope 到 |
| --- | --- | --- | --- |
| Input | 17 | scope 错（应含 line+filled 并集） | input box/filled ∪ input box/line |
| Select | 14 | scope 错 | select box/filled ∪ select box/line，排除 feature=date \| time |
| Breadcrumb | 查表 | scope 错（容器+Item） | Breadcrumb/Item，容器允许 Figma 缺 |
| Steps | 查表 | scope 错（容器+Item） | Step/Item，容器允许 Figma 缺 |
| Button | 22 | scope 错（应含 8 个 set 并集） | 8 个 Button/{theme} {size} 并集 |
| Icon | 查表 | 不适用标准 audit | 走 icon-aliases.ts 核对 |
| Logo | 查表 | scope 错 | icon/logo/TVU + icon/logo/ts |

- 审计范围：13 个 Component 类组件
- 跳过 Foundation 类：`Color`、`Icon`、`Typography`、`Border`、`Effect`。理由：Foundation 不是组件，没有 props / variants / events 概念，应走视觉层脚本审计。
- 判定依据：`docs/working-principles.md` 原则 0–6，以及 `src/design-system/translation/` 已登记项。

| 组件 | ✅ | 🟢 | 🟡 | 🟠 | Figma 缺失 | 需我决策项数 |
| --- | --- | --- | --- | --- | --- | --- |
| Button | 0 | 15 | 7 | 0 | No | 22 |
| Input | 1 | 8 | 7 | 2 | No | 17 |
| Select | 1 | 7 | 5 | 2 | No | 14 |
| Badge | 0 | 8 | 4 | 1 | No | 13 |
| CheckBox | 0 | 5 | 6 | 0 | No | 11 |
| FormItem | 0 | 4 | 1 | 6 | No | 11 |
| Radio | 0 | 4 | 6 | 0 | No | 10 |
| Notification | 2 | 8 | 1 | 0 | No | 9 |
| Switch | 1 | 4 | 5 | 0 | No | 9 |
| InputNumber | 0 | 7 | 0 | 1 | No | 8 |
| Tooltip | 0 | 5 | 2 | 1 | No | 8 |
| PromptMessage | 4 | 1 | 1 | 0 | No | 2 |
| DateTime | 0 | 0 | 0 | 0 | Component-level translation（见 divergences.md） | 待重审 |

## Button

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Button/Button.vue
- Figma 状态：ok
- Figma component sets：`Button/dark L` (1545:51854)、`Button/dark M` (1545:51964)、`Button/dark S` (1545:57246)、`Button/dark XS` (1545:57247)、`Button/light L` (1545:47446)、`Button/light M` (1545:47447)、`Button/light S` (1545:51851)、`Button/light XS` (1545:51852)
- 说明：Figma 侧由 8 个 published component sets 聚合而成，`size` 在 component set 维度编码，不是单一 property。

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:variant | type=`\| 'fill-green'
  \| 'fill-gray'
  \| 'ghost-green'
  \| 'ghost-gray'
  \| 'ghost-red'
  \| 'text-green'
  \| 'text-gray'
  \| 'text-red'
  \| 'text-orange'`; default=`fill-green`; required=`false`; options=`fill-green`, `fill-gray`, `ghost-green`, `ghost-gray`, `ghost-red`, `text-green`, `text-gray`, `text-red`, `text-orange` | — | 🟢 | 仅代码侧；component refs=4；tests=5 |
| prop:size | type=`'xs' \| 's' \| 'm' \| 'l'`; default=`m`; required=`false`; options=`xs`, `s`, `m`, `l` | — | 🟢 | 仅代码侧；component refs=18；tests=2 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=6；tests=2 |
| prop:loading | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=23；tests=3 |
| prop:canonicalColor | type=`'gray 1' \| 'green' \| 'orange' \| 'red'`; default=—; required=`false`; options=`gray 1`, `green`, `orange`, `red` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalStyle | type=`'filling' \| 'ghost' \| 'rimless'`; default=—; required=`false`; options=`filling`, `ghost`, `rimless` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalRadius | type=`'round' \| 'square'`; default=—; required=`false`; options=`round`, `square` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalFixedWidth | type=`'no' \| 'yes'`; default=—; required=`false`; options=`no`, `yes` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalStatus | type=`'default' \| 'disable' \| 'hover' \| 'loading'`; default=—; required=`false`; options=`default`, `disable`, `hover`, `loading` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalIcon | type=`'left' \| 'light' \| 'loading' \| 'loading button' \| 'no' \| 'right'`; default=—; required=`false`; options=`left`, `light`, `loading`, `loading button`, `no`, `right` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:canonicalSize | type=`'XS' \| 'S' \| 'M' \| 'L'`; default=—; required=`false`; options=`XS`, `S`, `M`, `L` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:icon | — | type=`VARIANT`; default=`no`; options=`right`, `no`, `left`, `loading`, `loading button`, `light`; raw=`icon` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`right`, `no`, `left`, `loading`, `loading button`, `light` |
| prop:style | — | type=`VARIANT`; default=`filling`; options=`filling`, `ghost`, `rimless`, `rimeless`; raw=`style` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`filling`, `ghost`, `rimless`, `rimeless` |
| prop:color | — | type=`VARIANT`; default=`green`; options=`gray 1`, `green`, `orange`, `red`; raw=`color` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`gray 1`, `green`, `orange`, `red` |
| prop:status | — | type=`VARIANT`; default=`default`; options=`default`, `loading`, `hover`, `disable`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`default`, `loading`, `hover`, `disable` |
| prop:radius | — | type=`VARIANT`; default=`square`; options=`round`, `square`; raw=`radius` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`round`, `square` |
| prop:fixed width | — | type=`VARIANT`; default=`no`; options=`no`, `yes`; raw=`fixed width` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`no`, `yes` |
| prop:Radius | — | type=`VARIANT`; default=`square`; options=`round`, `square`; raw=`Radius` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`round`, `square` |
| event:click | payload=`[event: MouseEvent]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |
| slot:prefix | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |
| slot:default | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |
| slot:suffix | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |

### 异常

- 未额外发现表外异常。

## Badge

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Badge/Badge.vue
- Figma 状态：ok
- Figma component sets：`Badge` (4821:1665)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:type ↔ Type | type=`'brand' \| 'red' \| 'orange' \| 'blue'`; default=`red`; required=`false`; options=`brand`, `red`, `orange`, `blue` | type=`VARIANT`; default=`Circle`; options=`Circle`, `Rectangle`; raw=`Type` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:type option | `brand` | — | 🟢 | 仅代码侧值；component refs=3；tests=1 |
| prop:type option | `red` | — | 🟢 | 仅代码侧值；component refs=3；tests=1 |
| prop:type option | `orange` | — | 🟢 | 仅代码侧值；component refs=3；tests=1 |
| prop:type option | `blue` | — | 🟢 | 仅代码侧值；component refs=3；tests=1 |
| prop:Type option | — | `Circle` | 🟡 | 仅 Figma 侧值；Figma type=VARIANT；variantOptions=`Circle`, `Rectangle` |
| prop:Type option | — | `Rectangle` | 🟡 | 仅 Figma 侧值；Figma type=VARIANT；variantOptions=`Circle`, `Rectangle` |
| prop:count | type=`number`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:size | type=`'m' \| 's'`; default=`m`; required=`false`; options=`m`, `s` | — | 🟢 | 仅代码侧；component refs=6；tests=1 |
| prop:dot | type=`boolean`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=5；tests=0 |
| prop:max | type=`number`; default=`99`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:Color | — | type=`VARIANT`; default=`Green`; options=`Green`, `Blue`, `Orange`, `Red`, `Black`; raw=`Color` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`Green`, `Blue`, `Orange`, `Red`, `Black` |
| prop:Tag | — | type=`VARIANT`; default=`Filled`; options=`Filled`, `Line`; raw=`Tag` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`Filled`, `Line` |

### 异常

- 未额外发现表外异常。

## Input

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Input/Input.vue
- Figma 状态：ok
- Figma component sets：`input box/filled` (1436:32815)、`input box/line` (1818:8063)
- 说明：Figma 侧由 `input box/filled` 与 `input box/line` 两个 component sets 聚合。

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:size | type=`'s' \| 'm' \| 'l'`; default=`m`; required=`false`; options=`s`, `m`, `l` | type=`VARIANT`; default=`M`; options=`L`, `M`, `XL`; raw=`size` | ✅ | 名称一致 |
| prop:size option | `s` | — | 🟢 | 仅代码侧值；component refs=5；tests=2 |
| prop:size option | `m` | `M` | 🟠 | 同一属性下值拼写不同；Figma type=VARIANT |
| prop:size option | `l` | `L` | 🟠 | 同一属性下值拼写不同；Figma type=VARIANT |
| prop:size option | — | `XL` | 🟡 | 仅 Figma 侧值；Figma type=VARIANT；variantOptions=`L`, `M`, `XL` |
| prop:modelValue | type=`string`; default=``; required=`false` | — | 🟢 | 仅代码侧；component refs=5；tests=2 |
| prop:placeholder | type=`string`; default=``; required=`false` | — | 🟢 | 仅代码侧；component refs=6；tests=2 |
| prop:variant | type=`'line' \| 'filled'`; default=`line`; required=`false`; options=`line`, `filled` | — | 🟢 | 仅代码侧；component refs=4；tests=4 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=7；tests=2 |
| prop:readonly | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:error | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=5；tests=2 |
| prop:Content | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Content#4995:0` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`on`, `off`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`on`, `off` |
| prop:status | — | type=`VARIANT`; default=`default`; options=`default`, `normal`, `Filled`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`default`, `normal`, `Filled` |
| prop:enable | — | type=`VARIANT`; default=`on`; options=`off`, `on`; raw=`enable` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on` |
| prop:UX | — | type=`VARIANT`; default=`default`; options=`click`, `default`, `hover`, `error`; raw=`UX` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`click`, `default`, `hover`, `error` |
| prop:feature | — | type=`VARIANT`; default=`no`; options=`no`, `yes`, `text count`; raw=`feature` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`no`, `yes`, `text count` |
| event:update:modelValue | payload=`[value: string]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- hardcoded hex: `#353535`, `#ffffff`

## InputNumber

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/InputNumber/InputNumber.vue
- Figma 状态：ok
- Figma component sets：`InputNumber` (4684:7159)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:property1 ↔ Property 1 | type=`'Default' \| 'Only Add' \| 'Only Reduce' \| 'Readonly'`; default=`Default`; required=`false`; options=`Default`, `Only Add`, `Only Reduce`, `Readonly` | type=`VARIANT`; default=`Default`; options=`Default`, `Only Add`, `Only Reduce`, `Readonly`; raw=`Property 1` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:modelValue | type=`number`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=8；tests=1 |
| prop:min | type=`number`; default=`-Infinity`; required=`false` | — | 🟢 | 仅代码侧；component refs=5；tests=1 |
| prop:max | type=`number`; default=`Infinity`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:step | type=`number`; default=`1`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=0 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=16；tests=1 |
| prop:readonly | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=6；tests=1 |
| event:update:modelValue | payload=`[value: number]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- 未额外发现表外异常。

## FormItem

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/FormItem/FormItem.vue
- Figma 状态：ok
- Figma component sets：`Form Item` (1923:50705)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:label ↔ Label | type=`string`; default=`Form Label`; required=`false` | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Label#4741:68` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:labelWidth ↔ Label Width | type=`'120 px' \| '200 px' \| 'Dynamic'`; default=`120 px`; required=`false`; options=`120 px`, `200 px`, `Dynamic` | type=`VARIANT`; default=`Dynamic`; options=`120 px`, `200 px`, `Dynamic`; raw=`Label Width` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:layout ↔ Layout | type=`'1 line' \| '1 line & Right' \| '2 lines'`; default=`1 line`; required=`false`; options=`1 line`, `1 line & Right`, `2 lines` | type=`VARIANT`; default=`2 lines`; options=`1 line`, `1 line & Right`, `2 lines`; raw=`Layout` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:status ↔ Status | type=`'Error' \| 'Normal'`; default=`Normal`; required=`false`; options=`Error`, `Normal` | type=`VARIANT`; default=`Normal`; options=`Error`, `Normal`; raw=`Status` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:theme ↔ Theme | type=`'Dark' \| 'Light'`; default=`Dark`; required=`false`; options=`Dark`, `Light` | type=`VARIANT`; default=`Dark`; options=`Dark`, `Light`; raw=`Theme` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:type ↔ Type | type=`'Label & checkbox' \| 'Label & Input' \| 'Label & Radio' \| 'Label & Selector' \| 'Label & Switch' \| 'Label & Textarea'`; default=`Label & Input`; required=`false`; options=`Label & checkbox`, `Label & Input`, `Label & Radio`, `Label & Selector`, `Label & Switch`, `Label & Textarea` | type=`VARIANT`; default=`Label & Input`; options=`Label & Input`, `Label & Radio`, `Label & Selector`, `Label & Switch`, `Label & Textarea`, `Label & checkbox`; raw=`Type` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:required | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=0 |
| prop:error | type=`string`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=8；tests=0 |
| prop:hint | type=`string`; default=``; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=0 |
| prop:Content | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Content#4741:3` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| slot:default | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |

### 异常

- hardcoded hex: `#9e9e9e`, `#f8f8f8`, `#7b7b7b`, `#353535`, `#595959`, `#434343`, `#ffffff`, `#bdbdbd`, `#ea4233`, `#ed5b4e`, `#2fb54e`
- 引用了未定义 token: `--form-item-root-width`, `--form-item-label-width`

## CheckBox

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Checkbox/Checkbox.vue
- Figma 状态：ok
- Figma component sets：`check box` (3242:13521)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:modelValue | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=7；tests=1 |
| prop:indeterminate | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=7；tests=1 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=12；tests=1 |
| prop:Show Option | — | type=`BOOLEAN`; default=`true`; options=—; raw=`Show Option#4600:0` | 🟡 | 仅 Figma 侧；Figma type=BOOLEAN；variantOptions=— |
| prop:Icon | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Icon#4600:13` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| prop:Show Icon | — | type=`BOOLEAN`; default=`true`; options=—; raw=`Show Icon#4600:73` | 🟡 | 仅 Figma 侧；Figma type=BOOLEAN；variantOptions=— |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`off`, `on`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on` |
| prop:status | — | type=`VARIANT`; default=`off`; options=`off`, `on`, `some`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on`, `some` |
| prop:enable | — | type=`VARIANT`; default=`yes`; options=`no`, `yes`; raw=`enable` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`no`, `yes` |
| event:update:modelValue | payload=`[value: boolean]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |
| slot:default | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |

### 异常

- 未额外发现表外异常。

## Radio

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Radio/Radio.vue
- Figma 状态：ok
- Figma component sets：`radio` (3242:15188)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:modelValue | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=8；tests=2 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=15；tests=2 |
| prop:Icon | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Icon#4600:86` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| prop:Show Icon | — | type=`BOOLEAN`; default=`true`; options=—; raw=`Show Icon#4600:95` | 🟡 | 仅 Figma 侧；Figma type=BOOLEAN；variantOptions=— |
| prop:Show Option | — | type=`BOOLEAN`; default=`true`; options=—; raw=`Show Option#4600:104` | 🟡 | 仅 Figma 侧；Figma type=BOOLEAN；variantOptions=— |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`off`, `on`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on` |
| prop:status | — | type=`VARIANT`; default=`off`; options=`off`, `on`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on` |
| prop:enable | — | type=`VARIANT`; default=`yes`; options=`no`, `yes`; raw=`enable` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`no`, `yes` |
| event:update:modelValue | payload=`[value: boolean]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |
| slot:default | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |

### 异常

- 未额外发现表外异常。

## Switch

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Switch/Switch.vue
- Figma 状态：ok
- Figma component sets：`switch` (348:3483)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:loading | type=`boolean`; default=`false`; required=`false` | type=`VARIANT`; default=`no`; options=`no`, `yes`; raw=`loading` | ✅ | 名称一致 |
| prop:loading option | — | `no` | 🟡 | 仅 Figma 侧值；Figma type=VARIANT；variantOptions=`no`, `yes` |
| prop:loading option | — | `yes` | 🟡 | 仅 Figma 侧值；Figma type=VARIANT；variantOptions=`no`, `yes` |
| prop:modelValue | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=7；tests=1 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=8；tests=1 |
| prop:live | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=6；tests=1 |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`on`, `off`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`on`, `off` |
| prop:status | — | type=`VARIANT`; default=`on`; options=`live`, `off`, `on`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`live`, `off`, `on` |
| prop:enable | — | type=`VARIANT`; default=`yes`; options=`no`, `yes`; raw=`enable` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`no`, `yes` |
| event:update:modelValue | payload=`[value: boolean]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- 未额外发现表外异常。

## Select

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Select/Select.vue
- Figma 状态：ok
- Figma component sets：`select box/filled` (1436:32816)、`select box/line` (1804:26921)
- 说明：Figma 侧由 `select box/filled` 与 `select box/line` 两个 component sets 聚合。

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:size | type=`'m' \| 'l'`; default=`m`; required=`false`; options=`m`, `l` | type=`VARIANT`; default=`M`; options=`M`, `L`; raw=`size` | ✅ | 名称一致 |
| prop:size option | `m` | `M` | 🟠 | 同一属性下值拼写不同；Figma type=VARIANT |
| prop:size option | `l` | `L` | 🟠 | 同一属性下值拼写不同；Figma type=VARIANT |
| prop:modelValue | type=`string \| number`; default=``; required=`false` | — | 🟢 | 仅代码侧；component refs=6；tests=1 |
| prop:placeholder | type=`string`; default=`Select...`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:variant | type=`'line' \| 'filled'`; default=`line`; required=`false`; options=`line`, `filled` | — | 🟢 | 仅代码侧；component refs=4；tests=2 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=8；tests=1 |
| prop:error | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=5；tests=1 |
| prop:options | type=`{ label: string; value: string \| number }[]`; default=`() => []`; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`on`, `off`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`on`, `off` |
| prop:status | — | type=`VARIANT`; default=`default`; options=`default`, `normal`, `multi select`; raw=`status` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`default`, `normal`, `multi select` |
| prop:enable | — | type=`VARIANT`; default=`on`; options=`off`, `on`; raw=`enable` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`off`, `on` |
| prop:UX | — | type=`VARIANT`; default=`default`; options=`click`, `default`, `hover`, `editable`, `error`; raw=`UX` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`click`, `default`, `hover`, `editable`, `error` |
| prop:feature | — | type=`VARIANT`; default=`default`; options=`default`, `time`, `date`; raw=`feature` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`default`, `time`, `date` |
| event:update:modelValue | payload=`[value: string \| number]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- 未额外发现表外异常。

## DateTime

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/DateTime/DateTime.vue
- Figma 状态：Component-level translation（见 divergences.md）
- 说明：代码状态：Code missing；DateTime 需对照 Figma Select.feature=date|time 重新做单组件 audit，不在本轮全量决策范围内

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| — | — | Figma Select.feature=`date` / `time` 子集（待独立重审） | — | 本轮不按“Figma 缺失”处理 |

### 异常

- 代码文件缺失。
- 当前 docs 页已声明来源：`select box/filled` (1436:32816) + `select box/line` (1804:26921) with feature=`time` / `date`。

## Notification

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Notification/Notification.vue
- Figma 状态：ok
- Figma component sets：`Notification` (1408:17154)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:status | type=`\| 'warning'
  \| 'error'
  \| 'info'
  \| 'secondary warning'
  \| 'pop confirm'
  \| 'quick confirm'
  \| 'side pop'`; default=—; required=`false`; options=`warning`, `error`, `info`, `secondary warning`, `pop confirm`, `quick confirm`, `side pop` | type=`VARIANT`; default=`warning`; options=`side pop`, `error`, `info`, `quick confirm`, `warning`, `pop confirm`, `secondary warning`; raw=`status` | ✅ | 名称一致 |
| prop:theme | type=`'dark' \| 'light'`; default=`dark`; required=`false`; options=`dark`, `light` | type=`VARIANT`; default=`dark`; options=`dark`, `light`; raw=`theme` | ✅ | 名称一致 |
| prop:title | type=`string`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=17；tests=1 |
| prop:description | type=`string`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=11；tests=0 |
| prop:closable | type=`boolean`; default=`true`; required=`false` | — | 🟢 | 仅代码侧；component refs=4；tests=0 |
| prop:cancelText | type=`string`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=2；tests=0 |
| prop:confirmText | type=`string`; default=—; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=0 |
| prop:Notification_content | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Notification_content#4751:0` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| event:close | payload=`[]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |
| event:cancel | payload=`[]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |
| event:confirm | payload=`[]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- hardcoded hex: `#353535`, `#434343`, `#f8f8f8`, `#cccccc`, `#141414`, `#9e9e9e`, `#595959`, `#dbdbdb`, `#33ab4f`, `#ec5050`

## PromptMessage

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/PromptMessage/PromptMessage.vue
- Figma 状态：ok
- Figma component sets：`prompt message` (1408:17153)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:status | type=`'success' \| 'info' \| 'error' \| 'warning'`; default=`info`; required=`false`; options=`success`, `info`, `error`, `warning` | type=`VARIANT`; default=`info`; options=`success`, `info`, `error`, `warning`; raw=`status` | ✅ | 名称一致 |
| prop:size | type=`'M' \| 'L'`; default=`L`; required=`false`; options=`M`, `L` | type=`VARIANT`; default=`L`; options=`M`, `L`; raw=`size` | ✅ | 名称一致 |
| prop:closable ↔ Show close icon | type=`boolean`; default=`true`; required=`false` | type=`BOOLEAN`; default=`true`; options=—; raw=`Show close icon#4798:13` | ✅ | 已登记于 translation/prop-aliases.md |
| prop:Content | — | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Content#4797:0` | 🟡 | 仅 Figma 侧；Figma type=SLOT；variantOptions=— |
| prop:interact | — | type=`VARIANT`; default=`Yes`; options=`Yes`; raw=`interact` | ✅ | 已登记于 translation/divergences.md |
| event:close | payload=`[]` | — | 🟢 | 代码事件；Figma component set 无事件定义 |

### 异常

- hardcoded hex: `#f1fbf3`, `#2fb54e`, `#e1eefd`, `#3892f3`, `#fff1f0`, `#ea4233`, `#fff3db`, `#f68512`, `#9e9e9e`
- 引用了未定义 token: `--prompt-bg`, `--prompt-text`

## Tooltip

- 代码文件：/Users/nancy/Documents/AICoding/VS_Code/tvu-design-system/src/components/Tooltip/Tooltip.vue
- Figma 状态：ok
- Figma component sets：`Tooltips` (1408:17152)

| 字段名 | 代码侧值 | Figma 侧值 | 状态 | 备注 |
| --- | --- | --- | --- | --- |
| prop:content ↔ Content | type=`string`; default=—; required=`true` | type=`SLOT`; default=`{"guid":{"sessionID":-1,"localID":-1}}`; options=—; raw=`Content#4798:0` | 🟠 | 命名不同，语义可能一致；待人工决策 |
| prop:placement | type=`\| 'top' \| 'top-start' \| 'top-end'
  \| 'bottom' \| 'bottom-start' \| 'bottom-end'
  \| 'left' \| 'left-start' \| 'left-end'
  \| 'right' \| 'right-start' \| 'right-end'`; default=`bottom`; required=`false`; options=`top`, `top-start`, `top-end`, `bottom`, `bottom-start`, `bottom-end`, `left`, `left-start`, `left-end`, `right`, `right-start`, `right-end` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:theme | type=`'dark' \| 'light'`; default=`light`; required=`false`; options=`dark`, `light` | — | 🟢 | 仅代码侧；component refs=4；tests=1 |
| prop:disabled | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=1 |
| prop:open | type=`boolean`; default=`false`; required=`false` | — | 🟢 | 仅代码侧；component refs=3；tests=0 |
| prop:dark theme | — | type=`VARIANT`; default=`on`; options=`on`, `off`; raw=`dark theme` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`on`, `off` |
| prop:pointing | — | type=`VARIANT`; default=`left down`; options=`right up`, `left down`, `right down`, `left up`, `Center down`, `Center up`; raw=`pointing` | 🟡 | 仅 Figma 侧；Figma type=VARIANT；variantOptions=`right up`, `left down`, `right down`, `left up`, `Center down`, `Center up` |
| slot:default | scoped=— | — | 🟢 | 代码 slot；Figma componentPropertyDefinitions 不等价于 Vue slot API |

### 异常

- hardcoded hex: `#ffffff`, `#141414`, `#f0f0f0`, `#353535`, `#f8f8f8`, `#595959`
