// icons.js - Centralized SVG definitions const ICONS = { _create: function(content, defaultProps, customProps = {}) { let p = { ...defaultProps, ...customProps }; if (customProps.width && !customProps.height) p.height = customProps.width; let strokeAttrs = p.strokeWidth ? ` stroke-width="${p.strokeWidth}" stroke-linecap="${p.strokeLinecap}" stroke-linejoin="${p.strokeLinejoin}"` : ""; let classAttr = p.className ? ` class="${p.className}"` : ""; let styleAttr = p.style ? ` style="${p.style}"` : ""; return `${content}`; }, _material: function(content, props) { return this._create(content, { viewBox: "0 -960 960 960", width: "1.4rem", height: "1.4rem", fill: "var(--text-color)", stroke: "none" }, props); }, _feather: function(content, props) { return this._create(content, { viewBox: "0 0 24 24", width: "1.4rem", height: "1.4rem", fill: "none", stroke: "var(--text-color)", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, props); }, addChat: (props) => ICONS._material(``, props), createGroup: (props) => ICONS._material(``, props), createSpace: (props) => ICONS._material(``, props), joinSpace: (props) => ICONS._material(``, props), invites: (props) => ICONS._material(``, props), notifications: (props) => ICONS._material(``, props), close: (props) => ICONS._material(``, props), check: (props) => ICONS._material(``, props), delete: (props) => ICONS._material(``, props), menu: (props) => ICONS._material(``, props), arrowBack: (props) => ICONS._material(``, props), pin: (props) => ICONS._material(``, props), call: (props) => ICONS._material(``, props), account: (props) => ICONS._material(``, props), settings: (props) => ICONS._material(``, props), profile: (props) => ICONS._material(``, props), replyAction: (props) => ICONS._material(``, props), react: (props) => ICONS._material(``, props), settingsProfile: (props) => ICONS._material(``, props), download: (props) => ICONS._feather(``, props), camera: (props) => ICONS._feather(``, props), image: (props) => ICONS._feather(``, props), fileText: (props) => ICONS._feather(``, props), poll: (props) => ICONS._feather(``, props), send: (props) => ICONS._create(``, { viewBox: "0 0 16 16", width: "1.5rem", height: "1.5rem", fill: "none", stroke: "none" }, props), plus: (props) => ICONS._feather(``, props), chevronDown: (props) => ICONS._feather(``, props), lockOpen: (props) => ICONS._feather(``, props), cornerUpLeft: (props) => ICONS._feather(``, props), spinner: (props) => ICONS._create(``, { viewBox: "0 0 50 50", width: "24px", height: "24px", fill: "none", stroke: "none", className: "spinner" }, props), video: (props) => ICONS._feather(``, props), file: (props) => ICONS._feather(``, props), home: (props) => ICONS._create(``, { viewBox: "-1 -1 18 18", width: "24", height: "24", fill: "none", stroke: "none" }, props), inbox: (props) => ICONS._material(``, props), avatar: function(initials, color, size) { return `${initials}`; } };