/* global React */
const { createElement: h } = React;

// Lucide-style line-icon set. stroke="currentColor", 1.75 weight.
const make = (paths) => (props = {}) => h('svg', {
  viewBox: '0 0 24 24',
  width: props.size || 22,
  height: props.size || 22,
  fill: 'none',
  stroke: 'currentColor',
  strokeWidth: 1.75,
  strokeLinecap: 'round',
  strokeLinejoin: 'round',
  ...props,
}, paths.map((d, i) => h('path', { key: i, d })));

const Shield    = make(['M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4z']);
const ShieldChk = make(['M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4z', 'M9 12l2 2 4-4']);
const Mail      = make(['M4 4h16v12H4z', 'M4 8l8 5 8-5']);
const Users     = make(['M16 11a4 4 0 1 0-4-4', 'M8 21v-2a4 4 0 0 1 4-4h0a4 4 0 0 1 4 4v2', 'M3 21v-2a4 4 0 0 1 4-4', 'M7 11a4 4 0 1 0 0-8']);
const Bug       = make(['M9 7a3 3 0 0 1 6 0', 'M5 13h14', 'M6 9h12v6a6 6 0 0 1-12 0V9z', 'M3 13l3-2', 'M21 13l-3-2', 'M3 19l3-2', 'M21 19l-3-2']);
const Crosshair = make(['M12 3v3', 'M12 18v3', 'M3 12h3', 'M18 12h3', 'M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z']);
const ArrowR    = make(['M5 12h14', 'M13 6l6 6-6 6']);
const ArrowDown = make(['M6 9l6 6 6-6']);
const Globe     = make(['M3 12a9 9 0 1 0 18 0 9 9 0 0 0-18 0z', 'M3 12h18', 'M12 3a13 13 0 0 1 0 18', 'M12 3a13 13 0 0 0 0 18']);
const Lock      = make(['M5 11h14v10H5z', 'M8 11V7a4 4 0 0 1 8 0v4']);
const Check     = make(['M5 12l4 4 10-10']);
const Sparkles  = make(['M12 3v4', 'M12 17v4', 'M5 12H1', 'M23 12h-4', 'M6 6l3 3', 'M15 15l3 3', 'M6 18l3-3', 'M15 9l3-3']);
const Menu      = make(['M4 6h16', 'M4 12h16', 'M4 18h16']);
const X         = make(['M6 6l12 12', 'M18 6L6 18']);
const FileText  = make(['M6 3h8l4 4v14H6z', 'M14 3v4h4', 'M9 13h6', 'M9 17h6', 'M9 9h2']);
const AlertTri  = make(['M12 4l10 17H2L12 4z', 'M12 10v5', 'M12 18v.5']);
const Eye       = make(['M2 12s3-7 10-7 10 7 10 7-3 7-10 7S2 12 2 12z', 'M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z']);
const Target    = make(['M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18z', 'M12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10z', 'M12 11a1 1 0 1 1 0 2 1 1 0 0 1 0-2z']);
const Compass   = make(['M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18z', 'M14.5 9.5L13 13l-3.5 1.5L11 11z']);
const Network   = make(['M5 4h6v6H5z', 'M13 14h6v6h-6z', 'M8 10v4h8']);
const Clock     = make(['M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18z', 'M12 7v5l3 2']);
const Phone     = make(['M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z']);
const BookOpen  = make(['M3 5a3 3 0 0 1 3-3h6v18H6a3 3 0 0 0-3 3V5z', 'M21 5a3 3 0 0 0-3-3h-6v18h6a3 3 0 0 1 3 3V5z']);
const Layers    = make(['M12 3l9 4-9 4-9-4 9-4z', 'M3 11l9 4 9-4', 'M3 15l9 4 9-4']);
const ListChk   = make(['M9 6h12', 'M9 12h12', 'M9 18h12', 'M3 6l1.5 1.5L7 5', 'M3 12l1.5 1.5L7 11', 'M3 18l1.5 1.5L7 17']);
const Send      = make(['M21 3l-9 18-2-8-8-2L21 3z']);
const Cube      = make(['M12 3l9 5v8l-9 5-9-5V8l9-5z', 'M3 8l9 5 9-5', 'M12 13v10']);
const Brain     = make(['M9 5a3 3 0 0 1 3 0 3 3 0 0 1 3 0 4 4 0 0 1 3 6 4 4 0 0 1-3 6 3 3 0 0 1-3 0 3 3 0 0 1-3 0 4 4 0 0 1-3-6 4 4 0 0 1 3-6z']);
const ChartBar  = make(['M4 20h16', 'M6 16v-4', 'M10 16V8', 'M14 16v-6', 'M18 16V6']);
const Zap       = make(['M13 2L4 13h7l-1 9 9-11h-7l1-9z']);
const Spy       = make(['M6 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8z', 'M18 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8z', 'M2 14h2', 'M20 14h2', 'M10 14h4']);
const KeyRound  = make(['M15 8a4 4 0 1 1-4 4', 'M11 12l-7 7v3h3l1-1v-2h2v-2h2l-1-5z']);
const Bell      = make(['M6 8a6 6 0 0 1 12 0c0 5 2 6 2 8H4c0-2 2-3 2-8z', 'M10 21a2 2 0 0 0 4 0']);

window.NereusIcons = {
  Shield, ShieldChk, Mail, Users, Bug, Crosshair, ArrowR, ArrowDown, Globe, Lock, Check, Sparkles,
  Menu, X, FileText, AlertTri, Eye, Target, Compass, Network, Clock, Phone, BookOpen, Layers,
  ListChk, Send, Cube, Brain, ChartBar, Zap, Spy, KeyRound, Bell,
};
