// ============================================================
// SamuelMarndi.com — Shared Icons
// 24x24 stroke icons. All inline SVG, brand-aligned.
// ============================================================

// Global React hook aliases — available to all subsequent Babel scripts
const { useState, useEffect, useRef, useMemo, useCallback } = React;
window.useState = useState;
window.useEffect = useEffect;
window.useRef = useRef;

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

const Icons = {
  // Service icons — one per practice area
  network: (p) => <Icon {...p}><circle cx="6" cy="6" r="2"/><circle cx="18" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="18" r="2"/><circle cx="12" cy="12" r="2"/><path d="M7.4 7.4l3.2 3.2M13.4 13.4l3.2 3.2M16.6 7.4l-3.2 3.2M10.6 13.4l-3.2 3.2"/></Icon>,
  shield: (p) => <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3z"/><path d="M9 12l2 2 4-4"/></Icon>,
  cpu: (p) => <Icon {...p}><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 2v2M15 2v2M9 20v2M15 20v2M2 9h2M2 15h2M20 9h2M20 15h2"/></Icon>,
  globe: (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 010 18M12 3a14 14 0 000 18"/></Icon>,
  code: (p) => <Icon {...p}><path d="M8 6l-5 6 5 6M16 6l5 6-5 6M14 4l-4 16"/></Icon>,
  db: (p) => <Icon {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></Icon>,
  ai: (p) => <Icon {...p}><path d="M12 2l1.5 4 4 1.5-4 1.5L12 13l-1.5-4-4-1.5 4-1.5L12 2z"/><path d="M19 14l.8 2 2 .8-2 .8L19 20l-.8-2-2-.8 2-.8.8-2z"/></Icon>,
  chat: (p) => <Icon {...p}><path d="M21 12c0 4.4-4 8-9 8-1.2 0-2.4-.2-3.5-.6L3 21l1.6-4.4C3.6 15.1 3 13.6 3 12c0-4.4 4-8 9-8s9 3.6 9 8z"/><circle cx="9" cy="12" r=".8" fill="currentColor"/><circle cx="12" cy="12" r=".8" fill="currentColor"/><circle cx="15" cy="12" r=".8" fill="currentColor"/></Icon>,
  cloud: (p) => <Icon {...p}><path d="M7 18a5 5 0 01-1-9.9A6 6 0 0118 9.6 4.5 4.5 0 0117 18H7z"/></Icon>,
  iot: (p) => <Icon {...p}><circle cx="12" cy="12" r="2"/><path d="M8 8a5.7 5.7 0 008 0M5 5a10 10 0 0014 0M8 16a5.7 5.7 0 018 0M5 19a10 10 0 0114 0"/></Icon>,
  wrench: (p) => <Icon {...p}><path d="M14.7 6.3a4 4 0 11-5.4 5.4l-6.2 6.2a2 2 0 102.9 2.9l6.2-6.2a4 4 0 005.4-5.4l-2.7 2.7-2.6-.6-.6-2.6 2.7-2.7z"/></Icon>,
  // UI icons
  arrow: (p) => <Icon {...p}><path d="M5 12h14M13 6l6 6-6 6"/></Icon>,
  arrowUp: (p) => <Icon {...p}><path d="M7 17L17 7M9 7h8v8"/></Icon>,
  close: (p) => <Icon {...p}><path d="M18 6L6 18M6 6l12 12"/></Icon>,
  send: (p) => <Icon {...p}><path d="M3 11l18-8-8 18-2-7-8-3z"/></Icon>,
  sparkles: (p) => <Icon {...p}><path d="M12 3l1.5 4 4 1.5-4 1.5L12 13l-1.5-4-4-1.5 4-1.5L12 3z"/><path d="M5 16l.8 2 2 .8-2 .8L5 22l-.8-2-2-.8 2-.8.8-2z"/></Icon>,
  check: (p) => <Icon {...p}><path d="M5 12l5 5 9-12"/></Icon>,
  sun: (p) => <Icon {...p}><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4l1.4-1.4M17 7l1.4-1.4"/></Icon>,
  moon: (p) => <Icon {...p}><path d="M20 14a8 8 0 11-10-10 7 7 0 0010 10z"/></Icon>,
  menu: (p) => <Icon {...p}><path d="M4 7h16M4 12h16M4 17h16"/></Icon>,
  phone: (p) => <Icon {...p}><path d="M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z"/></Icon>,
  mail: (p) => <Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></Icon>,
  whatsapp: (p) => <Icon {...p}><path d="M3 21l1.65-4.5A8 8 0 1112 20a8 8 0 01-4-1.1L3 21z"/><path d="M8.5 9.5c.3 2.5 2.5 4.7 5 5l1.5-1.5-2-1-1 .5c-1-.5-1.5-1-2-2l.5-1-1-2L8.5 9.5z"/></Icon>,
  star: (p) => <Icon {...p}><path d="M12 3l2.7 5.5 6 .9-4.4 4.3 1 6L12 17l-5.4 2.8 1-6L3.3 9.4l6-.9L12 3z"/></Icon>,
  zap: (p) => <Icon {...p}><path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z"/></Icon>,
  building: (p) => <Icon {...p}><rect x="4" y="4" width="16" height="17" rx="1"/><path d="M9 9h.01M15 9h.01M9 13h.01M15 13h.01M9 17h.01M15 17h.01"/></Icon>,
  shop: (p) => <Icon {...p}><path d="M3 9l1-5h16l1 5M3 9v11h18V9M3 9h18M9 14h6"/></Icon>,
  factory: (p) => <Icon {...p}><path d="M3 21V11l5 3V11l5 3V7l8 5v9H3z"/><path d="M9 17h2M14 17h2"/></Icon>,
  heart: (p) => <Icon {...p}><path d="M12 21s-7-4.5-9.5-9A5 5 0 0112 5a5 5 0 019.5 7c-2.5 4.5-9.5 9-9.5 9z"/></Icon>,
  book: (p) => <Icon {...p}><path d="M4 5a2 2 0 012-2h14v18H6a2 2 0 01-2-2V5z"/><path d="M4 17a2 2 0 012-2h14"/></Icon>,
  truck: (p) => <Icon {...p}><rect x="1" y="6" width="13" height="11" rx="1"/><path d="M14 9h4l3 3v5h-7"/><circle cx="6" cy="19" r="2"/><circle cx="17" cy="19" r="2"/></Icon>,
  bed: (p) => <Icon {...p}><path d="M3 20V8M21 20v-6a4 4 0 00-4-4H9v4M3 14h18"/></Icon>,
  download: (p) => <Icon {...p}><path d="M12 4v12M7 11l5 5 5-5M5 20h14"/></Icon>,
  play: (p) => <Icon {...p}><polygon points="6 4 20 12 6 20 6 4"/></Icon>,
  attach: (p) => <Icon {...p}><path d="M21 11l-9 9a5 5 0 01-7-7l9-9a3.5 3.5 0 015 5l-9 9a2 2 0 11-3-3l7-7"/></Icon>,
  calendar: (p) => <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></Icon>,
  user: (p) => <Icon {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-7 8-7s8 3 8 7"/></Icon>,
  rupee: (p) => <Icon {...p}><path d="M6 4h12M6 9h12M9 4c4 0 5 3 5 5s-1 5-5 5L18 20M6 14h3"/></Icon>,
  clock: (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></Icon>,
};

window.Icon = Icon;
window.Icons = Icons;
