/* global React */
/* PAMP — icon library (minimal line-style) */

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

const I = {
  dashboard: (p) => (
    <Icon {...p}><rect x="3" y="3" width="7" height="9" rx="1.5" /><rect x="14" y="3" width="7" height="5" rx="1.5" /><rect x="14" y="12" width="7" height="9" rx="1.5" /><rect x="3" y="16" width="7" height="5" rx="1.5" /></Icon>
  ),
  users: (p) => (
    <Icon {...p}><circle cx="9" cy="8" r="3.5" /><path d="M2.5 20c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5" /><circle cx="17" cy="7" r="2.5" /><path d="M16 14c2.8 0 5 2.2 5 5" /></Icon>
  ),
  bookings: (p) => (
    <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 10h18" /><path d="M8 3v4M16 3v4" /><circle cx="8" cy="15" r="1" fill="currentColor" /></Icon>
  ),
  calendar: (p) => (
    <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 10h18M8 3v4M16 3v4" /></Icon>
  ),
  bell: (p) => (
    <Icon {...p}><path d="M6 9a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6" /><path d="M10 19a2 2 0 0 0 4 0" /></Icon>
  ),
  ticket: (p) => (
    <Icon {...p}><path d="M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z" /><path d="M13 7v10" strokeDasharray="2 2" /></Icon>
  ),
  card: (p) => (
    <Icon {...p}><rect x="2.5" y="5" width="19" height="14" rx="2" /><path d="M2.5 10h19" /><path d="M6 15h4" /></Icon>
  ),
  wallet: (p) => (
    <Icon {...p}><path d="M3 7a2 2 0 0 1 2-2h12l4 4v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /><path d="M17 5v4h4" /><circle cx="17" cy="14" r="1.3" fill="currentColor" /></Icon>
  ),
  crown: (p) => (
    <Icon {...p}><path d="M3 7l4 4 5-7 5 7 4-4-2 12H5z" /><path d="M5 19h14" /></Icon>
  ),
  chart: (p) => (
    <Icon {...p}><path d="M4 19h17" /><path d="M5 14l4-5 3 3 6-8" /><circle cx="5" cy="14" r="1.2" fill="currentColor" /><circle cx="18" cy="4" r="1.2" fill="currentColor" /></Icon>
  ),
  help: (p) => (
    <Icon {...p}><circle cx="12" cy="12" r="9" /><path d="M9.5 9.5a2.5 2.5 0 1 1 4 2c-1 .7-1.5 1.2-1.5 2.5" /><circle cx="12" cy="17" r=".7" fill="currentColor" /></Icon>
  ),
  settings: (p) => (
    <Icon {...p}><path d="M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8" /><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1A2 2 0 1 1 4.3 17l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3h0a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8v0a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z" /></Icon>
  ),
  logout: (p) => (
    <Icon {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" /><path d="M16 17l5-5-5-5" /><path d="M21 12H9" /></Icon>
  ),
  search: (p) => (
    <Icon {...p}><circle cx="11" cy="11" r="7" /><path d="m21 21-4.3-4.3" /></Icon>
  ),
  sun: (p) => (
    <Icon {...p}><circle cx="12" cy="12" r="4" /><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4" /></Icon>
  ),
  moon: (p) => (
    <Icon {...p}><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z" /></Icon>
  ),
  menu: (p) => (
    <Icon {...p}><path d="M4 7h16M4 12h16M4 17h10" /></Icon>
  ),
  panel: (p) => (
    <Icon {...p}><rect x="3" y="4" width="18" height="16" rx="2" /><path d="M9 4v16" /></Icon>
  ),
  plus: (p) => (
    <Icon {...p}><path d="M12 5v14M5 12h14" /></Icon>
  ),
  arrowR: (p) => (
    <Icon {...p}><path d="M5 12h14M13 6l6 6-6 6" /></Icon>
  ),
  arrowUR: (p) => (
    <Icon {...p}><path d="M7 17L17 7M8 7h9v9" /></Icon>
  ),
  chevD: (p) => (
    <Icon {...p}><path d="m6 9 6 6 6-6" /></Icon>
  ),
  chevR: (p) => (
    <Icon {...p}><path d="m9 6 6 6-6 6" /></Icon>
  ),
  filter: (p) => (
    <Icon {...p}><path d="M4 5h16l-6 8v6l-4-2v-4z" /></Icon>
  ),
  export: (p) => (
    <Icon {...p}><path d="M12 3v12" /><path d="M7 8l5-5 5 5" /><path d="M5 17v2a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-2" /></Icon>
  ),
  ellipsis: (p) => (
    <Icon {...p}><circle cx="5" cy="12" r="1.3" fill="currentColor" /><circle cx="12" cy="12" r="1.3" fill="currentColor" /><circle cx="19" cy="12" r="1.3" fill="currentColor" /></Icon>
  ),
  check: (p) => (
    <Icon {...p}><path d="M5 12l4.5 4.5L20 6" /></Icon>
  ),
  x: (p) => (
    <Icon {...p}><path d="M6 6l12 12M18 6L6 18" /></Icon>
  ),
  scissors: (p) => (
    <Icon {...p}><circle cx="6" cy="6" r="3" /><circle cx="6" cy="18" r="3" /><path d="M8.5 7.7 20 18M14 12.5 20 6" /></Icon>
  ),
  sparkle: (p) => (
    <Icon {...p}><path d="M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z" /><path d="M19 17l.7 2 2 .7-2 .7-.7 2-.7-2-2-.7 2-.7z" /></Icon>
  ),
  heart: (p) => (
    <Icon {...p}><path d="M12 21s-7-4.5-9.5-9C.7 8 3 4 6.5 4 9 4 10.6 5.4 12 7.4 13.4 5.4 15 4 17.5 4 21 4 23.3 8 21.5 12 19 16.5 12 21 12 21z" /></Icon>
  ),
  pin: (p) => (
    <Icon {...p}><path d="M12 2c4 0 5 4 3 7l1 5-4-2-4 2 1-5c-2-3-1-7 3-7z" /><path d="M12 14v8" /></Icon>
  ),
  store: (p) => (
    <Icon {...p}><path d="M3 7l1.5-4h15L21 7" /><path d="M3 7v13a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V7" /><path d="M3 7h18" /><path d="M9 12h6" /></Icon>
  ),
  inbox: (p) => (
    <Icon {...p}><path d="M3 13h5l1 3h6l1-3h5" /><path d="M5 5h14l2 8v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6z" /></Icon>
  ),
  coupon: (p) => (
    <Icon {...p}><path d="M3 9V7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4z" /><path d="M9 9h0M9 15h0" stroke="currentColor" strokeWidth="2.4" /></Icon>
  ),
  staff: (p) => (
    <Icon {...p}><circle cx="12" cy="7" r="4" /><path d="M4 21a8 8 0 1 1 16 0" /></Icon>
  ),
  list: (p) => (
    <Icon {...p}><path d="M8 6h13M8 12h13M8 18h13" /><circle cx="4" cy="6" r="1" fill="currentColor" /><circle cx="4" cy="12" r="1" fill="currentColor" /><circle cx="4" cy="18" r="1" fill="currentColor" /></Icon>
  ),
  pamp: (p) => (
    <Icon {...p}><path d="M5 21V5a4 4 0 0 1 4-4h2a5 5 0 1 1 0 10H5" /></Icon>
  ),
  gift: (p) => (
    <Icon {...p}>
      <rect x="3" y="8" width="18" height="4" rx="1" />
      <path d="M5 12v8a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-8" />
      <path d="M12 8v13" />
      <path d="M12 8S11 2.5 8.3 2.5 5.6 5.2 6.8 6.3 12 8 12 8Z" />
      <path d="M12 8s1-5.5 3.7-5.5S18.4 5.2 17.2 6.3 12 8 12 8Z" />
    </Icon>
  ),
  mail: (p) => (
    <Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2" /><path d="m3 7 9 7 9-7" /></Icon>
  ),
  phone: (p) => (
    <Icon {...p}><path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.5 2.6a2 2 0 0 1-.4 2.1L8 9.7a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.8.3 1.7.5 2.6.6a2 2 0 0 1 1.7 2z" /></Icon>
  ),
  star: (p) => (
    <Icon {...p}><path d="m12 2 3 7 7 .5-5.5 4.8L18 22l-6-4-6 4 1.5-7.7L2 9.5 9 9z" /></Icon>
  ),
  clock: (p) => (
    <Icon {...p}><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3.5 2" /></Icon>
  ),
  location: (p) => (
    <Icon {...p}><path d="M12 22s-7-6.5-7-12a7 7 0 1 1 14 0c0 5.5-7 12-7 12z" /><circle cx="12" cy="10" r="2.5" /></Icon>
  ),
  download: (p) => (
    <Icon {...p}><path d="M12 3v12" /><path d="M7 11l5 5 5-5" /><path d="M5 19v0a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v0" /></Icon>
  ),
  arrowD: (p) => (
    <Icon {...p}><path d="M12 5v14M6 13l6 6 6-6" /></Icon>
  ),
  arrowU: (p) => (
    <Icon {...p}><path d="M12 19V5M6 11l6-6 6 6" /></Icon>
  ),
  trend: (p) => (
    <Icon {...p}><path d="M3 17l6-6 4 4 8-8" /><path d="M14 7h7v7" /></Icon>
  ),
  eye: (p) => (
    <Icon {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" /><circle cx="12" cy="12" r="3" /></Icon>
  ),
  eyeOff: (p) => (
    <Icon {...p}><path d="M3 3l18 18" /><path d="M10.6 6.1A11 11 0 0 1 12 6c6.5 0 10 6 10 6a17.6 17.6 0 0 1-3.1 3.8" /><path d="M6.6 6.6A17.6 17.6 0 0 0 2 12s3.5 6 10 6a10.7 10.7 0 0 0 4.2-.9" /><path d="M9.9 10a3 3 0 0 0 4.2 4.2" /></Icon>
  ),
  lock: (p) => (
    <Icon {...p}><rect x="4" y="11" width="16" height="10" rx="2" /><path d="M8 11V7a4 4 0 0 1 8 0v4" /></Icon>
  ),
  shield: (p) => (
    <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8.5-8 9-4.5-.5-8-4-8-9V6z" /></Icon>
  ),
  edit: (p) => (
    <Icon {...p}><path d="M11 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-6"/><path d="M18.5 2.5a2.1 2.1 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></Icon>
  ),
  trash: (p) => (
    <Icon {...p}><path d="M3 6h18"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/><path d="M10 11v6M14 11v6"/><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></Icon>
  ),
  refresh: (p) => (
    <Icon {...p}><path d="M21 4v6h-6"/><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M3 20v-6h6"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/></Icon>
  ),
  reply: (p) => (
    <Icon {...p}><path d="M9 17L4 12l5-5"/><path d="M20 18v-2a4 4 0 0 0-4-4H4"/></Icon>
  ),
  send: (p) => (
    <Icon {...p}><path d="M22 2L11 13"/><path d="M22 2L15 22l-4-9-9-4z"/></Icon>
  ),
  upload: (p) => (
    <Icon {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M17 8l-5-5-5 5"/><path d="M12 3v12"/></Icon>
  ),
  alert: (p) => (
    <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M12 8v4"/><circle cx="12" cy="16" r=".7" fill="currentColor"/></Icon>
  ),
  user_plus: (p) => (
    <Icon {...p}><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M19 8v6M22 11h-6"/></Icon>
  ),
  transfer: (p) => (
    <Icon {...p}><path d="M17 1l4 4-4 4"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><path d="M7 23l-4-4 4-4"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></Icon>
  ),
  copy: (p) => (
    <Icon {...p}><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></Icon>
  ),
};

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