// 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 ``;
},
_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 ``;
}
};