// emoji → Lucide 图标名 映射(后端历史数据里仍可能带 emoji 的字段,如 plan.emoji / collection.emoji) const EMOJI_TO_ICON = { '✨': 'sparkles', '💪': 'accessibility', '🏋️': 'dumbbell', '📋': 'clipboard-list', '🗂️': 'folder-open', '👤': 'user', '🏃': 'person-standing', '🔥': 'flame', '❤️': 'heart', '⭐': 'star', '🎯': 'target', '🧘': 'activity', '🥗': 'activity', '🏠': 'home', '📚': 'layout-grid', '📝': 'clipboard-list', '💡': 'sparkles', '🚀': 'trending-up', '⏱️': 'clock', '🏆': 'trophy', '🥇': 'medal', // 官方训练组合 seed emoji(后端 collections.ts)→ 全部映射到现有字形 '⚡': 'zap', '🌟': 'star', '🌱': 'trending-up', '🌸': 'sparkles', '📈': 'trending-up', '🦵': 'dumbbell', '🦾': 'dumbbell', '🪢': 'activity' }; // 旧 emoji → lucide 名;已是 lucide 名则直接透传;未知返回 fallback function iconName(v, fallback) { if (!v) return fallback || 'folder-open'; return EMOJI_TO_ICON[v] || v; } module.exports = { EMOJI_TO_ICON, iconName };