// 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 = {
  video: (p) => <Icon {...p}><rect x="2.5" y="7" width="13" height="10" rx="2"/><path d="M15.5 10.5 21.5 7.5v9l-6-3z"/></Icon>,
  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="3"/><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 4.68 15a1.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 9 4.68a1.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 19.4 9a1.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"/></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>,
  star:  (p) => <Icon {...p}><polygon points="12,2.5 15.09,8.75 22,9.75 17,14.6 18.18,21.5 12,18.25 5.82,21.5 7,14.6 2,9.75 8.91,8.75" strokeLinejoin="round"/></Icon>,
  plus:  (p) => <Icon {...p}><path d="M12 5v14M5 12h14"/></Icon>,
  x:     (p) => <Icon {...p}><path d="M18 6 6 18M6 6l12 12"/></Icon>,
  mail:  (p) => <Icon {...p}><rect x="3" y="6" width="18" height="13" rx="2"/><path d="m3 9 9 6 9-6"/></Icon>,
  phone: (p) => <Icon {...p}><path d="M5.5 7a2 2 0 0 1 2-2h.5l1.5 3.5-1.5 1.5A11 11 0 0 0 11.5 13a11 11 0 0 0 3 2.5l1.5-1.5 3.5 1.5v.5a2 2 0 0 1-2 2C8.5 19 5 15.5 5.5 7z"/></Icon>,
  warn:  (p) => <Icon {...p}><path d="M12 4 2.5 20.5h19z"/><path d="M12 9.5v5M12 17.5v.5"/></Icon>,
  info:  (p) => <Icon {...p}><circle cx="12" cy="12" r="8.5"/><path d="M12 8v1M12 11v5"/></Icon>,
  hand:  (p) => <Icon {...p}><path d="M18 11V6.5a1.5 1.5 0 0 0-3 0M15 7V5.5a1.5 1.5 0 0 0-3 0M12 7V4.5a1.5 1.5 0 0 0-3 0V14l-2-3.5a1.5 1.5 0 0 0-2.6 1.5l3.1 6A6 6 0 0 0 18 14v-3a1.5 1.5 0 0 0-3 0"/></Icon>,
  lock:  (p) => <Icon {...p}><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></Icon>,
};

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

// ─── Brand logos for integration cards ───────────────────────
// Each returns a JSX element sized to sit inside .intg-logo (36×36px)
// Icons include their own background — do NOT add a background to the container.
const blImg = (file) => (
  <img
    src={`./integrations-icons/${file}`}
    style={{ width:'100%', height:'100%', display:'block', borderRadius:'inherit' }}
    alt=""
  />
);

window.Bl = {
  stripe:   blImg('stripe.svg'),
  paypal:   blImg('paypal.svg'),
  gcal:     blImg('google-calendar.svg'),
  apple:    blImg('apple.svg'),
  whatsapp: blImg('whats-app.svg'),
  twilio:   blImg('twilio.svg'),
  square:   blImg('stripe.svg'),   // fallback — no square.svg provided
  zoom:     blImg('zoom.svg'),
  teams:    blImg('microsoft-teams.svg'),
  gmeet:    blImg('google-meet.svg'),
};
