// Tiny inline SVG icon set. Stroke-based, 1.5px, currentColor.
const Icon = ({ name, size = 16, ...rest }) => {
  const common = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.6, strokeLinecap: "round", strokeLinejoin: "round", ...rest };
  switch (name) {
    case "dashboard": return (<svg {...common}><rect x="3" y="3" width="7" height="9" rx="1.5"/><rect x="14" y="3" width="7" height="5" rx="1.5"/><rect x="14" y="12" width="7" height="9" rx="1.5"/><rect x="3" y="16" width="7" height="5" rx="1.5"/></svg>);
    case "article": return (<svg {...common}><path d="M5 4h11l3 3v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z"/><path d="M16 4v3h3"/><path d="M8 12h8M8 16h8M8 8h4"/></svg>);
    case "megaphone": return (<svg {...common}><path d="M3 11v2a2 2 0 0 0 2 2h1l3 4v-4l10-3V8L9 5H6a3 3 0 0 0-3 3"/><path d="M19 8v7"/></svg>);
    case "users": return (<svg {...common}><circle cx="9" cy="8" r="3.2"/><path d="M3.5 19c.5-3 3-5 5.5-5s5 2 5.5 5"/><circle cx="17" cy="9" r="2.5"/><path d="M15 19c.4-2.2 2-3.7 4-4"/></svg>);
    case "search": return (<svg {...common}><circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.4-3.4"/></svg>);
    case "plus": return (<svg {...common}><path d="M12 5v14M5 12h14"/></svg>);
    case "filter": return (<svg {...common}><path d="M4 5h16l-6 8v6l-4-2v-4Z"/></svg>);
    case "chevron-down": return (<svg {...common}><path d="m6 9 6 6 6-6"/></svg>);
    case "chevron-right": return (<svg {...common}><path d="m9 6 6 6-6 6"/></svg>);
    case "chevron-left": return (<svg {...common}><path d="m15 6-6 6 6 6"/></svg>);
    case "edit": return (<svg {...common}><path d="M4 20h4l10.5-10.5a2 2 0 0 0-2.8-2.8L5 17z"/><path d="m14 7 3 3"/></svg>);
    case "archive": return (<svg {...common}><rect x="3" y="4" width="18" height="4" rx="1"/><path d="M5 8v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8"/><path d="M10 12h4"/></svg>);
    case "more": return (<svg {...common}><circle cx="6" cy="12" r="1.4"/><circle cx="12" cy="12" r="1.4"/><circle cx="18" cy="12" r="1.4"/></svg>);
    case "leaf": return (<svg {...common}><path d="M5 19c0-9 6-14 14-14 0 9-5 14-14 14Z"/><path d="M5 19c4-4 7-7 14-14"/></svg>);
    case "bold": return (<svg {...common}><path d="M7 5h6a3.5 3.5 0 0 1 0 7H7Zm0 7h7a3.5 3.5 0 0 1 0 7H7Z"/></svg>);
    case "italic": return (<svg {...common}><path d="M14 5h-5M15 19h-5M14 5l-4 14"/></svg>);
    case "h1": return (<svg {...common}><path d="M5 6v12M13 6v12M5 12h8M17 9l2-1v10"/></svg>);
    case "h2": return (<svg {...common}><path d="M5 6v12M11 6v12M5 12h6M15 9c0-1 1-1.5 2-1.5s2 .5 2 1.5c0 2-4 3-4 5.5h4"/></svg>);
    case "list": return (<svg {...common}><path d="M9 6h11M9 12h11M9 18h11"/><circle cx="5" cy="6" r="1"/><circle cx="5" cy="12" r="1"/><circle cx="5" cy="18" r="1"/></svg>);
    case "quote": return (<svg {...common}><path d="M7 7h4v6c0 2-1.5 3.5-4 4M14 7h4v6c0 2-1.5 3.5-4 4"/></svg>);
    case "code": return (<svg {...common}><path d="m8 8-4 4 4 4M16 8l4 4-4 4M14 6l-4 12"/></svg>);
    case "link": return (<svg {...common}><path d="M10 14a4 4 0 0 0 5.6 0l3-3a4 4 0 0 0-5.6-5.6L11 7"/><path d="M14 10a4 4 0 0 0-5.6 0l-3 3a4 4 0 0 0 5.6 5.6L13 17"/></svg>);
    case "image": return (<svg {...common}><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="1.5"/><path d="m4 18 5-5 4 4 3-3 4 4"/></svg>);
    case "eye": return (<svg {...common}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z"/><circle cx="12" cy="12" r="3"/></svg>);
    case "calendar": return (<svg {...common}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg>);
    case "upload": return (<svg {...common}><path d="M12 4v12M7 9l5-5 5 5"/><path d="M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3"/></svg>);
    case "trash": return (<svg {...common}><path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13"/></svg>);
    case "external": return (<svg {...common}><path d="M14 4h6v6"/><path d="m10 14 10-10"/><path d="M20 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5"/></svg>);
    case "check": return (<svg {...common}><path d="m5 12 5 5 9-10"/></svg>);
    case "x": return (<svg {...common}><path d="m6 6 12 12M18 6 6 18"/></svg>);
    case "split": return (<svg {...common}><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M12 4v16"/></svg>);
    case "bell": return (<svg {...common}><path d="M6 10a6 6 0 0 1 12 0v4l2 3H4l2-3Z"/><path d="M10 20a2 2 0 0 0 4 0"/></svg>);
    case "logout": return (<svg {...common}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" y1="12" x2="9" y2="12"/></svg>);
    case "tag": return (<svg {...common}><path d="M12 2H7a2 2 0 0 0-2 2v5l7 7 7-7V8l-7-6Z"/><circle cx="10" cy="8" r="1.2"/></svg>);
    default: return null;
  }
};

window.Icon = Icon;
