// Inline SVG icon library (lucide-style stroke icons).
// Single source — used everywhere as
const ICON_DEFS = {
Dashboard: ,
Briefcase: ,
Users: ,
Brain: ,
Message: ,
Building: ,
Bar: ,
Settings: ,
Search: ,
Bell: ,
Sparkles: ,
ChevronRight: ,
ChevronDown: ,
ChevronLeft: ,
ChevronUp: ,
ChevronsUpDown: ,
Plus: ,
Filter: ,
X: ,
Check: ,
CheckCircle: ,
CheckCheck: ,
Phone: ,
PhoneCall: ,
PhoneIn: ,
MessageCircle: ,
WhatsApp: { custom: 'whatsapp' },
Send: ,
File: ,
FileSearch: ,
Calendar: ,
CalendarClock: ,
Clock: ,
MapPin: ,
Dollar: ,
Wallet: ,
TrendUp: ,
TrendDown: ,
ArrowUp: ,
ArrowDown: ,
ArrowRight: ,
ArrowLeft: ,
ArrowUpRight: ,
Star: ,
Bookmark: ,
BookmarkPlus: ,
More: ,
Mic: ,
Volume: ,
Play: ,
PlayCircle: ,
Pause: ,
User: ,
UserPlus: ,
UserCheck: ,
Eye: ,
Download: ,
AlertCircle: ,
Info: ,
Zap: ,
Shield: ,
Globe: ,
Languages: ,
Paperclip: ,
Smile: ,
Meh: ,
Frown: ,
Activity: ,
Target: ,
Pin: ,
ThumbsUp: ,
ThumbsDown: ,
Hand: ,
Bot: ,
Megaphone: ,
Inbox: ,
Logout: ,
List: ,
Grid: ,
Wand: ,
Notebook: ,
Refresh: ,
Loader: ,
Flame: ,
Copy: ,
External: ,
Sliders: ,
Layers: ,
Crosshair: ,
Trash: ,
Edit: ,
Headphones: ,
Hash: ,
Cpu: ,
Network: ,
Mail: ,
Flag: ,
GraduationCap: ,
Tag: ,
PieChart: ,
Workflow: ,
Wave: ,
Lock: ,
Dot: ,
PanelLeft: ,
};
const Icon = {};
Object.keys(ICON_DEFS).forEach((name) => {
Icon[name] = function I({ size = 16, className = '', strokeWidth = 1.75, style }) {
const def = ICON_DEFS[name];
if (def && def.custom === 'whatsapp') {
return (
);
}
return (
);
};
});
// Custom SOFIA mark — minimalist enterprise feel
Icon.SofiaMark = function SofiaMark({ size = 20, className = '' }) {
return (
);
};
// Solucersa logomark — sharp geometric S (used on top-left + workspace)
Icon.SolucersaMark = function SolucersaMark({ size = 20, className = '' }) {
return (
);
};
window.Icon = Icon;