Add AboutUs showcase

This commit is contained in:
CHINBOY
2025-07-03 14:34:04 +08:00
parent 823a593638
commit ff0e593ee4
18 changed files with 1338 additions and 767 deletions
@@ -26,5 +26,9 @@
<ProjectReference Include="../AtomUI.Theme/AtomUI.Theme.csproj" />
<ProjectReference Include="../AtomUI.Generator/AtomUI.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Buttons\Themes\HyperLinkButtonTheme.axaml" />
</ItemGroup>
</Project>
+13 -21
View File
@@ -14,7 +14,6 @@ using Avalonia.Controls.Metadata;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Layout;
using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.VisualTree;
@@ -77,13 +76,10 @@ public class Button : AvaloniaButton,
public static readonly StyledProperty<Icon?> IconProperty =
AvaloniaProperty.Register<Button, Icon?>(nameof(Icon));
public static readonly StyledProperty<bool> IsIconVisibleProperty =
AvaloniaProperty.Register<Button, bool>(nameof(IsIconVisible), true);
public static readonly StyledProperty<bool> IsMotionEnabledProperty =
MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner<Button>();
public static readonly StyledProperty<bool> IsWaveSpiritEnabledProperty =
public static readonly StyledProperty<bool> IsWaveSpiritEnabledProperty =
WaveSpiritAwareControlProperty.IsWaveSpiritEnabledProperty.AddOwner<Button>();
public ButtonType ButtonType
@@ -127,13 +123,7 @@ public class Button : AvaloniaButton,
get => GetValue(IconProperty);
set => SetValue(IconProperty, value);
}
public bool IsIconVisible
{
get => GetValue(IsIconVisibleProperty);
set => SetValue(IsIconVisibleProperty, value);
}
public bool IsMotionEnabled
{
get => GetValue(IsMotionEnabledProperty);
@@ -161,6 +151,9 @@ public class Button : AvaloniaButton,
internal static readonly StyledProperty<BoxShadow> DangerShadowProperty =
AvaloniaProperty.Register<Button, BoxShadow>(
nameof(DangerShadow));
internal static readonly StyledProperty<bool> IsIconVisibleProperty =
AvaloniaProperty.Register<Button, bool>(nameof(IsIconVisible), true);
internal static readonly StyledProperty<object?> RightExtraContentProperty =
AvaloniaProperty.Register<Button, object?>(nameof(RightExtraContent));
@@ -189,6 +182,12 @@ public class Button : AvaloniaButton,
get => GetValue(DangerShadowProperty);
set => SetValue(DangerShadowProperty, value);
}
internal bool IsIconVisible
{
get => GetValue(IsIconVisibleProperty);
set => SetValue(IsIconVisibleProperty, value);
}
public object? RightExtraContent
{
@@ -222,17 +221,10 @@ public class Button : AvaloniaButton,
{
AffectsMeasure<Button>(SizeTypeProperty,
ShapeProperty,
IconProperty,
WidthProperty,
HeightProperty,
PaddingProperty);
IconProperty);
AffectsRender<Button>(ButtonTypeProperty,
IsDangerProperty,
IsGhostProperty,
BackgroundProperty,
ForegroundProperty);
HorizontalAlignmentProperty.OverrideDefaultValue<Button>(HorizontalAlignment.Left);
VerticalAlignmentProperty.OverrideDefaultValue<Button>(VerticalAlignment.Center);
IsGhostProperty);
}
public Button()
@@ -9,4 +9,5 @@ public static class ButtonPseudoClass
public const string PrimaryType = ":primary";
public const string LinkType = ":link";
public const string TextType = ":text";
public const string Visited = ":visited";
}
@@ -0,0 +1,195 @@
using AtomUI.Animations;
using AtomUI.Controls.Utils;
using AtomUI.IconPkg;
using AtomUI.Theme;
using AtomUI.Theme.Utils;
using Avalonia;
using Avalonia.Animation;
using Avalonia.Controls;
using Avalonia.Controls.Metadata;
using Avalonia.Controls.Primitives;
using Avalonia.Threading;
using Avalonia.VisualTree;
namespace AtomUI.Controls;
using AvaloniaButton = Avalonia.Controls.Button;
using ButtonSizeType = SizeType;
[PseudoClasses(ButtonPseudoClass.Visited,
ButtonPseudoClass.IconOnly,
ButtonPseudoClass.Loading,
ButtonPseudoClass.IsDanger)]
public class HyperLinkButton : AvaloniaButton,
ISizeTypeAware,
IControlSharedTokenResourcesHost,
IMotionAwareControl
{
#region 公共属性定义
public static readonly StyledProperty<bool> IsDangerProperty =
AvaloniaProperty.Register<HyperLinkButton, bool>(nameof(IsDanger));
public static readonly StyledProperty<bool> IsGhostProperty =
AvaloniaProperty.Register<HyperLinkButton, bool>(nameof(IsGhost));
public static readonly StyledProperty<bool> IsLoadingProperty =
AvaloniaProperty.Register<HyperLinkButton, bool>(nameof(IsLoading));
public static readonly StyledProperty<ButtonSizeType> SizeTypeProperty =
SizeTypeAwareControlProperty.SizeTypeProperty.AddOwner<HyperLinkButton>();
public static readonly StyledProperty<Icon?> IconProperty =
AvaloniaProperty.Register<HyperLinkButton, Icon?>(nameof(Icon));
public static readonly StyledProperty<bool> IsMotionEnabledProperty =
MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner<HyperLinkButton>();
public static readonly StyledProperty<bool> IsVisitedProperty =
AvaloniaProperty.Register<HyperLinkButton, bool>(
nameof(IsVisited),
defaultValue: false);
public static readonly StyledProperty<Uri?> NavigateUriProperty =
AvaloniaProperty.Register<HyperLinkButton, Uri?>(
nameof(NavigateUri),
defaultValue: null);
public bool IsDanger
{
get => GetValue(IsDangerProperty);
set => SetValue(IsDangerProperty, value);
}
public bool IsGhost
{
get => GetValue(IsGhostProperty);
set => SetValue(IsGhostProperty, value);
}
public bool IsLoading
{
get => GetValue(IsLoadingProperty);
set => SetValue(IsLoadingProperty, value);
}
public ButtonSizeType SizeType
{
get => GetValue(SizeTypeProperty);
set => SetValue(SizeTypeProperty, value);
}
public Icon? Icon
{
get => GetValue(IconProperty);
set => SetValue(IconProperty, value);
}
public bool IsMotionEnabled
{
get => GetValue(IsMotionEnabledProperty);
set => SetValue(IsMotionEnabledProperty, value);
}
public bool IsVisited
{
get => GetValue(IsVisitedProperty);
set => SetValue(IsVisitedProperty, value);
}
public Uri? NavigateUri
{
get => GetValue(NavigateUriProperty);
set => SetValue(NavigateUriProperty, value);
}
#endregion
Control IMotionAwareControl.PropertyBindTarget => this;
Control IControlSharedTokenResourcesHost.HostControl => this;
string IControlSharedTokenResourcesHost.TokenId => ButtonToken.ID;
static HyperLinkButton()
{
AffectsMeasure<HyperLinkButton>(SizeTypeProperty,
IconProperty);
AffectsRender<HyperLinkButton>(IsDangerProperty,
IsGhostProperty);
}
public HyperLinkButton()
{
this.RegisterResources();
this.BindMotionProperties();
}
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);
if (change.Property == IsVisitedProperty ||
change.Property == ContentProperty ||
change.Property == IsLoadingProperty)
{
UpdatePseudoClasses();
}
if (this.IsAttachedToVisualTree())
{
if (change.Property == IsMotionEnabledProperty)
{
ConfigureTransitions();
}
}
}
private void UpdatePseudoClasses()
{
PseudoClasses.Set(ButtonPseudoClass.Visited, IsVisited);
}
protected override void OnClick()
{
base.OnClick();
Uri? uri = NavigateUri;
if (uri is not null)
{
Dispatcher.UIThread.InvokeAsync(async () =>
{
bool success = await TopLevel.GetTopLevel(this)!.Launcher.LaunchUriAsync(uri);
if (success)
{
SetCurrentValue(IsVisitedProperty, true);
}
});
}
}
private void ConfigureTransitions()
{
if (IsMotionEnabled)
{
if (Transitions is null)
{
var transitions = new Transitions
{
TransitionUtils.CreateTransition<SolidColorBrushTransition>(BackgroundProperty),
TransitionUtils.CreateTransition<SolidColorBrushTransition>(ForegroundProperty)
};
Transitions = transitions;
}
}
else
{
Transitions?.Clear();
Transitions = null;
}
}
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
ConfigureTransitions();
}
}
@@ -23,8 +23,15 @@
ElementName={x:Static atom:ButtonThemeConstants.ButtonIconPart}}" />
<atom:IconPresenter
Name="{x:Static atom:ButtonThemeConstants.ButtonIconPart}"
Icon="{TemplateBinding Icon}"
IsVisible="{TemplateBinding Icon, Converter={x:Static ObjectConverters.IsNotNull}}" />
Icon="{TemplateBinding Icon}">
<atom:IconPresenter.IsVisible>
<MultiBinding
Converter="{x:Static atom:BaseButtonTheme.ButtonIconVisibleConverter}">
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Icon" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="IsIconVisible" />
</MultiBinding>
</atom:IconPresenter.IsVisible>
</atom:IconPresenter>
<atom:TextBlock
Name="{x:Static atom:ButtonThemeConstants.LabelPart}"
VerticalAlignment="Center"
@@ -36,7 +43,8 @@
</Setter>
<Style Selector="^:is(atom|Button)">
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="DefaultShadow" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultShadow}}" />
<Setter Property="PrimaryShadow" Value="{DynamicResource {x:Static atom:ButtonTokenKey.PrimaryShadow}}" />
@@ -200,16 +208,24 @@
<!-- icon 的各种颜色 -->
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="NormalFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}"/>
<Setter Property="ActiveFilledBrush" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}"/>
<Setter Property="SelectedFilledBrush" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}"/>
<Setter Property="DisabledFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}"/>
<Setter Property="NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}" />
<Setter Property="ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}" />
<Setter Property="SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
<Setter Property="DisabledFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="NormalFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}"/>
<Setter Property="ActiveFilledBrush" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}"/>
<Setter Property="SelectedFilledBrush" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}"/>
<Setter Property="DisabledFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}"/>
<Setter Property="NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}" />
<Setter Property="ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}" />
<Setter Property="SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
<Setter Property="DisabledFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<!-- BuildIconStyle 结束 -->
@@ -1,7 +1,9 @@
using AtomUI.Controls.Utils;
using Avalonia.Styling;
namespace AtomUI.Controls.Themes;
internal class BaseButtonTheme : ControlTheme
{
public static readonly ButtonIconVisibleConverter ButtonIconVisibleConverter = new();
}
@@ -7,6 +7,7 @@
<ResourceInclude Source="DropdownButton/DropdownButtonThemes.axaml"/>
<ResourceInclude Source="SplitButtonTheme.axaml"/>
<ResourceInclude Source="ToggleIconButtonTheme.axaml"/>
<ResourceInclude Source="HyperLinkButtonTheme.axaml"/>
</ResourceDictionary.MergedDictionaries>
<themes:IconButtonTheme x:Key="{x:Type atom:IconButton}" TargetType="atom:IconButton"/>
</ResourceDictionary>
@@ -0,0 +1,294 @@
<ResourceDictionary
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:atom="https://atomui.net">
<ControlTheme x:Key="{x:Type atom:HyperLinkButton}" TargetType="atom:HyperLinkButton">
<Setter Property="Template">
<ControlTemplate>
<Border Name="{x:Static atom:ButtonThemeConstants.FramePart}"
Padding="{TemplateBinding Padding}"
BackgroundSizing="{TemplateBinding BackgroundSizing}"
CornerRadius="{TemplateBinding CornerRadius}">
<StackPanel Name="{x:Static atom:ButtonThemeConstants.MainInfoLayoutPart}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Orientation="Horizontal">
<atom:Icon Name="{x:Static atom:ButtonThemeConstants.LoadingIconPart}"
IconInfo="{atom:IconInfoProvider LoadingOutlined}"
Margin="{Binding (atom:IconPresenter.Margin),
ElementName={x:Static atom:ButtonThemeConstants.ButtonIconPart}}" />
<atom:IconPresenter
Name="{x:Static atom:ButtonThemeConstants.ButtonIconPart}"
Icon="{TemplateBinding Icon}"
IsVisible="{TemplateBinding Icon, Converter={x:Static ObjectConverters.IsNotNull}}" />
<atom:TextBlock
Name="{x:Static atom:ButtonThemeConstants.LabelPart}"
VerticalAlignment="Center"
Text="{TemplateBinding Content}" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter>
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Cursor" Value="Hand" />
<Style Selector="^[SizeType=Large]">
<Style Selector="^ /template/ Border#PART_Frame">
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.ControlHeightLG}}" />
</Style>
<Setter Property="FontSize" Value="{DynamicResource {x:Static atom:ButtonTokenKey.ContentFontSizeLG}}" />
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.PaddingLG}}" />
<Style Selector="^:icononly">
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.IconOnyPaddingLG}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Middle]">
<Style Selector="^ /template/ Border#PART_Frame">
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.ControlHeight}}" />
</Style>
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.Padding}}" />
<Setter Property="FontSize" Value="{DynamicResource {x:Static atom:ButtonTokenKey.ContentFontSize}}" />
<Style Selector="^:icononly">
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.IconOnyPadding}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Small]">
<Style Selector="^ /template/ Border#PART_Frame">
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.ControlHeightSM}}" />
</Style>
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.PaddingSM}}" />
<Setter Property="FontSize" Value="{DynamicResource {x:Static atom:ButtonTokenKey.ContentFontSizeSM}}" />
<Style Selector="^:icononly">
<Setter Property="Padding" Value="{DynamicResource {x:Static atom:ButtonTokenKey.IconOnyPaddingSM}}" />
</Style>
</Style>
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconMode" Value="Normal" />
</Style>
<Style Selector="^:pointerover">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconMode" Value="Active" />
</Style>
</Style>
<Style Selector="^:pressed">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconMode" Value="Selected" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconMode" Value="Disabled" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="IconMode" Value="Disabled" />
</Style>
</Style>
<!-- text 和 icon 都存在的情况 -->
<Style Selector="^[SizeType=Large]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeLG}}" />
<Setter Property="IconHeight" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeLG}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeLG}}" />
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeLG}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Middle]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSize}}" />
<Setter Property="IconHeight" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSize}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSize}}" />
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSize}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Small]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeSM}}" />
<Setter Property="IconHeight" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeSM}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeSM}}" />
<Setter Property="Height" Value="{DynamicResource {x:Static atom:SharedTokenKey.IconSizeSM}}" />
</Style>
</Style>
<Style Selector="^:icononly">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon, ^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Margin" Value="0" />
</Style>
<Style Selector="^[SizeType=Large]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeLG}}" />
<Setter Property="IconHeight"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeLG}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeLG}}" />
<Setter Property="Height"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeLG}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Middle]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSize}}" />
<Setter Property="IconHeight"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSize}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSize}}" />
<Setter Property="Height"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSize}}" />
</Style>
</Style>
<Style Selector="^[SizeType=Small]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IconWidth"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeSM}}" />
<Setter Property="IconHeight"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeSM}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Width"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeSM}}" />
<Setter Property="Height"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.OnlyIconSizeSM}}" />
</Style>
</Style>
</Style>
<Style Selector="^:not(:icononly)">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon, ^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Margin" Value="{DynamicResource {x:Static atom:ButtonTokenKey.IconMargin}}" />
</Style>
</Style>
<!-- icon 的各种颜色 -->
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}" />
<Setter Property="ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}" />
<Setter Property="SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
<Setter Property="DisabledFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextSecondary}}" />
<Setter Property="ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultHoverColor}}" />
<Setter Property="SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
<Setter Property="DisabledFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<!-- BuildIconStyle 结束 -->
<!-- BuildLoadingStyle 开始 -->
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="^:loading">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="IsVisible" Value="True" />
<Setter Property="LoadingAnimation" Value="Spin" />
</Style>
<Setter Property="Opacity" Value="{DynamicResource {x:Static atom:SharedTokenKey.OpacityLoading}}" />
</Style>
<!-- BuildLoadingStyle 结束 -->
<Style Selector="^:not(:disabled)">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLink}}" />
<Style Selector="^/template/ Border#PART_Frame">
<Setter Property="Background" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultBg}}" />
</Style>
<Style Selector="^:pointerover">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkHover}}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkActive}}" />
</Style>
<Style Selector="^:danger">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorError}}" />
<Style Selector="^:pointerover">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorHover}}" />
</Style>
<Style Selector="^:pressed">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorActive}}" />
</Style>
</Style>
<Style Selector="^[IsGhost=True]">
<Style Selector="^/template/ Border#PART_Frame">
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
</Style>
<Style Selector="^:disabled">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
<Setter Property="BorderBrush"
Value="{DynamicResource {x:Static atom:ButtonTokenKey.BorderColorDisabled}}" />
<Style Selector="^/template/ Border#PART_Frame">
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<!-- icon 的各种颜色 -->
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon, ^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="atom:Icon.NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLink}}" />
<Setter Property="atom:Icon.ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkHover}}" />
<Setter Property="atom:Icon.SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkActive}}" />
</Style>
<Style Selector="^:danger">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon, ^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="atom:Icon.NormalFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorError}}" />
<Setter Property="atom:Icon.ActiveFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorBorderHover}}" />
<Setter Property="atom:Icon.SelectedFilledBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorActive}}" />
</Style>
</Style>
</ControlTheme>
</ResourceDictionary>
@@ -0,0 +1,19 @@
using System.Globalization;
using AtomUI.IconPkg;
using Avalonia.Data.Converters;
namespace AtomUI.Controls.Utils;
public class ButtonIconVisibleConverter : IMultiValueConverter
{
public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
{
if (values.Count != 2)
{
return false;
}
var icon = values[0] as Icon;
var iconVisible = values[1] as bool?;
return icon != null && iconVisible == true;
}
}
@@ -232,7 +232,7 @@
<Style Selector="^:icon">
<Style Selector="^ /template/ atom|IconPresenter#PART_ItemIconPresenter">
<Setter Property="IsVisible" Value="False" />
<Setter Property="IsVisible" Value="True" />
</Style>
</Style>
<!-- BuildMenuIconStyle end -->
@@ -82,6 +82,11 @@
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.VerticalItemsPanelSpacing}}" />
</Style>
<Style Selector="^ /template/ atom|MotionActorControl#PART_ChildItemsLayoutTransform">
<Setter Property="Margin"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.VerticalChildItemsMargin}}" />
</Style>
<!-- BuildMenuIndicatorStyle begin -->
<Style Selector="^ /template/ Border#PART_MenuIndicatorIconFrame">
<Setter Property="RenderTransform" Value="rotate(90deg)" />
@@ -40,7 +40,7 @@
GroupName="{TemplateBinding GroupName}">
<atom:RadioButton.IsVisible>
<MultiBinding
Converter="{x:Static atom:TreeViewItemTheme.TreeViewItemRadioVisible}">
Converter="{x:Static atom:TreeViewItemTheme.TreeViewItemRadioVisibleConverter}">
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ToggleType" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ItemCount" />
</MultiBinding>
@@ -13,7 +13,7 @@ public class TreeViewItemTheme : ControlTheme
Indent = 16
};
public static readonly TreeViewItemRadioVisible TreeViewItemRadioVisible = new ();
public static readonly TreeViewItemRadioVisibleConverter TreeViewItemRadioVisibleConverter = new ();
public static readonly StringToTextBlockConverter StringToTextBlockConverter = new()
{
@@ -3,7 +3,7 @@ using Avalonia.Data.Converters;
namespace AtomUI.Controls.Utils;
public class TreeViewItemRadioVisible : IMultiValueConverter
public class TreeViewItemRadioVisibleConverter : IMultiValueConverter
{
public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
{
@@ -0,0 +1,4 @@
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 1024 1024">
<path d="M512 1021.72444445A509.72444445 509.72444445 0 1 1 512 2.27555555a509.72444445 509.72444445 0 0 1 0 1019.4488889z m257.99338667-566.37667556H480.54272a25.19495111 25.19495111 0 0 0-25.19495111 25.19495111v62.91456c0 13.90819555 11.28675555 25.19495111 25.12213333 25.19495111h176.21902223c13.98101333 0 25.19495111 11.28675555 25.1949511 25.12213334v12.59747555c0 41.72458667-33.78744889 75.51203555-75.51203555 75.51203555H367.23825778a25.19495111 25.19495111 0 0 1-25.12213333-25.12213333V417.62816c0-41.72458667 33.78744889-75.51203555 75.43921777-75.51203555h352.43804445c13.83537778 0 25.12213333-11.28675555 25.12213333-25.19495112v-62.91456a25.19495111 25.19495111 0 0 0-25.12213333-25.19495111h-352.43804445a188.74368 188.74368 0 0 0-188.74368 188.81649778v352.36522667c0 13.90819555 11.28675555 25.19495111 25.19495111 25.19495111h371.22503112a169.88387555 169.88387555 0 0 0 169.95669333-169.88387556V480.54272a25.19495111 25.19495111 0 0 0-25.19495111-25.19495111z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,4 @@
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 1024 1024">
<path d="M512 1021.72444445A509.72444445 509.72444445 0 1 1 512 2.27555555a509.72444445 509.72444445 0 0 1 0 1019.4488889z m257.99338667-566.37667556H480.54272a25.19495111 25.19495111 0 0 0-25.19495111 25.19495111v62.91456c0 13.90819555 11.28675555 25.19495111 25.12213333 25.19495111h176.21902223c13.98101333 0 25.19495111 11.28675555 25.1949511 25.12213334v12.59747555c0 41.72458667-33.78744889 75.51203555-75.51203555 75.51203555H367.23825778a25.19495111 25.19495111 0 0 1-25.12213333-25.12213333V417.62816c0-41.72458667 33.78744889-75.51203555 75.43921777-75.51203555h352.43804445c13.83537778 0 25.12213333-11.28675555 25.12213333-25.19495112v-62.91456a25.19495111 25.19495111 0 0 0-25.12213333-25.19495111h-352.43804445a188.74368 188.74368 0 0 0-188.74368 188.81649778v352.36522667c0 13.90819555 11.28675555 25.19495111 25.19495111 25.19495111h371.22503112a169.88387555 169.88387555 0 0 0 169.95669333-169.88387556V480.54272a25.19495111 25.19495111 0 0 0-25.19495111-25.19495111z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1552,6 +1552,21 @@ public partial class AntDesignIconPackage
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiftFilled, twoToneColorInfo);
}
public static AtomUI.IconPkg.Icon GiteeFilled()
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeFilled);
}
public static AtomUI.IconPkg.Icon GiteeFilled(ColorInfo colorInfo)
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeFilled, colorInfo);
}
public static AtomUI.IconPkg.Icon GiteeFilled(TwoToneColorInfo twoToneColorInfo)
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeFilled, twoToneColorInfo);
}
public static AtomUI.IconPkg.Icon GithubFilled()
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GithubFilled);
@@ -6502,6 +6517,21 @@ public partial class AntDesignIconPackage
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiftOutlined, twoToneColorInfo);
}
public static AtomUI.IconPkg.Icon GiteeOutlined()
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeOutlined);
}
public static AtomUI.IconPkg.Icon GiteeOutlined(ColorInfo colorInfo)
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeOutlined, colorInfo);
}
public static AtomUI.IconPkg.Icon GiteeOutlined(TwoToneColorInfo twoToneColorInfo)
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GiteeOutlined, twoToneColorInfo);
}
public static AtomUI.IconPkg.Icon GithubOutlined()
{
return AntDesignIconPackage.Current.BuildIcon(AntDesignIconKind.GithubOutlined);
@@ -12577,6 +12607,7 @@ public partial class AntDesignIconPackage
_iconInfoPool.Add((int)AntDesignIconKind.FundFilled, () => new IconInfo("FundFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.FunnelPlotFilled, () => new IconInfo("FunnelPlotFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GiftFilled, () => new IconInfo("GiftFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GiteeFilled, () => new IconInfo("GiteeFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M512 1021.72444445A509.72444445 509.72444445 0 1 1 512 2.27555555a509.72444445 509.72444445 0 0 1 0 1019.4488889z m257.99338667-566.37667556H480.54272a25.19495111 25.19495111 0 0 0-25.19495111 25.19495111v62.91456c0 13.90819555 11.28675555 25.19495111 25.12213333 25.19495111h176.21902223c13.98101333 0 25.19495111 11.28675555 25.1949511 25.12213334v12.59747555c0 41.72458667-33.78744889 75.51203555-75.51203555 75.51203555H367.23825778a25.19495111 25.19495111 0 0 1-25.12213333-25.12213333V417.62816c0-41.72458667 33.78744889-75.51203555 75.43921777-75.51203555h352.43804445c13.83537778 0 25.12213333-11.28675555 25.12213333-25.19495112v-62.91456a25.19495111 25.19495111 0 0 0-25.12213333-25.19495111h-352.43804445a188.74368 188.74368 0 0 0-188.74368 188.81649778v352.36522667c0 13.90819555 11.28675555 25.19495111 25.19495111 25.19495111h371.22503112a169.88387555 169.88387555 0 0 0 169.95669333-169.88387556V480.54272a25.19495111 25.19495111 0 0 0-25.19495111-25.19495111z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GithubFilled, () => new IconInfo("GithubFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GitlabFilled, () => new IconInfo("GitlabFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GoldFilled, () => new IconInfo("GoldFilled", IconThemeType.Filled, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z", true)}));
@@ -12907,6 +12938,7 @@ public partial class AntDesignIconPackage
_iconInfoPool.Add((int)AntDesignIconKind.GatewayOutlined, () => new IconInfo("GatewayOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GifOutlined, () => new IconInfo("GifOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M944 299H692c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h59.2c4.4 0 8-3.6 8-8V549.9h168.2c4.4 0 8-3.6 8-8V495c0-4.4-3.6-8-8-8H759.2V364.2H944c4.4 0 8-3.6 8-8V307c0-4.4-3.6-8-8-8zM588 300h-56c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V308c0-4.4-3.6-8-8-8zM452 500.9H290.5c-4.4 0-8 3.6-8 8v43.7c0 4.4 3.6 8 8 8h94.9l-0.3 8.9c-1.2 58.8-45.6 98.5-110.9 98.5-76.2 0-123.9-59.7-123.9-156.7 0-95.8 46.8-155.2 121.5-155.2 54.8 0 93.1 26.9 108.5 75.4h76.2c-13.6-87.2-86-143.4-184.7-143.4C150 288 72 375.2 72 511.9 72 650.2 149.1 736 273 736c114.1 0 187-70.7 187-181.6v-45.5c0-4.4-3.6-8-8-8z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GiftOutlined, () => new IconInfo("GiftOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GiteeOutlined, () => new IconInfo("GiteeOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M512 1021.72444445A509.72444445 509.72444445 0 1 1 512 2.27555555a509.72444445 509.72444445 0 0 1 0 1019.4488889z m257.99338667-566.37667556H480.54272a25.19495111 25.19495111 0 0 0-25.19495111 25.19495111v62.91456c0 13.90819555 11.28675555 25.19495111 25.12213333 25.19495111h176.21902223c13.98101333 0 25.19495111 11.28675555 25.1949511 25.12213334v12.59747555c0 41.72458667-33.78744889 75.51203555-75.51203555 75.51203555H367.23825778a25.19495111 25.19495111 0 0 1-25.12213333-25.12213333V417.62816c0-41.72458667 33.78744889-75.51203555 75.43921777-75.51203555h352.43804445c13.83537778 0 25.12213333-11.28675555 25.12213333-25.19495112v-62.91456a25.19495111 25.19495111 0 0 0-25.12213333-25.19495111h-352.43804445a188.74368 188.74368 0 0 0-188.74368 188.81649778v352.36522667c0 13.90819555 11.28675555 25.19495111 25.19495111 25.19495111h371.22503112a169.88387555 169.88387555 0 0 0 169.95669333-169.88387556V480.54272a25.19495111 25.19495111 0 0 0-25.19495111-25.19495111z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GithubOutlined, () => new IconInfo("GithubOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GitlabOutlined, () => new IconInfo("GitlabOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.GlobalOutlined, () => new IconInfo("GlobalOutlined", IconThemeType.Outlined, new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0 0 10-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 0 1 115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 0 1 540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 0 0 540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 0 1-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 0 0-81.5 55.9A373.86 373.86 0 0 1 137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 0 1-107.6 69.2z", true)}));
@@ -13305,8 +13337,8 @@ public partial class AntDesignIconPackage
_iconInfoPool.Add((int)AntDesignIconKind.VideoCameraTwoTone, () => new IconInfo("VideoCameraTwoTone", new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z", false), new GeometryData("M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z", true), new GeometryData("M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z", true)}));
_iconInfoPool.Add((int)AntDesignIconKind.WalletTwoTone, () => new IconInfo("WalletTwoTone", new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z", true), new GeometryData("M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z", false), new GeometryData("M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z", true), new GeometryData("M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z", false)}));
_iconInfoPool.Add((int)AntDesignIconKind.WarningTwoTone, () => new IconInfo("WarningTwoTone", new Rect(0, 0, 1024, 1024), new List<GeometryData>{new GeometryData("M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z", true), new GeometryData("M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z", false), new GeometryData("M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z", true)}));
IconThemeRanges.Add(IconThemeType.Filled, (1, 234));
IconThemeRanges.Add(IconThemeType.Outlined, (235, 681));
IconThemeRanges.Add(IconThemeType.TwoTone, (682, 831));
IconThemeRanges.Add(IconThemeType.Filled, (1, 235));
IconThemeRanges.Add(IconThemeType.Outlined, (236, 683));
IconThemeRanges.Add(IconThemeType.TwoTone, (684, 833));
}
}