跳到主要内容

MultiSelect 开放 menuItemVariant='checkmark' 并设为默认(WEB-1201)

版本: 0.7.0 · 类型: ✨ Feature

WEB-1201

问题

SearchableOptionItem 早已实现三种菜单项风格 —— 'checkmark' | 'checkmark-right' | 'checkbox',其中 'checkmark' 在 item 左侧渲染对勾(有前导 icon 时自动移到右侧)。但 MultiSelect.menuItemVariant 通过 Extract 把联合收窄为 'checkmark-right' | 'checkbox',把 'checkmark' 挡在公开 API 之外,导致多选无法在 item 上展示左侧对勾。同时按设计结论 checkmark / checkbox 默认在左,MultiSelect 却把默认值定为右置的 checkmark-right

改动文件

  • packages/design/src/components/Select/MultiSelect.tsx
  • packages/design/src/components/Select/SelectDesignSpec.md
  • packages/design/src/components/Select/__tests__/MultiSelect.test.tsx

改动内容

  1. MultiSelect.menuItemVariantExtract 联合从 'checkmark-right' | 'checkbox' 拓宽为 'checkmark' | 'checkmark-right' | 'checkbox',并在 JSDoc 中说明各取值的 indicator 位置。渲染层无需改动 —— MultiSelect 本就把 menuItemVariant 原样透传给 SearchableOptionItemvariant
  2. 将默认 menuItemVariant'checkmark-right' 改为 'checkmark'(左置对勾),对齐设计默认口径。行为变更:此前依赖隐式右置对勾的调用方需显式传 menuItemVariant="checkmark-right"(当前仓库无使用点,无回归)。
  3. 同步 SelectDesignSpec.md 的 prop 取值与默认说明。
  4. 补充单测:默认(checkmark)无 icon 时对勾在左、未选中时左槽为空、有前导 icon 时对勾移到右侧。
  5. 文档站 select.mdx「Menu Item Variants」改为 variant × icon 排列组合矩阵,并更新 Props 表类型与默认值(见 design-site 文档)。