// src/icons.jsx — line icons (no emoji, no copyrighted glyphs)
const Icon = ({ d, size = 18, stroke = 1.6, fill = 'none', children, style }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke="currentColor"
       strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" style={style}>
    {d ? <path d={d} /> : children}
  </svg>
);

const IconSearch = (p) => <Icon {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></Icon>;
const IconArrowLeft = (p) => <Icon {...p} d="M15 18l-6-6 6-6" />;
const IconArrowRight = (p) => <Icon {...p} d="M9 6l6 6-6 6" />;
const IconClose = (p) => <Icon {...p}><path d="M6 6l12 12"/><path d="M18 6l-12 12"/></Icon>;
const IconDownload = (p) => <Icon {...p}><path d="M12 4v12"/><path d="m6 12 6 6 6-6"/><path d="M5 20h14"/></Icon>;
const IconRotate = (p) => <Icon {...p}><path d="M3 12a9 9 0 0 1 15.5-6.3L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15.5 6.3L3 16"/><path d="M3 21v-5h5"/></Icon>;
const IconMoon = (p) => <Icon {...p} d="M20 14.5A8.5 8.5 0 1 1 9.5 4a7 7 0 0 0 10.5 10.5z" />;
const IconSun = (p) => <Icon {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.9 4.9 1.4 1.4"/><path d="m17.7 17.7 1.4 1.4"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m4.9 19.1 1.4-1.4"/><path d="m17.7 6.3 1.4-1.4"/></Icon>;
const IconPhone = (p) => <Icon {...p}><rect x="6" y="2" width="12" height="20" rx="3"/><path d="M11 18h2"/></Icon>;
const IconDesktop = (p) => <Icon {...p}><rect x="2" y="4" width="20" height="13" rx="2"/><path d="M8 21h8"/><path d="M12 17v4"/></Icon>;
const IconCube = (p) => <Icon {...p}><path d="M21 8.5 12 13 3 8.5"/><path d="m12 13 0 9"/><path d="M21 8.5 12 4 3 8.5 3 15.5 12 20 21 15.5z"/></Icon>;
const IconCamera = (p) => <Icon {...p}><path d="M3 8.5A2.5 2.5 0 0 1 5.5 6H8l1.5-2h5L16 6h2.5A2.5 2.5 0 0 1 21 8.5v9A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5z"/><circle cx="12" cy="13" r="3.5"/></Icon>;
const IconInfo = (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M12 8h.01"/><path d="M11 12h1v5h1"/></Icon>;
const IconCheck = (p) => <Icon {...p} d="m5 12 5 5 9-12" />;
const IconCopy = (p) => <Icon {...p}><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></Icon>;
const IconFilter = (p) => <Icon {...p}><path d="M3 5h18"/><path d="M6 12h12"/><path d="M10 19h4"/></Icon>;
const IconLayers = (p) => <Icon {...p}><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/><path d="m3 18 9 5 9-5"/></Icon>;
const IconRuler = (p) => <Icon {...p}><path d="M3 17 17 3l4 4L7 21z"/><path d="m7 11 2 2"/><path d="m11 7 2 2"/><path d="m15 11 2 2"/></Icon>;
const IconCal = (p) => <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18"/><path d="M8 3v4"/><path d="M16 3v4"/></Icon>;
const IconTag = (p) => <Icon {...p}><path d="M3 12V4a1 1 0 0 1 1-1h8l9 9-9 9z"/><circle cx="8" cy="8" r="1.5"/></Icon>;
const IconPin = (p) => <Icon {...p}><path d="M12 21s7-7.5 7-12a7 7 0 1 0-14 0c0 4.5 7 12 7 12z"/><circle cx="12" cy="9" r="2.5"/></Icon>;
const IconLock = (p) => <Icon {...p}><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></Icon>;
const IconMenu = (p) => <Icon {...p}><path d="M3 7h18"/><path d="M3 13h18"/><path d="M3 19h12"/></Icon>;
const IconHome = (p) => <Icon {...p}><path d="M3 11 12 3l9 8"/><path d="M5 10v10h14V10"/></Icon>;
const IconMail = (p) => <Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></Icon>;
const IconExternal = (p) => <Icon {...p}><path d="M14 5h5v5"/><path d="M19 5 10 14"/><path d="M19 14v5H5V5h5"/></Icon>;
const IconLogo = ({ size = 18 }) => (
  // small icon-only mark (placeholder shape, not the full brand logo)
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none">
    <path d="M5 4h7a6 6 0 0 1 0 12H9v6H5z" fill="var(--prestes-green)"/>
    <path d="M12 4a6 6 0 0 1 0 12H9V10a6 6 0 0 1 3-6z" fill="var(--prestes-teal)" opacity="0.85"/>
  </svg>
);

Object.assign(window, {
  IconSearch, IconArrowLeft, IconArrowRight, IconClose, IconDownload, IconRotate,
  IconMoon, IconSun, IconPhone, IconDesktop, IconCube, IconCamera, IconInfo, IconCheck,
  IconCopy, IconFilter, IconLayers, IconRuler, IconCal, IconTag, IconPin, IconLock, IconLogo,
  IconMenu, IconHome, IconMail, IconExternal,
});
