// VibraMatch — icon library (1.75px stroke, 24px viewBox unless noted)
// Lightweight, brand-consistent. Stroke uses currentColor.

const Icon = ({ d, size = 22, sw = 1.75, fill = 'none', vb = '24 24' }) => {
  const [w, h] = vb.split(' ').map(Number);
  return (
    <svg width={size} height={size} viewBox={`0 0 ${w} ${h}`} fill={fill}
      stroke="currentColor" strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round">
      {d}
    </svg>
  );
};

const I = {
  // navigation
  home:    (p) => <Icon {...p} d={<><path d="M3 11.5L12 4l9 7.5"/><path d="M5 10v10h14V10"/><path d="M10 20v-6h4v6"/></>} />,
  groups:  (p) => <Icon {...p} d={<><circle cx="9" cy="9" r="3.5"/><path d="M3 19c0-3.3 2.7-6 6-6s6 2.7 6 6"/><circle cx="17" cy="7" r="2.5"/><path d="M15 14c2.8 0 5 2.2 5 5"/></>} />,
  activity:(p) => <Icon {...p} d={<><path d="M3 12h4l2-6 4 12 2-6h6"/></>} />,
  profile: (p) => <Icon {...p} d={<><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8"/></>} />,
  trophy:  (p) => <Icon {...p} d={<><path d="M7 4h10v4a5 5 0 01-10 0V4z"/><path d="M7 6H4v2a3 3 0 003 3"/><path d="M17 6h3v2a3 3 0 01-3 3"/><path d="M10 14h4l-.5 4h-3z"/><path d="M8 20h8"/></>} />,

  // actions
  plus:    (p) => <Icon {...p} d={<><path d="M12 5v14M5 12h14"/></>} />,
  search:  (p) => <Icon {...p} d={<><circle cx="11" cy="11" r="6.5"/><path d="M20 20l-4-4"/></>} />,
  filter:  (p) => <Icon {...p} d={<><path d="M4 6h16M7 12h10M10 18h4"/></>} />,
  bell:    (p) => <Icon {...p} d={<><path d="M6 16V10a6 6 0 0112 0v6l1.5 2h-15L6 16z"/><path d="M10 20a2 2 0 004 0"/></>} />,
  chat:    (p) => <Icon {...p} d={<><path d="M4 5h16v11H8l-4 4V5z"/></>} />,
  more:    (p) => <Icon {...p} d={<><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"/></>} />,
  back:    (p) => <Icon {...p} d={<><path d="M15 5l-7 7 7 7"/></>} />,
  close:   (p) => <Icon {...p} d={<><path d="M6 6l12 12M18 6L6 18"/></>} />,
  check:   (p) => <Icon {...p} d={<><path d="M5 12l4.5 4.5L19 7"/></>} />,
  share:   (p) => <Icon {...p} d={<><path d="M4 12v7h16v-7"/><path d="M12 3v12M7 8l5-5 5 5"/></>} />,
  chev:    (p) => <Icon {...p} d={<><path d="M9 6l6 6-6 6"/></>} />,
  chevDown:(p) => <Icon {...p} d={<><path d="M6 9l6 6 6-6"/></>} />,

  // content
  calendar:(p) => <Icon {...p} d={<><rect x="3.5" y="5" width="17" height="15" rx="2.5"/><path d="M3.5 10h17"/><path d="M8 3v4M16 3v4"/></>} />,
  clock:   (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></>} />,
  pin:     (p) => <Icon {...p} d={<><path d="M12 3a6 6 0 016 6c0 5-6 12-6 12S6 14 6 9a6 6 0 016-6z"/><circle cx="12" cy="9" r="2.2"/></>} />,
  racket:  (p) => <Icon {...p} d={<><ellipse cx="9.5" cy="9.5" rx="5.5" ry="6"/><path d="M9.5 4v11M5 9.5h9"/><path d="M14 14l5.5 5.5"/><path d="M18 17l2 2"/></>} />,
  star:    (p) => <Icon {...p} d={<path d="M12 4l2.3 5 5.5.5-4.2 3.8 1.3 5.4L12 16l-4.9 2.7 1.3-5.4L4.2 9.5l5.5-.5L12 4z"/>} />,
  fire:    (p) => <Icon {...p} d={<><path d="M12 3c2 4 5 5 5 9a5 5 0 11-10 0c0-2 1.5-3.5 2-5 2 2 3 1 3-4z"/></>} />,
  bolt:    (p) => <Icon {...p} d={<path d="M13 3l-7 11h5l-1 7 7-11h-5l1-7z"/>} />,
  copy:    (p) => <Icon {...p} d={<><rect x="8" y="8" width="12" height="12" rx="2.5"/><path d="M16 8V6a2 2 0 00-2-2H6a2 2 0 00-2 2v8a2 2 0 002 2h2"/></>} />,
  award:   (p) => <Icon {...p} d={<><circle cx="12" cy="10" r="5.5"/><path d="M9 15l-1.5 6 4.5-2.5 4.5 2.5L15 15"/></>} />,
  sliders: (p) => <Icon {...p} d={<><path d="M4 6h10M18 6h2"/><circle cx="16" cy="6" r="2"/><path d="M4 12h2M10 12h10"/><circle cx="8" cy="12" r="2"/><path d="M4 18h12M20 18h0"/><circle cx="18" cy="18" r="2"/></>} />,
  arrow:   (p) => <Icon {...p} d={<><path d="M5 12h14M14 6l6 6-6 6"/></>} />,
  flag:    (p) => <Icon {...p} d={<><path d="M5 21V4M5 4h12l-2 3 2 3H5"/></>} />,
};

window.I = I;
window.Icon = Icon;
