// Lucide-style icons. All currentColor, 1.75 stroke. Returns React elements.
// Usage: <Ic name="mic" /> or <Ic name="mic" size={20} />

const ICONS = {
  mic: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 10v2a7 7 0 0 1-14 0v-2 M12 19v3 M8 22h8',
  messages: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
  target: 'M12 2a10 10 0 1 0 10 10 M12 6a6 6 0 1 0 6 6 M12 10a2 2 0 1 0 2 2',
  pen: 'M12 20h9 M16.5 3.5a2.121 2.121 0 1 1 3 3L7 19l-4 1 1-4 12.5-12.5z',
  book: 'M4 19.5A2.5 2.5 0 0 1 6.5 17H20 M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z',
  newspaper: 'M4 4h13a2 2 0 0 1 2 2v13a2 2 0 0 0 2-2 M22 19V8a2 2 0 0 0-2-2 M4 4v15a2 2 0 0 0 2 2h13 M8 8h7 M8 12h7 M8 16h7',
  globe: 'M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2z M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z',
  users: 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2 M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M23 21v-2a4 4 0 0 0-3-3.87 M16 3.13a4 4 0 0 1 0 7.75',
  arrowRight: 'M5 12h14 M13 5l7 7-7 7',
  arrowDown: 'M12 5v14 M19 12l-7 7-7-7',
  check: 'M20 6L9 17l-5-5',
  x: 'M18 6L6 18 M6 6l12 12',
  plus: 'M12 5v14 M5 12h14',
  shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
  zap: 'M13 2L3 14h9l-1 8 10-12h-9l1-8z',
  play: 'M5 3l14 9-14 9V3z',
  spark: 'M12 2v6 M12 16v6 M2 12h6 M16 12h6 M5 5l4 4 M15 15l4 4 M5 19l4-4 M15 9l4-4',
  building: 'M3 21h18 M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16 M9 9h1 M14 9h1 M9 13h1 M14 13h2',
  graduation: 'M22 10L12 5 2 10l10 5 10-5z M6 12v5c0 1 4 3 6 3s6-2 6-3v-5',
  brain: 'M9.5 2A2.5 2.5 0 0 1 12 4.5v15A2.5 2.5 0 0 1 7 19.5a2.5 2.5 0 0 1-2.96-2.4A2.5 2.5 0 0 1 2 14.96a2.5 2.5 0 0 1 0-4.92A2.5 2.5 0 0 1 4.04 7a2.5 2.5 0 0 1 2.96-2.4A2.5 2.5 0 0 1 9.5 2z M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 2.96-2.4A2.5 2.5 0 0 0 22 14.96a2.5 2.5 0 0 0 0-4.92A2.5 2.5 0 0 0 19.96 7 2.5 2.5 0 0 0 17 4.6 2.5 2.5 0 0 0 14.5 2z',
  clock: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 6v6l4 2',
  flag: 'M4 21V4 M4 4h13l-2 4 2 4H4',
  briefcase: 'M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16 M3 7h18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2z',
  passport: 'M5 3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M9 17h6',
  // Tools sidebar / mock UI
  waveform: 'M3 12h2 M7 5v14 M11 8v8 M15 4v16 M19 9v6 M23 12h-2',
  // Plus a stylized speech bubble alt
  chat: 'M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8A8.5 8.5 0 0 1 8.7 3.9a8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8z',
};

function Ic({ name, size = 18, className = '', style = {} }) {
  const d = ICONS[name];
  if (!d) return null;
  // Multi-path: split on ' M' and re-prepend M
  const parts = d.split(' M');
  return (
    <svg className={'ic ' + className} width={size} height={size} viewBox="0 0 24 24" style={style}>
      {parts.map((p, i) => (
        <path key={i} d={i === 0 ? p : 'M' + p} fill="none" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" />
      ))}
    </svg>
  );
}

window.Ic = Ic;
