// Veluna icons — line icons in SVG
// All accept { size, color, stroke, ...rest }

const VIcon = ({ d, size = 16, color = 'currentColor', stroke = 1.6, fill = 'none', children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={color} strokeWidth={stroke}
       strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d ? <path d={d} /> : children}
  </svg>
);

const Icons = {
  // Sidebar
  overview: (p) => <VIcon {...p}><rect x="3" y="3" width="7" height="9" rx="1.5"/><rect x="14" y="3" width="7" height="5" rx="1.5"/><rect x="14" y="12" width="7" height="9" rx="1.5"/><rect x="3" y="16" width="7" height="5" rx="1.5"/></VIcon>,
  pipeline: (p) => <VIcon {...p}><path d="M4 6h16M6 12h12M9 18h6"/></VIcon>,
  leads:    (p) => <VIcon {...p}><circle cx="9" cy="8" r="3"/><path d="M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6"/><circle cx="17" cy="6" r="2.5"/><path d="M21 16c0-2.5-1.8-4.5-4-4.5"/></VIcon>,
  outreach: (p) => <VIcon {...p}><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></VIcon>,
  sync:     (p) => <VIcon {...p}><path d="M3 12a9 9 0 0 1 15-6.7L21 8M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M21 3v5h-5M3 21v-5h5"/></VIcon>,
  storage:  (p) => <VIcon {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></VIcon>,
  log:      (p) => <VIcon {...p}><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6M8 13h8M8 17h6"/></VIcon>,
  systems:  (p) => <VIcon {...p}><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></VIcon>,
  settings: (p) => <VIcon {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></VIcon>,

  // KPI / pipeline
  users:    (p) => <VIcon {...p}><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></VIcon>,
  sparkle:  (p) => <VIcon {...p}><path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1"/><circle cx="12" cy="12" r="3"/></VIcon>,
  eye:      (p) => <VIcon {...p}><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z"/><circle cx="12" cy="12" r="3"/></VIcon>,
  send:     (p) => <VIcon {...p}><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></VIcon>,
  check:    (p) => <VIcon {...p}><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="M22 4L12 14.01l-3-3"/></VIcon>,
  alert:    (p) => <VIcon {...p}><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><path d="M12 9v4M12 17h.01"/></VIcon>,
  bolt:     (p) => <VIcon {...p}><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></VIcon>,
  download: (p) => <VIcon {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/></VIcon>,
  database: (p) => <VIcon {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></VIcon>,
  search:   (p) => <VIcon {...p}><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.35-4.35"/></VIcon>,
  chart:    (p) => <VIcon {...p}><path d="M3 3v18h18M7 14l4-4 3 3 6-7"/></VIcon>,
  flag:     (p) => <VIcon {...p}><path d="M4 22V4a2 2 0 0 1 2-2h11l-3 5 3 5H6"/></VIcon>,
  mail:     (p) => <VIcon {...p}><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6l-10 7L2 6"/></VIcon>,

  // Misc
  refresh:  (p) => <VIcon {...p}><path d="M23 4v6h-6M1 20v-6h6"/><path d="M3.5 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.65 4.36A9 9 0 0 0 20.5 15"/></VIcon>,
  calendar: (p) => <VIcon {...p}><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></VIcon>,
  chevdown: (p) => <VIcon {...p}><path d="M6 9l6 6 6-6"/></VIcon>,
  chevright:(p) => <VIcon {...p}><path d="M9 18l6-6-6-6"/></VIcon>,
  chevleft: (p) => <VIcon {...p}><path d="M15 18l-6-6 6-6"/></VIcon>,
  arrowup:  (p) => <VIcon {...p}><path d="M12 19V5M5 12l7-7 7 7"/></VIcon>,
  arrowdown:(p) => <VIcon {...p}><path d="M12 5v14M19 12l-7 7-7-7"/></VIcon>,
  close:    (p) => <VIcon {...p}><path d="M18 6L6 18M6 6l12 12"/></VIcon>,
  filter:   (p) => <VIcon {...p}><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></VIcon>,
  plus:     (p) => <VIcon {...p}><path d="M12 5v14M5 12h14"/></VIcon>,
  more:     (p) => <VIcon {...p}><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></VIcon>,
  external: (p) => <VIcon {...p}><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3"/></VIcon>,
  link:     (p) => <VIcon {...p}><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></VIcon>,
  globe:    (p) => <VIcon {...p}><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 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"/></VIcon>,
  building: (p) => <VIcon {...p}><rect x="4" y="2" width="16" height="20" rx="1"/><path d="M9 22v-4h6v4M8 6h.01M16 6h.01M8 10h.01M16 10h.01M8 14h.01M16 14h.01"/></VIcon>,
  phone:    (p) => <VIcon {...p}><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.72 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.35 1.85.59 2.81.72A2 2 0 0 1 22 16.92z"/></VIcon>,
  linkedin: (p) => <VIcon {...p}><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-4 0v7h-4v-7a6 6 0 0 1 6-6z"/><rect x="2" y="9" width="4" height="12"/><circle cx="4" cy="4" r="2"/></VIcon>,
  pause:    (p) => <VIcon {...p}><rect x="6" y="4" width="4" height="16"/><rect x="14" y="4" width="4" height="16"/></VIcon>,
  play:     (p) => <VIcon {...p}><polygon points="5 3 19 12 5 21 5 3"/></VIcon>,
  zap:      (p) => <VIcon {...p}><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></VIcon>,
  brain:    (p) => <VIcon {...p}><path d="M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 1.98-3A2.5 2.5 0 0 1 9.5 2z"/><path d="M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-1.98-3A2.5 2.5 0 0 0 14.5 2z"/></VIcon>,
  card:     (p) => <VIcon {...p}><rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/></VIcon>,
  cache:    (p) => <VIcon {...p}><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></VIcon>,
  flow:     (p) => <VIcon {...p}><circle cx="6" cy="6" r="3"/><circle cx="18" cy="6" r="3"/><circle cx="12" cy="18" r="3"/><path d="M9 6h6M7.5 8.5l3 7M16.5 8.5l-3 7"/></VIcon>,
  ai:       (p) => <VIcon {...p}><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M9 9h.01M15 9h.01M9 15h6"/><circle cx="12" cy="2" r="1"/><circle cx="12" cy="22" r="1"/></VIcon>,
  crm:      (p) => <VIcon {...p}><path d="M20 7l-8 5-8-5"/><rect x="2" y="5" width="20" height="14" rx="2"/></VIcon>,
  db:       (p) => <VIcon {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3"/></VIcon>,
  trendup:  (p) => <VIcon {...p}><path d="M23 6l-9.5 9.5-5-5L1 18"/><path d="M17 6h6v6"/></VIcon>,
  trenddown:(p) => <VIcon {...p}><path d="M23 18l-9.5-9.5-5 5L1 6"/><path d="M17 18h6v-6"/></VIcon>,
  dot:      (p) => <VIcon {...p}><circle cx="12" cy="12" r="3"/></VIcon>,
  logout:   (p) => <VIcon {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9"/></VIcon>,
  bell:     (p) => <VIcon {...p}><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0"/></VIcon>,
  copy:     (p) => <VIcon {...p}><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></VIcon>,
  star:     (p) => <VIcon {...p}><polygon points="12 2 15 9 22 9.3 17 14.5 18.5 22 12 18 5.5 22 7 14.5 2 9.3 9 9 12 2"/></VIcon>,
  trash:    (p) => <VIcon {...p}><polyline points="3 6 5 6 21 6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"/></VIcon>,
  edit:     (p) => <VIcon {...p}><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></VIcon>
};

window.Icons = Icons;
window.VIcon = VIcon;
