/** * [WHO]: Public exports from this file (see implementation below). * [FROM]: See the import block immediately after this header. * [TO]: sparkdesign package consumers; output of CLI `add` when applicable. * [HERE]: src/icons/types.ts — Spark Design source; keep aligned with the main library. * * [PROTOCOL]: * 1. Keep this P3 header in sync when the public contract changes. * 2. Update module AGENTS.md (P2) and root AGENTS.md (P1) when boundaries change. * 3. Follow design tokens and explicit type exports. */ import type { ComponentType } from 'react'; /** 图标组件通用 props(支持 className 与无障碍) */ export interface IconProps { className?: string; 'aria-hidden'?: boolean; } /** 语义化图标 key:库内组件通过 useIcons() 按 key 取图标,用户可用任意图标库实现 */ export type IconKey = 'send' | 'stop' | 'mic' | 'addLarge' | 'folder' | 'folderOpen' | 'history' | 'folderFill' | 'close' | 'closeLarge' | 'arrowRight' | 'arrowLeft' | 'codeSlash' | 'eye' | 'warning' | 'arrowDown' | 'arrowUp' | 'checkboxCircle' | 'closeCircle' | 'time' | 'chat' | 'chat3' | 'chat4' | 'sparkling' | 'questionAnswer' | 'infinity' | 'more' | 'arrowDownS' | 'arrowUpS' | 'check' | 'checkLine' | 'loader' | 'arrowRightCircleFill' | 'requestChanges' | 'catalog' | 'circle' | 'indeterminateCircle' | 'fileList2' | 'download' | 'questionnaire' | 'terminalBox' | 'externalLink' | 'global' | 'forbid2'; export type IconComponent = ComponentType;