// ── Lucide icon library (self-hosted SVG paths, no CDN dependency) ────────── // All icons are 24×24 viewBox, stroke-based, currentColor. // Usage: li('folder') → returns a ready-to-embed SVG string // The returned SVG uses display:inline-block + vertical-align so it sits // neatly beside text in both HTML templates and innerHTML assignments. const LI_PATHS = { // Navigation tabs 'message-square': '', 'calendar': '', 'layers': '', 'lightbulb': '', 'folder': '', 'list-todo': '', // Editing / actions 'pencil': '', 'chevron-down': '', 'download': '', 'upload': '', 'braces': '', 'trash-2': '', 'settings': '', 'alert-triangle': '', 'refresh-cw': '', 'check': '', 'lock': '', 'star': '', 'x': '', 'square': '', 'plus': '', 'arrow-up': '', 'loader': '', // Tool icons 'terminal': '', 'file-text': '', 'file-pen': '', 'search': '', 'globe': '', 'play': '', 'wrench': '', 'brain': '', 'book-open': '', 'clock': '', 'bot': '', 'eye': '', 'shuffle': '', // File-type icons 'image': '', 'file-code': '', 'zap': '', // Suggestion buttons 'clipboard-list': '', 'map': '', }; /** * Returns a Lucide SVG string for the given icon name. * @param {string} name – key in LI_PATHS (e.g. 'folder', 'trash-2') * @param {number} size – width/height in px (default 16) * @returns {string} SVG element string ready for innerHTML */ function li(name, size = 16) { const p = LI_PATHS[name]; if (!p) { console.warn('li(): unknown icon', name); return ''; } return ``; }