// ── 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': '',
'save': '',
'chevron-down': '',
'chevron-right': '',
'download': '',
'upload': '',
'braces': '',
'trash-2': '',
'settings': '',
'alert-triangle': '',
'refresh-cw': '',
'check': '',
'lock': '',
'star': '',
'x': '',
'square': '',
'plus': '',
'arrow-up': '',
'arrow-right': '',
'loader': '',
'pause': '',
// Tool icons
'terminal': '',
'file-text': '',
'file-pen': '',
'search': '',
'globe': '',
'play': '',
'wrench': '',
'brain': '',
'book-open': '',
'clock': '',
'bot': '',
'eye': '',
'shuffle': '',
'paperclip': '',
'copy': '',
'rotate-ccw': '',
'user': '',
// 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 ``;
}