// ── 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: Record = { // 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 name – key in LI_PATHS (e.g. 'folder', 'trash-2') * @param size – width/height in px (default 16) * @returns SVG element string ready for innerHTML */ function li(name: string, size: number = 16): string { const p = LI_PATHS[name]; if (!p) { console.warn('li(): unknown icon', name); return ''; } return ``; } export { li, LI_PATHS };