/* global window */

const I = (size = 18) => ({ width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" });

window.Icon = {
  Dashboard: (p) => <svg {...I(p?.size)}><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"/></svg>,
  Target: (p) => <svg {...I(p?.size)}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5"/></svg>,
  Trending: (p) => <svg {...I(p?.size)}><polyline points="3 17 9 11 13 15 21 7"/><polyline points="15 7 21 7 21 13"/></svg>,
  Forecast: (p) => <svg {...I(p?.size)}><path d="M3 18c3-7 6-7 9 0s6 7 9 0"/><path d="M3 6h18" strokeDasharray="2 3"/></svg>,
  Activity: (p) => <svg {...I(p?.size)}><polyline points="3 12 7 12 10 5 14 19 17 12 21 12"/></svg>,
  Pipeline: (p) => <svg {...I(p?.size)}><rect x="3" y="4" width="5" height="16" rx="1"/><rect x="10" y="4" width="5" height="11" rx="1"/><rect x="17" y="4" width="5" height="7" rx="1"/></svg>,
  Approval: (p) => <svg {...I(p?.size)}><path d="M9 12l2 2 4-4"/><path d="M12 3l8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4z"/></svg>,
  Trophy: (p) => <svg {...I(p?.size)}><path d="M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4z"/><path d="M17 5h3v3a3 3 0 0 1-3 3M7 5H4v3a3 3 0 0 0 3 3"/></svg>,
  Team: (p) => <svg {...I(p?.size)}><circle cx="9" cy="8" r="3"/><path d="M3 20c0-3 3-5 6-5s6 2 6 5"/><circle cx="17" cy="9" r="2.5"/><path d="M15 20c0-2 1.5-3.5 4-3.5s3 1 3 3"/></svg>,
  Package: (p) => <svg {...I(p?.size)}><path d="M12 3l9 4.5v9L12 21l-9-4.5v-9L12 3z"/><path d="M3 7.5L12 12l9-4.5M12 12v9"/></svg>,
  Report: (p) => <svg {...I(p?.size)}><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="14 3 14 9 20 9"/><line x1="8" y1="13" x2="14" y2="13"/><line x1="8" y1="17" x2="16" y2="17"/></svg>,
  Bell: (p) => <svg {...I(p?.size)}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10 21a2 2 0 0 0 4 0"/></svg>,
  Search: (p) => <svg {...I(p?.size)}><circle cx="11" cy="11" r="7"/><line x1="20" y1="20" x2="16.5" y2="16.5"/></svg>,
  Filter: (p) => <svg {...I(p?.size)}><polygon points="3 4 21 4 14 13 14 19 10 21 10 13 3 4"/></svg>,
  Download: (p) => <svg {...I(p?.size)}><path d="M12 3v12M7 10l5 5 5-5"/><path d="M5 21h14"/></svg>,
  Calendar: (p) => <svg {...I(p?.size)}><rect x="3" y="5" width="18" height="16" rx="2"/><line x1="3" y1="10" x2="21" y2="10"/><line x1="8" y1="3" x2="8" y2="7"/><line x1="16" y1="3" x2="16" y2="7"/></svg>,
  Up: (p) => <svg {...I(p?.size)}><polyline points="6 14 12 8 18 14"/></svg>,
  Down: (p) => <svg {...I(p?.size)}><polyline points="6 10 12 16 18 10"/></svg>,
  Check: (p) => <svg {...I(p?.size)}><polyline points="4 12 9 17 20 6"/></svg>,
  X: (p) => <svg {...I(p?.size)}><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>,
  Plus: (p) => <svg {...I(p?.size)}><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>,
  More: (p) => <svg {...I(p?.size)}><circle cx="12" cy="5" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="12" cy="19" r="1"/></svg>,
  Refresh: (p) => <svg {...I(p?.size)}><polyline points="20 4 20 10 14 10"/><path d="M20 10a8 8 0 1 0-2 8"/></svg>,
  MapPin: (p) => <svg {...I(p?.size)}><path d="M12 21s-7-7-7-12a7 7 0 0 1 14 0c0 5-7 12-7 12z"/><circle cx="12" cy="9" r="2.5"/></svg>,
  Phone: (p) => <svg {...I(p?.size)}><path d="M21 16v3a2 2 0 0 1-2 2 19 19 0 0 1-17-17 2 2 0 0 1 2-2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.5 2.7a2 2 0 0 1-.5 2L8 8a16 16 0 0 0 8 8l1.6-1a2 2 0 0 1 2-.5c.9.3 1.8.4 2.7.5A2 2 0 0 1 21 16z"/></svg>,
  Mail: (p) => <svg {...I(p?.size)}><rect x="3" y="5" width="18" height="14" rx="2"/><polyline points="3 7 12 13 21 7"/></svg>,
  Building: (p) => <svg {...I(p?.size)}><rect x="4" y="3" width="16" height="18" rx="1"/><line x1="9" y1="7" x2="9" y2="7.01"/><line x1="15" y1="7" x2="15" y2="7.01"/><line x1="9" y1="11" x2="9" y2="11.01"/><line x1="15" y1="11" x2="15" y2="11.01"/><line x1="9" y1="15" x2="9" y2="15.01"/><line x1="15" y1="15" x2="15" y2="15.01"/></svg>,
  User: (p) => <svg {...I(p?.size)}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-7 8-7s8 3 8 7"/></svg>,
  Star: (p) => <svg {...I(p?.size)}><polygon points="12 3 14.5 9 21 9.5 16 14 17.5 21 12 17.5 6.5 21 8 14 3 9.5 9.5 9"/></svg>,
  Award: (p) => <svg {...I(p?.size)}><circle cx="12" cy="9" r="6"/><polyline points="9 13 8 22 12 19 16 22 15 13"/></svg>,
  Crown: (p) => <svg {...I(p?.size)}><path d="M3 7l3 10h12l3-10-5 4-4-6-4 6-5-4z"/></svg>,
  Flag: (p) => <svg {...I(p?.size)}><line x1="5" y1="21" x2="5" y2="4"/><path d="M5 4h12l-2 4 2 4H5"/></svg>,
  Clock: (p) => <svg {...I(p?.size)}><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 14"/></svg>,
  Eye: (p) => <svg {...I(p?.size)}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></svg>,
  Pulse: (p) => <svg {...I(p?.size)}><polyline points="3 12 7 12 9 6 13 18 15 12 21 12"/></svg>,
  Box: (p) => <svg {...I(p?.size)}><rect x="3" y="3" width="18" height="18" rx="2"/></svg>,
  Zap: (p) => <svg {...I(p?.size)}><polygon points="13 2 4 14 12 14 11 22 20 10 12 10 13 2"/></svg>,
  Layers: (p) => <svg {...I(p?.size)}><polygon points="12 3 21 8 12 13 3 8 12 3"/><polyline points="3 13 12 18 21 13"/></svg>,
  PieChart: (p) => <svg {...I(p?.size)}><path d="M21 12a9 9 0 1 1-9-9v9z"/><path d="M21 12a9 9 0 0 0-9-9v9z" fill="currentColor" opacity=".2"/></svg>,
  ChevronRight: (p) => <svg {...I(p?.size)}><polyline points="9 6 15 12 9 18"/></svg>,
  ChevronLeft: (p) => <svg {...I(p?.size)}><polyline points="15 6 9 12 15 18"/></svg>,
  ChevronDown: (p) => <svg {...I(p?.size)}><polyline points="6 9 12 15 18 9"/></svg>,
  LogOut: (p) => <svg {...I(p?.size)}><path d="M9 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" y1="12" x2="9" y2="12"/></svg>,
  FileText: (p) => <svg {...I(p?.size)}><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="14 3 14 9 20 9"/></svg>,
  ArrowRight: (p) => <svg {...I(p?.size)}><line x1="4" y1="12" x2="20" y2="12"/><polyline points="14 6 20 12 14 18"/></svg>,
  Settings: (p) => <svg {...I(p?.size)}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></svg>,
};
