// ———— 图标 ————
const Icon = {
  Search: (p) => <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" {...p}><circle cx="7" cy="7" r="5" stroke="currentColor" strokeWidth="1.6"/><path d="M11 11l3 3" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round"/></svg>,
  Spinner: (p) => <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" className="spin" {...p}><circle cx="8" cy="8" r="6" stroke="currentColor" strokeWidth="1.8" opacity="0.2"/><path d="M14 8a6 6 0 0 0-6-6" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round"/></svg>,
  Check: (p) => <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" {...p}><path d="M3 8l3.5 3.5L13 5" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Close: (p) => <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" {...p}><path d="M4 4l8 8M12 4l-8 8" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round"/></svg>,
  ChevronDown: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" {...p}><path d="M3 4.5l3 3 3-3" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Play: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="currentColor" {...p}><path d="M3 2l7 4-7 4z"/></svg>,
  Eye: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 14 14" fill="none" {...p}><path d="M1 7s2-4 6-4 6 4 6 4-2 4-6 4-6-4-6-4z" stroke="currentColor" strokeWidth="1.3"/><circle cx="7" cy="7" r="1.5" stroke="currentColor" strokeWidth="1.3"/></svg>,
  Star: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="currentColor" {...p}><path d="M6 1l1.5 3 3.5.5-2.5 2.5.5 3.5L6 9l-3 1.5.5-3.5L1 4.5 4.5 4z"/></svg>,
  Trend: (p) => <svg width={p.size||14} height={p.size||12} viewBox="0 0 14 12" fill="none" {...p}><path d="M1 9l3-4 3 2 6-6M13 1h-3M13 1v3" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Collect: (p) => <svg width={p.size||16} height={p.size||16} viewBox="0 0 16 16" fill="none" {...p}><rect x="2" y="3" width="12" height="10" rx="2" stroke="currentColor" strokeWidth="1.4"/><path d="M6 7l2 2 2-2M8 3v6" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Library: (p) => <svg width={p.size||16} height={p.size||16} viewBox="0 0 16 16" fill="none" {...p}><rect x="2" y="2" width="5" height="12" rx="1" stroke="currentColor" strokeWidth="1.4"/><rect x="9" y="2" width="5" height="12" rx="1" stroke="currentColor" strokeWidth="1.4"/><path d="M4 5h1M4 8h1M11 5h1M11 8h1" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round"/></svg>,
  Settings: (p) => <svg width={p.size||16} height={p.size||16} viewBox="0 0 16 16" fill="none" {...p}><circle cx="8" cy="8" r="2.2" stroke="currentColor" strokeWidth="1.4"/><path d="M8 1.5V3M8 13v1.5M14.5 8H13M3 8H1.5M12.6 3.4l-1 1M4.4 11.6l-1 1M12.6 12.6l-1-1M4.4 4.4l-1-1" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round"/></svg>,
  SearchPage: (p) => <svg width={p.size||16} height={p.size||16} viewBox="0 0 16 16" fill="none" {...p}><circle cx="7" cy="7" r="4.5" stroke="currentColor" strokeWidth="1.4"/><path d="M10.5 10.5L14 14" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round"/></svg>,
  External: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" {...p}><path d="M5 2H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V7M7 2h3v3M10 2L5.5 6.5" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Filter: (p) => <svg width={p.size||14} height={p.size||14} viewBox="0 0 14 14" fill="none" {...p}><path d="M1 2h12l-4.5 6V12l-3 1V8z" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round"/></svg>,
  Reset: (p) => <svg width={p.size||13} height={p.size||13} viewBox="0 0 14 14" fill="none" {...p}><path d="M2 7a5 5 0 1 0 1.5-3.5M2 2v2.5H4.5" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round"/></svg>,
  Plus: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" {...p}><path d="M6 2v8M2 6h8" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round"/></svg>,
  Info: (p) => <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" {...p}><circle cx="6" cy="6" r="4.5" stroke="currentColor" strokeWidth="1.3"/><path d="M6 5.5v2.5M6 4h.01" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round"/></svg>,
};
window.Icon = Icon;
