// icons.jsx — minimal line icons. Stroke uses currentColor.
(function () {
  const S = ({ d, size = 24, sw = 2, fill = 'none', vb = 24, children, style }) => (
    <svg width={size} height={size} viewBox={`0 0 ${vb} ${vb}`} fill={fill}
      stroke="currentColor" strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" style={style}>
      {d ? <path d={d} /> : children}
    </svg>
  );

  const Icon = {
    home:   (p) => <S {...p} d="M3 10.5 12 3l9 7.5M5 9.5V20a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1V9.5" />,
    homeFill: (p) => <S {...p} fill="currentColor" stroke="none" d="M11.3 3.3 3 10.5V20a1 1 0 0 0 1 1h5v-6h6v6h5a1 1 0 0 0 1-1v-9.5L12.7 3.3a1 1 0 0 0-1.4 0Z" />,
    badge:  (p) => <S {...p}><path d="M12 3 4 6v6c0 4.5 3.2 7.4 8 9 4.8-1.6 8-4.5 8-9V6l-8-3Z"/><path d="m9 12 2 2 4-4"/></S>,
    badgeFill: (p) => <S {...p}><path fill="currentColor" stroke="none" d="M12 3 4 6v6c0 4.5 3.2 7.4 8 9 4.8-1.6 8-4.5 8-9V6l-8-3Z"/><path stroke="#0c0b0e" d="m9 12 2 2 4-4"/></S>,
    person: (p) => <S {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 3.6-7 8-7s8 3 8 7"/></S>,
    personFill: (p) => <S {...p}><circle cx="12" cy="8" r="4" fill="currentColor" stroke="none"/><path fill="currentColor" stroke="none" d="M4 21c0-4 3.6-7 8-7s8 3 8 7Z"/></S>,
    plus:   (p) => <S {...p} sw={2.4} d="M12 5v14M5 12h14" />,
    heart:  (p) => <S {...p} d="M12 20s-7-4.3-9.3-9C1.4 8.3 2.6 5 6 5c2.1 0 3.3 1.3 4 2.4C10.7 6.3 11.9 5 14 5c3.4 0 4.6 3.3 3.3 6-2.3 4.7-9.3 9-9.3 9Z" />,
    heartFill: (p) => <S {...p} fill="currentColor" stroke="none" d="M12 20s-7-4.3-9.3-9C1.4 8.3 2.6 5 6 5c2.1 0 3.3 1.3 4 2.4C10.7 6.3 11.9 5 14 5c3.4 0 4.6 3.3 3.3 6-2.3 4.7-9.3 9-9.3 9Z" />,
    reply:  (p) => <S {...p} d="M21 11.5a8 8 0 0 1-8 8H7l-4 2 1.2-3.6A8 8 0 1 1 21 11.5Z" />,
    repost: (p) => <S {...p}><path d="M4 9V7a2 2 0 0 1 2-2h11"/><path d="m14 2 3 3-3 3"/><path d="M20 15v2a2 2 0 0 1-2 2H7"/><path d="m10 22-3-3 3-3"/></S>,
    share:  (p) => <S {...p}><path d="M12 15V3"/><path d="m7 8 5-5 5 5"/><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-7"/></S>,
    play:   (p) => <S {...p} fill="currentColor" stroke="none" d="M7 4.5v15l13-7.5-13-7.5Z" />,
    pause:  (p) => <S {...p} fill="currentColor" stroke="none"><rect x="6" y="4.5" width="4.2" height="15" rx="1.2"/><rect x="13.8" y="4.5" width="4.2" height="15" rx="1.2"/></S>,
    back:   (p) => <S {...p} sw={2.4} d="M15 5l-7 7 7 7" />,
    close:  (p) => <S {...p} sw={2.2} d="M6 6l12 12M18 6 6 18" />,
    check:  (p) => <S {...p} sw={2.6} d="M4 12.5 9.5 18 20 6" />,
    lock:   (p) => <S {...p}><rect x="4.5" y="10.5" width="15" height="10.5" rx="2.5"/><path d="M8 10.5V8a4 4 0 0 1 8 0v2.5"/></S>,
    search: (p) => <S {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></S>,
    verified: (p) => <S {...p}><path fill="currentColor" stroke="none" d="m12 2 2.4 1.8 3-.2.9 2.8 2.4 1.7-1 2.9 1 2.9-2.4 1.7-.9 2.8-3-.2L12 22l-2.4-1.8-3 .2-.9-2.8L3.3 16l1-2.9-1-2.9L5.7 8.4l.9-2.8 3 .2L12 2Z"/><path stroke="#0c0b0e" strokeWidth="2.4" d="m8.5 12 2.4 2.4 4.6-5"/></S>,
    music:  (p) => <S {...p}><path d="M9 18V5l11-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="17" cy="16" r="3"/></S>,
    link:   (p) => <S {...p}><path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/></S>,
    sparkle:(p) => <S {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/></S>,
  };

  window.Icon = Icon;
})();
