/**
 * Responsibilities:
 * - Keep the explicit mapping between code-facing icon aliases/canonical names and Figma icon component names.
 * - Document known component-specific mismatches without changing runtime icon APIs.
 * - Serve as the boundary translation layer for icon naming audits.
 */

export const ICON_ALIAS_TO_FIGMA_NAME = {
  'action/close': 'icon/Edit/Close',
  close: 'icon/Edit/Close',

  'status/info': 'icon/Message/Info 2',
  'status-info': 'icon/Message/Info 2',

  'status/error': 'icon/Message/Error 2',
  'status-error': 'icon/Message/Error 2',

  'status/success': 'icon/Message/Success 2',
  'status-success': 'icon/Message/Success 2',

  'status/warning': 'icon/Message/warning 2',
  'status-warning': 'icon/Message/warning 2',

  'message/error-4': 'icon/Message/Error 4',
  'message/error-2': 'icon/Message/Error 2',
  'message/info-2': 'icon/Message/Info 2',
  'message/success-2': 'icon/Message/Success 2',
  'message/warning-2': 'icon/Message/warning 2',
} as const

export type IconAliasName = keyof typeof ICON_ALIAS_TO_FIGMA_NAME

/**
 * Component-specific icon overrides — when a component variant uses an icon different
 * from the default `status-*` glyph mapped via `ICON_ALIAS_TO_FIGMA_NAME`.
 *
 * Notification `type` → category icon (severity ladder, owner-confirmed 2026-06-10 on the
 * republished two-axis set 1408:17154):
 *   - type='warning'           → `icon/Message/warning 2`   (橙色实心圆 + !，标准告警)
 *   - type='danger'            → `icon/Message/Error 4`     (红色实心三角 + !，破坏性确认 — 比 warning 重、未到 error)
 *   - type='error'             → `icon/Message/Error 2`     (红色实心圆 ✕，最严重)
 *   - type='info'              → `icon/Message/Info 2`      (蓝色圆 i)
 *   - type='success'           → `icon/Message/Success 2`   (绿色对勾)
 * 历史：2026-05-06 旧 status 模型曾把 warning↔Error 4 / 次级告警↔warning 2（severity 反），
 * 2026-06-10 双轴重构时 owner 拍板按严重度阶梯对调；2026-06-12 owner 将 `secondary warning` 改名为 `danger`（Error 4 红三角不变）。
 *
 * 当前消费者：`src/components/Notification/Notification.vue` 内部 `iconMap` 常量（用 baked-color
 * `message/*` catalog 名，与本表 figma 名一一对应）。
 */
export const COMPONENT_ICON_OVERRIDES = {
  Notification: {
    warning: 'icon/Message/warning 2',
    danger: 'icon/Message/Error 4',
    error: 'icon/Message/Error 2',
    info: 'icon/Message/Info 2',
    success: 'icon/Message/Success 2',
  },
} as const

/**
 * Default icon color binding — figma "Color Type/Icon/Default" Variable ↔ code `--icon-default` token.
 *
 * 设计意图：单色非品牌图标的 fill 默认应跟随 `--icon-default` (dark `#9e9e9e` / light `#595959`)，
 * 由消费组件容器通过 `color: var(--icon-default)` 控制 cascade。
 *
 * Figma SVG export pipeline 限制：图标 path fill 在 figma 端绑定 `Color Type/Icon/Default` Variable，
 * 但 figma image API 把 Variable 引用解析成 literal hex `#dbdbdb`（实际是 `UX/Grey/grey-4` palette 值，
 * 设计师用作"应该是 Icon/Default"的占位语义）。
 *
 * Code 端治本：`figma-sync/export-icons.mjs` `transformSvgCurrentColor` 把 `#dbdbdb` → `currentColor`。
 * Audit 回归保护：`figma-sync/audit-icon-fill-currentcolor.mjs` 只 ERROR `path fill === "#dbdbdb"`。
 *
 * 详见：[`src/design-system/translation/divergences.md`](./divergences.md) §"Figma SVG export pipeline limitation".
 */
export const ICON_DEFAULT_COLOR_BINDING = {
  figmaVariable: 'Color Type/Icon/Default',
  codeToken: '--icon-default',
  figmaPaletteFallback: 'UX/Grey/grey-4 #DBDBDB',
  exportResolvedHex: '#dbdbdb',
  codeResolvedHex: { dark: '#9e9e9e', light: '#595959' },
  transformStrategy: 'export-icons.mjs transformSvgCurrentColor: path fill === "#dbdbdb" → "currentColor"',
} as const
