// Minimal stroke icon library — 16px by default
const Icon = ({ d, size = 16, fill = "none", sw = 1.6, style }) => (
  <svg className="icon" width={size} height={size} viewBox="0 0 24 24"
       fill={fill} stroke="currentColor" strokeWidth={sw}
       strokeLinecap="round" strokeLinejoin="round" style={style}>
    {typeof d === 'string' ? <path d={d} /> : d}
  </svg>
);

const I = {
  Dashboard: (p) => <Icon {...p} d={<><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"/></>} />,
  Visitors: (p) => <Icon {...p} d={<><circle cx="9" cy="8" r="3.2"/><path d="M3.5 20c.5-3.2 3-5 5.5-5s5 1.8 5.5 5"/><circle cx="17" cy="9" r="2.4"/><path d="M15 20c.3-2.2 2-3.5 4-3.5"/></>} />,
  Invites: (p) => <Icon {...p} d={<><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3.5 6 8.5 6 8.5-6"/></>} />,
  Approvals: (p) => <Icon {...p} d={<><path d="M20 7 9 18l-5-5"/><circle cx="18" cy="6" r="2" fill="none"/></>} />,
  Workflow: (p) => <Icon {...p} d={<><rect x="3" y="4" width="6" height="5" rx="1"/><rect x="15" y="4" width="6" height="5" rx="1"/><rect x="9" y="15" width="6" height="5" rx="1"/><path d="M6 9v3h12V9M12 12v3"/></>} />,
  Forms: (p) => <Icon {...p} d={<><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 8h8M8 12h8M8 16h5"/></>} />,
  Integrations: (p) => <Icon {...p} d={<><path d="M9 3v4M15 3v4M4 9h16M4 9v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9M9 14h6"/></>} />,
  Guard: (p) => <Icon {...p} d={<><path d="M12 2.5 4.5 5v6c0 4.5 3.2 8.5 7.5 10 4.3-1.5 7.5-5.5 7.5-10V5Z"/><path d="m9 12 2.2 2.2L15.5 10"/></>} />,
  VIP: (p) => <Icon {...p} d={<><path d="m12 3 2.7 5.7 6.3.9-4.6 4.3 1.1 6.1L12 17.2 6.5 20l1.1-6.1L3 9.6l6.3-.9Z"/></>} />,
  Tenants: (p) => <Icon {...p} d={<><path d="M4 21V8l8-5 8 5v13"/><path d="M9 21v-7h6v7M4 21h16"/></>} />,
  Signage: (p) => <Icon {...p} d={<><rect x="2.5" y="4" width="19" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></>} />,
  Reports: (p) => <Icon {...p} d={<><path d="M4 19V5M4 19h16M8 15v-4M12 15V8M16 15v-6"/></>} />,
  Settings: (p) => <Icon {...p} d={<><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.8L4.3 7a2 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"/></>} />,
  Search: (p) => <Icon {...p} d={<><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></>} />,
  Bell: (p) => <Icon {...p} d={<><path d="M6 8a6 6 0 1 1 12 0c0 7 3 7 3 9H3c0-2 3-2 3-9Z"/><path d="M10 21a2 2 0 0 0 4 0"/></>} />,
  Plus: (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  Filter: (p) => <Icon {...p} d="M3 5h18l-7 9v6l-4-2v-4Z" />,
  Check: (p) => <Icon {...p} d="m4 12 5 5L20 6" />,
  X: (p) => <Icon {...p} d="M6 6l12 12M18 6 6 18" />,
  ChevronRight: (p) => <Icon {...p} d="m9 6 6 6-6 6" />,
  ChevronDown: (p) => <Icon {...p} d="m6 9 6 6 6-6" />,
  ChevronLeft: (p) => <Icon {...p} d="m15 6-6 6 6 6" />,
  More: (p) => <Icon {...p} d={<><circle cx="5" cy="12" r="1" fill="currentColor"/><circle cx="12" cy="12" r="1" fill="currentColor"/><circle cx="19" cy="12" r="1" fill="currentColor"/></>} />,
  Calendar: (p) => <Icon {...p} d={<><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></>} />,
  Clock: (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>} />,
  Door: (p) => <Icon {...p} d={<><path d="M5 21V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17M3 21h16M13 12.5v1"/></>} />,
  QR: (p) => <Icon {...p} d={<><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"/><path d="M14 14h3v3h-3zM20 14v3M14 20h3M20 20h1"/></>} />,
  User: (p) => <Icon {...p} d={<><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4.4 4.2-7 8-7s7 2.6 8 7"/></>} />,
  Building: (p) => <Icon {...p} d={<><rect x="4" y="3" width="16" height="18" rx="1"/><path d="M9 7h.01M14 7h.01M9 11h.01M14 11h.01M9 15h.01M14 15h.01M10 21v-4h4v4"/></>} />,
  ArrowUp: (p) => <Icon {...p} d="m6 15 6-6 6 6" />,
  ArrowDown: (p) => <Icon {...p} d="m6 9 6 6 6-6" />,
  ArrowRight: (p) => <Icon {...p} d="M5 12h14m-6-6 6 6-6 6" />,
  Logout: (p) => <Icon {...p} d={<><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9"/></>} />,
  Copy: (p) => <Icon {...p} d={<><rect x="9" y="9" width="12" height="12" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></>} />,
  Link: (p) => <Icon {...p} d={<><path d="M10 14a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1"/><path d="M14 10a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1"/></>} />,
  Sparkle: (p) => <Icon {...p} d={<><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2 2M16 16l2 2M18 6l-2 2M8 16l-2 2"/></>} />,
  Shield: (p) => <Icon {...p} d="M12 2.5 4.5 5v6c0 4.5 3.2 8.5 7.5 10 4.3-1.5 7.5-5.5 7.5-10V5Z" />,
  Zap: (p) => <Icon {...p} d="M13 2 4 14h7l-1 8 9-12h-7z" />,
  Mail: (p) => <Icon {...p} d={<><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3.5 6 8.5 6 8.5-6"/></>} />,
  Phone: (p) => <Icon {...p} 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-6 19.8 19.8 0 0 1-3.1-8.7A2 2 0 0 1 4 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.6 2.6a2 2 0 0 1-.5 2.1L7.9 9.8a16 16 0 0 0 6 6l1.4-1.2a2 2 0 0 1 2.1-.5c.8.3 1.7.5 2.6.6a2 2 0 0 1 1.7 2z" />,
  Edit: (p) => <Icon {...p} d={<><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.1 2.1 0 1 1 3 3L12 15l-4 1 1-4Z"/></>} />,
};

Object.assign(window, { I, Icon });
