/**
 * 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.warning：figma component variant 用 `icon/Message/Error 4`（红色三角形 + !），
 * 而不是默认 `status-warning` → `icon/Message/warning 2`（橙色圆 + !）。这是 figma 设计意图：
 *   - status='warning' = 严重警告 → 红色三角形（与 status='error' 红圆 X 区分语义）
 *   - status='secondary warning' = 普通警告 → 橙色圆 + !
 * 之前以 TODO 注释形式登记；2026-05-06 Phase A4.1 plan owner cleanup 升级为正式 entry。
 *
 * 当前消费者：`src/components/Notification/Notification.vue` 内部 `iconMap` 常量。
 * 未来如有更多 component 偏离 default status icon，应 consider 让 Notification iconMap
 * 直接 import 本表 keys，避免重复登记。
 */
export const COMPONENT_ICON_OVERRIDES = {
  Notification: {
    warning: 'icon/Message/Error 4',
    'secondary warning': 'icon/Message/warning 2',
    error: 'icon/Message/Error 2',
    info: 'icon/Message/Info 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
