Changed all icons of AI Studio to Lucide (#1187)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2026-11-11 14:20:49 +01:00
1 parent 9a676101f7
commit 7ef26cd5c8
352 files changed
+6261 -1620

No files matched your search

@@ -4,6 +4,11 @@ namespace AIStudio.Tools.PluginSystem.Assistants.DataModel;
internal static class AssistantComponentPropHelper
{
/// <summary>
/// The prefix with which an assistant plugin names a Lucide icon.
/// </summary>
private const string LUCIDE_PREFIX = "lucide:";
public static string ReadString(Dictionary<string, object> props, string key)
{
if (props.TryGetValue(key, out var value))
@@ -52,7 +57,22 @@ internal static class AssistantComponentPropHelper
public static Color GetColor(string value, Color fallback) => Enum.TryParse<Color>(value, out var color) ? color : fallback;
public static Variant GetVariant(string value, Variant fallback) => Enum.TryParse<Variant>(value, out var variant) ? variant : fallback;
public static Adornment GetAdornment(string value, Adornment fallback) => Enum.TryParse<Adornment>(value, out var adornment) ? adornment : fallback;
public static string GetIconSvg(string value) => MudBlazorIconRegistry.TryGetSvg(value.TrimStart('@'), out var svg) ? svg : string.Empty;
/// <summary>
/// Finds the icon an assistant plugin names: a Lucide icon as "lucide:" followed by its name on lucide.dev,
/// such as "lucide:house", or an icon of MudBlazor, such as "Icons.Material.Filled.Home".
/// </summary>
/// <param name="value">The icon as the plugin names it.</param>
/// <returns>The icon in the form MudBlazor renders, or an empty string for an unknown name.</returns>
public static string GetIcon(string value)
{
var name = value.TrimStart('@');
if (name.StartsWith(LUCIDE_PREFIX, StringComparison.Ordinal))
return LucideIconRegistry.TryGet(name[LUCIDE_PREFIX.Length..], out var lucideIcon) ? lucideIcon : string.Empty;
return MudBlazorIconRegistry.TryGetSvg(name, out var svg) ? svg : string.Empty;
}
public static Size GetComponentSize(string value, Size fallback) => Enum.TryParse<Size>(value, out var size) ? size : fallback;
public static Justify? GetJustify(string value) => Enum.TryParse<Justify>(value, out var justify) ? justify : null;
public static AlignItems? GetItemsAlignment(string value) => Enum.TryParse<AlignItems>(value, out var alignment) ? alignment : null;
@@ -38,32 +38,31 @@ public static class AssistantComponentTypeExtensions
public string Icon => type switch
{
AssistantComponentType.BUTTON => MudBlazor.Icons.Material.Filled.AdsClick,
AssistantComponentType.BUTTON_GROUP => MudBlazor.Icons.Material.Filled.LinearScale,
AssistantComponentType.DROPDOWN => MudBlazor.Icons.Material.Filled.Rule,
AssistantComponentType.PROVIDER_SELECTION => MudBlazor.Icons.Material.Filled.Memory,
AssistantComponentType.PROFILE_SELECTION => MudBlazor.Icons.Material.Filled.Badge,
AssistantComponentType.SWITCH => MudBlazor.Icons.Material.Filled.ToggleOn,
AssistantComponentType.HEADING => MudBlazor.Icons.Material.Filled.Title,
AssistantComponentType.TEXT => MudBlazor.Icons.Material.Filled.TextFields,
AssistantComponentType.TEXT_AREA => MudBlazor.Icons.Material.Filled.Wysiwyg,
AssistantComponentType.LIST => MudBlazor.Icons.Material.Filled.List,
AssistantComponentType.WEB_CONTENT_READER => MudBlazor.Icons.Material.Filled.Public,
AssistantComponentType.FILE_CONTENT_READER => MudBlazor.Icons.Material.Filled.AttachFile,
AssistantComponentType.FILE_ATTACHMENTS => MudBlazor.Icons.Material.Filled.AttachFile,
AssistantComponentType.IMAGE => MudBlazor.Icons.Material.Filled.Image,
AssistantComponentType.COLOR_PICKER => MudBlazor.Icons.Material.Filled.Palette,
AssistantComponentType.DATE_PICKER => MudBlazor.Icons.Material.Filled.CalendarMonth,
AssistantComponentType.DATE_RANGE_PICKER => MudBlazor.Icons.Material.Filled.DateRange,
AssistantComponentType.TIME_PICKER => MudBlazor.Icons.Material.Filled.Schedule,
AssistantComponentType.LAYOUT_ITEM => MudBlazor.Icons.Material.Filled.DashboardCustomize,
AssistantComponentType.LAYOUT_GRID => MudBlazor.Icons.Material.Filled.GridView,
AssistantComponentType.LAYOUT_PAPER => MudBlazor.Icons.Material.Filled.Inbox,
AssistantComponentType.LAYOUT_STACK => MudBlazor.Icons.Material.Filled.Layers,
AssistantComponentType.LAYOUT_ACCORDION => MudBlazor.Icons.Material.Filled.CalendarViewDay,
AssistantComponentType.LAYOUT_ACCORDION_SECTION => MudBlazor.Icons.Material.Filled.HorizontalSplit,
AssistantComponentType.FORM => MudBlazor.Icons.Material.Filled.AccountTree,
_ => MudBlazor.Icons.Material.Filled.AccountTree,
AssistantComponentType.BUTTON => AppIcons.COMPONENT_BUTTON,
AssistantComponentType.BUTTON_GROUP => AppIcons.COMPONENT_BUTTON_GROUP,
AssistantComponentType.DROPDOWN => AppIcons.COMPONENT_DROPDOWN,
AssistantComponentType.PROVIDER_SELECTION => AppIcons.LLM_PROVIDER,
AssistantComponentType.PROFILE_SELECTION => AppIcons.PROFILE,
AssistantComponentType.SWITCH => AppIcons.SWITCH,
AssistantComponentType.HEADING => AppIcons.HEADING,
AssistantComponentType.TEXT => AppIcons.TEXT_INPUT,
AssistantComponentType.TEXT_AREA => AppIcons.TEXT_AREA,
AssistantComponentType.LIST => AppIcons.LIST,
AssistantComponentType.WEB_CONTENT_READER => AppIcons.WEB,
AssistantComponentType.FILE_CONTENT_READER => AppIcons.ATTACH_FILE,
AssistantComponentType.FILE_ATTACHMENTS => AppIcons.ATTACH_FILE,
AssistantComponentType.IMAGE => AppIcons.IMAGE,
AssistantComponentType.COLOR_PICKER => AppIcons.COLOR,
AssistantComponentType.DATE_PICKER => AppIcons.DATE,
AssistantComponentType.DATE_RANGE_PICKER => AppIcons.DATE_RANGE,
AssistantComponentType.TIME_PICKER => AppIcons.TIME,
AssistantComponentType.LAYOUT_ITEM => AppIcons.COMPONENT_LAYOUT_ITEM,
AssistantComponentType.LAYOUT_GRID => AppIcons.ASSISTANT_COMPONENT_GRID,
AssistantComponentType.LAYOUT_PAPER => AppIcons.COMPONENT_LAYOUT_PAPER,
AssistantComponentType.LAYOUT_STACK => AppIcons.COMPONENT_LAYOUT_STACK,
AssistantComponentType.LAYOUT_ACCORDION => AppIcons.COMPONENT_ACCORDION,
AssistantComponentType.LAYOUT_ACCORDION_SECTION => AppIcons.ASSISTANT_COMPONENT_ACCORDION_SECTION,
_ => AppIcons.ASSISTANT_COMPONENTS,
};
}
}
@@ -1,4 +1,3 @@
using AIStudio.Tools.PluginSystem.Assistants.Icons;
using Lua;
namespace AIStudio.Tools.PluginSystem.Assistants.DataModel;
@@ -105,5 +104,5 @@ public sealed class AssistantSwitch : StatefulAssistantComponentBase
public static Color GetColor(string colorString) => Enum.TryParse<Color>(colorString, out var color) ? color : Color.Inherit;
public Placement GetLabelPlacement() => Enum.TryParse<Placement>(this.LabelPlacement, out var placement) ? placement : Placement.Right;
public string GetIconSvg() => MudBlazorIconRegistry.TryGetSvg(this.Icon, out var svg) ? svg : string.Empty;
public string GetIcon() => AssistantComponentPropHelper.GetIcon(this.Icon);
}