/* Icon set - Lucide-style stroke icons, single keyed component.
   Usage: <Icon name="map" size={18} />                              */
(function () {
  const P = {
    dashboard: '<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"/>',
    map: '<circle cx="6" cy="6" r="2.4"/><circle cx="18" cy="7" r="2.4"/><circle cx="12" cy="17.5" r="2.4"/><path d="M7.8 7.3 16.4 8.6M7.2 7.9 10.8 15.4M16.2 9.2 13 15.6"/>',
    directory: '<path d="M16 21v-1.6A3.4 3.4 0 0 0 12.6 16H6.4A3.4 3.4 0 0 0 3 19.4V21"/><circle cx="9.5" cy="8" r="3.2"/><path d="M21 21v-1.6a3.4 3.4 0 0 0-2.6-3.3M15.5 5a3.2 3.2 0 0 1 0 6.2"/>',
    link: '<path d="M9.5 14.5 14.5 9.5"/><path d="M11 6.5l1-1a4 4 0 0 1 5.7 5.7l-1.6 1.6"/><path d="M13 17.5l-1 1a4 4 0 0 1-5.7-5.7l1.6-1.6"/>',
    calendar: '<rect x="3.5" y="4.5" width="17" height="16" rx="2.5"/><path d="M3.5 9.5h17M8 2.5v4M16 2.5v4"/>',
    funding: '<rect x="2.5" y="6" width="19" height="12" rx="2.5"/><circle cx="12" cy="12" r="2.6"/><path d="M6 9.5v5M18 9.5v5"/>',
    settings: '<circle cx="12" cy="12" r="3"/><path d="M19.4 13.5a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-2.7 1.1v.2a2 2 0 1 1-4 0v-.1A1.6 1.6 0 0 0 7 18.3a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0-1.1-2.7H1a2 2 0 1 1 0-4h.1A1.6 1.6 0 0 0 2.3 7a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1A1.6 1.6 0 0 0 7 2.6 1.6 1.6 0 0 0 8 .9V.8a2 2 0 1 1 4 0v.1A1.6 1.6 0 0 0 17 2.6a1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0 1.1 2.7h.2a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.4 1z" transform="translate(0.8 0.8) scale(0.93)"/>',
    shield: '<path d="M12 3 5 6v5.5c0 4.3 3 7.6 7 9 4-1.4 7-4.7 7-9V6z"/><path d="m9.5 12 1.8 1.8 3.4-3.6"/>',
    search: '<circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.6-3.6"/>',
    plus: '<path d="M12 5v14M5 12h14"/>',
    edit: '<path d="M12 20h8"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7.5 18.5 3.5 20l1.5-4z"/>',
    x: '<path d="M18 6 6 18M6 6l12 12"/>',
    chevronDown: '<path d="m6 9 6 6 6-6"/>',
    chevronRight: '<path d="m9 6 6 6-6 6"/>',
    chevronLeft: '<path d="m15 6-6 6 6 6"/>',
    arrowRight: '<path d="M5 12h14M13 6l6 6-6 6"/>',
    sun: '<circle cx="12" cy="12" r="4"/><path d="M12 2.5v2.5M12 19v2.5M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M2.5 12H5M19 12h2.5M4.9 19.1l1.8-1.8M17.3 6.7l1.8-1.8"/>',
    moon: '<path d="M20 14.5A8 8 0 0 1 9.5 4 7.5 7.5 0 1 0 20 14.5z"/>',
    dim: '<circle cx="12" cy="12" r="8.5"/><path d="M12 3.5a8.5 8.5 0 0 1 0 17z" fill="currentColor" stroke="none"/>',
    filter: '<path d="M3.5 5h17l-6.5 8v5l-4 2v-7z"/>',
    eye: '<path d="M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z"/><circle cx="12" cy="12" r="3"/>',
    eyeOff: '<path d="M10.7 6.2A9 9 0 0 1 12 6c6 0 9.5 6 9.5 6a16 16 0 0 1-2.4 3M6.2 7.5A16 16 0 0 0 2.5 12S6 18 12 18a9 9 0 0 0 3.6-.7M3 3l18 18M9.9 9.9a3 3 0 0 0 4.2 4.2"/>',
    zoomIn: '<circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.6-3.6M11 8.5v5M8.5 11h5"/>',
    zoomOut: '<circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.6-3.6M8.5 11h5"/>',
    recenter: '<circle cx="12" cy="12" r="3"/><path d="M12 2.5V6M12 18v3.5M2.5 12H6M18 12h3.5"/>',
    building: '<rect x="4.5" y="3.5" width="15" height="17" rx="1.5"/><path d="M9 7.5h2M13 7.5h2M9 11h2M13 11h2M9 14.5h2M13 14.5h2M10 20.5v-3h4v3"/>',
    user: '<circle cx="12" cy="8" r="3.6"/><path d="M5.5 20a6.5 6.5 0 0 1 13 0"/>',
    folder: '<path d="M3.5 7a2 2 0 0 1 2-2h3.4l2 2.2H19a2 2 0 0 1 2 2v8.3a2 2 0 0 1-2 2H5.5a2 2 0 0 1-2-2z"/>',
    bolt: '<path d="M13 2 4 14h7l-1 8 9-12h-7z"/>',
    bell: '<path d="M18 8a6 6 0 0 0-12 0c0 7-3 8-3 8h18s-3-1-3-8"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/>',
    dots: '<circle cx="5" cy="12" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="19" cy="12" r="1.6"/>',
    check: '<path d="m5 12.5 4.5 4.5L19 6.5"/>',
    external: '<path d="M14 4h6v6M20 4l-9 9M18 13.5V19a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 19V7.5A1.5 1.5 0 0 1 5 6h5.5"/>',
    grid: '<rect x="3.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.5"/>',
    radial: '<circle cx="12" cy="12" r="2.2"/><circle cx="12" cy="12" r="8.5" opacity="0.5"/><path d="M12 9.8V5M12 19v-4.8M9.8 12H5M19 12h-4.8"/>',
    organic: '<circle cx="6" cy="8" r="2"/><circle cx="17" cy="6" r="2"/><circle cx="18" cy="16" r="2"/><circle cx="8" cy="18" r="2"/><circle cx="12" cy="12" r="2.4"/><path d="M7.6 8.8 10 10.8M14.8 6.8 13.2 10.4M16.6 14.4 13.6 12.8M9.6 16.6 11.4 13.8" opacity="0.7"/>',
    note: '<rect x="4" y="3.5" width="16" height="17" rx="2"/><path d="M8 8.5h8M8 12h8M8 15.5h5"/>',
    phone: '<path d="M6.5 4h3l1.5 4-2 1.3a11 11 0 0 0 5 5l1.3-2 4 1.5v3a2 2 0 0 1-2 2A16 16 0 0 1 4.5 6a2 2 0 0 1 2-2z"/>',
    mail: '<rect x="3" y="5" width="18" height="14" rx="2.5"/><path d="m4 7 8 6 8-6"/>',
    logout: '<path d="M9 4.5H6A1.5 1.5 0 0 0 4.5 6v12A1.5 1.5 0 0 0 6 19.5h3M15 16l4-4-4-4M9.5 12H19"/>',
    sliders: '<path d="M4 7h10M18 7h2M4 17h2M10 17h10"/><circle cx="16" cy="7" r="2.2"/><circle cx="8" cy="17" r="2.2"/>',
    spark: '<path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18"/>',
    target: '<circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="4.5"/><circle cx="12" cy="12" r="1"/>',
    analytics: '<path d="M3 21h18"/><rect x="5" y="10.5" width="3.4" height="7.5" rx="1"/><rect x="10.3" y="5.5" width="3.4" height="12.5" rx="1"/><rect x="15.6" y="13" width="3.4" height="5" rx="1"/>',
    trendingUp: '<path d="M3 17l6-6 4 4 7-7.5"/><path d="M16 7.5h4.5V12"/>',
    pipeline: '<rect x="3" y="4" width="4.6" height="15" rx="1.4"/><rect x="9.7" y="4" width="4.6" height="9.5" rx="1.4"/><rect x="16.4" y="4" width="4.6" height="12.5" rx="1.4"/>',
    inbox: '<path d="M22 12h-5.5l-1.8 3h-5.4L7.5 12H2"/><path d="M5.6 5h12.8a1.5 1.5 0 0 1 1.4 1l2.2 6v5a1.5 1.5 0 0 1-1.5 1.5H3.5A1.5 1.5 0 0 1 2 18v-5l2.2-6a1.5 1.5 0 0 1 1.4-1z"/>',
    tasks: '<path d="M9.5 6h11M9.5 12h11M9.5 18h11"/><path d="m3 5.5 1.3 1.3 2.2-2.6M3 11.5l1.3 1.3 2.2-2.6M3 17.5l1.3 1.3 2.2-2.6"/>',
    document: '<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5M8.5 13h7M8.5 16.5h5"/>',
    workflow: '<rect x="3" y="4" width="6" height="5" rx="1.5"/><rect x="15" y="15" width="6" height="5" rx="1.5"/><path d="M6 9v3.5a2 2 0 0 0 2 2h7"/>',
    signal: '<path d="M4.6 9.2a10 10 0 0 1 14.8 0M7.6 12.2a6 6 0 0 1 8.8 0"/><circle cx="12" cy="16.5" r="1.7"/>',
    plug: '<path d="M9 2.5v5.5M15 2.5v5.5M7 8h10v3a5 5 0 0 1-10 0z"/><path d="M12 16v5.5"/>',
    history: '<path d="M3.5 12a8.5 8.5 0 1 0 2.8-6.3L3.5 8"/><path d="M3.5 4v4h4"/><path d="M12 8v4.2l3 1.8"/>',
    receipt: '<path d="M5 3.5v17l2-1.3 2 1.3 2-1.3 2 1.3 2-1.3 2 1.3v-17l-2 1.3-2-1.3-2 1.3-2-1.3-2 1.3z"/><path d="M8.5 9h7M8.5 12.5h7"/>',
    globe: '<circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9z"/>',
    layers: '<path d="M12 3 3 8l9 5 9-5z"/><path d="m3 13 9 5 9-5M3 16.5l9 5 9-5" opacity="0.6"/>',
    lock: '<rect x="4.5" y="10.5" width="15" height="10" rx="2"/><path d="M8 10.5V7.5a4 4 0 0 1 8 0v3"/><circle cx="12" cy="15.5" r="1.2"/>',
    door: '<path d="M5 21V4.5A1.5 1.5 0 0 1 6.5 3h11A1.5 1.5 0 0 1 19 4.5V21M3.5 21h17"/><circle cx="15" cy="12" r="1"/>',
    clock: '<circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/>',
    users: '<circle cx="9" cy="8" r="3.2"/><path d="M3.5 20a5.5 5.5 0 0 1 11 0M16 5.2a3.2 3.2 0 0 1 0 6M17.5 20a5.5 5.5 0 0 0-3-4.9"/>',
    wifi: '<path d="M4.5 9a12 12 0 0 1 15 0M7.5 12.2a7.5 7.5 0 0 1 9 0M10.3 15.4a3 3 0 0 1 3.4 0"/><circle cx="12" cy="18.5" r="1"/>',
    coffee: '<path d="M4 8h13v5a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5z"/><path d="M17 9.5h2.2a2.3 2.3 0 0 1 0 4.6H17M7 3.5c-.4.8-.4 1.5 0 2.3M11 3.5c-.4.8-.4 1.5 0 2.3"/>',
    screen: '<rect x="3" y="4" width="18" height="12" rx="2"/><path d="M8 20h8M12 16v4"/>',
  };
  function Icon({ name, size = 18, stroke = 1.7, style, className, ...rest }) {
    const d = P[name];
    return React.createElement("svg", {
      width: size, height: size, viewBox: "0 0 24 24", fill: "none",
      stroke: "currentColor", strokeWidth: stroke, strokeLinecap: "round",
      strokeLinejoin: "round", style: { flex: "none", display: "block", ...style },
      className, dangerouslySetInnerHTML: { __html: d }, ...rest,
    });
  }
  window.Icon = Icon;
})();
