// Shared icons (Feather-style strokes)
const Icon = ({ name, size = 20, stroke = 2, ...rest }) => {
  const paths = {
    cake: <><path d="M3 17h18M5 17V9a4 4 0 014-4h6a4 4 0 014 4v8" /><path d="M9 5V3M12 5V3M15 5V3" /><path d="M3 13c2 1 3 1 5 0s3-1 5 0 3 1 5 0" /></>,
    catering: <><path d="M3 11h18l-2 8H5L3 11z" /><path d="M8 11V8a4 4 0 018 0v3" /><circle cx="12" cy="5" r="1" /></>,
    chef: <><path d="M6 13a4 4 0 014-4h4a4 4 0 014 4v4H6v-4z" /><circle cx="9" cy="6" r="2" /><circle cx="15" cy="6" r="2" /><circle cx="12" cy="5" r="2" /></>,
    home: <><path d="M3 11l9-8 9 8" /><path d="M5 10v10h14V10" /></>,
    menu: <><path d="M4 6h16M4 12h16M4 18h10" /></>,
    bell: <><path d="M6 8a6 6 0 0112 0c0 7 3 9 3 9H3s3-2 3-9z" /><path d="M10 21a2 2 0 004 0" /></>,
    dashboard: <><rect x="3" y="3" width="7" height="9" rx="1" /><rect x="14" y="3" width="7" height="5" rx="1" /><rect x="14" y="12" width="7" height="9" rx="1" /><rect x="3" y="16" width="7" height="5" rx="1" /></>,
    orders: <><path d="M5 7h14l-1 12H6L5 7z" /><path d="M9 7V5a3 3 0 016 0v2" /></>,
    chart: <><path d="M3 3v18h18" /><path d="M7 14l4-4 3 3 5-6" /></>,
    users: <><circle cx="9" cy="8" r="3" /><path d="M3 19c0-3 3-5 6-5s6 2 6 5" /><circle cx="17" cy="8" r="2.5" /><path d="M21 18c0-2-1.5-3.5-4-4" /></>,
    settings: <><circle cx="12" cy="12" r="3" /><path d="M19.4 15a1.7 1.7 0 00.3 1.8l.1.1a2 2 0 01-2.8 2.8l-.1-.1a1.7 1.7 0 00-1.8-.3 1.7 1.7 0 00-1 1.5V21a2 2 0 01-4 0v-.1a1.7 1.7 0 00-1.1-1.5 1.7 1.7 0 00-1.8.3l-.1.1a2 2 0 01-2.8-2.8l.1-.1a1.7 1.7 0 00.3-1.8 1.7 1.7 0 00-1.5-1H3a2 2 0 010-4h.1a1.7 1.7 0 001.5-1.1 1.7 1.7 0 00-.3-1.8l-.1-.1a2 2 0 012.8-2.8l.1.1a1.7 1.7 0 001.8.3h0a1.7 1.7 0 001-1.5V3a2 2 0 014 0v.1a1.7 1.7 0 001 1.5h0a1.7 1.7 0 001.8-.3l.1-.1a2 2 0 012.8 2.8l-.1.1a1.7 1.7 0 00-.3 1.8v0a1.7 1.7 0 001.5 1H21a2 2 0 010 4h-.1a1.7 1.7 0 00-1.5 1z" /></>,
    search: <><circle cx="11" cy="11" r="7" /><path d="M21 21l-4.3-4.3" /></>,
    plus: <><path d="M12 5v14M5 12h14" /></>,
    minus: <><path d="M5 12h14" /></>,
    check: <><path d="M5 12l5 5L20 7" /></>,
    arrowRight: <><path d="M5 12h14M13 5l7 7-7 7" /></>,
    arrowLeft: <><path d="M19 12H5M11 5l-7 7 7 7" /></>,
    arrowUp: <><path d="M12 19V5M5 11l7-7 7 7" /></>,
    arrowDown: <><path d="M12 5v14M19 13l-7 7-7-7" /></>,
    eye: <><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z" /><circle cx="12" cy="12" r="3" /></>,
    edit: <><path d="M12 20h9" /><path d="M16 4a2 2 0 113 3L7 19l-4 1 1-4L16 4z" /></>,
    trash: <><path d="M3 6h18M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2M6 6l1 14h10l1-14" /></>,
    star: <><path d="M12 2l3.1 6.3L22 9.3l-5 4.9 1.2 6.9L12 17.8 5.8 21l1.2-6.9-5-4.9 6.9-1z" /></>,
    clock: <><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></>,
    calendar: <><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 9h18M8 3v4M16 3v4" /></>,
    phone: <><path d="M22 16.9v3a2 2 0 01-2.2 2 19.8 19.8 0 01-8.6-3.1 19.5 19.5 0 01-6-6A19.8 19.8 0 012 4.2 2 2 0 014 2h3a2 2 0 012 1.7 12.8 12.8 0 00.7 2.8 2 2 0 01-.4 2.1L8 9.9a16 16 0 006 6l1.3-1.3a2 2 0 012.1-.4 12.8 12.8 0 002.8.7 2 2 0 011.8 2z" /></>,
    mapPin: <><path d="M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0118 0z" /><circle cx="12" cy="10" r="3" /></>,
    instagram: <><rect x="3" y="3" width="18" height="18" rx="5" /><circle cx="12" cy="12" r="4" /><circle cx="17" cy="7" r="1" /></>,
    facebook: <><path d="M16 2h-3a5 5 0 00-5 5v3H5v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z" /></>,
    coffee: <><path d="M3 8h14v6a4 4 0 01-4 4H7a4 4 0 01-4-4V8z" /><path d="M17 10h2a2 2 0 010 4h-2" /><path d="M7 2v3M11 2v3M14 2v3" /></>,
    leaf: <><path d="M3 21s8-1 12-5a8 8 0 002-9 8 8 0 00-9 2c-4 4-5 12-5 12z" /><path d="M3 21c0-5 3-10 8-15" /></>,
    flame: <><path d="M12 2s5 5 5 10a5 5 0 01-10 0c0-2 1-3 1-3s0 2 2 2 0-7 2-9z" /></>,
    truck: <><rect x="1" y="6" width="14" height="11" rx="1" /><path d="M15 9h4l3 3v5h-7V9z" /><circle cx="6" cy="19" r="2" /><circle cx="18" cy="19" r="2" /></>,
    logout: <><path d="M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4" /><path d="M16 17l5-5-5-5M21 12H9" /></>,
    filter: <><path d="M3 5h18l-7 9v6l-4-2v-4L3 5z" /></>,
    moreVertical: <><circle cx="12" cy="5" r="1" /><circle cx="12" cy="12" r="1" /><circle cx="12" cy="19" r="1" /></>,
    download: <><path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4" /><path d="M7 10l5 5 5-5M12 15V3" /></>,
    refresh: <><path d="M21 12a9 9 0 01-15.5 6.3L3 16" /><path d="M3 12a9 9 0 0115.5-6.3L21 8" /><path d="M21 3v5h-5M3 21v-5h5" /></>,
    package: <><path d="M21 16V8l-9-5-9 5v8l9 5 9-5z" /><path d="M3.3 7l8.7 5 8.7-5M12 22V12" /></>,
    euro: <><path d="M5 13h10M5 9h10" /><path d="M19 6a8 8 0 100 12" /></>,
    sparkles: <><path d="M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z" /><path d="M19 14l.7 2.1L22 17l-2.3.9L19 20l-.7-2.1L16 17l2.3-.9z" /><path d="M5 16l.5 1.5L7 18l-1.5.5L5 20l-.5-1.5L3 18l1.5-.5z" /></>,
    layers: <><path d="M12 2L2 7l10 5 10-5-10-5z" /><path d="M2 17l10 5 10-5M2 12l10 5 10-5" /></>,
    activity: <><path d="M22 12h-4l-3 9L9 3l-3 9H2" /></>,
    x: <><path d="M18 6L6 18M6 6l12 12" /></>,
    info: <><circle cx="12" cy="12" r="9" /><path d="M12 16v-4M12 8h.01" /></>,
    alertCircle: <><circle cx="12" cy="12" r="9" /><path d="M12 8v4M12 16h.01" /></>,
    checkCircle: <><circle cx="12" cy="12" r="9" /><path d="M9 12l2 2 4-4" /></>,
    cookie: <><path d="M21 12a9 9 0 11-12-8.5 4 4 0 005 5 4 4 0 003.5 5 4 4 0 003.5 3.5z" /><circle cx="9" cy="9" r="1" /><circle cx="14" cy="14" r="1" /><circle cx="15" cy="8" r="1" /></>,
  };
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" {...rest}>
      {paths[name] || null}
    </svg>
  );
};

window.Icon = Icon;
