/**
* SVG Icons Library
* All icons used in the application
*/
export const ICONS = {
// Navigation Icons
dashboard: ``,
market: ``,
models: ``,
sentiment: ``,
aiAnalyst: ``,
trading: ``,
news: ``,
providers: ``,
diagnostics: ``,
apiExplorer: ``,
chain: ``,
analytics: ``,
// Status Icons
rocket: ``,
checkCircle: ``,
xCircle: ``,
alertTriangle: ``,
info: ``,
// Action Icons
refresh: ``,
settings: ``,
sun: ``,
moon: ``,
clock: ``,
menu: ``,
close: ``,
// Data Icons
package: ``,
gift: ``,
cpu: ``,
zap: ``,
activity: ``,
database: ``,
server: ``,
globe: ``,
brain: ``,
// Chart/Trend Icons
trendingUp: ``,
trendingDown: ``,
barChart: ``,
pieChart: ``,
// Live/Status
radio: ``,
wifi: ``,
wifiOff: ``,
loader: ``,
};
/**
* Get icon SVG by name
* @param {string} name - Icon name
* @param {string} size - Icon size (default: 24)
* @returns {string} SVG string
*/
export function getIcon(name, size = 24) {
const icon = ICONS[name];
if (!icon) {
console.warn(`Icon not found: ${name}`);
return '';
}
if (size !== 24) {
return icon.replace(/width="24"/g, `width="${size}"`).replace(/height="24"/g, `height="${size}"`);
}
return icon;
}
/**
* Create icon element
* @param {string} name - Icon name
* @param {object} options - Options { size, className }
* @returns {HTMLElement} Icon element
*/
export function createIconElement(name, options = {}) {
const { size = 24, className = '' } = options;
const wrapper = document.createElement('span');
wrapper.className = `icon ${className}`.trim();
wrapper.innerHTML = getIcon(name, size);
return wrapper;
}
export default { ICONS, getIcon, createIconElement };