// icons.jsx — minimal stroke icons used across the app
const stroke = { fill: "none", stroke: "currentColor", strokeWidth: 1.6, strokeLinecap: "round", strokeLinejoin: "round" };

const Icon = ({ children, size = 16, className = "", style = {} }) => (
  <svg className={className} style={style} width={size} height={size} viewBox="0 0 24 24" {...stroke}>{children}</svg>
);

const I = {
  grid:  (p) => <Icon {...p}><rect x="3.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.5"/></Icon>,
  cal:   (p) => <Icon {...p}><rect x="3.5" y="5" width="17" height="15.5" rx="2"/><path d="M3.5 9.5h17"/><path d="M8 3v4M16 3v4"/></Icon>,
  tag:   (p) => <Icon {...p}><path d="M3.5 12.5V4h8.5l8.5 8.5-8.5 8.5z"/><circle cx="8" cy="8" r="1.4"/></Icon>,
  clock: (p) => <Icon {...p}><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></Icon>,
  users: (p) => <Icon {...p}><circle cx="9" cy="9" r="3.2"/><path d="M3.5 19c.6-3 2.9-4.6 5.5-4.6s4.9 1.6 5.5 4.6"/><circle cx="17" cy="8.5" r="2.6"/><path d="M16 14.5c2 0 4.1 1.2 4.5 4"/></Icon>,
  link:  (p) => <Icon {...p}><path d="M10 14a3.5 3.5 0 0 1 0-5l3-3a3.5 3.5 0 0 1 5 5l-1.5 1.5"/><path d="M14 10a3.5 3.5 0 0 1 0 5l-3 3a3.5 3.5 0 0 1-5-5l1.5-1.5"/></Icon>,
  card:  (p) => <Icon {...p}><rect x="3.5" y="6" width="17" height="13" rx="2"/><path d="M3.5 10.5h17"/></Icon>,
  cog:   (p) => <Icon {...p}><circle cx="12" cy="12" r="2.6"/><path d="M19.4 14.3 21 13l-1.6-1.3.4-2-2-.6-.7-1.9-2 .4L13 5.5l-1.3 1.6-2-.4-.6 2L7.2 9.4l.4 2L6 13l1.6 1.3-.4 2 2 .6.7 1.9 2-.4L13 19.5l1.3-1.6 2 .4.6-2L18.8 16z"/></Icon>,
  bell:  (p) => <Icon {...p}><path d="M6 16h12l-1.5-2v-3.5c0-2.8-2-5-4.5-5s-4.5 2.2-4.5 5V14z"/><path d="M10.5 19a1.5 1.5 0 0 0 3 0"/></Icon>,
  chev:  (p) => <Icon {...p}><path d="m9 6 6 6-6 6"/></Icon>,
  chevDn:(p) => <Icon {...p}><path d="m6 9 6 6 6-6"/></Icon>,
  chevL: (p) => <Icon {...p}><path d="m15 6-6 6 6 6"/></Icon>,
  more:  (p) => <Icon {...p}><circle cx="6" cy="12" r="1.2"/><circle cx="12" cy="12" r="1.2"/><circle cx="18" cy="12" r="1.2"/></Icon>,
  copy:  (p) => <Icon {...p}><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h3"/></Icon>,
  check: (p) => <Icon {...p}><path d="m5 12.5 4.5 4.5L19 7"/></Icon>,
  shield:(p) => <Icon {...p}><path d="M12 3.5 5 6v6c0 4 3 7.5 7 8.5 4-1 7-4.5 7-8.5V6z"/><path d="m9 12 2 2 4-4"/></Icon>,
  arrow: (p) => <Icon {...p}><path d="M5 12h14M13 6l6 6-6 6"/></Icon>,
  arrowUp:(p)=> <Icon {...p}><path d="m6 14 6-6 6 6"/></Icon>,
  globe: (p) => <Icon {...p}><circle cx="12" cy="12" r="8.5"/><path d="M3.5 12h17M12 3.5c2.5 3 2.5 14 0 17M12 3.5c-2.5 3-2.5 14 0 17"/></Icon>,
  location:(p) => <Icon {...p}><path d="M12 21s6-5.1 6-11a6 6 0 0 0-12 0c0 5.9 6 11 6 11z"/><circle cx="12" cy="10" r="2.2"/></Icon>,
  bolt:  (p) => <Icon {...p}><path d="M13 3 5 14h6l-1 7 8-11h-6z"/></Icon>,
  tagAlt:(p) => <Icon {...p}><path d="m3 9 9-5 9 5v6l-9 5-9-5z"/><path d="M3 9l9 5 9-5M12 14v7"/></Icon>,
  rev:   (p) => <Icon {...p}><circle cx="12" cy="12" r="8.5"/><path d="M14.5 9.5h-3a1.5 1.5 0 0 0 0 3h1a1.5 1.5 0 0 1 0 3h-3M12 8v1.5M12 14.5V16"/></Icon>,
  show:  (p) => <Icon {...p}><circle cx="12" cy="12" r="3"/><circle cx="12" cy="12" r="8" strokeDasharray="3 3"/></Icon>,
  bookings: (p) => <Icon {...p}><path d="M5 6h14M5 12h14M5 18h9"/></Icon>,
  layers:(p) => <Icon {...p}><path d="m3 7 9-4 9 4-9 4z"/><path d="m3 12 9 4 9-4M3 17l9 4 9-4"/></Icon>,
  share: (p) => <Icon {...p}><circle cx="18" cy="5" r="2.5"/><circle cx="6" cy="12" r="2.5"/><circle cx="18" cy="19" r="2.5"/><path d="m8.3 13.2 7.4 4.3M15.7 6.5 8.3 10.8"/></Icon>,
};

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