// icons.jsx — minimal stroke-based icon set

const ICONS = {
  search:  <path d="M11 19a8 8 0 1 1 5.3-2L21 21" />,
  cart:    <path d="M3 4h2l2.4 11.4a2 2 0 0 0 2 1.6h7.8a2 2 0 0 0 2-1.5L21 8H6M9 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm9 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2z" />,
  heart:   <path d="M12 21s-7-4.5-9.5-9A5.5 5.5 0 0 1 12 6a5.5 5.5 0 0 1 9.5 6c-2.5 4.5-9.5 9-9.5 9z" />,
  user:    <path d="M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-4.4 0-8 2.7-8 6v2h16v-2c0-3.3-3.6-6-8-6z" />,
  filter:  <path d="M4 6h16M7 12h10M10 18h4" />,
  star:    <path d="M12 2l3.1 6.3 7 1-5 4.9 1.2 7-6.3-3.3-6.3 3.3 1.2-7-5-4.9 7-1z" />,
  chevdn:  <path d="M6 9l6 6 6-6" />,
  chevup:  <path d="M18 15l-6-6-6 6" />,
  chevr:   <path d="M9 6l6 6-6 6" />,
  chevl:   <path d="M15 6l-6 6 6 6" />,
  plus:    <path d="M12 5v14M5 12h14" />,
  minus:   <path d="M5 12h14" />,
  close:   <path d="M6 6l12 12M18 6L6 18" />,
  check:   <path d="M5 12l5 5 9-10" />,
  trash:   <path d="M4 7h16M9 7V4h6v3M6 7l1 13a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-13" />,
  truck:   <path d="M2 6h12v10H2zM14 9h5l3 3v4h-8M6 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm12 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4z" />,
  shield:  <path d="M12 3l8 3v6c0 5-3.5 8.5-8 9-4.5-.5-8-4-8-9V6l8-3z" />,
  spark:   <path d="M12 2l1.8 5.3L19 9l-5.2 1.7L12 16l-1.8-5.3L5 9l5.2-1.7L12 2zM5 17l.9 2.1L8 20l-2.1.9L5 23l-.9-2.1L2 20l2.1-.9L5 17z" />,
  bell:    <path d="M6 16V11a6 6 0 1 1 12 0v5l1 2H5l1-2zM10 20a2 2 0 0 0 4 0" />,
  menu:    <path d="M4 6h16M4 12h16M4 18h16" />,
  pin:     <path d="M12 21s7-5.5 7-12a7 7 0 1 0-14 0c0 6.5 7 12 7 12zm0-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" />,
  return:  <path d="M4 9h12a4 4 0 0 1 0 8h-4M4 9l4-4M4 9l4 4" />,
  card:    <path d="M3 6h18v12H3zM3 10h18M7 15h4" />,
  wallet:  <path d="M3 6h15a3 3 0 0 1 3 3v9a2 2 0 0 1-2 2H4a1 1 0 0 1-1-1V6zM3 6V5a2 2 0 0 1 2-2h13M17 13h2" />,
  giftbox: <path d="M3 8h18v4H3zM4 12h16v9H4zM12 8v13M8 8c-2 0-3-1.5-2-3s4 0 4 3M16 8c2 0 3-1.5 2-3s-4 0-4 3" />,
  share:   <path d="M16 5l-8 6M16 19l-8-6M18 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM18 21a2 2 0 1 0 0-4 2 2 0 0 0 0 4z" />,
  eye:     <path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12zm10 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" />,
  google:  <path d="M21.6 12.2c0-.7-.1-1.4-.2-2H12v3.8h5.4a4.6 4.6 0 0 1-2 3v2.5h3.2c1.9-1.7 3-4.3 3-7.3zM12 22c2.7 0 5-.9 6.6-2.4l-3.2-2.5c-.9.6-2 1-3.4 1a5.9 5.9 0 0 1-5.5-4H3.2v2.5A10 10 0 0 0 12 22zm-5.5-8.9a6 6 0 0 1 0-3.8V6.8H3.2a10 10 0 0 0 0 9l3.3-2.7zM12 6c1.5 0 2.8.5 3.8 1.5l2.9-2.9A10 10 0 0 0 3.2 6.8L6.5 9.5A5.9 5.9 0 0 1 12 6z" />,
};

function Icon({ name, size = 18, stroke = 2, fill = 'none' }) {
  const path = ICONS[name];
  if (!path) return null;
  const isFilled = name === 'star' || name === 'google';
  return (
    <svg width={size} height={size} viewBox="0 0 24 24"
         fill={isFilled ? 'currentColor' : 'none'}
         stroke={isFilled && name === 'google' ? 'none' : 'currentColor'}
         strokeWidth={stroke}
         strokeLinecap="round" strokeLinejoin="round"
         style={{ flexShrink: 0, display: 'block' }}>
      {path}
    </svg>
  );
}

Object.assign(window, { Icon });
