mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-03-29 12:31:38 +00:00
advanced layout: added MudItem, MudPaper, MudStack and MudGrid as new layout components
This commit is contained in:
parent
4f836e2dfb
commit
5106800399
@ -1,4 +1,5 @@
|
||||
using AIStudio.Tools.PluginSystem.Assistants.DataModel;
|
||||
using AIStudio.Tools.PluginSystem.Assistants.DataModel.Layout;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem.Assistants;
|
||||
|
||||
@ -43,6 +44,14 @@ public class AssistantComponentFactory
|
||||
return new AssistantImage { Props = props, Children = children };
|
||||
case AssistantComponentType.COLOR_PICKER:
|
||||
return new AssistantColorPicker { Props = props, Children = children };
|
||||
case AssistantComponentType.LAYOUT_ITEM:
|
||||
return new AssistantItem { Props = props, Children = children };
|
||||
case AssistantComponentType.LAYOUT_GRID:
|
||||
return new AssistantGrid { Props = props, Children = children };
|
||||
case AssistantComponentType.LAYOUT_PAPER:
|
||||
return new AssistantPaper { Props = props, Children = children };
|
||||
case AssistantComponentType.LAYOUT_STACK:
|
||||
return new AssistantStack { Props = props, Children = children };
|
||||
default:
|
||||
LOGGER.LogError($"Unknown assistant component type!\n{type} is not a supported assistant component type");
|
||||
throw new Exception($"Unknown assistant component type: {type}");
|
||||
|
||||
@ -63,4 +63,9 @@ internal static class AssistantComponentPropHelper
|
||||
public static MudBlazor.Color GetColor(string value, Color fallback) => Enum.TryParse<MudBlazor.Color>(value, out var color) ? color : fallback;
|
||||
public static string GetIconSvg(string value) => MudBlazorIconRegistry.TryGetSvg(value, 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? GetAlignment(string value) => Enum.TryParse<AlignItems>(value, out var alignment) ? alignment : null;
|
||||
public static Wrap? GetWrap(string value) => Enum.TryParse<Wrap>(value, out var wrap) ? wrap : null;
|
||||
public static StretchItems? GetStretching(string value) => Enum.TryParse<StretchItems>(value, out var stretch) ? stretch : null;
|
||||
public static Breakpoint GetBreakpoint(string value, Breakpoint fallback) => Enum.TryParse<Breakpoint>(value, out var breakpoint) ? breakpoint : fallback;
|
||||
}
|
||||
|
||||
@ -17,4 +17,8 @@ public enum AssistantComponentType
|
||||
FILE_CONTENT_READER,
|
||||
IMAGE,
|
||||
COLOR_PICKER,
|
||||
LAYOUT_ITEM,
|
||||
LAYOUT_GRID,
|
||||
LAYOUT_PAPER,
|
||||
LAYOUT_STACK,
|
||||
}
|
||||
|
||||
@ -73,7 +73,32 @@ public static class ComponentPropSpecs
|
||||
),
|
||||
[AssistantComponentType.COLOR_PICKER] = new(
|
||||
required: ["Name", "Label"],
|
||||
optional: ["Placeholder", "ShowAlpha", "ShowToolbar", "ShowModeSwitch", "PickerVariant", "UserPrompt", "Class", "Style"]
|
||||
optional: [
|
||||
"Placeholder", "ShowAlpha", "ShowToolbar", "ShowModeSwitch",
|
||||
"PickerVariant", "UserPrompt", "Class", "Style"
|
||||
]
|
||||
),
|
||||
[AssistantComponentType.LAYOUT_ITEM] = new(
|
||||
required: ["Name"],
|
||||
optional: ["Xs", "Sm", "Md", "Lg", "Xl", "Xxl", "Class", "Style"]
|
||||
),
|
||||
[AssistantComponentType.LAYOUT_GRID] = new(
|
||||
required: ["Name"],
|
||||
optional: ["Justify", "Spacing", "Class", "Style"]
|
||||
),
|
||||
[AssistantComponentType.LAYOUT_PAPER] = new(
|
||||
required: ["Name"],
|
||||
optional: [
|
||||
"Height", "MaxHeight", "MinHeight", "Width", "MaxWidth", "MinWidth",
|
||||
"IsOutlined", "IsSquare", "Class", "Style"
|
||||
]
|
||||
),
|
||||
[AssistantComponentType.LAYOUT_STACK] = new(
|
||||
required: ["Name"],
|
||||
optional: [
|
||||
"IsRow", "IsReverse", "Breakpoint", "Align", "Justify", "Stretch",
|
||||
"Wrap", "Spacing", "Class", "Style",
|
||||
]
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
using Lua;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem.Assistants.DataModel.Layout;
|
||||
|
||||
public sealed class AssistantGrid : AssistantComponentBase
|
||||
{
|
||||
public override AssistantComponentType Type => AssistantComponentType.LAYOUT_GRID;
|
||||
public override Dictionary<string, object> Props { get; set; } = new();
|
||||
public override List<IAssistantComponent> Children { get; set; } = new();
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Name));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Name), value);
|
||||
}
|
||||
|
||||
public string Justify
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Justify));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Justify), value);
|
||||
}
|
||||
|
||||
public int Spacing
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadInt(this.Props, nameof(this.Spacing), 6);
|
||||
set => AssistantComponentPropHelper.WriteInt(this.Props, nameof(this.Spacing), value);
|
||||
}
|
||||
|
||||
public string Class
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Class));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Class), value);
|
||||
}
|
||||
|
||||
public string Style
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Style));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Style), value);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
using Lua;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem.Assistants.DataModel.Layout;
|
||||
|
||||
public sealed class AssistantItem : AssistantComponentBase
|
||||
{
|
||||
public override AssistantComponentType Type => AssistantComponentType.LAYOUT_ITEM;
|
||||
public override Dictionary<string, object> Props { get; set; } = new();
|
||||
public override List<IAssistantComponent> Children { get; set; } = new();
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Name));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Name), value);
|
||||
}
|
||||
|
||||
public int? Xs
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Xs));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Xs), value);
|
||||
}
|
||||
|
||||
public int? Sm
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Sm));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Sm), value);
|
||||
}
|
||||
|
||||
public int? Md
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Md));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Md), value);
|
||||
}
|
||||
|
||||
public int? Lg
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Lg));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Lg), value);
|
||||
}
|
||||
|
||||
public int? Xl
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Xl));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Xl), value);
|
||||
}
|
||||
|
||||
public int? Xxl
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadNullableInt(this.Props, nameof(this.Xxl));
|
||||
set => AssistantComponentPropHelper.WriteNullableInt(this.Props, nameof(this.Xxl), value);
|
||||
}
|
||||
|
||||
public string Class
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Class));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Class), value);
|
||||
}
|
||||
|
||||
public string Style
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Style));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Style), value);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
using Lua;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem.Assistants.DataModel.Layout;
|
||||
|
||||
public sealed class AssistantPaper : AssistantComponentBase
|
||||
{
|
||||
public override AssistantComponentType Type => AssistantComponentType.LAYOUT_PAPER;
|
||||
public override Dictionary<string, object> Props { get; set; } = new();
|
||||
public override List<IAssistantComponent> Children { get; set; } = new();
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Name));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Name), value);
|
||||
}
|
||||
|
||||
public int Elevation
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadInt(this.Props, nameof(this.Elevation), 1);
|
||||
set => AssistantComponentPropHelper.WriteInt(this.Props, nameof(this.Elevation), value);
|
||||
}
|
||||
|
||||
public string Height
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Height));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Height), value);
|
||||
}
|
||||
|
||||
public string MaxHeight
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.MaxHeight));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.MaxHeight), value);
|
||||
}
|
||||
|
||||
public string MinHeight
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.MinHeight));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.MinHeight), value);
|
||||
}
|
||||
|
||||
public string Width
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Width));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Width), value);
|
||||
}
|
||||
|
||||
public string MaxWidth
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.MaxWidth));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.MaxWidth), value);
|
||||
}
|
||||
|
||||
public string MinWidth
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.MinWidth));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.MinWidth), value);
|
||||
}
|
||||
|
||||
public bool IsOutlined
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.IsOutlined), false);
|
||||
set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.IsOutlined), value);
|
||||
}
|
||||
|
||||
public bool IsSquare
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.IsSquare), false);
|
||||
set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.IsSquare), value);
|
||||
}
|
||||
|
||||
public string Class
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Class));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Class), value);
|
||||
}
|
||||
|
||||
public string Style
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Style));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Style), value);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
using Lua;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem.Assistants.DataModel.Layout;
|
||||
|
||||
public sealed class AssistantStack : AssistantComponentBase
|
||||
{
|
||||
public override AssistantComponentType Type => AssistantComponentType.LAYOUT_STACK;
|
||||
public override Dictionary<string, object> Props { get; set; } = new();
|
||||
public override List<IAssistantComponent> Children { get; set; } = new();
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Name));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Name), value);
|
||||
}
|
||||
|
||||
public bool IsRow
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.IsRow), false);
|
||||
set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.IsRow), value);
|
||||
}
|
||||
|
||||
public bool IsReverse
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.IsReverse), false);
|
||||
set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.IsReverse), value);
|
||||
}
|
||||
|
||||
public string Breakpoint
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Breakpoint));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Breakpoint), value);
|
||||
}
|
||||
|
||||
public string Align
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Align));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Align), value);
|
||||
}
|
||||
|
||||
public string Justify
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Justify));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Justify), value);
|
||||
}
|
||||
|
||||
public string Stretch
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Stretch));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Stretch), value);
|
||||
}
|
||||
|
||||
public string Wrap
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Wrap));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Wrap), value);
|
||||
}
|
||||
|
||||
public int Spacing
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadInt(this.Props, nameof(this.Spacing), 3);
|
||||
set => AssistantComponentPropHelper.WriteInt(this.Props, nameof(this.Spacing), value);
|
||||
}
|
||||
|
||||
public string Class
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadString(this.Props, nameof(this.Class));
|
||||
set => AssistantComponentPropHelper.WriteString(this.Props, nameof(this.Class), value);
|
||||
}
|
||||
|
||||
public int Style
|
||||
{
|
||||
get => AssistantComponentPropHelper.ReadInt(this.Props, nameof(this.Style), 3);
|
||||
set => AssistantComponentPropHelper.WriteInt(this.Props, nameof(this.Style), value);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user