/* icons.jsx — minimal stroke icon set (window globals) */

const Ic = {};

Ic.ChevronLeft = ({ s = 18, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M15 4l-8 8 8 8" stroke={c} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Ic.ChevronRight = ({ s = 18, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M9 4l8 8-8 8" stroke={c} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Ic.Search = ({ s = 20, c = 'var(--ink-3)' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="11" cy="11" r="7" stroke={c} strokeWidth="2"/>
    <path d="M16.5 16.5L21 21" stroke={c} strokeWidth="2" strokeLinecap="round"/>
  </svg>
);

Ic.Sliders = ({ s = 20, c = 'var(--ink-2)' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M4 7h10M18 7h2M4 17h2M10 17h10" stroke={c} strokeWidth="2" strokeLinecap="round"/>
    <circle cx="16" cy="7" r="2.4" stroke={c} strokeWidth="2"/>
    <circle cx="8" cy="17" r="2.4" stroke={c} strokeWidth="2"/>
  </svg>
);

Ic.More = ({ s = 20, c = 'var(--ink-2)' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="12" cy="5" r="1.9" fill={c}/>
    <circle cx="12" cy="12" r="1.9" fill={c}/>
    <circle cx="12" cy="19" r="1.9" fill={c}/>
  </svg>
);

Ic.Check = ({ s = 14, c = '#fff' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M5 13l4 4L19 6" stroke={c} strokeWidth="2.8" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Ic.Close = ({ s = 18, c = 'var(--ink-2)' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M6 6l12 12M18 6L6 18" stroke={c} strokeWidth="2.4" strokeLinecap="round"/>
  </svg>
);

/* Rosette / award medal — used on Give-badge CTA and Badges tab */
Ic.Rosette = ({ s = 20, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="12" cy="9" r="6" stroke={c} strokeWidth="2"/>
    <circle cx="12" cy="9" r="2.4" stroke={c} strokeWidth="2"/>
    <path d="M8.5 14.2L7 22l5-2.6L17 22l-1.5-7.8" stroke={c} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Ic.Home = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M4 11l8-7 8 7v8a1 1 0 01-1 1h-4v-6H9v6H5a1 1 0 01-1-1z" stroke={c} strokeWidth="2" strokeLinejoin="round"/>
  </svg>
);

Ic.Activity = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M3 13h4l2.5-7 4 14 2.5-7H21" stroke={c} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Ic.Menu = ({ s = 24, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M3.5 7h17M3.5 12h17M3.5 17h17" stroke={c} strokeWidth="2" strokeLinecap="round"/>
  </svg>
);

Ic.Grid = ({ s = 24, c = 'currentColor' }) => {
  const p = [5,12,19], dots = [];
  p.forEach(y => p.forEach(x => dots.push(<circle key={x+'-'+y} cx={x} cy={y} r="1.7" fill={c}/>)));
  return <svg width={s} height={s} viewBox="0 0 24 24">{dots}</svg>;
};

Ic.Bell = ({ s = 24, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M6 9.5a6 6 0 1112 0c0 4.5 1.8 5.5 1.8 5.5H4.2S6 14 6 9.5z" stroke={c} strokeWidth="2" strokeLinejoin="round"/>
    <path d="M10 19a2 2 0 004 0" stroke={c} strokeWidth="2" strokeLinecap="round"/>
  </svg>
);

/* SF-Symbols-style: info.circle */
Ic.Info = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="12" cy="12" r="9" stroke={c} strokeWidth="1.8"/>
    <circle cx="12" cy="8" r="1.15" fill={c}/>
    <path d="M12 11.2v5.2" stroke={c} strokeWidth="1.9" strokeLinecap="round"/>
  </svg>
);

/* SF-Symbols-style: pencil */
Ic.Edit = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M14.7 6.3l3 3L9 18l-3.6.6L6 15z" stroke={c} strokeWidth="1.8" strokeLinejoin="round"/>
    <path d="M13.4 7.6l3 3" stroke={c} strokeWidth="1.8"/>
  </svg>
);

/* SF-Symbols-style: person.2 */
Ic.People = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="9" cy="8.5" r="3.2" stroke={c} strokeWidth="1.8"/>
    <path d="M3.5 18.5c0-3 2.5-4.8 5.5-4.8s5.5 1.8 5.5 4.8" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
    <path d="M16 5.6a3.2 3.2 0 010 5.9M17.6 18.5c0-2.6-1.4-4.2-3.4-4.9" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
  </svg>
);

/* SF-Symbols-style: square.on.square */
Ic.Duplicate = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <rect x="8.5" y="8.5" width="11" height="11" rx="3" stroke={c} strokeWidth="1.8"/>
    <path d="M15.5 5.5H7A2.5 2.5 0 004.5 8v8.5" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
  </svg>
);

/* SF-Symbols-style: trash */
Ic.Trash = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M4 6.5h16" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
    <path d="M9 6.5V5.4A1.4 1.4 0 0110.4 4h3.2A1.4 1.4 0 0115 5.4V6.5" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
    <path d="M6.4 6.5l.8 12.1A1.8 1.8 0 009 20.3h6a1.8 1.8 0 001.8-1.7l.8-12.1" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
    <path d="M10 10v6M14 10v6" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
  </svg>
);

/* feed / cards */
Ic.Feed = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <rect x="3.5" y="4.5" width="17" height="15" rx="2.6" stroke={c} strokeWidth="1.8"/>
    <path d="M3.5 9.3h17" stroke={c} strokeWidth="1.8"/>
    <path d="M6.6 12.6h7M6.6 15.6h10.8" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
  </svg>
);

/* connections / network nodes */
Ic.Connections = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="6" cy="7" r="2.5" stroke={c} strokeWidth="1.8"/>
    <circle cx="18" cy="7" r="2.5" stroke={c} strokeWidth="1.8"/>
    <circle cx="12" cy="17.5" r="2.5" stroke={c} strokeWidth="1.8"/>
    <path d="M8.4 7h7.2M7.5 9.1l3 6.2M16.5 9.1l-3 6.2" stroke={c} strokeWidth="1.8" strokeLinecap="round"/>
  </svg>
);

