/* global React */
// Inline SVG icons (lucide-inspired). Stroke-based, 1.5px, currentColor.

const I = ({ children, size = 16, ...rest }) => (
  <svg
    width={size} height={size} viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"
    {...rest}
  >
    {children}
  </svg>
);

const Icon = {
  Logo: (p) => (
    <I {...p}>
      <path d="M4 7l8-4 8 4-8 4-8-4z" />
      <path d="M4 12l8 4 8-4" />
      <path d="M4 17l8 4 8-4" />
    </I>
  ),
  Home:     (p) => <I {...p}><path d="M3 11l9-7 9 7v9a2 2 0 0 1-2 2h-3v-7H8v7H5a2 2 0 0 1-2-2z"/></I>,
  Users:    (p) => <I {...p}><circle cx="9" cy="8" r="3.5"/><path d="M2 20a7 7 0 0 1 14 0"/><circle cx="17" cy="9" r="2.5"/><path d="M14.5 14.7A5 5 0 0 1 22 19v1"/></I>,
  User:     (p) => <I {...p}><circle cx="12" cy="8" r="3.5"/><path d="M4 20a8 8 0 0 1 16 0"/></I>,
  Calendar: (p) => <I {...p}><rect x="3" y="4.5" width="18" height="16" rx="2"/><path d="M3 9h18M8 2.5v4M16 2.5v4"/></I>,
  Door:     (p) => <I {...p}><rect x="5" y="3" width="14" height="18" rx="1"/><circle cx="15.5" cy="12" r="0.6" fill="currentColor"/></I>,
  Card:     (p) => <I {...p}><rect x="2.5" y="5" width="19" height="14" rx="2"/><path d="M2.5 10h19M6 15h3M12 15h2"/></I>,
  Chat:     (p) => <I {...p}><path d="M21 11.5a8.5 8.5 0 0 1-12.7 7.4L3 20l1-4.8A8.5 8.5 0 1 1 21 11.5z"/></I>,
  Settings: (p) => <I {...p}><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.6 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.6-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"/></I>,
  Search:   (p) => <I {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></I>,
  Bell:     (p) => <I {...p}><path d="M6 8a6 6 0 1 1 12 0c0 5 2 7 2 7H4s2-2 2-7z"/><path d="M10.5 19a2 2 0 0 0 3 0"/></I>,
  Plus:     (p) => <I {...p}><path d="M12 5v14M5 12h14"/></I>,
  Check:    (p) => <I {...p}><path d="m4 12 5 5L20 6"/></I>,
  X:        (p) => <I {...p}><path d="M6 6l12 12M18 6 6 18"/></I>,
  ChevDown: (p) => <I {...p}><path d="m6 9 6 6 6-6"/></I>,
  ChevRight:(p) => <I {...p}><path d="m9 6 6 6-6 6"/></I>,
  ChevLeft: (p) => <I {...p}><path d="m15 6-6 6 6 6"/></I>,
  ArrowUp:  (p) => <I {...p}><path d="M12 19V5M5 12l7-7 7 7"/></I>,
  ArrowDn:  (p) => <I {...p}><path d="M12 5v14M5 12l7 7 7-7"/></I>,
  Phone:    (p) => <I {...p}><path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.7.6 2.5a2 2 0 0 1-.4 2L8 9.5a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2-.4c.8.3 1.6.5 2.5.6a2 2 0 0 1 1.7 2z"/></I>,
  Clock:    (p) => <I {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></I>,
  Trend:    (p) => <I {...p}><path d="M22 7 13.5 15.5l-5-5L2 17"/><path d="M16 7h6v6"/></I>,
  Coffee:   (p) => <I {...p}><path d="M3 8h13v6a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V8z"/><path d="M16 9h2a3 3 0 1 1 0 6h-2"/></I>,
  Sparkle:  (p) => <I {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8"/></I>,
  Receipt:  (p) => <I {...p}><path d="M5 3h14v18l-2-1-2 1-2-1-2 1-2-1-2 1-2-1V3z"/><path d="M9 7h6M9 11h6M9 15h4"/></I>,
  Filter:   (p) => <I {...p}><path d="M3 5h18l-7 9v6l-4-2v-4z"/></I>,
  Note:     (p) => <I {...p}><path d="M5 4h11l4 4v12H5z"/><path d="M16 4v4h4M9 13h7M9 17h5"/></I>,
  Dots:     (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>,
  More:     (p) => <I {...p}><circle cx="12" cy="6" r="1.4" fill="currentColor"/><circle cx="12" cy="12" r="1.4" fill="currentColor"/><circle cx="12" cy="18" r="1.4" fill="currentColor"/></I>,
  Mail:     (p) => <I {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></I>,
  Eye:      (p) => <I {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></I>,
  Lock:     (p) => <I {...p}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></I>,
  Refresh:  (p) => <I {...p}><path d="M20 11A8 8 0 0 0 5.6 6.6L3 9"/><path d="M3 5v4h4"/><path d="M4 13a8 8 0 0 0 14.4 4.4L21 15"/><path d="M21 19v-4h-4"/></I>,
  Pin:      (p) => <I {...p}><path d="M12 2v6m-3 0h6m-3 0v13"/></I>,
  Tag:      (p) => <I {...p}><path d="M2 11V5a3 3 0 0 1 3-3h6l11 11-9 9z"/><circle cx="7" cy="7" r="1.4" fill="currentColor"/></I>,
  Edit:     (p) => <I {...p}><path d="m4 20 4-1 11-11-3-3L5 16z"/><path d="m13 6 3 3"/></I>,
  Mobile:   (p) => <I {...p}><rect x="6" y="2" width="12" height="20" rx="2"/><path d="M11 18h2"/></I>,
  Send:     (p) => <I {...p}><path d="m22 2-7 20-4-9-9-4z"/><path d="m22 2-11 11"/></I>,
  Warn:     (p) => <I {...p}><path d="M10.3 3.5 1.8 18.1A2 2 0 0 0 3.5 21h17a2 2 0 0 0 1.7-2.9L13.7 3.5a2 2 0 0 0-3.4 0z"/><path d="M12 10v4M12 17.5v.5"/></I>,
  Sun:      (p) => <I {...p}><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M5 12H3M21 12h-2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4"/></I>,
  Layers:   (p) => <I {...p}><path d="m12 2 10 6-10 6L2 8z"/><path d="m2 14 10 6 10-6"/></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.Icon = Icon;
