// SMASH — Tabler-style outline icons (inline SVG, currentColor, 1.5px stroke).
// All icons are 24×24 viewbox; size is set via parent CSS or the `s` prop.

const _iconWrap = (s, children) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none"
       stroke="currentColor" strokeWidth="1.6"
       strokeLinecap="round" strokeLinejoin="round">
    {children}
  </svg>
);

const Icon = {
  search: (s=20) => _iconWrap(s, <><circle cx="10" cy="10" r="7"/><path d="m21 21-6-6"/></>),
  message: (s=20) => _iconWrap(s, <path d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H9l-5 4z"/>),
  calendar: (s=20) => _iconWrap(s, <><rect x="4" y="5" width="16" height="16" rx="2"/><path d="M16 3v4M8 3v4M4 11h16"/></>),
  trophy: (s=20) => _iconWrap(s, <><path d="M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4z"/><path d="M17 4h3v3a3 3 0 0 1-3 3"/><path d="M7 4H4v3a3 3 0 0 0 3 3"/></>),
  user: (s=20) => _iconWrap(s, <><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></>),
  pin: (s=20) => _iconWrap(s, <><path d="M21 10c0 7-9 12-9 12s-9-5-9-12a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></>),
  filter: (s=20) => _iconWrap(s, <path d="M4 6h16M7 12h10M10 18h4"/>),
  clock: (s=20) => _iconWrap(s, <><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>),
  plus: (s=20) => _iconWrap(s, <path d="M5 12h14M12 5v14"/>),
  check: (s=20) => _iconWrap(s, <path d="M5 12l5 5L20 7"/>),
  back: (s=20) => _iconWrap(s, <path d="M15 6l-6 6 6 6"/>),
  more: (s=20) => _iconWrap(s, <><circle cx="12" cy="5" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="12" cy="19" r="1"/></>),
  send: (s=20) => _iconWrap(s, <path d="M3 11L21 3l-7 18-3-8-8-2z"/>),
  bell: (s=20) => _iconWrap(s, <><path d="M6 8a6 6 0 1 1 12 0c0 7 3 7 3 9H3c0-2 3-2 3-9z"/><path d="M10 21a2 2 0 0 0 4 0"/></>),
  star: (s=20) => _iconWrap(s, <path d="M12 3l3 6 6 1-4.5 4.5L18 21l-6-3-6 3 1.5-6.5L3 10l6-1 3-6z"/>),
  chevronRight: (s=20) => _iconWrap(s, <path d="M9 6l6 6-6 6"/>),
  chevronDown: (s=20) => _iconWrap(s, <path d="M6 9l6 6 6-6"/>),
  swap: (s=20) => _iconWrap(s, <path d="M7 4v16M3 8l4-4 4 4M17 20V4M21 16l-4 4-4-4"/>),
  ball: (s=20) => _iconWrap(s, <><circle cx="12" cy="12" r="9"/><path d="M3 12a9 9 0 0 1 9-9M21 12a9 9 0 0 1-9 9"/></>),
  flag: (s=20) => _iconWrap(s, <path d="M5 21V4h12l-2 4 2 4H5"/>),
  share: (s=20) => _iconWrap(s, <><circle cx="6" cy="12" r="3"/><circle cx="18" cy="6" r="3"/><circle cx="18" cy="18" r="3"/><path d="M8.5 10.5l7-3M8.5 13.5l7 3"/></>),
  edit: (s=20) => _iconWrap(s, <><path d="M14 4l6 6-12 12H2v-6L14 4z"/></>),
};

window.Icon = Icon;
