/* global React */
const { useState } = React;

// Minimal icon set, stroke-based, 1.5 weight
const Icon = ({ name, size = 18, style }) => {
  const props = {
    width: size, height: size, viewBox: "0 0 24 24",
    fill: "none", stroke: "currentColor", strokeWidth: 1.6,
    strokeLinecap: "round", strokeLinejoin: "round", style
  };
  switch (name) {
    case "check": return <svg {...props}><path d="M20 6L9 17l-5-5"/></svg>;
    case "x": return <svg {...props}><path d="M18 6L6 18M6 6l12 12"/></svg>;
    case "arrow-right": return <svg {...props}><path d="M5 12h14M13 5l7 7-7 7"/></svg>;
    case "arrow-up-right": return <svg {...props}><path d="M7 17L17 7M8 7h9v9"/></svg>;
    case "plus": return <svg {...props}><path d="M12 5v14M5 12h14"/></svg>;
    case "play": return <svg {...props}><path d="M6 4l14 8-14 8V4z"/></svg>;
    case "invoice": return <svg {...props}><path d="M8 3h8a2 2 0 012 2v16l-3-2-3 2-3-2-3 2V5a2 2 0 012-2z"/><path d="M9 8h6M9 12h6M9 16h4"/></svg>;
    case "bank": return <svg {...props}><path d="M3 10l9-6 9 6M5 10v9M19 10v9M9 10v9M15 10v9M3 21h18"/></svg>;
    case "folder": return <svg {...props}><path d="M3 7a2 2 0 012-2h4l2 2h8a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"/></svg>;
    case "people": return <svg {...props}><circle cx="9" cy="8" r="3"/><circle cx="17" cy="9" r="2.2"/><path d="M3 20c0-3 3-5 6-5s6 2 6 5M15 20c0-2 2-3.5 4-3.5s2.5 1 2.5 1"/></svg>;
    case "chart": return <svg {...props}><path d="M3 3v18h18"/><path d="M7 15l4-5 3 3 5-7"/></svg>;
    case "lock": return <svg {...props}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 018 0v4"/></svg>;
    case "stamp": return <svg {...props}><path d="M9 3h6v6l2 3H7l2-3V3z"/><path d="M4 18h16v3H4z"/></svg>;
    case "download": return <svg {...props}><path d="M12 3v12M7 10l5 5 5-5M4 21h16"/></svg>;
    case "zap": return <svg {...props}><path d="M13 2L3 14h8l-1 8 10-12h-8l1-8z"/></svg>;
    case "link": return <svg {...props}><path d="M10 14a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1"/><path d="M14 10a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1"/></svg>;
    case "shield": return <svg {...props}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3z"/><path d="M9 12l2 2 4-4"/></svg>;
    case "message": return <svg {...props}><path d="M4 6a2 2 0 012-2h12a2 2 0 012 2v9a2 2 0 01-2 2H9l-5 4V6z"/></svg>;
    case "refresh": return <svg {...props}><path d="M4 4v6h6M20 20v-6h-6"/><path d="M20 10a8 8 0 00-14.5-2M4 14a8 8 0 0014.5 2"/></svg>;
    case "briefcase": return <svg {...props}><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2M3 13h18"/></svg>;
    case "user": return <svg {...props}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-7 8-7s8 3 8 7"/></svg>;
    case "logo-g": return <svg {...props} viewBox="0 0 24 24"><path d="M21 12a9 9 0 11-3.5-7.1" strokeWidth="2"/><path d="M22 3v5h-5" strokeWidth="2"/></svg>;
    case "logo-ln": return <svg {...props} fill="currentColor" stroke="none"><path d="M4.98 3.5C4.98 4.88 3.87 6 2.5 6S0 4.88 0 3.5 1.12 1 2.5 1s2.48 1.12 2.48 2.5zM.22 8h4.56V24H.22zM8.44 8h4.37v2.2h.06c.61-1.15 2.1-2.37 4.32-2.37 4.62 0 5.47 3.04 5.47 7v9.17h-4.56v-8.13c0-1.94-.04-4.44-2.7-4.44-2.7 0-3.11 2.11-3.11 4.3V24H8.44V8z"/></svg>;
    case "logo-ig": return <svg {...props}><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="0.8" fill="currentColor"/></svg>;
    case "logo-yt": return <svg {...props}><path d="M22 8s-.2-1.4-.8-2c-.8-.8-1.7-.8-2.1-.9C16.2 5 12 5 12 5s-4.2 0-7.1.1c-.4 0-1.3 0-2.1.9C2.2 6.6 2 8 2 8s-.2 1.7-.2 3.3v1.3C1.8 14.3 2 16 2 16s.2 1.4.8 2c.8.8 1.9.8 2.3.9 1.7.1 7.1.2 7.1.2s4.2 0 7.1-.2c.4 0 1.3 0 2.1-.9.6-.6.8-2 .8-2s.2-1.7.2-3.3v-1.3C22.2 9.7 22 8 22 8z"/><path d="M10 9.5v5l4.5-2.5L10 9.5z" fill="currentColor"/></svg>;
    case "sparkle": return <svg {...props}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6"/></svg>;
    case "wallet": return <svg {...props}><rect x="3" y="6" width="18" height="14" rx="2"/><path d="M3 10h18M16 15h2"/></svg>;
    default: return null;
  }
};

window.Icon = Icon;
