/* global React */
// Minimal stroke icons. All take size (default 18) + props.
const Ic = (path, vb = "0 0 24 24") => ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox={vb} fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}>{path}</svg>;

const IconStar = ({ size = 14, filled = true, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill={filled ? "currentColor" : "none"} stroke="currentColor" strokeWidth="1.4" strokeLinejoin="round" {...p}>
    <path d="M12 2.5l2.92 6.18 6.58.78-4.86 4.6 1.3 6.74L12 17.6l-5.94 3.2 1.3-6.74L2.5 9.46l6.58-.78z" />
  </svg>;

const IconHalfStar = ({ size = 14, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.4" strokeLinejoin="round" {...p}>
    <defs><linearGradient id="hs"><stop offset="50%" stopColor="currentColor" /><stop offset="50%" stopColor="transparent" /></linearGradient></defs>
    <path fill="url(#hs)" d="M12 2.5l2.92 6.18 6.58.78-4.86 4.6 1.3 6.74L12 17.6l-5.94 3.2 1.3-6.74L2.5 9.46l6.58-.78z" />
  </svg>;

const IconArrow = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M5 12h14M13 6l6 6-6 6"/></svg>;

const IconArrowLeft = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M19 12H5M11 18l-6-6 6-6"/></svg>;

const IconCheck = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M20 6L9 17l-5-5"/></svg>;

const IconClose = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M18 6L6 18M6 6l12 12"/></svg>;

const IconPhone = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>;

const IconWhatsApp = ({ size = 22, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor" {...p}><path d="M19.05 4.91A9.82 9.82 0 0 0 12.04 2c-5.46 0-9.91 4.45-9.91 9.91 0 1.75.46 3.45 1.32 4.95L2.05 22l5.25-1.38a9.9 9.9 0 0 0 4.74 1.21h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.91-7.01zm-7.01 15.24h-.01a8.23 8.23 0 0 1-4.19-1.15l-.3-.18-3.12.82.83-3.04-.2-.31a8.21 8.21 0 0 1-1.26-4.39c0-4.54 3.7-8.24 8.25-8.24 2.2 0 4.27.86 5.83 2.41a8.18 8.18 0 0 1 2.42 5.83c0 4.54-3.7 8.24-8.25 8.24zm4.52-6.16c-.25-.12-1.47-.72-1.69-.81-.23-.08-.39-.12-.56.13-.16.25-.64.81-.79.97-.14.17-.29.19-.54.06-.25-.12-1.05-.39-2-1.23-.74-.66-1.24-1.47-1.38-1.72-.14-.25-.02-.39.11-.51.11-.11.25-.29.37-.43.12-.14.16-.25.25-.41.08-.17.04-.31-.02-.43-.06-.12-.56-1.34-.76-1.84-.2-.48-.41-.42-.56-.43h-.48c-.17 0-.43.06-.66.31-.23.25-.86.85-.86 2.07 0 1.22.89 2.4 1.01 2.56.12.17 1.75 2.67 4.23 3.74.59.26 1.05.41 1.41.52.59.19 1.13.16 1.56.1.48-.07 1.47-.6 1.67-1.18.21-.58.21-1.07.15-1.18-.06-.11-.23-.17-.48-.29z"/></svg>;

const IconMail = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6l-10 7L2 6"/></svg>;

const IconPin = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 1 1 16 0z"/><circle cx="12" cy="10" r="3"/></svg>;

const IconClock = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>;

const IconShield = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg>;

const IconSparkle = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M12 2v6M12 16v6M2 12h6M16 12h6M5 5l4 4M15 15l4 4M5 19l4-4M15 9l4-4"/></svg>;

const IconCalendar = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M16 3v4M8 3v4M3 11h18"/></svg>;

const IconTooth = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M12 2c-2.5 0-3 1.2-5 1.5C5 3.8 3.5 5 3.5 7.5c0 2.5.8 4 1.5 6.5.6 2 .5 6 2.5 6 1.5 0 1.5-3 2.5-3h4c1 0 1 3 2.5 3 2 0 1.9-4 2.5-6 .7-2.5 1.5-4 1.5-6.5C20.5 5 19 3.8 17 3.5 15 3.2 14.5 2 12 2z"/></svg>;

const IconAligner = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M4 8c4-2 12-2 16 0M5 8c0 5 2 12 7 12s7-7 7-12"/><path d="M9 11h6M9 14h6"/></svg>;

const IconImplant = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M10 3h4l-1 4h-2zM9 7h6v3H9zM12 10v12M9 13h6M9 16h6M9 19h6"/></svg>;

const IconLeaf = ({ size = 18, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><path d="M3 21c0-9 7-16 18-18-1 11-7 18-18 18z"/><path d="M3 21c4-4 9-7 15-9"/></svg>;

const IconCrown = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor" {...p}><path d="M3 7l4 4 5-7 5 7 4-4-2 12H5z"/></svg>;

const IconDoctify = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor" {...p}><circle cx="12" cy="12" r="10" fill="currentColor" opacity=".15"/><path d="M12 6l1.6 3.7L17.5 10l-3 2.6.9 3.9L12 14.6 8.6 16.5l.9-3.9-3-2.6 3.9-.3z"/></svg>;

const IconLang = ({ size = 14, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20"/></svg>;

const IconFacebook = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor" {...p}><path d="M22 12a10 10 0 1 0-11.6 9.9V14.9H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7c4.7-.7 8.4-4.8 8.4-9.9z"/></svg>;

const IconInstagram = ({ size = 16, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" {...p}><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r=".8" fill="currentColor"/></svg>;

const IconMenu = ({ size = 22, ...p }) =>
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" {...p}><path d="M4 7h16M4 12h16M4 17h16"/></svg>;

Object.assign(window, {
  IconStar, IconHalfStar, IconArrow, IconArrowLeft, IconCheck, IconClose, IconPhone, IconWhatsApp,
  IconMail, IconPin, IconClock, IconShield, IconSparkle, IconCalendar, IconTooth, IconAligner,
  IconImplant, IconLeaf, IconCrown, IconDoctify, IconLang, IconFacebook, IconInstagram, IconMenu
});