/* game controller */
Ic.Game = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M7.2 8h9.6a3.6 3.6 0 013.5 2.8l1 4.4A2.2 2.2 0 0118 17.9c-.9 0-1.5-.5-2-1.2l-.8-1.1H8.8L8 16.7c-.5.7-1.1 1.2-2 1.2a2.2 2.2 0 01-2.3-2.7l1-4.4A3.6 3.6 0 017.2 8z" stroke={c} strokeWidth="1.8" strokeLinejoin="round"/>
    <path d="M7.3 11.2v2.1M6.25 12.25h2.1" stroke={c} strokeWidth="1.7" strokeLinecap="round"/>
    <circle cx="15.6" cy="11.7" r="1" fill={c}/>
    <circle cx="17.2" cy="13.4" r="1" fill={c}/>
  </svg>
);

/* mail / messages */
Ic.Mail = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <rect x="3.5" y="5.5" width="17" height="13" rx="2.6" stroke={c} strokeWidth="1.8"/>
    <path d="M4.6 8l6.2 4.4a2 2 0 002.4 0L19.4 8" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

/* gift / reward store */
Ic.Gift = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <rect x="4" y="9" width="16" height="4" rx="1.2" stroke={c} strokeWidth="1.8"/>
    <path d="M5.5 13v6.2a1.3 1.3 0 001.3 1.3h10.4a1.3 1.3 0 001.3-1.3V13" stroke={c} strokeWidth="1.8" strokeLinejoin="round"/>
    <path d="M12 9v11.5" stroke={c} strokeWidth="1.8"/>
    <path d="M12 9C12 9 10.8 5.4 8.8 6.1C7.2 6.7 8.2 9 12 9zM12 9c0 0 1.2-3.6 3.2-2.9C16.8 6.7 15.8 9 12 9z" stroke={c} strokeWidth="1.8" strokeLinejoin="round"/>
  </svg>
);

/* logout */
Ic.Logout = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M14 5.5H6.8A1.5 1.5 0 005.3 7v10a1.5 1.5 0 001.5 1.5H14" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
    <path d="M16.5 8.5L20 12l-3.5 3.5M19.6 12H11" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

/* refresh — reset */
Ic.Refresh = ({ s = 18, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M3.5 12a8.5 8.5 0 0114.5-6L20.5 8.5M20.5 3.5v5h-5" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
    <path d="M20.5 12A8.5 8.5 0 016 18L3.5 15.5M3.5 20.5v-5h5" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

/* arrow.up.arrow.down — sort */
Ic.Sort = ({ s = 18, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <path d="M7 5v14M7 19l-3-3M7 19l3-3" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
    <path d="M17 19V5M17 5l-3 3M17 5l3 3" stroke={c} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

/* gearshape / settings */
Ic.Cog = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="12" cy="12" r="3" stroke={c} strokeWidth="1.8"/>
    <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" stroke={c} strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

Object.assign(window, { Ic });

/* list / bulleted-list (nav trailing) */
Ic.ListBullets = ({ s = 22, c = 'currentColor' }) => (
  <svg width={s} height={s} viewBox="0 0 24 24" fill="none">
    <circle cx="4.5" cy="8" r="1.5" fill={c}/>
    <circle cx="4.5" cy="16" r="1.5" fill={c}/>
    <path d="M9.5 8h10M9.5 16h10" stroke={c} strokeWidth="2.1" strokeLinecap="round"/>
  </svg>
);

Object.assign(window, { Ic });
