// icons.jsx — lucide-style inline SVG icons. Stroke 1.5, 20x20 viewbox default.
const Ico = ({ d, size = 16, stroke = 1.5, fill = "none", children, style, className, title }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke="currentColor"
    strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round"
    className={className ? "ico " + className : "ico"} style={style}>
    {title && <title>{title}</title>}
    {d ? <path d={d} /> : children}
  </svg>
);

const I = {
  home: (p) => <Ico {...p}><path d="M3 10.5 12 3l9 7.5" /><path d="M5 9.5V20h14V9.5" /></Ico>,
  phone: (p) => <Ico {...p} 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.72c.13 1.05.37 2.07.72 3.06a2 2 0 0 1-.45 2.11L8.09 10.2a16 16 0 0 0 6 6l1.31-1.31a2 2 0 0 1 2.11-.45c.99.35 2.01.59 3.06.72A2 2 0 0 1 22 16.92z" />,
  list:  (p) => <Ico {...p}><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" /></Ico>,
  pin:   (p) => <Ico {...p}><path d="M12 22s8-7.58 8-13a8 8 0 0 0-16 0c0 5.42 8 13 8 13z" /><circle cx="12" cy="9" r="2.5" /></Ico>,
  flag:  (p) => <Ico {...p}><path d="M4 22V4h12l-2 4 2 4H4" /></Ico>,
  route: (p) => <Ico {...p}><circle cx="6" cy="19" r="3" /><circle cx="18" cy="5" r="3" /><path d="M6 16V8a5 5 0 0 1 5-5h2M18 8v8a5 5 0 0 1-5 5h-2" /></Ico>,
  users: (p) => <Ico {...p}><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" /><circle cx="9" cy="7" r="4" /><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75" /></Ico>,
  wallet:(p) => <Ico {...p}><path d="M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0 0 4h16v4" /><path d="M3 7v12a2 2 0 0 0 2 2h16v-5" /><circle cx="17" cy="14" r="1.5" /></Ico>,
  brush: (p) => <Ico {...p}><path d="M7 14.5 3.5 18a2.5 2.5 0 0 0 3.5 3.5L10.5 18" /><path d="M20.5 3.5a2.83 2.83 0 0 0-4 0L7 13l4 4 9.5-9.5a2.83 2.83 0 0 0 0-4z" /></Ico>,
  plug:  (p) => <Ico {...p}><path d="M9 2v6M15 2v6M6 8h12v3a6 6 0 0 1-12 0V8zM12 17v5" /></Ico>,
  key:   (p) => <Ico {...p}><circle cx="7.5" cy="15.5" r="5.5" /><path d="m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3" /></Ico>,
  cog:   (p) => <Ico {...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 1 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 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.6 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 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.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 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.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" /></Ico>,
  chev:  (p) => <Ico {...p}><path d="m9 18 6-6-6-6" /></Ico>,
  chevD: (p) => <Ico {...p}><path d="m6 9 6 6 6-6" /></Ico>,
  search:(p) => <Ico {...p}><circle cx="11" cy="11" r="7" /><path d="m21 21-4.35-4.35" /></Ico>,
  plus:  (p) => <Ico {...p}><path d="M12 5v14M5 12h14" /></Ico>,
  play:  (p) => <Ico {...p} fill="currentColor" stroke="none"><path d="M6 4v16l14-8z" /></Ico>,
  pause: (p) => <Ico {...p} fill="currentColor" stroke="none"><path d="M6 4h4v16H6zM14 4h4v16h-4z" /></Ico>,
  dl:    (p) => <Ico {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" /></Ico>,
  share: (p) => <Ico {...p}><circle cx="18" cy="5" r="3" /><circle cx="6" cy="12" r="3" /><circle cx="18" cy="19" r="3" /><path d="m8.6 13.5 6.8 4M15.4 6.5l-6.8 4" /></Ico>,
  bell:  (p) => <Ico {...p}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.94 1.94 0 0 0 3.4 0" /></Ico>,
  help:  (p) => <Ico {...p}><circle cx="12" cy="12" r="9" /><path d="M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3M12 17h.01" /></Ico>,
  dots:  (p) => <Ico {...p}><circle cx="12" cy="12" r="1" /><circle cx="19" cy="12" r="1" /><circle cx="5" cy="12" r="1" /></Ico>,
  check: (p) => <Ico {...p}><path d="M20 6 9 17l-5-5" /></Ico>,
  x:     (p) => <Ico {...p}><path d="M18 6 6 18M6 6l12 12" /></Ico>,
  arrowIn: (p) => <Ico {...p}><path d="M15 10V4l-6 6M4 14l6-6" /></Ico>,
  arrowOut: (p) => <Ico {...p}><path d="m7 17 10-10M17 7h-9v10" /></Ico>,
  filter:(p) => <Ico {...p}><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z" /></Ico>,
  sparkle: (p) => <Ico {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8" /></Ico>,
  moon:  (p) => <Ico {...p} d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" />,
  side:  (p) => <Ico {...p}><rect x="3" y="4" width="18" height="16" rx="2" /><path d="M9 4v16" /></Ico>,
  tag:   (p) => <Ico {...p}><path d="M20.59 13.41 13 21l-8-8V4h9l6.59 6.59a2 2 0 0 1 0 2.82z" /><circle cx="8.5" cy="8.5" r="1" /></Ico>,
  globe: (p) => <Ico {...p}><circle cx="12" cy="12" r="9" /><path d="M3 12h18M12 3a13 13 0 0 1 0 18M12 3a13 13 0 0 0 0 18" /></Ico>,
  mic:   (p) => <Ico {...p}><rect x="9" y="2" width="6" height="12" rx="3" /><path d="M19 10a7 7 0 0 1-14 0M12 17v4M8 21h8" /></Ico>,
  clock: (p) => <Ico {...p}><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></Ico>,
  upload:(p) => <Ico {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12" /></Ico>,
};

window.I = I;
