/** * 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 };