/* global React */
const I = ({ d, size = 20, sw = 1.7, fill = "none", children, vb = 24 }) => (
  <svg width={size} height={size} viewBox={`0 0 ${vb} ${vb}`} fill={fill}
       stroke="currentColor" strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round">
    {d ? <path d={d} /> : children}
  </svg>
);

const Icons = {
  dashboard: (p) => (<I {...p}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></I>),
  field: (p) => (<I {...p}><path d="M12 21c0-5 0-9 0-9M12 12c-3 0-5-1.5-5-4 3 0 5 1.6 5 4ZM12 12c3 0 5-1.6 5-4-3 0-5 1.5-5 4ZM12 12c0-3 1-5 3.5-6C16 9 14.5 11 12 12Z"/></I>),
  irrigation: (p) => (<I {...p}><path d="M12 3s5 5.5 5 9a5 5 0 0 1-10 0c0-3.5 5-9 5-9Z"/></I>),
  climate: (p) => (<I {...p}><path d="M7 17a4 4 0 1 1 .8-7.9A5 5 0 0 1 18 10a3.5 3.5 0 0 1-.4 7H7Z"/></I>),
  pests: (p) => (<I {...p}><ellipse cx="12" cy="13" rx="4" ry="5"/><path d="M12 8V5M9 6 7.5 4M15 6l1.5-2M8 12H5M16 12h3M8.5 16l-2 1.5M15.5 16l2 1.5"/></I>),
  inventory: (p) => (<I {...p}><path d="M3 8 12 3l9 5-9 5-9-5Z"/><path d="M3 12l9 5 9-5M3 16l9 5 9-5"/></I>),
  reports: (p) => (<I {...p}><path d="M6 3h9l3 3v15H6Z"/><path d="M14 3v4h4M9 12h6M9 16h6"/></I>),
  help: (p) => (<I {...p}><circle cx="12" cy="12" r="9"/><path d="M9.5 9.5a2.5 2.5 0 0 1 4.5 1.5c0 1.5-2 2-2 3M12 17h.01"/></I>),
  bell: (p) => (<I {...p}><path d="M6 9a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6Z"/><path d="M10 19a2 2 0 0 0 4 0"/></I>),
  settings: (p) => (<I {...p}><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1"/></I>),
  back: (p) => (<I {...p}><path d="M15 6l-6 6 6 6"/></I>),
  cloud: (p) => (<I {...p}><path d="M7 18a4 4 0 1 1 .8-7.9A5 5 0 0 1 18 11a3.5 3.5 0 0 1-.4 7H7Z"/></I>),
  flag: (p) => (<I {...p}><path d="M6 21V4M6 4h11l-2 4 2 4H6"/></I>),
  drop: (p) => (<I {...p}><path d="M12 3s5 5.5 5 9a5 5 0 0 1-10 0c0-3.5 5-9 5-9Z"/></I>),
  ndvi: (p) => (<I {...p}><path d="M3 12h4l2 5 4-12 2 7h6"/></I>),
  sprout: (p) => (<I {...p}><path d="M12 20v-7M12 13c-3 0-5-1.5-5-4.5 3 0 5 1.5 5 4.5ZM12 13c3 0 5-1.5 5-4.5-3 0-5 1.5-5 4.5Z"/></I>),
  expand: (p) => (<I {...p}><path d="M8 3H4v4M16 3h4v4M8 21H4v-4M16 21h4v-4"/></I>),
  plus: (p) => (<I {...p}><path d="M12 5v14M5 12h14"/></I>),
  minus: (p) => (<I {...p}><path d="M5 12h14"/></I>),
  send: (p) => (<I {...p}><path d="M5 12 20 5l-5 15-3-7-7-1Z"/></I>),
  mic: (p) => (<I {...p}><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M6 11a6 6 0 0 0 12 0M12 17v4"/></I>),
  spark: (p) => (<I {...p}><path d="M12 4l1.6 4.4L18 10l-4.4 1.6L12 16l-1.6-4.4L6 10l4.4-1.6Z"/></I>),
  arrowUp: (p) => (<I {...p}><path d="M7 17 17 7M9 7h8v8"/></I>),
  arrowRight: (p) => (<I {...p}><path d="M5 12h14M13 6l6 6-6 6"/></I>),
  search: (p) => (<I {...p}><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></I>),
  calendar: (p) => (<I {...p}><rect x="3" y="5" width="18" height="16" rx="3"/><path d="M3 9h18M8 3v4M16 3v4"/></I>),
  chevronDown: (p) => (<I {...p}><path d="M6 9l6 6 6-6"/></I>),
  sun: (p) => (<I {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.5 1.5M17.5 17.5 19 19M19 5l-1.5 1.5M6.5 17.5 5 19"/></I>),
  rain: (p) => (<I {...p}><path d="M7 14a4 4 0 1 1 .8-7.9A5 5 0 0 1 18 7a3.5 3.5 0 0 1-.4 7"/><path d="M8 18l-1 2M12 18l-1 2M16 18l-1 2"/></I>),
  thermo: (p) => (<I {...p}><path d="M10 13.5V5a2 2 0 1 1 4 0v8.5a4 4 0 1 1-4 0Z"/><circle cx="12" cy="17" r="1.4" fill="currentColor"/></I>),
  wind: (p) => (<I {...p}><path d="M3 8h11a2.5 2.5 0 1 0-2.5-2.5M3 16h15a2.5 2.5 0 1 1-2.5 2.5M3 12h8"/></I>),
  leaf: (p) => (<I {...p}><path d="M4 20C4 11 11 4 20 4c0 9-7 16-16 16ZM9 15c3-3 6-4.5 9-5"/></I>),
  alert: (p) => (<I {...p}><path d="M12 3 2 20h20L12 3ZM12 9v5M12 17h.01"/></I>),
  check: (p) => (<I {...p}><path d="M4 12l5 5L20 6"/></I>),
  checkCircle: (p) => (<I {...p}><circle cx="12" cy="12" r="9"/><path d="M8 12l3 3 5-5"/></I>),
  trendUp: (p) => (<I {...p}><path d="M3 17l6-6 4 4 8-8M15 7h6v6"/></I>),
  trendDown: (p) => (<I {...p}><path d="M3 7l6 6 4-4 8 8M15 17h6v-6"/></I>),
  dollar: (p) => (<I {...p}><path d="M12 2v20M17 6.5C17 4.6 14.8 3.5 12 3.5S7 4.8 7 6.8s2.2 2.8 5 3.2 5 1.3 5 3.4-2.2 3.1-5 3.1-5-1.1-5-3"/></I>),
  box: (p) => (<I {...p}><path d="M3 8 12 3l9 5v8l-9 5-9-5Z"/><path d="M3 8l9 5 9-5M12 13v8"/></I>),
  truck: (p) => (<I {...p}><path d="M3 6h11v9H3zM14 9h4l3 3v3h-7"/><circle cx="7" cy="18" r="1.6"/><circle cx="17" cy="18" r="1.6"/></I>),
  target: (p) => (<I {...p}><circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="4"/><circle cx="12" cy="12" r="1" fill="currentColor"/></I>),
  layers: (p) => (<I {...p}><path d="M12 3 3 8l9 5 9-5-9-5ZM3 13l9 5 9-5M3 17l9 5 9-5"/></I>),
  map: (p) => (<I {...p}><path d="M9 4 3 6v14l6-2 6 2 6-2V4l-6 2-6-2ZM9 4v14M15 6v14"/></I>),
  bug: (p) => (<I {...p}><ellipse cx="12" cy="13" rx="4" ry="5"/><path d="M12 8V5M9 6 7.5 4M15 6l1.5-2M8 12H5M16 12h3M8.5 16l-2 1.5M15.5 16l2 1.5"/></I>),
  shield: (p) => (<I {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3Z"/><path d="M9 12l2 2 4-4"/></I>),
  clock: (p) => (<I {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></I>),
  filter: (p) => (<I {...p}><path d="M3 5h18l-7 8v6l-4-2v-4L3 5Z"/></I>),
  download: (p) => (<I {...p}><path d="M12 3v12M7 11l5 4 5-4M5 21h14"/></I>),
  more: (p) => (<I {...p}><circle cx="5" cy="12" r="1.4" fill="currentColor"/><circle cx="12" cy="12" r="1.4" fill="currentColor"/><circle cx="19" cy="12" r="1.4" fill="currentColor"/></I>),
  gauge: (p) => (<I {...p}><path d="M4 18a8 8 0 1 1 16 0"/><path d="M12 18l4-5"/></I>),
  zap: (p) => (<I {...p}><path d="M13 3 5 13h6l-1 8 8-10h-6l1-8Z"/></I>),
  flask: (p) => (<I {...p}><path d="M9 3h6M10 3v6l-5.2 8.6A2 2 0 0 0 6.5 21h11a2 2 0 0 0 1.7-3.4L14 9V3"/><path d="M7.5 15h9"/></I>),
  spray: (p) => (<I {...p}><path d="M9 8h6v12a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V8Z"/><path d="M9 8V5h6M17 5h2M17 8h3M19 11h2M9 13h6"/></I>),
  close: (p) => (<I {...p}><path d="M6 6l12 12M18 6L6 18"/></I>),
  refresh: (p) => (<I {...p}><path d="M20 11a8 8 0 1 0-.6 4M20 5v6h-6"/></I>),
  mail: (p) => (<I {...p}><rect x="3" y="5" width="18" height="14" rx="2.5"/><path d="M4 7l8 6 8-6"/></I>),
  lock: (p) => (<I {...p}><rect x="4.5" y="11" width="15" height="9" rx="2.5"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></I>),
  eye: (p) => (<I {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></I>),
  eyeOff: (p) => (<I {...p}><path d="M3 3l18 18M10.6 5.2A10.8 10.8 0 0 1 12 5c6.5 0 10 7 10 7a17.6 17.6 0 0 1-3.4 4.1M6.5 6.6A17.4 17.4 0 0 0 2 12s3.5 7 10 7a10.6 10.6 0 0 0 4-.8M9.5 9.7a3 3 0 0 0 4.2 4.2"/></I>),
  logout: (p) => (<I {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="M16 17l5-5-5-5"/><path d="M21 12H9"/></I>),
};

window.Icons = Icons;
