/* global React */
// Icons — minimal stroke-based, mono-friendly. No AI tropes.

const Icon = ({ children, size = 16, stroke = 1.5, className = "" }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" className={className} aria-hidden="true">
    {children}
  </svg>
);

const IconArrowRight = (p) => <Icon {...p}><path d="M5 12h14M13 5l7 7-7 7" /></Icon>;
const IconArrowDown = (p) => <Icon {...p}><path d="M12 5v14M5 13l7 7 7-7" /></Icon>;
const IconChevDown = (p) => <Icon {...p}><path d="M6 9l6 6 6-6" /></Icon>;
const IconPlus = (p) => <Icon {...p}><path d="M12 5v14M5 12h14" /></Icon>;
const IconCheck = (p) => <Icon {...p}><path d="M4 12l5 5L20 6" /></Icon>;
const IconX = (p) => <Icon {...p}><path d="M6 6l12 12M18 6L6 18" /></Icon>;
const IconMenu = (p) => <Icon {...p}><path d="M4 6h16M4 12h16M4 18h16" /></Icon>;
const IconExternal = (p) => <Icon {...p}><path d="M7 7h10v10M7 17L17 7" /></Icon>;
const IconDownload = (p) => <Icon {...p}><path d="M12 3v12M6 11l6 6 6-6M4 21h16" /></Icon>;
const IconShield = (p) => <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3z" /></Icon>;
const IconLock = (p) => <Icon {...p}><rect x="5" y="11" width="14" height="10" rx="1" /><path d="M8 11V8a4 4 0 0 1 8 0v3" /></Icon>;
const IconLayers = (p) => <Icon {...p}><path d="M12 3l9 5-9 5-9-5 9-5z" /><path d="M3 13l9 5 9-5M3 18l9 5 9-5" /></Icon>;
const IconBox = (p) => <Icon {...p}><path d="M21 8L12 3 3 8v8l9 5 9-5V8z" /><path d="M3 8l9 5 9-5M12 13v8" /></Icon>;
const IconChip = (p) => <Icon {...p}><rect x="6" y="6" width="12" height="12" rx="1" /><path d="M9 9h6v6H9z" /><path d="M9 3v3M15 3v3M9 18v3M15 18v3M3 9h3M3 15h3M18 9h3M18 15h3" /></Icon>;
const IconGraph = (p) => <Icon {...p}><circle cx="6" cy="6" r="2" /><circle cx="18" cy="6" r="2" /><circle cx="6" cy="18" r="2" /><circle cx="18" cy="18" r="2" /><path d="M8 6h8M6 8v8M18 8v8M8 18h8M8 8l8 8M16 8L8 16" /></Icon>;
const IconBank = (p) => <Icon {...p}><path d="M3 21h18M4 21V10M20 21V10M8 21V14M12 21V14M16 21V14M2 10l10-6 10 6" /></Icon>;
const IconGov = (p) => <Icon {...p}><path d="M3 21h18M5 21V11l7-5 7 5v10M10 21v-7h4v7" /></Icon>;
const IconExchange = (p) => <Icon {...p}><path d="M3 7h14l-3-3M21 17H7l3 3" /></Icon>;
const IconCloud = (p) => <Icon {...p}><path d="M7 18a5 5 0 1 1 .5-9.95 6 6 0 0 1 11.5 2A4 4 0 0 1 18 18H7z" /></Icon>;
const IconTerminal = (p) => <Icon {...p}><rect x="3" y="4" width="18" height="16" rx="1" /><path d="M7 9l3 3-3 3M12 15h5" /></Icon>;
const IconFlow = (p) => <Icon {...p}><circle cx="5" cy="7" r="2"/><circle cx="19" cy="7" r="2"/><circle cx="12" cy="17" r="2"/><path d="M7 7h10M6 9l5 6M18 9l-5 6"/></Icon>;
const IconAtom = (p) => <Icon {...p}><circle cx="12" cy="12" r="2" /><ellipse cx="12" cy="12" rx="10" ry="4" /><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(60 12 12)" /><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(120 12 12)" /></Icon>;
const IconBook = (p) => <Icon {...p}><path d="M4 4h12a4 4 0 0 1 4 4v12H8a4 4 0 0 1-4-4V4z" /><path d="M4 16h16M8 4v16" /></Icon>;
const IconUsers = (p) => <Icon {...p}><circle cx="9" cy="8" r="3" /><path d="M3 21v-1a6 6 0 0 1 12 0v1" /><circle cx="17" cy="7" r="2.5" /><path d="M21 18a4 4 0 0 0-6-3.5" /></Icon>;
const IconFlask = (p) => <Icon {...p}><path d="M9 3h6M10 3v6L5 19a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-5-10V3" /></Icon>;

Object.assign(window, {
  Icon,
  IconArrowRight, IconArrowDown, IconChevDown, IconPlus, IconCheck, IconX, IconMenu,
  IconExternal, IconDownload, IconShield, IconLock, IconLayers, IconBox,
  IconChip, IconGraph, IconBank, IconGov, IconExchange, IconCloud,
  IconTerminal, IconFlow, IconAtom, IconBook, IconUsers, IconFlask,
});
