// Lightweight inline-SVG icon set. Stroke 1.5, square caps. Pipal-house style.
const Ic = ({ d, size = 14, fill = "none", stroke = "currentColor", strokeWidth = 1.5, children, ...rest }) => (
  <svg viewBox="0 0 24 24" width={size} height={size} fill={fill} stroke={stroke}
       strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d ? <path d={d} /> : children}
  </svg>
);

const Icons = {
  pulse:    (p) => <Ic {...p}><path d="M3 12h4l2-7 4 14 2-7h6"/></Ic>,
  cart:     (p) => <Ic {...p}><circle cx="9" cy="20" r="1.4"/><circle cx="17" cy="20" r="1.4"/><path d="M3 4h2l2.4 11.5a2 2 0 0 0 2 1.5h7.6a2 2 0 0 0 2-1.5L21 8H6"/></Ic>,
  truck:    (p) => <Ic {...p}><path d="M2 7h11v10H2zM13 10h5l3 3v4h-8"/><circle cx="6" cy="18" r="1.6"/><circle cx="18" cy="18" r="1.6"/></Ic>,
  package:  (p) => <Ic {...p}><path d="M3 7l9-4 9 4-9 4-9-4zM3 7v10l9 4 9-4V7M12 11v10"/></Ic>,
  users:    (p) => <Ic {...p}><circle cx="9" cy="8" r="3.2"/><path d="M3 19c0-3 2.7-5 6-5s6 2 6 5"/><path d="M16 5.2a3.2 3.2 0 0 1 0 5.6M21 19c0-2.4-1.6-4.2-3.8-4.8"/></Ic>,
  store:    (p) => <Ic {...p}><path d="M3 9l1.5-5h15L21 9M3 9v11h18V9M3 9h18M9 20v-7h6v7"/></Ic>,
  bike:     (p) => <Ic {...p}><circle cx="5.5" cy="17.5" r="3"/><circle cx="18.5" cy="17.5" r="3"/><path d="M9 17.5l5-9h3M14 8.5h3l1.5 9M9 8.5h4"/></Ic>,
  coin:     (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M14.5 9.5c-.5-.8-1.5-1.3-2.7-1.3-1.7 0-2.8.9-2.8 2 0 1.2 1 1.8 2.6 2.1l.7.1c1.6.3 2.7.9 2.7 2.1 0 1.2-1.1 2.1-2.8 2.1-1.4 0-2.5-.5-3-1.4M12 7v10"/></Ic>,
  bar:      (p) => <Ic {...p}><path d="M4 20V10M10 20V4M16 20v-7M22 20H2"/></Ic>,
  shield:   (p) => <Ic {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="m9 12 2 2 4-4"/></Ic>,
  ticket:   (p) => <Ic {...p}><path d="M3 8a2 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="M14 6v12" strokeDasharray="2 2"/></Ic>,
  cog:      (p) => <Ic {...p}><circle cx="12" cy="12" r="3"/><path d="M19 12a7 7 0 0 0-.1-1.2l2-1.5-2-3.4-2.3.9a7 7 0 0 0-2-1.2L14 3h-4l-.6 2.6a7 7 0 0 0-2 1.2l-2.3-.9-2 3.4 2 1.5A7 7 0 0 0 5 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.4 2.3-.9a7 7 0 0 0 2 1.2L10 21h4l.6-2.6a7 7 0 0 0 2-1.2l2.3.9 2-3.4-2-1.5c.1-.4.1-.8.1-1.2z"/></Ic>,
  list:     (p) => <Ic {...p}><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"/></Ic>,
  compass:  (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="m15 9-2 5-5 2 2-5z"/></Ic>,
  search:   (p) => <Ic {...p}><circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.5-3.5"/></Ic>,
  bell:     (p) => <Ic {...p}><path d="M6 8a6 6 0 0 1 12 0v4l1.5 3h-15L6 12zM10 19a2 2 0 0 0 4 0"/></Ic>,
  filter:   (p) => <Ic {...p}><path d="M3 5h18l-7 9v6l-4-2v-4z"/></Ic>,
  arrowUp:  (p) => <Ic {...p}><path d="m6 14 6-6 6 6"/></Ic>,
  arrowDn:  (p) => <Ic {...p}><path d="m6 10 6 6 6-6"/></Ic>,
  arrowR:   (p) => <Ic {...p}><path d="M5 12h14m-6-6 6 6-6 6"/></Ic>,
  check:    (p) => <Ic {...p}><path d="m5 12 5 5L20 7"/></Ic>,
  x:        (p) => <Ic {...p}><path d="M6 6l12 12M18 6 6 18"/></Ic>,
  more:     (p) => <Ic {...p}><circle cx="6" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18" cy="12" r="1"/></Ic>,
  pin:      (p) => <Ic {...p}><path d="M12 22s7-7 7-12a7 7 0 1 0-14 0c0 5 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></Ic>,
  zap:      (p) => <Ic {...p}><path d="M13 2 3 14h8l-1 8 10-12h-8z"/></Ic>,
  clock:    (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></Ic>,
  layers:   (p) => <Ic {...p}><path d="m12 3 9 5-9 5-9-5zM3 13l9 5 9-5M3 18l9 5 9-5"/></Ic>,
  download: (p) => <Ic {...p}><path d="M12 4v12m-5-5 5 5 5-5M4 20h16"/></Ic>,
  plus:     (p) => <Ic {...p}><path d="M12 5v14M5 12h14"/></Ic>,
  refresh:  (p) => <Ic {...p}><path d="M21 12a9 9 0 1 1-3-6.7L21 8M21 3v5h-5"/></Ic>,
  warn:     (p) => <Ic {...p}><path d="M12 3 2 21h20zM12 10v5M12 18v.01"/></Ic>,
  star:     (p) => <Ic {...p}><path d="m12 3 2.8 5.7 6.2.9-4.5 4.4 1 6.2L12 17.3l-5.5 2.9 1-6.2L3 9.6l6.2-.9z"/></Ic>,
  receipt:  (p) => <Ic {...p}><path d="M5 3h14v18l-3-2-3 2-3-2-3 2-2-2zM8 8h8M8 12h8M8 16h5"/></Ic>,
  message:  (p) => <Ic {...p}><path d="M21 12a8 8 0 0 1-11.7 7.1L3 21l1.9-6.3A8 8 0 1 1 21 12z"/></Ic>,
  externalArrow: (p) => <Ic {...p}><path d="M7 17 17 7M9 7h8v8"/></Ic>,
  edit:  (p) => <Ic {...p}><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="m18.5 2.5 3 3L12 15l-4 1 1-4z"/></Ic>,
  trash: (p) => <Ic {...p}><path d="M3 6h18M8 6V4h8v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6"/></Ic>,
};

window.Icons = Icons;
