/* Icons — single-color stroke icons, currentColor */

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

const Icons = {
  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" /></>} />,
  Tenants:   (p) => <Icon {...p} d={<><circle cx="9" cy="8" r="3.2" /><path d="M3.5 19c.6-3 3-4.8 5.5-4.8s4.9 1.8 5.5 4.8" /><circle cx="17" cy="9" r="2.4" /><path d="M15 19c.4-2 1.9-3.2 3.5-3.2 1.1 0 2.1.6 2.5 1.5" /></>} />,
  Contracts: (p) => <Icon {...p} d={<><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" /><path d="M14 3v5h5" /><path d="M8 13h7M8 17h5" /></>} />,
  Invoices:  (p) => <Icon {...p} d={<><path d="M5 3v18l2-1.5L9 21l2-1.5L13 21l2-1.5L17 21l2-1.5V3l-2 1.5L15 3l-2 1.5L11 3 9 4.5 7 3 5 4.5z" /><path d="M8 8h8M8 12h8M8 16h5" /></>} />,
  Maintenance: (p) => <Icon {...p} d="M14.7 6.3a4 4 0 0 0-5.4 5.4l-5.6 5.6a2 2 0 1 0 2.8 2.8l5.6-5.6a4 4 0 0 0 5.4-5.4l-2.4 2.4-2.1-.3-.3-2.1z" />,
  Documents: (p) => <Icon {...p} d={<><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" /><path d="M14 3v5h5" /></>} />,
  Operations:(p) => <Icon {...p} d={<><path d="M4 20V10M10 20V4M16 20v-7M22 20V8" /><path d="M3 20h19" /></>} />,
  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.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.8V9c.3.6.9 1 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" /></>} />,
  Plus:      (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  Check:     (p) => <Icon {...p} d="m4 12 5 5 11-12" />,
  X:         (p) => <Icon {...p} d="M6 6l12 12M18 6 6 18" />,
  Chevron:   (p) => <Icon {...p} d="m9 6 6 6-6 6" />,
  ChevronDown: (p) => <Icon {...p} d="m6 9 6 6 6-6" />,
  ArrowLeft: (p) => <Icon {...p} d="M19 12H5M11 18l-6-6 6-6" />,
  ArrowUp:   (p) => <Icon {...p} d="M5 12l7-7 7 7M12 5v15" />,
  ArrowDown: (p) => <Icon {...p} d="M5 12l7 7 7-7M12 19V4" />,
  Download:  (p) => <Icon {...p} d="M12 3v13m0 0-5-5m5 5 5-5M5 21h14" />,
  Upload:    (p) => <Icon {...p} d="M12 21V8m0 0-5 5m5-5 5 5M5 3h14" />,
  Send:      (p) => <Icon {...p} d="M22 2 11 13M22 2l-7 20-4-9-9-4z" />,
  Mail:      (p) => <Icon {...p} d={<><rect x="3" y="5" width="18" height="14" rx="2" /><path d="m3 7 9 6 9-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-6A19.8 19.8 0 0 1 2 4.2 2 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-.4 2.1l-1.3 1.3a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.8.3 1.7.5 2.6.6A2 2 0 0 1 22 17z" />,
  Building:  (p) => <Icon {...p} d={<><rect x="4" y="3" width="16" height="18" rx="1.5" /><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2M10 21v-3h4v3" /></>} />,
  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" /></>} />,
  Alert:     (p) => <Icon {...p} d={<><path d="M12 3 2 20h20z" /><path d="M12 10v4M12 17.5v.1" /></>} />,
  Eye:       (p) => <Icon {...p} d={<><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" /></>} />,
  Edit:      (p) => <Icon {...p} d="m4 20 5-1 11-11-4-4L5 15zM14 6l4 4" />,
  Trash:     (p) => <Icon {...p} d={<><path d="M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13" /></>} />,
  Filter:    (p) => <Icon {...p} d="M3 5h18l-7 9v6l-4-2v-4z" />,
  Menu:      (p) => <Icon {...p} d="M4 7h16M4 12h16M4 17h16" />,
  Logo:      (p) => <Icon {...p} d={<><path d="M3 12 8 5h8l5 7-5 7H8z" /></>} />,
  Photo:     (p) => <Icon {...p} d={<><rect x="3" y="4" width="18" height="16" rx="2" /><circle cx="8.5" cy="9.5" r="1.5" /><path d="m3 17 5-5 4 4 3-3 6 6" /></>} />,
  File:      (p) => <Icon {...p} d={<><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" /><path d="M14 3v5h5" /></>} />,
  External:  (p) => <Icon {...p} d="M14 4h6v6M20 4l-9 9M9 5H5a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-4" />,
  Trend:     (p) => <Icon {...p} d="M3 17 9 11l4 4 8-8M14 5h7v7" />,
};

window.Icons = Icons;
window.IconBase = Icon;
