// AGENTFORGE-IA — icon set (single-source SVGs)
const Icon = ({ name, size = 16, stroke = 1.6, ...rest }) => {
  const s = size;
  const sw = stroke;
  const common = { width: s, height: s, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: sw, strokeLinecap: 'round', strokeLinejoin: 'round', ...rest };
  switch (name) {
    case 'forge': return (<svg {...common}><path d="M5 21h14M7 21V11l5-4 5 4v10M9 21v-5h6v5M3 8l4-3 5-3 5 3 4 3"/></svg>);
    case 'home': return (<svg {...common}><path d="M3 11l9-7 9 7v9a2 2 0 0 1-2 2h-4v-7H10v7H6a2 2 0 0 1-2-2v-9z"/></svg>);
    case 'store': return (<svg {...common}><path d="M3 9l1.5-5h15L21 9M3 9v11h18V9M3 9h18M9 14h6"/></svg>);
    case 'grid': return (<svg {...common}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></svg>);
    case 'flow': return (<svg {...common}><rect x="3" y="3" width="6" height="6" rx="1.5"/><rect x="15" y="9" width="6" height="6" rx="1.5"/><rect x="3" y="15" width="6" height="6" rx="1.5"/><path d="M9 6h3a3 3 0 0 1 3 3v0M9 18h3a3 3 0 0 0 3-3v0"/></svg>);
    case 'chat': return (<svg {...common}><path d="M21 12a8 8 0 0 1-12.5 6.6L3 20l1.5-4.5A8 8 0 1 1 21 12z"/></svg>);
    case 'plug': return (<svg {...common}><path d="M9 2v4M15 2v4M7 6h10v4a5 5 0 0 1-10 0V6zM12 15v6"/></svg>);
    case 'chart': return (<svg {...common}><path d="M3 3v18h18M7 14l4-4 3 3 5-6"/></svg>);
    case 'logs': return (<svg {...common}><path d="M4 6h16M4 12h16M4 18h10"/></svg>);
    case 'cog': return (<svg {...common}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></svg>);
    case 'plus': return (<svg {...common}><path d="M12 5v14M5 12h14"/></svg>);
    case 'search': return (<svg {...common}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>);
    case 'play': return (<svg {...common}><path d="M6 4l14 8-14 8V4z"/></svg>);
    case 'pause': return (<svg {...common}><rect x="6" y="4" width="4" height="16" rx="1"/><rect x="14" y="4" width="4" height="16" rx="1"/></svg>);
    case 'star': return (<svg {...common}><path d="M12 3l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z"/></svg>);
    case 'check': return (<svg {...common}><path d="M5 12l5 5 9-11"/></svg>);
    case 'send': return (<svg {...common}><path d="M22 2 11 13M22 2l-7 20-4-9-9-4 20-7z"/></svg>);
    case 'sparkles': return (<svg {...common}><path d="M12 3l1.8 4.7L18 10l-4.2 2.3L12 17l-1.8-4.7L6 10l4.2-2.3L12 3zM19 14l1 2.5L22 18l-2 1.5L19 22l-1-2.5L16 18l2-1.5L19 14z"/></svg>);
    case 'megaphone': return (<svg {...common}><path d="M3 11v2a2 2 0 0 0 2 2h1l4 4V5L6 9H5a2 2 0 0 0-2 2zM10 5l11-3v20L10 19"/></svg>);
    case 'headset': return (<svg {...common}><path d="M3 14v-2a9 9 0 0 1 18 0v2M3 14a2 2 0 0 1 2-2h2v6H5a2 2 0 0 1-2-2v-2zM21 14a2 2 0 0 0-2-2h-2v6h1a2 2 0 0 0 2-2v-2z"/><path d="M21 14v3a4 4 0 0 1-4 4h-3"/></svg>);
    case 'wallet': return (<svg {...common}><rect x="3" y="6" width="18" height="14" rx="2"/><path d="M3 10h18M16 14h2"/></svg>);
    case 'users': return (<svg {...common}><circle cx="9" cy="8" r="3.5"/><path d="M3 20a6 6 0 0 1 12 0M16 11a3 3 0 1 0 0-6M21 20a5 5 0 0 0-5-5"/></svg>);
    case 'terminal': return (<svg {...common}><path d="M4 6l5 6-5 6M12 18h8"/></svg>);
    case 'gavel': return (<svg {...common}><path d="M14 4l6 6-3 3-6-6 3-3zM10 8 4 14l3 3 6-6M3 21h12"/></svg>);
    case 'flask': return (<svg {...common}><path d="M9 3h6M10 3v6L4 19a2 2 0 0 0 1.7 3h12.6A2 2 0 0 0 20 19l-6-10V3"/></svg>);
    case 'cube': return (<svg {...common}><path d="M12 2 3 7v10l9 5 9-5V7l-9-5zM3 7l9 5 9-5M12 12v10"/></svg>);
    case 'palette': return (<svg {...common}><path d="M12 2a10 10 0 1 0 0 20 2 2 0 0 0 0-4h-1a2 2 0 0 1 0-4h3a4 4 0 0 0 4-4 8 8 0 0 0-6-8z"/><circle cx="7.5" cy="11" r="1"/><circle cx="11" cy="7" r="1"/><circle cx="16" cy="9" r="1"/></svg>);
    case 'bell': return (<svg {...common}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 8 3 8H3s3-1 3-8M10 21a2 2 0 0 0 4 0"/></svg>);
    case 'help': return (<svg {...common}><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 0 1 5 0c0 1.5-2.5 2-2.5 4M12 17h.01"/></svg>);
    case 'sun': return (<svg {...common}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5 19 19M5 19l1.5-1.5M17.5 6.5 19 5"/></svg>);
    case 'moon': return (<svg {...common}><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>);
    case 'zap': return (<svg {...common}><path d="M13 2 4 14h7l-1 8 9-12h-7l1-8z"/></svg>);
    case 'shield': return (<svg {...common}><path d="M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5l-8-3z"/></svg>);
    case 'globe': return (<svg {...common}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18"/></svg>);
    case 'arrow-right': return (<svg {...common}><path d="M5 12h14M13 5l7 7-7 7"/></svg>);
    case 'arrow-up': return (<svg {...common}><path d="M12 19V5M5 12l7-7 7 7"/></svg>);
    case 'arrow-down': return (<svg {...common}><path d="M12 5v14M5 12l7 7 7-7"/></svg>);
    case 'chevron': return (<svg {...common}><path d="M9 6l6 6-6 6"/></svg>);
    case 'chevron-down': return (<svg {...common}><path d="M6 9l6 6 6-6"/></svg>);
    case 'chevron-left': return (<svg {...common}><path d="M15 6l-6 6 6 6"/></svg>);
    case 'chevron-right': return (<svg {...common}><path d="M9 6l6 6-6 6"/></svg>);
    case 'video': return (<svg {...common}><rect x="2" y="6" width="14" height="12" rx="2"/><path d="M16 10l6-3v10l-6-3v-4z"/></svg>);
    case 'sliders': return (<svg {...common}><path d="M4 7h10M18 7h2M4 17h2M10 17h10"/><circle cx="16" cy="7" r="2"/><circle cx="8" cy="17" r="2"/></svg>);
    case 'x': return (<svg {...common}><path d="M6 6l12 12M18 6 6 18"/></svg>);
    case 'close': return (<svg {...common}><path d="M6 6l12 12M18 6 6 18"/></svg>);
    case 'logout': return (<svg {...common}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9"/></svg>);
    case 'refresh': return (<svg {...common}><path d="M23 4v6h-6M1 20v-6h6M20.5 9A9 9 0 0 0 5.6 5.6L1 10M23 14l-4.6 4.4A9 9 0 0 1 3.5 15"/></svg>);
    case 'dot-menu': return (<svg {...common}><circle cx="5" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="19" cy="12" r="1.5"/></svg>);
    case 'filter': return (<svg {...common}><path d="M3 5h18l-7 8v6l-4-2v-4L3 5z"/></svg>);
    case 'download': return (<svg {...common}><path d="M12 3v12M5 11l7 7 7-7M4 21h16"/></svg>);
    case 'upload': return (<svg {...common}><path d="M12 21V9M5 13l7-7 7 7M4 3h16"/></svg>);
    case 'copy': return (<svg {...common}><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"/></svg>);
    case 'fork': return (<svg {...common}><circle cx="6" cy="5" r="2"/><circle cx="18" cy="5" r="2"/><circle cx="12" cy="19" r="2"/><path d="M6 7v3a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V7M12 13v4"/></svg>);
    case 'spark-bolt': return (<svg {...common}><path d="M11 3 4 14h6l-1 7 8-12h-6l1-6z" /></svg>);
    case 'eye': return (<svg {...common}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></svg>);
    case 'eye-off': return (<svg {...common}><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>);
    case 'clock': return (<svg {...common}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>);
    case 'tool': return (<svg {...common}><path d="M14 6 5 15v4h4l9-9M14 6l3-3 4 4-3 3M14 6l4 4"/></svg>);
    case 'memory': return (<svg {...common}><rect x="3" y="6" width="18" height="12" rx="2"/><path d="M7 6V4M11 6V4M15 6V4M19 6V4M7 20v-2M11 20v-2M15 20v-2M19 20v-2"/></svg>);
    case 'database': return (<svg {...common}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></svg>);
    case 'webhook': return (<svg {...common}><path d="M16 7a4 4 0 0 0-7 0l-2 4M11 18a4 4 0 0 0 7-2l2-4M5 16a4 4 0 0 0 4 4l2-4"/></svg>);
    case 'lock': return (<svg {...common}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg>);
    case 'cloud': return (<svg {...common}><path d="M7 18a4 4 0 0 1 0-8 6 6 0 0 1 11-2 4 4 0 0 1 1 8H7z"/></svg>);
    case 'calendar': return (<svg {...common}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg>);
    case 'server': return (<svg {...common}><rect x="3" y="4" width="18" height="7" rx="1.5"/><rect x="3" y="13" width="18" height="7" rx="1.5"/><circle cx="7" cy="7.5" r="0.6"/><circle cx="7" cy="16.5" r="0.6"/></svg>);
    case 'wifi': return (<svg {...common}><path d="M2 9a16 16 0 0 1 20 0M5 12.5a11 11 0 0 1 14 0M8.5 16a6 6 0 0 1 7 0"/><circle cx="12" cy="19" r="1"/></svg>);
    case 'package': return (<svg {...common}><path d="M21 8 12 3 3 8v8l9 5 9-5V8z"/><path d="M3 8l9 5 9-5M12 13v8"/></svg>);
    case 'rocket': return (<svg {...common}><path d="M14 4c4 0 6 2 6 6-2 0-4 1-5 2l-3 3c-1 1-2 1-3 1l-1-1c0-1 0-2 1-3l3-3c1-1 2-3 2-5z"/><path d="M14 10a2 2 0 1 0 0-4M7 14l-3 3 4 1 1 4 3-3"/></svg>);
    case 'book': return (<svg {...common}><path d="M4 5a2 2 0 0 1 2-2h14v18H6a2 2 0 0 0-2 2V5z"/><path d="M4 5v14a2 2 0 0 1 2-2h14"/></svg>);
    case 'wrench': return (<svg {...common}><path d="M14 4a5 5 0 0 1 5 6l4 4-3 3-4-4a5 5 0 0 1-6-5l3 3 2-2-2-2 1-3z"/></svg>);
    case 'verified': return (<svg {...common}><path d="m12 2 2.4 2 3.1-.5.5 3.1 2 2.4-2 2.4.5 3.1-3.1.5L12 18l-2.4-2-3.1.5-.5-3.1-2-2.4 2-2.4-.5-3.1 3.1.5L12 2z"/><path d="m9 11 2.5 2.5L15 10"/></svg>);
    case 'fire': return (<svg {...common}><path d="M12 2c1 4 4 4 4 8a4 4 0 0 1-8 0c0-2 1-2 1-4M12 22a6 6 0 0 1-6-6c0-3 2-4 3-6 1 4 3 4 3 7 0 1 0 2 1 2s1-1 1-2c0 0 4 1 4 5a6 6 0 0 1-6 6z"/></svg>);
    case 'phone': return (<svg {...common}><path d="M22 16v3a2 2 0 0 1-2.2 2 19 19 0 0 1-8.3-3 19 19 0 0 1-6-6A19 19 0 0 1 2.5 4.2 2 2 0 0 1 4.5 2H7l2 5-2.5 1.5a14 14 0 0 0 6 6L14 12l5 2v2z"/></svg>);
    case 'mail': return (<svg {...common}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg>);
    case 'tag': return (<svg {...common}><path d="M3 12V4a1 1 0 0 1 1-1h8l9 9-9 9-9-9z"/><circle cx="7" cy="7" r="1"/></svg>);
    case 'building': return (<svg {...common}><rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 8h2M13 8h2M9 12h2M13 12h2M9 16h2M13 16h2"/></svg>);
    case 'trending-up': return (<svg {...common}><path d="M3 17l6-6 4 4 8-8M14 7h7v7"/></svg>);
    case 'trending-down': return (<svg {...common}><path d="M3 7l6 6 4-4 8 8M14 17h7v-7"/></svg>);
    case 'pulse': return (<svg {...common}><path d="M3 12h4l2-7 4 14 2-7h6"/></svg>);
    case 'kanban': return (<svg {...common}><rect x="3" y="3" width="6" height="14" rx="1.5"/><rect x="11" y="3" width="6" height="10" rx="1.5"/><rect x="19" y="3" width="2" height="6" rx="1"/></svg>);
    case 'table': return (<svg {...common}><rect x="3" y="4" width="18" height="16" rx="1.5"/><path d="M3 10h18M3 16h18M9 4v16M15 4v16"/></svg>);
    default: return (<svg {...common}><circle cx="12" cy="12" r="9"/></svg>);
  }
};

window.Icon = Icon;
