"""Inline SVG icons for Alembic UI.
All icons are hand-crafted SVG paths — no emojis, no external dependencies.
Use as: ICONS["name"] returns an SVG string ready for HTML injection.
Designed at 24x24 viewBox, stroke-based, 1.5px stroke weight.
"""
ICONS = {
# Brand
"alembic": '''''',
# Services
"sheets": '''''',
"notion": '''''',
"slack": '''''',
"gmail": '''''',
"github": '''''',
# Gallery app types
"mail": '''''',
"git-pr": '''''',
"invoice": '''''',
"bot": '''''',
"chart": '''''',
# UI elements
"plus": '''''',
"link": '''''',
"viewport": '''''',
"spinner": '''''',
"dot": '''''',
}
def icon(name: str, cls: str = "") -> str:
"""Return SVG icon HTML with optional CSS class wrapper."""
svg = ICONS.get(name, "")
if not svg:
return ""
if cls:
return f'{svg}'
return svg