// icons.jsx — Lucide-style inline SVG icons (rounded-line, stroke 2).
// Category identity icons + UI chrome. Exposed on window.YIcons + <Icon/>.
(function () {
  const P = {
    // ---- UI chrome ----
    plus: { d: ["M5 12h14", "M12 5v14"] },
    minus: { d: ["M5 12h14"] },
    x: { d: ["M18 6 6 18", "M6 6l12 12"] },
    chevronRight: { d: ["m9 18 6-6-6-6"] },
    chevronLeft: { d: ["m15 18-6-6 6-6"] },
    chevronDown: { d: ["m6 9 6 6 6-6"] },
    chevronUp: { d: ["m18 15-6-6-6 6"] },
    search: { d: ["m21 21-4.34-4.34"], c: [[11, 11, 8]] },
    settings: {
      d: ["M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"],
      c: [[12, 12, 3]],
    },
    pencil: { d: ["M12 20h9", "M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"] },
    trash: { d: ["M3 6h18", "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", "M10 11v6", "M14 11v6"] },
    calendar: { d: ["M8 2v4", "M16 2v4", "M3 10h18"], r: [[3, 4, 18, 18, 2]] },
    check: { d: ["M20 6 9 17l-5-5"] },
    checkCircle: { d: ["M22 11.08V12a10 10 0 1 1-5.93-9.14", "m9 11 3 3L22 4"] },
    arrowUpRight: { d: ["M7 7h10v10", "M7 17 17 7"] },
    arrowDownRight: { d: ["m7 7 10 10", "M17 7v10H7"] },
    arrowRight: { d: ["M5 12h14", "m12 5 7 7-7 7"] },
    trendingUp: { d: ["M16 7h6v6", "m22 7-8.5 8.5-5-5L2 17"] },
    trendingDown: { d: ["M16 17h6v-6", "m22 17-8.5-8.5-5 5L2 7"] },
    upload: { d: ["M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", "M17 8l-5-5-5 5", "M12 3v12"] },
    download: { d: ["M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", "M7 10l5 5 5-5", "M12 15V3"] },
    alert: { d: ["m10.29 3.86-8.4 14.55A2 2 0 0 0 3.5 21h17a2 2 0 0 0 1.71-2.59L13.71 3.86a2 2 0 0 0-3.42 0z", "M12 9v4", "M12 17h.01"] },
    info: { d: ["M12 16v-4", "M12 8h.01"], c: [[12, 12, 10]] },
    activity: { d: ["M22 12h-4l-3 9L9 3l-3 9H2"] },
    sliders: { d: ["M4 21v-7", "M4 10V3", "M12 21v-9", "M12 8V3", "M20 21v-5", "M20 12V3", "M1 14h6", "M9 8h6", "M17 16h6"] },
    layers: { d: ["m12.83 2.18 8.6 4.3a.5.5 0 0 1 0 .9l-8.6 4.3a2 2 0 0 1-1.66 0l-8.6-4.3a.5.5 0 0 1 0-.9l8.6-4.3a2 2 0 0 1 1.66 0Z", "m6 9.5-3.43 1.72a.5.5 0 0 0 0 .9l8.6 4.3a2 2 0 0 0 1.66 0l8.6-4.3a.5.5 0 0 0 0-.9L18 9.5", "m6 14.5-3.43 1.72a.5.5 0 0 0 0 .9l8.6 4.3a2 2 0 0 0 1.66 0l8.6-4.3a.5.5 0 0 0 0-.9L18 14.5"] },
    home: { d: ["m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z", "M9 22V12h6v10"] },
    target: { c: [[12, 12, 10], [12, 12, 6], [12, 12, 2]] },
    clock: { d: ["M12 6v6l4 2"], c: [[12, 12, 10]] },
    dot: { c: [[12, 12, 1]] },

    // ---- Category identity ----
    groceries: { d: ["M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12"], c: [[8, 21, 1], [19, 21, 1]] },
    restaurants: { d: ["M3 2v7c0 1.1.9 2 2 2a2 2 0 0 0 2-2V2", "M7 2v20", "M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7"] },
    shopping: { d: ["M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z", "M3 6h18", "M16 10a4 4 0 0 1-8 0"] },
    gym: { d: ["M6 7v10", "M2 9v6", "M18 7v10", "M22 9v6", "M6 12h12"] },
    health: { d: ["M10.5 20.5 3.5 13.5a5 5 0 0 1 7-7l7 7a5 5 0 0 1-7 7z", "m8.5 8.5 7 7"] },
    utilities: { d: ["M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"] },
    house: { d: ["M3 22h18", "M5 22V8l7-5 7 5v14", "M9 22v-6h6v6"] },
    transport: { d: ["M5 17H3c-.6 0-1-.4-1-1v-3c0-.5.2-1 .6-1.3L4 10.5l1.5-3.6c.3-.6.9-.9 1.5-.9h10c.6 0 1.2.3 1.5.9L20 10.5l1.4 1.2c.4.3.6.8.6 1.3v3c0 .6-.4 1-1 1h-2", "M4 11h16", "M7 17h10"], c: [[7, 17, 2], [17, 17, 2]] },
    taxes: { d: ["M3 22h18", "M6 18v-7", "M10 18v-7", "M14 18v-7", "M18 18v-7", "m2 9 10-6 10 6", "M3 9h18"] },
    travel: { d: ["M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z"] },
    entertainment: { d: ["M7 3v18", "M17 3v18", "M3 12h18", "M3 7.5h4", "M3 16.5h4", "M17 16.5h4", "M17 7.5h4"], r: [[3, 3, 18, 18, 2]] },
    kindergarten: { d: ["M22 10v6", "m22 10-10-5L2 10l10 5z", "M6 12v5c0 1 2 3 6 3s6-2 6-3v-5"] },
    services: { d: ["M14.7 6.3a4 4 0 0 0-5.66 5.66l-6.3 6.3a2 2 0 1 0 2.83 2.83l6.3-6.3a4 4 0 0 0 5.66-5.66l-2.54 2.54-2.12-.7-.7-2.12z"] },
    gift: { d: ["M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8", "M12 22V7", "M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7Z", "M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7Z"], r: [[2, 7, 20, 5, 1]] },
    pets: { c: [[5, 9, 1.7], [9.5, 5.5, 1.7], [14.5, 5.5, 1.7], [19, 9, 1.7]], d: ["M12 11.5c-2.6 0-4.6 2-4.6 4.5 0 1.9 1.4 3 3 3 .9 0 1-.5 1.6-.5s.7.5 1.6.5c1.6 0 3-1.1 3-3 0-2.5-2-4.5-4.6-4.5z"] },
    donation: { d: ["M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"] },
    cash: { d: ["M19 7V5a1 1 0 0 0-1-1H4a2 2 0 0 0 0 4h16a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4a2 2 0 0 1-2-2V6", "M16 12h.01"] },
    general: { d: ["m20.59 13.41-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z", "M7 7h.01"] },
  };

  function Icon({ name, size = 20, strokeWidth = 2, fill = false, style, className }) {
    const spec = P[name] || P.general;
    const kids = [];
    (spec.d || []).forEach((d, i) => kids.push(React.createElement("path", { key: "p" + i, d })));
    (spec.c || []).forEach((c, i) => kids.push(React.createElement("circle", { key: "c" + i, cx: c[0], cy: c[1], r: c[2] })));
    (spec.r || []).forEach((r, i) => kids.push(React.createElement("rect", { key: "r" + i, x: r[0], y: r[1], width: r[2], height: r[3], rx: r[4] })));
    return React.createElement("svg", {
      width: size, height: size, viewBox: "0 0 24 24",
      fill: "none", stroke: "currentColor", strokeWidth,
      strokeLinecap: "round", strokeLinejoin: "round",
      style, className, "aria-hidden": true,
    }, kids);
  }

  window.YIcons = P;
  window.Icon = Icon;
})();
