// icons.jsx — inline SVG icon set for INFOTECH // Exposes window.Icon ({name, size, className, style, stroke}) (function () { const P = { // navigation / ui menu: "M3 6h18M3 12h18M3 18h18", close: "M6 6l12 12M18 6L6 18", chevronRight: "M9 6l6 6-6 6", chevronDown: "M6 9l6 6 6-6", arrowRight: "M5 12h14M13 6l6 6-6 6", search: "M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM21 21l-4.3-4.3", check: "M20 6L9 17l-5-5", star: "M12 3.5l2.6 5.3 5.9.86-4.25 4.14 1 5.86L12 17.9l-5.25 2.76 1-5.86L3.5 9.66l5.9-.86z", // contact phone: "M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24 11 11 0 0 0 3.5.56 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.2.2 2.4.56 3.5a1 1 0 0 1-.24 1z", mail: "M3 6.5A1.5 1.5 0 0 1 4.5 5h15A1.5 1.5 0 0 1 21 6.5v11A1.5 1.5 0 0 1 19.5 19h-15A1.5 1.5 0 0 1 3 17.5zM3.5 7l8.5 6 8.5-6", pin: "M12 21s-7-6.4-7-11a7 7 0 0 1 14 0c0 4.6-7 11-7 11zM12 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z", clock: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 7.5V12l3 2", whatsapp: "M12 3a9 9 0 0 0-7.7 13.6L3 21l4.6-1.2A9 9 0 1 0 12 3zM8.5 8c.2 0 .5 0 .7.5l.7 1.6c.1.2 0 .4-.1.6l-.5.6c-.1.2-.2.4 0 .7a7 7 0 0 0 3.2 2.8c.3.1.5.1.7-.1l.6-.7c.2-.2.4-.2.6-.1l1.6.8c.2.1.3.3.3.5 0 .9-.7 1.7-1.5 1.8-1 .1-2.6.1-5-1.8-2.6-2-3-3.8-3-4.8 0-.8.7-1.6 1.4-1.7z", // features / why-us award: "M12 14.5a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM9 13l-1.2 6 4.2-2.2L16.2 19 15 13", shield: "M12 3l7 2.5v5c0 4.5-3 8.3-7 9.5-4-1.2-7-5-7-9.5v-5z M9 12l2 2 4-4", users: "M16 19v-1.5a3.5 3.5 0 0 0-3.5-3.5h-5A3.5 3.5 0 0 0 4 17.5V19M10 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zM20 19v-1.5a3.5 3.5 0 0 0-2.6-3.4M15 4.2a3.5 3.5 0 0 1 0 6.6", briefcase: "M4 8.5A1.5 1.5 0 0 1 5.5 7h13A1.5 1.5 0 0 1 20 8.5v9A1.5 1.5 0 0 1 18.5 19h-13A1.5 1.5 0 0 1 4 17.5zM9 7V5.5A1.5 1.5 0 0 1 10.5 4h3A1.5 1.5 0 0 1 15 5.5V7M4 12h16", laptop: "M5 6.5A1.5 1.5 0 0 1 6.5 5h11A1.5 1.5 0 0 1 19 6.5V15H5zM3 18h18l-1 2H4z", rocket: "M12 3c3 1 5 4 5 8 0 1.6-.5 3-1.2 4.2L13 17l-2 0-2.8-1.8C7.5 14 7 12.6 7 11c0-4 2-7 5-8zM12 10.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM8.5 16.5C7 17 6.5 19 6.5 20.5c1.5 0 3.5-.5 4-2", clock2: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 7.5V12l3 2", headset: "M4 13v-1a8 8 0 0 1 16 0v1M4 13a2 2 0 0 0 2 2h.5v-4H6a2 2 0 0 0-2 2zM20 13a2 2 0 0 1-2 2h-.5v-4h.5a2 2 0 0 1 2 2zM18 15v1a4 4 0 0 1-4 4h-2", certificate: "M5 4.5A1.5 1.5 0 0 1 6.5 3h11A1.5 1.5 0 0 1 19 4.5V14a1.5 1.5 0 0 1-1.5 1.5H13l-3 3v-3H6.5A1.5 1.5 0 0 1 5 14zM8.5 7h7M8.5 10h4", // course categories palette: "M12 3a9 9 0 1 0 0 18c1 0 1.5-.8 1.5-1.6 0-.5-.2-.9-.5-1.2-.3-.3-.5-.7-.5-1.2 0-.9.7-1.5 1.6-1.5H16a5 5 0 0 0 5-5c0-3.9-4-7.5-9-7.5zM7.5 12a1.3 1.3 0 1 0 0-2.6 1.3 1.3 0 0 0 0 2.6zM11 8.5a1.3 1.3 0 1 0 0-2.6 1.3 1.3 0 0 0 0 2.6zM15.5 8.5a1.3 1.3 0 1 0 0-2.6 1.3 1.3 0 0 0 0 2.6z", megaphone: "M3 11v2a1 1 0 0 0 1 1h2l3.5 4V6L6 10H4a1 1 0 0 0-1 1zM14 7.5a5 5 0 0 1 0 9M14 5l6-2v18l-6-2", cube: "M12 2.5l8 4.2v10.6L12 21.5l-8-4.2V6.7zM4 6.7l8 4.2 8-4.2M12 10.9v10.6", cube3d: "M12 2.5l8 4.2v10.6L12 21.5l-8-4.2V6.7zM4 6.7l8 4.2 8-4.2M12 10.9v10.6M8 4.6v4.3l4 2.1", building: "M4 21V5.5A1.5 1.5 0 0 1 5.5 4H13a1.5 1.5 0 0 1 1.5 1.5V21M14.5 21V9.5H19a1 1 0 0 1 1 1V21M3 21h18M7 8h3M7 11.5h3M7 15h3", monitor: "M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v9A1.5 1.5 0 0 1 18.5 16h-13A1.5 1.5 0 0 1 4 14.5zM9 20h6M12 16v4", film: "M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v13A1.5 1.5 0 0 1 18.5 20h-13A1.5 1.5 0 0 1 4 18.5zM4 8h16M4 16h16M8 4v4M16 4v4M8 16v4M16 16v4", pen: "M14.5 5.5l4 4M4 20l1-4L16 5a2 2 0 0 1 3 0l0 0a2 2 0 0 1 0 3L8 19z", sun: "M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM12 2v2M12 20v2M4 12H2M22 12h-2M5.6 5.6L4.2 4.2M19.8 19.8l-1.4-1.4M18.4 5.6l1.4-1.4M4.2 19.8l1.4-1.4", grid: "M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z", layers: "M12 3l9 5-9 5-9-5zM3 13l9 5 9-5M3 8v0", // misc play: "M8 5l11 7-11 7z", quote: "M9 7H5a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h2v3H4M19 7h-4a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h2v3h-3", download: "M12 4v11M8 11l4 4 4-4M5 19h14", eye: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z", eyeOff: "M3 3l18 18M10.6 6.2A9.7 9.7 0 0 1 12 6c6.5 0 10 6 10 6a17 17 0 0 1-3.3 3.9M6.3 6.4A17 17 0 0 0 2 12s3.5 6 10 6c1.3 0 2.5-.2 3.6-.6M9.5 9.6A3 3 0 0 0 12 15c.7 0 1.3-.2 1.8-.6", lock: "M6 10.5A1.5 1.5 0 0 1 7.5 9h9A1.5 1.5 0 0 1 18 10.5v8A1.5 1.5 0 0 1 16.5 20h-9A1.5 1.5 0 0 1 6 18.5zM8.5 9V7a3.5 3.5 0 1 1 7 0v2M12 13.5v2.5", user: "M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 20a7 7 0 0 1 14 0", calendar: "M5 6.5A1.5 1.5 0 0 1 6.5 5h11A1.5 1.5 0 0 1 19 6.5v12A1.5 1.5 0 0 1 17.5 20h-11A1.5 1.5 0 0 1 5 18.5zM5 9.5h14M8 4v3M16 4v3", book: "M5 4.5A1.5 1.5 0 0 1 6.5 3H19v15H6.5A1.5 1.5 0 0 0 5 19.5zM19 18v3H6.5A1.5 1.5 0 0 1 5 19.5", sparkle: "M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM18 15l.7 2 2 .7-2 .7L18 20.4l-.7-2-2-.7 2-.7z", chart: "M4 20V4M4 20h16M8 16v-4M12 16V8M16 16v-7", globe: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM3 12h18M12 3c2.5 2.4 3.8 5.6 3.8 9s-1.3 6.6-3.8 9c-2.5-2.4-3.8-5.6-3.8-9S9.5 5.4 12 3z", facebook: "M14 8h2.5V5H14a3.5 3.5 0 0 0-3.5 3.5V11H8v3h2.5v6h3v-6H16l.5-3h-3V9a1 1 0 0 1 1-1z", instagram: "M7 3.5h10A3.5 3.5 0 0 1 20.5 7v10a3.5 3.5 0 0 1-3.5 3.5H7A3.5 3.5 0 0 1 3.5 17V7A3.5 3.5 0 0 1 7 3.5zM12 8.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7zM17 6.6v.01", linkedin: "M7 9v8M7 6.5v.01M11 17v-4.5a2 2 0 0 1 4 0V17M11 9v8", youtube: "M3 8.5A2.5 2.5 0 0 1 5.5 6h13A2.5 2.5 0 0 1 21 8.5v7a2.5 2.5 0 0 1-2.5 2.5h-13A2.5 2.5 0 0 1 3 15.5zM10.5 9.5l4 2.5-4 2.5z", trophy: "M7 4h10v3a5 5 0 0 1-10 0zM7 5H4.5a2 2 0 0 0 2 4M17 5h2.5a2 2 0 0 1-2 4M9 13.5c0 1.5.5 2.5 3 2.5s3-1 3-2.5M9 20h6M12 16v4", bell: "M6 9a6 6 0 0 1 12 0c0 5 2 6 2 6H4s2-1 2-6zM10 19a2 2 0 0 0 4 0", logout: "M9 5H6.5A1.5 1.5 0 0 0 5 6.5v11A1.5 1.5 0 0 0 6.5 19H9M16 8l4 4-4 4M20 12H9", plus: "M12 5v14M5 12h14", edit: "M14.5 5.5l4 4M4 20l1-4L16 5a2 2 0 0 1 3 0a2 2 0 0 1 0 3L8 19z", trash: "M5 7h14M9 7V5.5A1.5 1.5 0 0 1 10.5 4h3A1.5 1.5 0 0 1 15 5.5V7M6.5 7l.8 11.5A1.5 1.5 0 0 0 8.8 20h6.4a1.5 1.5 0 0 0 1.5-1.4L17.5 7", upload: "M12 16V5M8 9l4-4 4 4M5 19h14", inbox: "M4 13l2.5-7.5A1.5 1.5 0 0 1 8 4.5h8a1.5 1.5 0 0 1 1.5 1L20 13v5.5A1.5 1.5 0 0 1 18.5 20h-13A1.5 1.5 0 0 1 4 18.5zM4 13h5l1 2h4l1-2h5", image: "M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v13A1.5 1.5 0 0 1 18.5 20h-13A1.5 1.5 0 0 1 4 18.5zM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM5 17l4-4 3 3 3-3 4 4", dashboard: "M4 4h7v5H4zM4 12h7v8H4zM13 4h7v8h-7zM13 15h7v5h-7z", target: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2z", heart: "M12 20S4 14.5 4 9a4 4 0 0 1 8-1 4 4 0 0 1 8 1c0 5.5-8 11-8 11z", info: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 11v5M12 7.5v.01", refresh: "M20 11a8 8 0 0 0-14-4.5L4 8M4 4v4h4M4 13a8 8 0 0 0 14 4.5L20 16M20 20v-4h-4", }; // filled icons (use fill instead of stroke) const FILLED = new Set(["star", "play", "sparkle", "facebook", "instagram", "youtube", "linkedin", "quote"]); window.Icon = function Icon({ name, size = 24, className, style, stroke = 1.9, fill }) { const d = P[name]; if (!d) return null; const isFilled = fill === true || (fill === undefined && FILLED.has(name)); return ( ); }; })();