/* icons.jsx — SVG icon set. Exported to window. */
const Ic = {};
const mk = (paths, opts = {}) => (props = {}) => {
  const { size = 24, ...rest } = props;
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
      stroke="currentColor" strokeWidth={opts.sw || 2}
      strokeLinecap="round" strokeLinejoin="round" {...rest}>
      {paths}
    </svg>
  );
};

Ic.Tasks = mk(<>
  <rect x="3" y="3" width="18" height="18" rx="3" />
  <path d="M8 12l2.5 2.5L16 9" />
</>);
Ic.Server = mk(<>
  <rect x="4" y="3" width="16" height="7" rx="2" />
  <rect x="4" y="14" width="16" height="7" rx="2" />
  <circle cx="8" cy="6.5" r=".6" fill="currentColor" />
  <circle cx="8" cy="17.5" r=".6" fill="currentColor" />
  <path d="M12 6.5h5M12 17.5h5" />
</>);
Ic.Folder = mk(<path d="M3 7a2 2 0 0 1 2-2h4l2 2.5h6a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />);
Ic.Bug = mk(<>
  <rect x="8" y="8" width="8" height="11" rx="4" />
  <path d="M12 5v3M9 5l1.5 2M15 5l-1.5 2M8 11H4M20 11h-4M8 15H4M20 15h-4M8 19l-2 2M16 19l2 2" />
</>);
Ic.Calendar = mk(<>
  <rect x="3" y="4.5" width="18" height="16" rx="2.5" />
  <path d="M3 9h18M8 2.5v4M16 2.5v4" />
</>);
Ic.Settings = mk(<>
  <circle cx="12" cy="12" r="3" />
  <path d="M12 2.5l1.2 2.4 2.6-.6.4 2.7 2.4 1.2-1.2 2.4 1.2 2.4-2.4 1.2-.4 2.7-2.6-.6L12 21.5l-1.2-2.4-2.6.6-.4-2.7L5.4 15.8 6.6 13.4 5.4 11l2.4-1.2.4-2.7 2.6.6z" />
</>);
Ic.Plus = mk(<path d="M12 5v14M5 12h14" />);
Ic.Search = mk(<><circle cx="11" cy="11" r="7" /><path d="M21 21l-4-4" /></>);
Ic.Close = mk(<path d="M6 6l12 12M18 6L6 18" />);
Ic.Check = mk(<path d="M5 12.5l4.5 4.5L19 7" {...{}} />, { sw: 2.6 });
Ic.Chevron = mk(<path d="M6 9l6 6 6-6" />);
Ic.Paperclip = mk(<path d="M20 11l-8.5 8.5a4.5 4.5 0 0 1-6.4-6.4L13 4.8a3 3 0 0 1 4.3 4.2l-8.4 8.4a1.5 1.5 0 0 1-2.1-2.1L14.5 8" />);
Ic.Image = mk(<>
  <rect x="3" y="4" width="18" height="16" rx="2.5" />
  <circle cx="8.5" cy="9.5" r="1.5" />
  <path d="M21 16l-5-5L4 20" />
</>);
Ic.Mail = mk(<>
  <rect x="3" y="5" width="18" height="14" rx="2.5" />
  <path d="M4 7l8 6 8-6" />
</>);
Ic.Lock = mk(<>
  <rect x="4.5" y="10.5" width="15" height="10" rx="2.5" />
  <path d="M8 10.5V8a4 4 0 0 1 8 0v2.5" />
</>);
Ic.Eye = mk(<><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" /></>);
Ic.EyeOff = mk(<><path d="M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.4 5.2A10 10 0 0 1 22 12a17 17 0 0 1-3 3.5M6.3 6.3A17 17 0 0 0 2 12s3.5 7 10 7a10 10 0 0 0 3.5-.6" /></>);
Ic.Discord = mk(<path d="M19 6.5a16 16 0 0 0-4-1.2l-.3.6a12 12 0 0 0-5.4 0L9 5.3a16 16 0 0 0-4 1.2C2.5 10 2 13.5 2.2 17a16 16 0 0 0 4.9 2.5l.6-1a10 10 0 0 1-1.6-.8l.4-.3a11 11 0 0 0 9 0l.4.3a10 10 0 0 1-1.6.8l.6 1A16 16 0 0 0 21.8 17c.3-4-.5-7.5-2.8-10.5zM9 14.3c-.8 0-1.4-.8-1.4-1.7s.6-1.7 1.4-1.7 1.4.8 1.4 1.7-.6 1.7-1.4 1.7zm6 0c-.8 0-1.4-.8-1.4-1.7s.6-1.7 1.4-1.7 1.4.8 1.4 1.7-.6 1.7-1.4 1.7z" {...{}} />, { sw: 0.5 });
Ic.Trash = mk(<path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13M10 11v6M14 11v6" />);
Ic.Edit = mk(<path d="M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z" />);
Ic.Flame = mk(<path d="M12 22c4 0 6.5-2.8 6.5-6.3 0-3-1.8-5-3-6.7-.4 1.3-1.3 2-2.2 2.4.3-2.2-.6-4.7-2.8-6.4-.2 2-1 3-2.3 4.2C6.6 10.5 5.5 12.4 5.5 15.7 5.5 19.2 8 22 12 22z" />);
Ic.Trophy = mk(<path d="M7 4h10v3a5 5 0 0 1-10 0zM7 5H4v2a3 3 0 0 0 3 3M17 5h3v2a3 3 0 0 1-3 3M9 14h6M10 14v3M14 14v3M8 20h8" />);
Ic.Bell = mk(<path d="M18 8a6 6 0 0 0-12 0c0 7-3 8-3 8h18s-3-1-3-8M13.7 21a2 2 0 0 1-3.4 0" />);
Ic.Bolt = mk(<path d="M13 2L4 14h7l-1 8 9-12h-7z" />);
Ic.Target = mk(<><circle cx="12" cy="12" r="9" /><circle cx="12" cy="12" r="5" /><circle cx="12" cy="12" r="1.4" fill="currentColor" /></>);
Ic.TrendUp = mk(<path d="M3 17l6-6 4 4 8-8M16 7h5v5" />);
Ic.Volume = mk(<path d="M4 9v6h4l5 4V5L8 9zM16 9a3 3 0 0 1 0 6M18.5 7a6 6 0 0 1 0 10" />);
Ic.VolumeOff = mk(<path d="M4 9v6h4l5 4V5L8 9zM17 9l5 5M22 9l-5 5" />);
Ic.Logout = mk(<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9" />);
Ic.User = mk(<><circle cx="12" cy="8" r="4" /><path d="M4 21a8 8 0 0 1 16 0" /></>);
Ic.Clock = mk(<><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></>);
Ic.Sparkle = mk(<path d="M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z" />);
Ic.Arrow = mk(<path d="M5 12h14M13 6l6 6-6 6" />);
Ic.Replace = mk(<path d="M3 11a8 8 0 0 1 13.5-5.5L20 8M20 4v4h-4M21 13a8 8 0 0 1-13.5 5.5L4 16M4 20v-4h4" />);
Ic.Play = mk(<><rect x="3" y="5" width="18" height="14" rx="4" /><path d="M10 9l5 3-5 3z" fill="currentColor" stroke="none" /></>);
Ic.Menu = mk(<path d="M4 7h16M4 12h16M4 17h16" />);
window.Ic = Ic;
