1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Meta - Update packages

This commit is contained in:
Robert 2024-09-23 22:17:46 +02:00
parent d2afc77bb8
commit 907c758b83
37 changed files with 382 additions and 205 deletions

View File

@ -3,18 +3,17 @@
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"> xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia">
<Design.PreviewWith> <Design.PreviewWith>
<HyperlinkButton Grid.Column="0" Classes="icon-button icon-button-small broken-state-button" Margin="50">
<controls:HyperlinkButton Grid.Column="0" Classes="icon-button icon-button-small broken-state-button" Margin="50">
<avalonia:MaterialIcon Kind="AlertCircle" /> <avalonia:MaterialIcon Kind="AlertCircle" />
</controls:HyperlinkButton> </HyperlinkButton>
</Design.PreviewWith> </Design.PreviewWith>
<!-- Add Styles Here --> <!-- Add Styles Here -->
<Style Selector="controls|HyperlinkButton.broken-state-button avalonia|MaterialIcon"> <Style Selector="HyperlinkButton.broken-state-button avalonia|MaterialIcon">
<Setter Property="Foreground" Value="#E74C4C" /> <Setter Property="Foreground" Value="#E74C4C" />
</Style> </Style>
<Style Selector="controls|HyperlinkButton.broken-state-button:pointerover avalonia|MaterialIcon"> <Style Selector="HyperlinkButton.broken-state-button:pointerover avalonia|MaterialIcon">
<Setter Property="Foreground" Value="#B93F3F" /> <Setter Property="Foreground" Value="#B93F3F" />
</Style> </Style>
</Styles> </Styles>

View File

@ -25,14 +25,14 @@
</ToggleButton> </ToggleButton>
<TextBlock Margin="0 5 0 0">HyperlinkButton.icon-button</TextBlock> <TextBlock Margin="0 5 0 0">HyperlinkButton.icon-button</TextBlock>
<controls:HyperlinkButton Classes="icon-button"> <HyperlinkButton Classes="icon-button">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<TextBlock Margin="0 5 0 0">HyperlinkButton.icon-button icon-button-small</TextBlock> <TextBlock Margin="0 5 0 0">HyperlinkButton.icon-button icon-button-small</TextBlock>
<controls:HyperlinkButton Classes="icon-button icon-button-small"> <HyperlinkButton Classes="icon-button icon-button-small">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<TextBlock Margin="0 5 0 0">Button.window-button</TextBlock> <TextBlock Margin="0 5 0 0">Button.window-button</TextBlock>
@ -93,7 +93,7 @@
<Setter Property="Height" Value="20" /> <Setter Property="Height" Value="20" />
</Style> </Style>
<Style Selector="controls|HyperlinkButton.icon-button"> <Style Selector="HyperlinkButton.icon-button">
<Setter Property="Foreground" Value="{DynamicResource ButtonForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonForeground}" />
</Style> </Style>
@ -113,24 +113,24 @@
<Setter Property="Background" Value="#D64848"></Setter> <Setter Property="Background" Value="#D64848"></Setter>
</Style> </Style>
<Style Selector="Button.danger:pointerover"> <!-- <Style Selector="Button.danger:pointerover"> -->
<Style Selector="^ /template/ controls|FABorder#Root"> <!-- <Style Selector="^ /template/ controls|FABorder#Root"> -->
<Setter Property="Background" Value="#D65757"/> <!-- <Setter Property="Background" Value="#D65757"/> -->
<Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushPointerOver}" /> <!-- <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushPointerOver}" /> -->
</Style> <!-- </Style> -->
</Style> <!-- </Style> -->
<!-- -->
<Style Selector="Button.danger:pressed"> <!-- <Style Selector="Button.danger:pressed"> -->
<Style Selector="^ /template/ controls|FABorder#Root"> <!-- <Style Selector="^ /template/ controls|FABorder#Root"> -->
<Setter Property="Background" Value="#D64848" /> <!-- <Setter Property="Background" Value="#D64848" /> -->
<Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushPressed}" /> <!-- <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushPressed}" /> -->
</Style> <!-- </Style> -->
</Style> <!-- </Style> -->
<!-- -->
<Style Selector="Button.danger:disabled"> <!-- <Style Selector="Button.danger:disabled"> -->
<Style Selector="^ /template/ controls|FABorder#Root"> <!-- <Style Selector="^ /template/ controls|FABorder#Root"> -->
<Setter Property="Background" Value="#D79D9C" /> <!-- <Setter Property="Background" Value="#D79D9C" /> -->
<Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushDisabled}" /> <!-- <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderBrushDisabled}" /> -->
</Style> <!-- </Style> -->
</Style> <!-- </Style> -->
</Styles> </Styles>

View File

@ -51,7 +51,7 @@
RowDefinitions="*,*"> RowDefinitions="*,*">
<TextBlock Grid.Column="0" Grid.Row="0" Classes="BodyStrongTextBlockStyle">Welcome to the data model picker</TextBlock> <TextBlock Grid.Column="0" Grid.Row="0" Classes="BodyStrongTextBlockStyle">Welcome to the data model picker</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource TextFillColorSecondary}">Select a value from the data model below</TextBlock> <TextBlock Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource TextFillColorSecondary}">Select a value from the data model below</TextBlock>
<controls:HyperlinkButton Grid.Column="1" Grid.Row="0" Grid.RowSpan="2">Learn more</controls:HyperlinkButton> <HyperlinkButton Grid.Column="1" Grid.Row="0" Grid.RowSpan="2">Learn more</HyperlinkButton>
</Grid> </Grid>
</Panel> </Panel>
</Border> </Border>

View File

@ -17,7 +17,7 @@
<Label Grid.Column="0" Name="DescriptionEditorLabel" Target="DescriptionEditor" Margin="0 28 0 0" /> <Label Grid.Column="0" Name="DescriptionEditorLabel" Target="DescriptionEditor" Margin="0 28 0 0" />
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right"> <StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
<CheckBox Name="SynchronizedScrolling" IsChecked="True" VerticalAlignment="Bottom">Synchronized scrolling</CheckBox> <CheckBox Name="SynchronizedScrolling" IsChecked="True" VerticalAlignment="Bottom">Synchronized scrolling</CheckBox>
<fa:HyperlinkButton <HyperlinkButton
Margin="0 0 0 -20" Margin="0 0 0 -20"
Content="Markdown supported" Content="Markdown supported"
NavigateUri="https://wiki.artemis-rgb.com/guides/user/markdown?mtm_campaign=artemis&amp;mtm_kwd=markdown-editor" NavigateUri="https://wiki.artemis-rgb.com/guides/user/markdown?mtm_campaign=artemis&amp;mtm_kwd=markdown-editor"

View File

@ -17,9 +17,9 @@
<TextBlock TextWrapping="Wrap" Classes="subtitle" Margin="0 10"> <TextBlock TextWrapping="Wrap" Classes="subtitle" Margin="0 10">
These performance stats are rather basic, for advanced performance profiling check out the wiki. These performance stats are rather basic, for advanced performance profiling check out the wiki.
</TextBlock> </TextBlock>
<controls:HyperlinkButton Grid.Column="1" NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/plugins/profiling?mtm_campaign=artemis&amp;mtm_kwd=debugger"> <HyperlinkButton Grid.Column="1" NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/plugins/profiling?mtm_campaign=artemis&amp;mtm_kwd=debugger">
JetBrains Profiling Guide JetBrains Profiling Guide
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
</StackPanel> </StackPanel>

View File

@ -104,7 +104,7 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>
<controls:HyperlinkButton <HyperlinkButton
Grid.Row="1" Grid.Row="1"
Content="Learn more about layouts on the wiki" Content="Learn more about layouts on the wiki"
NavigateUri="https://wiki.artemis-rgb.com/en/guides/developer/layouts?mtm_campaign=artemis&amp;mtm_kwd=device-properties" NavigateUri="https://wiki.artemis-rgb.com/en/guides/developer/layouts?mtm_campaign=artemis&amp;mtm_kwd=device-properties"

View File

@ -3,7 +3,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:home="clr-namespace:Artemis.UI.Screens.Home" xmlns:home="clr-namespace:Artemis.UI.Screens.Home"
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="900" mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="900"
x:Class="Artemis.UI.Screens.Home.HomeView" x:Class="Artemis.UI.Screens.Home.HomeView"
@ -42,17 +41,17 @@
Under Settings > Plugins you can find your currently installed plugins, these default plugins are created by Artemis developers. We're also keeping track of a list of third-party plugins on our wiki. Under Settings > Plugins you can find your currently installed plugins, these default plugins are created by Artemis developers. We're also keeping track of a list of third-party plugins on our wiki.
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
<controls:HyperlinkButton Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" HorizontalAlignment="Right" Command="{CompiledBinding GetMorePlugins}"> <HyperlinkButton Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" HorizontalAlignment="Right" Command="{CompiledBinding GetMorePlugins}">
<controls:HyperlinkButton.ContextMenu> <HyperlinkButton.ContextMenu>
<ContextMenu> <ContextMenu>
<MenuItem Header="Test"></MenuItem> <MenuItem Header="Test"></MenuItem>
</ContextMenu> </ContextMenu>
</controls:HyperlinkButton.ContextMenu> </HyperlinkButton.ContextMenu>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<avalonia:MaterialIcon Kind="OpenInBrowser" /> <avalonia:MaterialIcon Kind="OpenInBrowser" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Get more plugins</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Get more plugins</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
</Border> </Border>
@ -68,30 +67,30 @@
<DockPanel Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0"> <DockPanel Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0">
<Grid Margin="8" RowDefinitions="*,*"> <Grid Margin="8" RowDefinitions="*,*">
<controls:HyperlinkButton Grid.Row="0" NavigateUri="https://github.com/Artemis-RGB/Artemis"> <HyperlinkButton Grid.Row="0" NavigateUri="https://github.com/Artemis-RGB/Artemis">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<avalonia:MaterialIcon Kind="Github" /> <avalonia:MaterialIcon Kind="Github" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">GitHub</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">GitHub</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Grid.Row="0" HorizontalAlignment="Right" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=home"> <HyperlinkButton Grid.Row="0" HorizontalAlignment="Right" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=home">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Website</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Website</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Grid.Row="1" NavigateUri="https://discordapp.com/invite/S3MVaC9"> <HyperlinkButton Grid.Row="1" NavigateUri="https://discordapp.com/invite/S3MVaC9">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<avalonia:MaterialIcon Kind="Chat" /> <avalonia:MaterialIcon Kind="Chat" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Discord</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Discord</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Grid.Row="1" HorizontalAlignment="Right" NavigateUri="mailto:spoinky.nl@gmail.com"> <HyperlinkButton Grid.Row="1" HorizontalAlignment="Right" NavigateUri="mailto:spoinky.nl@gmail.com">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<avalonia:MaterialIcon Kind="Email" /> <avalonia:MaterialIcon Kind="Email" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">E-mail</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">E-mail</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
</DockPanel> </DockPanel>
</Grid> </Grid>
@ -106,7 +105,7 @@
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="0" Grid.Column="0"
HorizontalAlignment="Center" HorizontalAlignment="Center"
NavigateUri="https://wiki.artemis-rgb.com/en/donating?mtm_campaign=artemis&amp;mtm_kwd=home"> NavigateUri="https://wiki.artemis-rgb.com/en/donating?mtm_campaign=artemis&amp;mtm_kwd=home">
@ -114,7 +113,7 @@
<avalonia:MaterialIcon Kind="Gift" /> <avalonia:MaterialIcon Kind="Gift" />
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Donate</TextBlock> <TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Donate</TextBlock>
</StackPanel> </StackPanel>
</controls:HyperlinkButton> </HyperlinkButton>
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"
Grid.Column="1" Grid.Column="1"
Classes="subtitle" Classes="subtitle"

View File

@ -28,24 +28,24 @@
<TextBlock Grid.Row="0" Grid.Column="1" FontSize="28" VerticalAlignment="Bottom" Text="{CompiledBinding Plugin.Info.Name}" /> <TextBlock Grid.Row="0" Grid.Column="1" FontSize="28" VerticalAlignment="Bottom" Text="{CompiledBinding Plugin.Info.Name}" />
<StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal">
<controls:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
IsVisible="{CompiledBinding Plugin.Info.HelpPage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.HelpPage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.HelpPage}" NavigateUri="{CompiledBinding Plugin.Info.HelpPage}"
ToolTip.Tip="{CompiledBinding Plugin.Info.HelpPage}"> ToolTip.Tip="{CompiledBinding Plugin.Info.HelpPage}">
<avalonia:MaterialIcon Kind="Quiz" /> <avalonia:MaterialIcon Kind="Quiz" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
IsVisible="{CompiledBinding Plugin.Info.Website, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.Website, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.Website}" NavigateUri="{CompiledBinding Plugin.Info.Website}"
ToolTip.Tip="{CompiledBinding Plugin.Info.Website}"> ToolTip.Tip="{CompiledBinding Plugin.Info.Website}">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
IsVisible="{CompiledBinding Plugin.Info.Repository, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.Repository, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.Repository}" NavigateUri="{CompiledBinding Plugin.Info.Repository}"
ToolTip.Tip="{CompiledBinding Plugin.Info.Repository}"> ToolTip.Tip="{CompiledBinding Plugin.Info.Repository}">
<avalonia:MaterialIcon Kind="Git" /> <avalonia:MaterialIcon Kind="Git" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"
@ -54,7 +54,7 @@
Classes="subtitle" Classes="subtitle"
Text="{CompiledBinding Plugin.Info.Version}" /> Text="{CompiledBinding Plugin.Info.Version}" />
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="2" Grid.Column="2"
IsVisible="{CompiledBinding Plugin.Info.License, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{CompiledBinding Plugin.Info.License, Converter={x:Static ObjectConverters.IsNotNull}}"
VerticalAlignment="Top" VerticalAlignment="Top"

View File

@ -87,30 +87,30 @@
</DropDownButton.Flyout> </DropDownButton.Flyout>
</DropDownButton> </DropDownButton>
<controls:HyperlinkButton Classes="icon-button icon-button-large" <HyperlinkButton Classes="icon-button icon-button-large"
IsVisible="{CompiledBinding Plugin.ConfigurationDialog, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{CompiledBinding Plugin.ConfigurationDialog, Converter={x:Static ObjectConverters.IsNotNull}}"
Command="{CompiledBinding OpenSettings}" Command="{CompiledBinding OpenSettings}"
ToolTip.Tip="Open settings"> ToolTip.Tip="Open settings">
<avalonia:MaterialIcon Kind="Cog" /> <avalonia:MaterialIcon Kind="Cog" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button icon-button-large" <HyperlinkButton Classes="icon-button icon-button-large"
IsVisible="{CompiledBinding Plugin.Info.HelpPage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.HelpPage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.HelpPage}" NavigateUri="{CompiledBinding Plugin.Info.HelpPage}"
ToolTip.Tip="{CompiledBinding Plugin.Info.HelpPage}"> ToolTip.Tip="{CompiledBinding Plugin.Info.HelpPage}">
<avalonia:MaterialIcon Kind="Quiz" /> <avalonia:MaterialIcon Kind="Quiz" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button icon-button-large" <HyperlinkButton Classes="icon-button icon-button-large"
IsVisible="{CompiledBinding Plugin.Info.Website, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.Website, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.Website}" NavigateUri="{CompiledBinding Plugin.Info.Website}"
ToolTip.Tip="{CompiledBinding Plugin.Info.Website}"> ToolTip.Tip="{CompiledBinding Plugin.Info.Website}">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button icon-button-large" <HyperlinkButton Classes="icon-button icon-button-large"
IsVisible="{CompiledBinding Plugin.Info.Repository, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Plugin.Info.Repository, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
NavigateUri="{CompiledBinding Plugin.Info.Repository}" NavigateUri="{CompiledBinding Plugin.Info.Repository}"
ToolTip.Tip="{CompiledBinding Plugin.Info.Repository}"> ToolTip.Tip="{CompiledBinding Plugin.Info.Repository}">
<avalonia:MaterialIcon Kind="Git" /> <avalonia:MaterialIcon Kind="Git" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<CheckBox Name="EnabledToggle" <CheckBox Name="EnabledToggle"

View File

@ -22,12 +22,12 @@
<TextBlock Classes="h4" Text="{CompiledBinding Layer.Name}" TextWrapping="Wrap" /> <TextBlock Classes="h4" Text="{CompiledBinding Layer.Name}" TextWrapping="Wrap" />
</StackPanel> </StackPanel>
<controls:HyperlinkButton Grid.Row="0" <HyperlinkButton Grid.Row="0"
Grid.Column="1" Grid.Column="1"
VerticalAlignment="Top" VerticalAlignment="Top"
NavigateUri="https://wiki.artemis-rgb.com/guides/user/profiles/layers/adaption-hints?mtm_campaign=artemis&amp;mtm_kwd=profile-editor"> NavigateUri="https://wiki.artemis-rgb.com/guides/user/profiles/layers/adaption-hints?mtm_campaign=artemis&amp;mtm_kwd=profile-editor">
Learn more about adaption hints Learn more about adaption hints
</controls:HyperlinkButton> </HyperlinkButton>
<TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Classes="subtitle" TextWrapping="Wrap"> <TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Classes="subtitle" TextWrapping="Wrap">
Add hints below to help decide where to place this layer when the profile is imported. Add hints below to help decide where to place this layer when the profile is imported.

View File

@ -9,14 +9,14 @@
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.FolderTreeItemView" x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.FolderTreeItemView"
x:DataType="profileTree:FolderTreeItemViewModel"> x:DataType="profileTree:FolderTreeItemViewModel">
<Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto"> <Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto">
<controls:HyperlinkButton Grid.Column="0" <HyperlinkButton Grid.Column="0"
Classes="icon-button icon-button-small broken-state-button" Classes="icon-button icon-button-small broken-state-button"
Margin="0 0 5 0" Margin="0 0 5 0"
Command="{CompiledBinding ShowBrokenStateExceptions}" Command="{CompiledBinding ShowBrokenStateExceptions}"
IsVisible="{CompiledBinding ProfileElement.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{CompiledBinding ProfileElement.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}"
ToolTip.Tip="{CompiledBinding ProfileElement.BrokenState, FallbackValue=''}"> ToolTip.Tip="{CompiledBinding ProfileElement.BrokenState, FallbackValue=''}">
<avalonia:MaterialIcon Kind="AlertCircle" /> <avalonia:MaterialIcon Kind="AlertCircle" />
</controls:HyperlinkButton> </HyperlinkButton>
<avalonia:MaterialIcon Grid.Column="1" <avalonia:MaterialIcon Grid.Column="1"
Kind="Folder" Kind="Folder"
Margin="0 0 5 0" Margin="0 0 5 0"

View File

@ -9,14 +9,14 @@
x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.LayerTreeItemView" x:Class="Artemis.UI.Screens.ProfileEditor.ProfileTree.LayerTreeItemView"
x:DataType="profileTree:LayerTreeItemViewModel"> x:DataType="profileTree:LayerTreeItemViewModel">
<Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto"> <Grid ColumnDefinitions="Auto,Auto,*,Auto,Auto">
<controls:HyperlinkButton Grid.Column="0" <HyperlinkButton Grid.Column="0"
Classes="icon-button icon-button-small broken-state-button" Classes="icon-button icon-button-small broken-state-button"
Margin="0 0 5 0" Margin="0 0 5 0"
Command="{CompiledBinding ShowBrokenStateExceptions}" Command="{CompiledBinding ShowBrokenStateExceptions}"
IsVisible="{CompiledBinding ProfileElement.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{CompiledBinding ProfileElement.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}"
ToolTip.Tip="{CompiledBinding ProfileElement.BrokenState, FallbackValue=''}"> ToolTip.Tip="{CompiledBinding ProfileElement.BrokenState, FallbackValue=''}">
<avalonia:MaterialIcon Kind="AlertCircle" /> <avalonia:MaterialIcon Kind="AlertCircle" />
</controls:HyperlinkButton> </HyperlinkButton>
<avalonia:MaterialIcon Grid.Column="1" Kind="{CompiledBinding Layer.LayerBrush.Descriptor.Icon, FallbackValue=Layers}" Margin="0 0 5 0" /> <avalonia:MaterialIcon Grid.Column="1" Kind="{CompiledBinding Layer.LayerBrush.Descriptor.Icon, FallbackValue=Layers}" Margin="0 0 5 0" />
<TextBlock Grid.Column="2" Text="{CompiledBinding Layer.Name}" VerticalAlignment="Center" /> <TextBlock Grid.Column="2" Text="{CompiledBinding Layer.Name}" VerticalAlignment="Center" />

View File

@ -42,11 +42,11 @@
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" TextAlignment="Center" Foreground="{DynamicResource TextFillColorSecondary}"> <TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" TextAlignment="Center" Foreground="{DynamicResource TextFillColorSecondary}">
When you enable data bindings you can no longer use keyframes or normal values for this property. When you enable data bindings you can no longer use keyframes or normal values for this property.
</TextBlock> </TextBlock>
<controls:HyperlinkButton HorizontalAlignment="Center" <HyperlinkButton HorizontalAlignment="Center"
NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/profiles/data-bindings?mtm_campaign=artemis&amp;mtm_kwd=profile-editor" NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/profiles/data-bindings?mtm_campaign=artemis&amp;mtm_kwd=profile-editor"
Margin="0 10"> Margin="0 10">
Learn more Learn more
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -25,15 +25,15 @@
</TextBlock> </TextBlock>
<StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=about"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=about">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub repository" NavigateUri="https://github.com/Artemis-RGB/Artemis"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub repository" NavigateUri="https://github.com/Artemis-RGB/Artemis">
<avalonia:MaterialIcon Kind="Github" /> <avalonia:MaterialIcon Kind="Github" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=about"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=about">
<avalonia:MaterialIcon Kind="BookOpenOutline" /> <avalonia:MaterialIcon Kind="BookOpenOutline" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<SelectableTextBlock Grid.Row="1" <SelectableTextBlock Grid.Row="1"
@ -42,12 +42,12 @@
Classes="subtitle" Classes="subtitle"
Text="{CompiledBinding Version}" /> Text="{CompiledBinding Version}" />
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="2" Grid.Column="2"
VerticalAlignment="Top" VerticalAlignment="Top"
NavigateUri="https://github.com/Artemis-RGB/Artemis/blob/master/LICENSE"> NavigateUri="https://github.com/Artemis-RGB/Artemis/blob/master/LICENSE">
PolyForm Noncommercial License 1.0.0 PolyForm Noncommercial License 1.0.0
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
<Border Classes="card" Margin="0 20 0 10"> <Border Classes="card" Margin="0 20 0 10">
@ -65,9 +65,9 @@
Project owner, main contributor Project owner, main contributor
</TextBlock> </TextBlock>
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6"> <StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/RobertBeekman/"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/RobertBeekman/">
<avalonia:MaterialIcon Kind="Github" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Github" Width="20" Height="20" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
@ -86,9 +86,9 @@
RGB.NET, main contributor RGB.NET, main contributor
</TextBlock> </TextBlock>
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6"> <StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/DarthAffe/"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/DarthAffe/">
<avalonia:MaterialIcon Kind="Github" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Github" Width="20" Height="20" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
@ -107,9 +107,9 @@
Main contributor Main contributor
</TextBlock> </TextBlock>
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6"> <StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/diogotr7/"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub profile" NavigateUri="https://github.com/diogotr7/">
<avalonia:MaterialIcon Kind="Github" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Github" Width="20" Height="20" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
@ -128,9 +128,9 @@
Graphics design Graphics design
</TextBlock> </TextBlock>
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6"> <StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="-6">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://kwer.online/"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://kwer.online/">
<avalonia:MaterialIcon Kind="Web" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Web" Width="20" Height="20" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>
@ -185,39 +185,39 @@
<TextBlock Classes="library-name">SQLite</TextBlock> <TextBlock Classes="library-name">SQLite</TextBlock>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="1"> <StackPanel Grid.Column="1">
<controls:HyperlinkButton NavigateUri="https://avaloniaui.net/"> <HyperlinkButton NavigateUri="https://avaloniaui.net/">
https://avaloniaui.net/ https://avaloniaui.net/
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/dadhi/DryIoc"> <HyperlinkButton NavigateUri="https://github.com/dadhi/DryIoc">
https://github.com/dadhi/DryIoc https://github.com/dadhi/DryIoc
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://learn.microsoft.com/en-us/ef/core/"> <HyperlinkButton NavigateUri="https://learn.microsoft.com/en-us/ef/core/">
https://learn.microsoft.com/en-us/ef/core/ https://learn.microsoft.com/en-us/ef/core/
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/amwx/FluentAvalonia"> <HyperlinkButton NavigateUri="https://github.com/amwx/FluentAvalonia">
https://github.com/amwx/FluentAvalonia https://github.com/amwx/FluentAvalonia
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://unosquare.github.io/embedio/"> <HyperlinkButton NavigateUri="https://unosquare.github.io/embedio/">
https://unosquare.github.io/embedio/ https://unosquare.github.io/embedio/
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/Humanizr/Humanizer"> <HyperlinkButton NavigateUri="https://github.com/Humanizr/Humanizer">
https://github.com/Humanizr/Humanizer https://github.com/Humanizr/Humanizer
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/natemcmaster/DotNetCorePlugins"> <HyperlinkButton NavigateUri="https://github.com/natemcmaster/DotNetCorePlugins">
https://github.com/natemcmaster/DotNetCorePlugins https://github.com/natemcmaster/DotNetCorePlugins
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/DarthAffe/RGB.NET"> <HyperlinkButton NavigateUri="https://github.com/DarthAffe/RGB.NET">
https://github.com/DarthAffe/RGB.NET https://github.com/DarthAffe/RGB.NET
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://serilog.net/"> <HyperlinkButton NavigateUri="https://serilog.net/">
https://serilog.net/ https://serilog.net/
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/mono/SkiaSharp"> <HyperlinkButton NavigateUri="https://github.com/mono/SkiaSharp">
https://github.com/mono/SkiaSharp https://github.com/mono/SkiaSharp
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://www.sqlite.org/"> <HyperlinkButton NavigateUri="https://www.sqlite.org/">
https://www.sqlite.org/ https://www.sqlite.org/
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>

View File

@ -17,9 +17,9 @@
<TextBox Classes="clearButton" Text="{CompiledBinding SearchPluginInput}" Watermark="Search plugins" Margin="0 0 10 0" /> <TextBox Classes="clearButton" Text="{CompiledBinding SearchPluginInput}" Watermark="Search plugins" Margin="0 0 10 0" />
<StackPanel Spacing="5" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal"> <StackPanel Spacing="5" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal">
<controls:HyperlinkButton VerticalAlignment="Top" Command="{CompiledBinding GetMorePlugins}"> <HyperlinkButton VerticalAlignment="Top" Command="{CompiledBinding GetMorePlugins}">
Get more plugins Get more plugins
</controls:HyperlinkButton> </HyperlinkButton>
<Button Classes="accent" Command="{CompiledBinding ImportPlugin}">Import plugin</Button> <Button Classes="accent" Command="{CompiledBinding ImportPlugin}">Import plugin</Button>
</StackPanel> </StackPanel>
</Grid> </Grid>

View File

@ -29,10 +29,10 @@
TextWrapping="Wrap" TextWrapping="Wrap"
Text="{CompiledBinding Channel, StringFormat='Found no releases for the \'{0}\' channel.'}"> Text="{CompiledBinding Channel, StringFormat='Found no releases for the \'{0}\' channel.'}">
</TextBlock> </TextBlock>
<controls:HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/en/channels?mtm_campaign=artemis&amp;mtm_kwd=releases" <HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/en/channels?mtm_campaign=artemis&amp;mtm_kwd=releases"
HorizontalAlignment="Center"> HorizontalAlignment="Center">
Learn more about channels on the wiki Learn more about channels on the wiki
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<Grid ColumnDefinitions="300,*" Margin="10" IsVisible="{CompiledBinding ReleaseViewModels.Count}"> <Grid ColumnDefinitions="300,*" Margin="10" IsVisible="{CompiledBinding ReleaseViewModels.Count}">

View File

@ -54,7 +54,7 @@
<!-- Bottom buttons --> <!-- Bottom buttons -->
<Border Grid.Row="4" Margin="8" Height="1" Background="{DynamicResource ButtonBorderBrush}"></Border> <Border Grid.Row="4" Margin="8" Height="1" Background="{DynamicResource ButtonBorderBrush}"></Border>
<WrapPanel Grid.Row="5" Orientation="Horizontal" HorizontalAlignment="Left" Margin="5 0 5 5"> <WrapPanel Grid.Row="5" Orientation="Horizontal" HorizontalAlignment="Left" Margin="5 0 5 5">
<ui:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
Width="44" Width="44"
Height="44" Height="44"
ToolTip.Tip="View website" ToolTip.Tip="View website"
@ -62,8 +62,8 @@
ToolTip.VerticalOffset="-5" ToolTip.VerticalOffset="-5"
NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=sidebar"> NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=sidebar">
<avalonia:MaterialIcon Kind="Web" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Web" Width="20" Height="20" />
</ui:HyperlinkButton> </HyperlinkButton>
<ui:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
Width="44" Width="44"
Height="44" Height="44"
ToolTip.Tip="View GitHub repository" ToolTip.Tip="View GitHub repository"
@ -71,8 +71,8 @@
ToolTip.VerticalOffset="-5" ToolTip.VerticalOffset="-5"
NavigateUri="https://github.com/Artemis-RGB/Artemis"> NavigateUri="https://github.com/Artemis-RGB/Artemis">
<avalonia:MaterialIcon Kind="Github" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Github" Width="20" Height="20" />
</ui:HyperlinkButton> </HyperlinkButton>
<ui:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
Width="44" Width="44"
Height="44" Height="44"
ToolTip.Tip="View Wiki" ToolTip.Tip="View Wiki"
@ -80,8 +80,8 @@
ToolTip.VerticalOffset="-5" ToolTip.VerticalOffset="-5"
NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=sidebar"> NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=sidebar">
<avalonia:MaterialIcon Kind="BookOpenOutline" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="BookOpenOutline" Width="20" Height="20" />
</ui:HyperlinkButton> </HyperlinkButton>
<ui:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
Width="44" Width="44"
Height="44" Height="44"
ToolTip.Tip="Join our Discord" ToolTip.Tip="Join our Discord"
@ -89,8 +89,8 @@
ToolTip.VerticalOffset="-5" ToolTip.VerticalOffset="-5"
NavigateUri="https://discord.gg/S3MVaC9"> NavigateUri="https://discord.gg/S3MVaC9">
<avalonia:MaterialIcon Kind="Chat" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Chat" Width="20" Height="20" />
</ui:HyperlinkButton> </HyperlinkButton>
<ui:HyperlinkButton Classes="icon-button" <HyperlinkButton Classes="icon-button"
Width="44" Width="44"
Height="44" Height="44"
ToolTip.Tip="View donation options" ToolTip.Tip="View donation options"
@ -98,7 +98,7 @@
ToolTip.VerticalOffset="-5" ToolTip.VerticalOffset="-5"
NavigateUri="https://wiki.artemis-rgb.com/en/donating?mtm_campaign=artemis&amp;mtm_kwd=sidebar"> NavigateUri="https://wiki.artemis-rgb.com/en/donating?mtm_campaign=artemis&amp;mtm_kwd=sidebar">
<avalonia:MaterialIcon Kind="Gift" Width="20" Height="20" /> <avalonia:MaterialIcon Kind="Gift" Width="20" Height="20" />
</ui:HyperlinkButton> </HyperlinkButton>
</WrapPanel> </WrapPanel>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -33,18 +33,18 @@
<TextBlock Classes="link-name">Discord</TextBlock> <TextBlock Classes="link-name">Discord</TextBlock>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="1"> <StackPanel Grid.Column="1">
<controls:HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/?mtm_campaign=artemis&amp;mtm_kwd=wizard"> <HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/?mtm_campaign=artemis&amp;mtm_kwd=wizard">
https://wiki.artemis-rgb.com/ https://wiki.artemis-rgb.com/
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/introduction?mtm_campaign=artemis&amp;mtm_kwd=wizard"> <HyperlinkButton NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/introduction?mtm_campaign=artemis&amp;mtm_kwd=wizard">
https://wiki.artemis-rgb.com/en/guides/user/introduction https://wiki.artemis-rgb.com/en/guides/user/introduction
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://github.com/Artemis-RGB/Artemis"> <HyperlinkButton NavigateUri="https://github.com/Artemis-RGB/Artemis">
https://github.com/Artemis-RGB/Artemis https://github.com/Artemis-RGB/Artemis
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton NavigateUri="https://discord.gg/S3MVaC9"> <HyperlinkButton NavigateUri="https://discord.gg/S3MVaC9">
https://discord.gg/S3MVaC9 https://discord.gg/S3MVaC9
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>

View File

@ -16,15 +16,15 @@
</TextBlock> </TextBlock>
<StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=wizard"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View website" NavigateUri="https://artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=wizard">
<avalonia:MaterialIcon Kind="Web" /> <avalonia:MaterialIcon Kind="Web" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub repository" NavigateUri="https://github.com/Artemis-RGB/Artemis"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View GitHub repository" NavigateUri="https://github.com/Artemis-RGB/Artemis">
<avalonia:MaterialIcon Kind="Github" /> <avalonia:MaterialIcon Kind="Github" />
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=wizard"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=wizard">
<avalonia:MaterialIcon Kind="BookOpenOutline" /> <avalonia:MaterialIcon Kind="BookOpenOutline" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"
@ -33,12 +33,12 @@
Classes="subtitle" Classes="subtitle"
Text="{CompiledBinding Version}" /> Text="{CompiledBinding Version}" />
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="2" Grid.Column="2"
VerticalAlignment="Top" VerticalAlignment="Top"
NavigateUri="https://github.com/Artemis-RGB/Artemis/blob/master/LICENSE"> NavigateUri="https://github.com/Artemis-RGB/Artemis/blob/master/LICENSE">
PolyForm Noncommercial License 1.0.0 PolyForm Noncommercial License 1.0.0
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
<Border Classes="card"> <Border Classes="card">

View File

@ -169,13 +169,13 @@
<TextBlock Classes="h4" Text="{CompiledBinding NodeScript.Name}" /> <TextBlock Classes="h4" Text="{CompiledBinding NodeScript.Name}" />
<TextBlock Classes="subtitle" Margin="10 0 0 13" Text="{CompiledBinding NodeScript.Description}" VerticalAlignment="Bottom" /> <TextBlock Classes="subtitle" Margin="10 0 0 13" Text="{CompiledBinding NodeScript.Description}" VerticalAlignment="Bottom" />
</StackPanel> </StackPanel>
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="1" Grid.Column="1"
VerticalAlignment="Top" VerticalAlignment="Top"
HorizontalAlignment="Right" HorizontalAlignment="Right"
NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/profiles/nodes?mtm_campaign=artemis&amp;mtm_kwd=script-editor"> NavigateUri="https://wiki.artemis-rgb.com/en/guides/user/profiles/nodes?mtm_campaign=artemis&amp;mtm_kwd=script-editor">
Learn more about visual scripts Learn more about visual scripts
</controls:HyperlinkButton> </HyperlinkButton>
<Border Classes="card-condensed" Grid.Row="2" Grid.ColumnSpan="2"> <Border Classes="card-condensed" Grid.Row="2" Grid.ColumnSpan="2">
<ContentControl Content="{CompiledBinding NodeScriptViewModel}" /> <ContentControl Content="{CompiledBinding NodeScriptViewModel}" />

View File

@ -39,18 +39,18 @@
Background="{DynamicResource ContentDialogBackground}"> Background="{DynamicResource ContentDialogBackground}">
<Border Background="{DynamicResource TaskDialogHeaderBackground}"> <Border Background="{DynamicResource TaskDialogHeaderBackground}">
<Grid Classes="node-header" VerticalAlignment="Top" ColumnDefinitions="Auto,*,Auto,Auto"> <Grid Classes="node-header" VerticalAlignment="Top" ColumnDefinitions="Auto,*,Auto,Auto">
<controls:HyperlinkButton Grid.Column="0" <HyperlinkButton Grid.Column="0"
Classes="icon-button icon-button-small broken-state-button" Classes="icon-button icon-button-small broken-state-button"
Margin="5 0 0 0" Margin="5 0 0 0"
Command="{CompiledBinding ShowBrokenState}" Command="{CompiledBinding ShowBrokenState}"
IsVisible="{CompiledBinding Node.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{CompiledBinding Node.BrokenState, Converter={x:Static ObjectConverters.IsNotNull}}"
ToolTip.Tip="{CompiledBinding Node.BrokenState}"> ToolTip.Tip="{CompiledBinding Node.BrokenState}">
<avalonia:MaterialIcon Kind="AlertCircle" /> <avalonia:MaterialIcon Kind="AlertCircle" />
</controls:HyperlinkButton> </HyperlinkButton>
<TextBlock Grid.Column="1" VerticalAlignment="Center" Margin="10 0 0 0" Text="{CompiledBinding Node.Name}" ToolTip.Tip="{CompiledBinding Node.Description}" /> <TextBlock Grid.Column="1" VerticalAlignment="Center" Margin="10 0 0 0" Text="{CompiledBinding Node.Name}" ToolTip.Tip="{CompiledBinding Node.Description}" />
<controls:HyperlinkButton Grid.Column="2" <HyperlinkButton Grid.Column="2"
IsVisible="{CompiledBinding Node.HelpUrl, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" IsVisible="{CompiledBinding Node.HelpUrl, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
VerticalAlignment="Center" VerticalAlignment="Center"
Classes="icon-button icon-button-small" Classes="icon-button icon-button-small"
@ -58,7 +58,7 @@
ToolTip.Tip="View node help" ToolTip.Tip="View node help"
NavigateUri="{CompiledBinding Node.HelpUrl}"> NavigateUri="{CompiledBinding Node.HelpUrl}">
<avalonia:MaterialIcon Kind="Help" /> <avalonia:MaterialIcon Kind="Help" />
</controls:HyperlinkButton> </HyperlinkButton>
<Button Grid.Column="3" VerticalAlignment="Center" Classes="icon-button icon-button-small" Margin="5" Command="{CompiledBinding DeleteNode}"> <Button Grid.Column="3" VerticalAlignment="Center" Classes="icon-button icon-button-small" Margin="5" Command="{CompiledBinding DeleteNode}">
<avalonia:MaterialIcon Kind="Close"></avalonia:MaterialIcon> <avalonia:MaterialIcon Kind="Close"></avalonia:MaterialIcon>
</Button> </Button>

View File

@ -43,7 +43,7 @@
<TextBlock Grid.Column="1" Grid.Row="0" Text="{CompiledBinding Name}" Margin="0 4 0 0"></TextBlock> <TextBlock Grid.Column="1" Grid.Row="0" Text="{CompiledBinding Name}" Margin="0 4 0 0"></TextBlock>
<TextBlock Grid.Column="1" Grid.Row="1" Text="{CompiledBinding Email}"></TextBlock> <TextBlock Grid.Column="1" Grid.Row="1" Text="{CompiledBinding Email}"></TextBlock>
<controls:HyperlinkButton <HyperlinkButton
IsVisible="{CompiledBinding AllowLogout}" IsVisible="{CompiledBinding AllowLogout}"
Grid.Column="1" Grid.Column="1"
Grid.Row="3" Grid.Row="3"
@ -51,8 +51,8 @@
Padding="6 4" Padding="6 4"
Click="Manage_OnClick"> Click="Manage_OnClick">
Manage account Manage account
</controls:HyperlinkButton> </HyperlinkButton>
<controls:HyperlinkButton <HyperlinkButton
IsVisible="{CompiledBinding AllowLogout}" IsVisible="{CompiledBinding AllowLogout}"
Grid.Column="1" Grid.Column="1"
Grid.Row="2" Grid.Row="2"
@ -60,7 +60,7 @@
Padding="6 4" Padding="6 4"
Click="Signout_OnClick"> Click="Signout_OnClick">
Sign out Sign out
</controls:HyperlinkButton> </HyperlinkButton>
</Grid> </Grid>
</Flyout> </Flyout>
</Ellipse.ContextFlyout> </Ellipse.ContextFlyout>

View File

@ -0,0 +1,76 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:il="clr-namespace:AsyncImageLoader;assembly=AsyncImageLoader.Avalonia"
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
xmlns:list="clr-namespace:Artemis.UI.Screens.Workshop.Entries.List"
xmlns:converters="clr-namespace:Artemis.UI.Converters"
mc:Ignorable="d"
x:Class="Artemis.UI.Screens.Workshop.Entries.List.EntryListItemVerticalView"
x:DataType="list:EntryListItemViewModel">
<UserControl.Styles>
<StyleInclude Source="/Screens/Workshop/Search/SearchViewStyles.axaml" />
</UserControl.Styles>
<UserControl.Resources>
<converters:EntryIconUriConverter x:Key="EntryIconUriConverter" />
</UserControl.Resources>
<Button Command="{CompiledBinding NavigateToEntry}" Padding="12">
<Grid RowDefinitions="Auto,43,Auto,Auto,*" ColumnDefinitions="Auto,*" Width="150" Height="200">
<Border Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
CornerRadius="6"
Width="60"
Height="60"
Margin="0 5"
ClipToBounds="True"
HorizontalAlignment="Left">
<Image Stretch="UniformToFill" il:ImageLoader.Source="{CompiledBinding Entry.Id, Converter={StaticResource EntryIconUriConverter}, Mode=OneWay}" />
</Border>
<TextBlock Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
MaxLines="2"
TextWrapping="Wrap"
TextTrimming="CharacterEllipsis"
FontSize="16"
VerticalAlignment="Center"
Text="{CompiledBinding Entry.Name, FallbackValue=Title that is super long and should be wrapped}" />
<StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="0 1">
<TextBlock Classes="subtitle" MaxLines="1" TextTrimming="CharacterEllipsis" Text="{CompiledBinding Entry.Author, FallbackValue=Author}"/>
<avalonia:MaterialIcon IsVisible="{CompiledBinding Entry.IsOfficial}"
Kind="ShieldStar"
Foreground="{DynamicResource SystemAccentColorLight1}"
Margin="2 0 0 0"
Width="18"
Height="18"
HorizontalAlignment="Left"
ToolTip.Tip="Official entry by the Artemis team" />
</StackPanel>
<TextBlock Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2"
MaxLines="2"
TextWrapping="Wrap"
TextTrimming="CharacterEllipsis"
FontSize="12"
Opacity="0.8"
Text="{CompiledBinding Entry.Summary, FallbackValue=Summary that is super long and should be wrapped}" />
<Border Grid.Row="4" Grid.Column="0" Classes="badge" VerticalAlignment="Bottom" HorizontalAlignment="Left">
<TextBlock>
<Run Text="{CompiledBinding Entry.Downloads, FallbackValue=0}" />
<Run>downloads</Run>
</TextBlock>
</Border>
<Border Grid.Row="4" Grid.Column="1" Classes="badge" VerticalAlignment="Bottom" HorizontalAlignment="Right">
<TextBlock Text="{CompiledBinding Entry.EntryType, FallbackValue=Type}"></TextBlock>
</Border>
</Grid>
</Button>
</UserControl>

View File

@ -0,0 +1,14 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Screens.Workshop.Entries.List;
public partial class EntryListItemVerticalView : ReactiveUserControl<EntryListItemVerticalViewModel>
{
public EntryListItemVerticalView()
{
InitializeComponent();
}
}

View File

@ -0,0 +1,13 @@
using Artemis.UI.Shared.Routing;
using Artemis.WebClient.Workshop;
using Artemis.WebClient.Workshop.Services;
namespace Artemis.UI.Screens.Workshop.Entries.List;
public class EntryListItemVerticalViewModel : EntryListItemViewModel
{
/// <inheritdoc />
public EntryListItemVerticalViewModel(IEntrySummary entry, IRouter router, IWorkshopService workshopService) : base(entry, router, workshopService)
{
}
}

View File

@ -10,7 +10,7 @@
<Border Classes="router-container"> <Border Classes="router-container">
<Grid RowDefinitions="200,*,*"> <Grid RowDefinitions="200,*,*">
<ProgressBar ZIndex="999" IsIndeterminate="True" IsVisible="{CompiledBinding !WorkshopReachable}" Grid.Row="0" VerticalAlignment="Top"></ProgressBar> <ProgressBar ZIndex="999" IsIndeterminate="True" IsVisible="{CompiledBinding !WorkshopReachable}" Grid.Row="0" VerticalAlignment="Top"></ProgressBar>
<Image Grid.Row="0" <Image Grid.Row="0"
Grid.RowSpan="2" Grid.RowSpan="2"
VerticalAlignment="Top" VerticalAlignment="Top"
@ -38,7 +38,7 @@
<DropShadowEffect Color="Black" OffsetX="2" OffsetY="2" BlurRadius="5"></DropShadowEffect> <DropShadowEffect Color="Black" OffsetX="2" OffsetY="2" BlurRadius="5"></DropShadowEffect>
</TextBlock.Effect> </TextBlock.Effect>
</TextBlock> </TextBlock>
<StackPanel Margin="30 -75 30 0" Grid.Row="1"> <StackPanel Margin="30 -75 30 0" Grid.Row="1">
<StackPanel Spacing="10" Orientation="Horizontal" VerticalAlignment="Top"> <StackPanel Spacing="10" Orientation="Horizontal" VerticalAlignment="Top">
<Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/entries/profiles" VerticalContentAlignment="Top"> <Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/entries/profiles" VerticalContentAlignment="Top">
@ -56,7 +56,7 @@
<TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Layouts make your devices look great in the editor.</TextBlock> <TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Layouts make your devices look great in the editor.</TextBlock>
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/entries/plugins" VerticalContentAlignment="Top"> <Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/entries/plugins" VerticalContentAlignment="Top">
<StackPanel> <StackPanel>
<avalonia:MaterialIcon Kind="Connection" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" /> <avalonia:MaterialIcon Kind="Connection" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" />
@ -64,7 +64,7 @@
<TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Plugins add new functionality to Artemis.</TextBlock> <TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Plugins add new functionality to Artemis.</TextBlock>
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/library" VerticalContentAlignment="Top"> <Button Width="150" Height="180" Command="{CompiledBinding Navigate}" CommandParameter="workshop/library" VerticalContentAlignment="Top">
<StackPanel> <StackPanel>
<avalonia:MaterialIcon Kind="Bookshelf" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" /> <avalonia:MaterialIcon Kind="Bookshelf" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" />
@ -72,7 +72,7 @@
<TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Manage your submissions and downloaded content.</TextBlock> <TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.8">Manage your submissions and downloaded content.</TextBlock>
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="150" Height="180" Command="{CompiledBinding AddSubmission}" VerticalContentAlignment="Top"> <Button Width="150" Height="180" Command="{CompiledBinding AddSubmission}" VerticalContentAlignment="Top">
<StackPanel> <StackPanel>
<avalonia:MaterialIcon Kind="CloudUpload" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" /> <avalonia:MaterialIcon Kind="CloudUpload" HorizontalAlignment="Left" Width="60" Height="60" Margin="0 5" />
@ -85,10 +85,26 @@
</StackPanel> </StackPanel>
<TextBlock Classes="h4" Margin="0 15 0 5">Featured submissions</TextBlock> <TextBlock Classes="h4" Margin="0 15 0 5">Featured submissions</TextBlock>
<TextBlock>Not yet implemented, here we'll show submissions we think are worth some extra attention.</TextBlock> <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Padding="0 0 0 20">
<ItemsControl ItemsSource="{CompiledBinding PopularEntries}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Spacing="10" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
<TextBlock Classes="h4" Margin="0 15 0 5">Recently updated</TextBlock> <TextBlock Classes="h4" Margin="0 15 0 5">Recently added</TextBlock>
<TextBlock>Not yet implemented, here we'll a few of the most recent uploads/updates to the workshop.</TextBlock> <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Padding="0 0 0 20">
<ItemsControl ItemsSource="{CompiledBinding LatestEntries}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Spacing="10" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>

View File

@ -1,33 +1,70 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reactive; using System.Reactive;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Artemis.UI.Extensions; using Artemis.UI.Extensions;
using Artemis.UI.Screens.Workshop.Entries.List;
using Artemis.UI.Screens.Workshop.SubmissionWizard; using Artemis.UI.Screens.Workshop.SubmissionWizard;
using Artemis.UI.Shared.Routing; using Artemis.UI.Shared.Routing;
using Artemis.UI.Shared.Services; using Artemis.UI.Shared.Services;
using Artemis.WebClient.Workshop;
using Artemis.WebClient.Workshop.Services; using Artemis.WebClient.Workshop.Services;
using DynamicData;
using PropertyChanged.SourceGenerator; using PropertyChanged.SourceGenerator;
using ReactiveUI; using ReactiveUI;
using StrawberryShake;
namespace Artemis.UI.Screens.Workshop.Home; namespace Artemis.UI.Screens.Workshop.Home;
public partial class WorkshopHomeViewModel : RoutableScreen public partial class WorkshopHomeViewModel : RoutableScreen
{ {
private readonly IWindowService _windowService; private readonly IWindowService _windowService;
[Notify(Setter.Private)] private bool _workshopReachable; [Notify(Setter.Private)] private bool _workshopReachable;
public WorkshopHomeViewModel(IRouter router, IWindowService windowService, IWorkshopService workshopService) public WorkshopHomeViewModel(IRouter router, IWindowService windowService, IWorkshopService workshopService, IWorkshopClient client,
Func<IEntrySummary, EntryListItemVerticalViewModel> getEntryListItemViewModel)
{ {
_windowService = windowService; _windowService = windowService;
SourceList<IEntrySummary> latest = new();
SourceList<IEntrySummary> popular = new();
latest.Connect().Transform(getEntryListItemViewModel).Bind(out ReadOnlyObservableCollection<EntryListItemVerticalViewModel> latestEntries).Subscribe();
popular.Connect().Transform(getEntryListItemViewModel).Bind(out ReadOnlyObservableCollection<EntryListItemVerticalViewModel> popularEntries).Subscribe();
AddSubmission = ReactiveCommand.CreateFromTask(ExecuteAddSubmission, this.WhenAnyValue(vm => vm.WorkshopReachable)); AddSubmission = ReactiveCommand.CreateFromTask(ExecuteAddSubmission, this.WhenAnyValue(vm => vm.WorkshopReachable));
Navigate = ReactiveCommand.CreateFromTask<string>(async r => await router.Navigate(r), this.WhenAnyValue(vm => vm.WorkshopReachable)); Navigate = ReactiveCommand.CreateFromTask<string>(async r => await router.Navigate(r), this.WhenAnyValue(vm => vm.WorkshopReachable));
PopularEntries = popularEntries;
LatestEntries = latestEntries;
this.WhenActivatedAsync(async d => WorkshopReachable = await workshopService.ValidateWorkshopStatus(d.AsCancellationToken())); this.WhenActivatedAsync(async d =>
{
WorkshopReachable = await workshopService.ValidateWorkshopStatus(d.AsCancellationToken());
IOperationResult<IGetPopularEntriesResult> popularResult = await client.GetPopularEntries.ExecuteAsync();
popular.Edit(p =>
{
p.Clear();
if (popularResult.Data?.PopularEntries != null)
p.AddRange(popularResult.Data.PopularEntries);
});
IOperationResult<IGetEntriesv2Result> latestResult = await client.GetEntriesv2.ExecuteAsync(null, null, [new EntrySortInput {CreatedAt = SortEnumType.Desc}], 25, null);
latest.Edit(l =>
{
l.Clear();
if (latestResult.Data?.EntriesV2?.Edges != null)
l.AddRange(latestResult.Data.EntriesV2.Edges.Select(e => e.Node));
});
});
} }
public ReactiveCommand<Unit, Unit> AddSubmission { get; } public ReactiveCommand<Unit, Unit> AddSubmission { get; }
public ReactiveCommand<string, Unit> Navigate { get; } public ReactiveCommand<string, Unit> Navigate { get; }
public ReadOnlyObservableCollection<EntryListItemVerticalViewModel> PopularEntries { get; }
public ReadOnlyObservableCollection<EntryListItemVerticalViewModel> LatestEntries { get; }
private async Task ExecuteAddSubmission(CancellationToken arg) private async Task ExecuteAddSubmission(CancellationToken arg)
{ {

View File

@ -70,9 +70,9 @@
</ListBox> </ListBox>
</StackPanel> </StackPanel>
</Border> </Border>
<controls:HyperlinkButton Command="{CompiledBinding ViewWorkshopPage}" HorizontalAlignment="Center"> <HyperlinkButton Command="{CompiledBinding ViewWorkshopPage}" HorizontalAlignment="Center">
View workshop page View workshop page
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<controls:Frame Grid.Column="1" Grid.Row="0" Name="RouterFrame" IsNavigationStackEnabled="False" CacheSize="0"> <controls:Frame Grid.Column="1" Grid.Row="0" Name="RouterFrame" IsNavigationStackEnabled="False" CacheSize="0">

View File

@ -21,9 +21,9 @@
<TextBlock Grid.Row="0" Grid.Column="1" FontSize="36" VerticalAlignment="Bottom" Text="Not logged in" IsVisible="{CompiledBinding CurrentUserViewModel.IsAnonymous}"/> <TextBlock Grid.Row="0" Grid.Column="1" FontSize="36" VerticalAlignment="Bottom" Text="Not logged in" IsVisible="{CompiledBinding CurrentUserViewModel.IsAnonymous}"/>
<StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard">
<avalonia:MaterialIcon Kind="BookOpenOutline" /> <avalonia:MaterialIcon Kind="BookOpenOutline" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"

View File

@ -39,7 +39,7 @@
<shared:EnumComboBox Value="{CompiledBinding PhysicalLayout}"></shared:EnumComboBox> <shared:EnumComboBox Value="{CompiledBinding PhysicalLayout}"></shared:EnumComboBox>
</StackPanel> </StackPanel>
<controls:HyperlinkButton Grid.Row="1" <HyperlinkButton Grid.Row="1"
Grid.Column="0" Grid.Column="0"
IsVisible="{CompiledBinding IsKeyboardLayout}" IsVisible="{CompiledBinding IsKeyboardLayout}"
Margin="0 10 0 0" Margin="0 10 0 0"
@ -47,7 +47,7 @@
HorizontalAlignment="Right" HorizontalAlignment="Right"
NavigateUri="https://wiki.artemis-rgb.com/en/guides/developer/layouts/keyboard-layouts?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard"> NavigateUri="https://wiki.artemis-rgb.com/en/guides/developer/layouts/keyboard-layouts?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard">
Learn about physical layouts Learn about physical layouts
</controls:HyperlinkButton> </HyperlinkButton>
<ScrollViewer Grid.Row="2" <ScrollViewer Grid.Row="2"
Grid.Column="0" Grid.Column="0"

View File

@ -24,12 +24,12 @@
</TextBlock> </TextBlock>
<controls:HyperlinkButton Grid.Row="0" <HyperlinkButton Grid.Row="0"
Grid.Column="1" Grid.Column="1"
VerticalAlignment="Top" VerticalAlignment="Top"
NavigateUri="https://wiki.artemis-rgb.com/guides/user/profiles/layers/adaption-hints?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard"> NavigateUri="https://wiki.artemis-rgb.com/guides/user/profiles/layers/adaption-hints?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard">
Learn more about adaption hints Learn more about adaption hints
</controls:HyperlinkButton> </HyperlinkButton>
<ScrollViewer Grid.Row="2" <ScrollViewer Grid.Row="2"
Grid.Column="0" Grid.Column="0"

View File

@ -22,9 +22,9 @@
<TextBlock Grid.Row="0" Grid.Column="1" FontSize="36" VerticalAlignment="Bottom" Text="Not logged in" IsVisible="{CompiledBinding CurrentUserViewModel.IsAnonymous}" /> <TextBlock Grid.Row="0" Grid.Column="1" FontSize="36" VerticalAlignment="Bottom" Text="Not logged in" IsVisible="{CompiledBinding CurrentUserViewModel.IsAnonymous}" />
<StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Bottom" Orientation="Horizontal">
<controls:HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard"> <HyperlinkButton Classes="icon-button" ToolTip.Tip="View Wiki" NavigateUri="https://wiki.artemis-rgb.com?mtm_campaign=artemis&amp;mtm_kwd=workshop-wizard">
<avalonia:MaterialIcon Kind="BookOpenOutline" /> <avalonia:MaterialIcon Kind="BookOpenOutline" />
</controls:HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" <TextBlock Grid.Row="1"

View File

@ -27,7 +27,7 @@
<Setter Property="SelectionForeground" Value="{DynamicResource TextOnAccentFillColorSelectedTextBrush}" /> <Setter Property="SelectionForeground" Value="{DynamicResource TextOnAccentFillColorSelectedTextBrush}" />
</Style> </Style>
<Style Selector="controls|ContentDialog.fullscreen controls|FABorder#BackgroundElement"> <Style Selector="controls|ContentDialog.fullscreen Border#BackgroundElement">
<Setter Property="MaxWidth" Value="99999"></Setter> <Setter Property="MaxWidth" Value="99999"></Setter>
<Setter Property="MaxHeight" Value="99999"></Setter> <Setter Property="MaxHeight" Value="99999"></Setter>
<Setter Property="Margin" Value="100"></Setter> <Setter Property="Margin" Value="100"></Setter>

View File

@ -1,18 +1,9 @@
query GetEntries($search: String $filter: EntryFilterInput $skip: Int $take: Int $order: [EntrySortInput!]) {
entries(search: $search where: $filter skip: $skip take: $take, order: $order) {
totalCount
items {
...entrySummary
}
}
}
query GetEntriesv2($search: String $filter: EntryFilterInput $order: [EntrySortInput!] $first: Int $after: String) { query GetEntriesv2($search: String $filter: EntryFilterInput $order: [EntrySortInput!] $first: Int $after: String) {
entriesV2(search: $search where: $filter order: $order first: $first after: $after) { entriesV2(search: $search where: $filter order: $order first: $first after: $after) {
totalCount totalCount
pageInfo { pageInfo {
hasNextPage hasNextPage
endCursor endCursor
} }
edges { edges {
cursor cursor
@ -21,4 +12,10 @@ query GetEntriesv2($search: String $filter: EntryFilterInput $order: [EntrySortI
} }
} }
} }
}
query GetPopularEntries {
popularEntries {
...entrySummary
}
} }

View File

@ -61,12 +61,14 @@ type Entry {
iconId: UUID iconId: UUID
id: Long! id: Long!
images: [Image!]! images: [Image!]!
isDefault: Boolean!
isOfficial: Boolean! isOfficial: Boolean!
latestRelease: Release latestRelease: Release
latestReleaseId: Long latestReleaseId: Long
layoutInfo: [LayoutInfo!]! layoutInfo: [LayoutInfo!]!
name: String! name: String!
pluginInfo: PluginInfo pluginInfo: PluginInfo
popularityScore: Float!
releases: [Release!]! releases: [Release!]!
summary: String! summary: String!
tags: [Tag!]! tags: [Tag!]!
@ -146,7 +148,7 @@ type PluginInfosCollectionSegment {
type Query { type Query {
categories(order: [CategorySortInput!], where: CategoryFilterInput): [Category!]! categories(order: [CategorySortInput!], where: CategoryFilterInput): [Category!]!
entries(order: [EntrySortInput!], search: String, skip: Int, take: Int, where: EntryFilterInput): EntriesCollectionSegment entries(order: [EntrySortInput!], popular: Boolean, search: String, skip: Int, take: Int, where: EntryFilterInput): EntriesCollectionSegment
entriesV2( entriesV2(
"Returns the elements in the list that come after the specified cursor." "Returns the elements in the list that come after the specified cursor."
after: String, after: String,
@ -157,12 +159,14 @@ type Query {
"Returns the last _n_ elements from the list." "Returns the last _n_ elements from the list."
last: Int, last: Int,
order: [EntrySortInput!], order: [EntrySortInput!],
popular: Boolean,
search: String, search: String,
where: EntryFilterInput where: EntryFilterInput
): EntriesV2Connection ): EntriesV2Connection
entry(id: Long!): Entry entry(id: Long!): Entry
pluginInfo(pluginGuid: UUID!): PluginInfo pluginInfo(pluginGuid: UUID!): PluginInfo
pluginInfos(order: [PluginInfoSortInput!], skip: Int, take: Int, where: PluginInfoFilterInput): PluginInfosCollectionSegment pluginInfos(order: [PluginInfoSortInput!], skip: Int, take: Int, where: PluginInfoFilterInput): PluginInfosCollectionSegment
popularEntries(where: EntryFilterInput): [Entry!]!
release(id: Long!): Release release(id: Long!): Release
searchEntries(input: String!, order: [EntrySortInput!], type: EntryType, where: EntryFilterInput): [Entry!]! searchEntries(input: String!, order: [EntrySortInput!], type: EntryType, where: EntryFilterInput): [Entry!]!
searchKeyboardLayout(deviceProvider: UUID!, logicalLayout: String, model: String!, physicalLayout: KeyboardLayoutType!, vendor: String!): LayoutInfo searchKeyboardLayout(deviceProvider: UUID!, logicalLayout: String, model: String!, physicalLayout: KeyboardLayoutType!, vendor: String!): LayoutInfo
@ -268,6 +272,7 @@ input CreateEntryInput {
categories: [Long!]! categories: [Long!]!
description: String! description: String!
entryType: EntryType! entryType: EntryType!
isDefault: Boolean!
name: String! name: String!
summary: String! summary: String!
tags: [String!]! tags: [String!]!
@ -312,6 +317,7 @@ input EntryFilterInput {
iconId: UuidOperationFilterInput iconId: UuidOperationFilterInput
id: LongOperationFilterInput id: LongOperationFilterInput
images: ListFilterInputTypeOfImageFilterInput images: ListFilterInputTypeOfImageFilterInput
isDefault: BooleanOperationFilterInput
isOfficial: BooleanOperationFilterInput isOfficial: BooleanOperationFilterInput
latestRelease: ReleaseFilterInput latestRelease: ReleaseFilterInput
latestReleaseId: LongOperationFilterInput latestReleaseId: LongOperationFilterInput
@ -319,6 +325,7 @@ input EntryFilterInput {
name: StringOperationFilterInput name: StringOperationFilterInput
or: [EntryFilterInput!] or: [EntryFilterInput!]
pluginInfo: PluginInfoFilterInput pluginInfo: PluginInfoFilterInput
popularityScore: FloatOperationFilterInput
releases: ListFilterInputTypeOfReleaseFilterInput releases: ListFilterInputTypeOfReleaseFilterInput
summary: StringOperationFilterInput summary: StringOperationFilterInput
tags: ListFilterInputTypeOfTagFilterInput tags: ListFilterInputTypeOfTagFilterInput
@ -334,11 +341,13 @@ input EntrySortInput {
icon: ImageSortInput icon: ImageSortInput
iconId: SortEnumType iconId: SortEnumType
id: SortEnumType id: SortEnumType
isDefault: SortEnumType
isOfficial: SortEnumType isOfficial: SortEnumType
latestRelease: ReleaseSortInput latestRelease: ReleaseSortInput
latestReleaseId: SortEnumType latestReleaseId: SortEnumType
name: SortEnumType name: SortEnumType
pluginInfo: PluginInfoSortInput pluginInfo: PluginInfoSortInput
popularityScore: SortEnumType
summary: SortEnumType summary: SortEnumType
} }
@ -349,6 +358,21 @@ input EntryTypeOperationFilterInput {
nin: [EntryType!] nin: [EntryType!]
} }
input FloatOperationFilterInput {
eq: Float
gt: Float
gte: Float
in: [Float]
lt: Float
lte: Float
neq: Float
ngt: Float
ngte: Float
nin: [Float]
nlt: Float
nlte: Float
}
input ImageFilterInput { input ImageFilterInput {
and: [ImageFilterInput!] and: [ImageFilterInput!]
description: StringOperationFilterInput description: StringOperationFilterInput
@ -580,6 +604,7 @@ input UpdateEntryInput {
categories: [Long!]! categories: [Long!]!
description: String! description: String!
id: Long! id: Long!
isDefault: Boolean!
name: String! name: String!
summary: String! summary: String!
tags: [String!]! tags: [String!]!

View File

@ -240,6 +240,7 @@
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002EMemberReordering_002EMigrations_002ECSharpFileLayoutPatternRemoveIsAttributeUpgrade/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAlwaysTreatStructAsNotReorderableMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAlwaysTreatStructAsNotReorderableMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=activatable/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=activatable/@EntryIndexedValue">True</s:Boolean>

View File

@ -4,43 +4,43 @@
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled> <CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageVersion Include="AsyncImageLoader.Avalonia" Version="3.2.1" /> <PackageVersion Include="AsyncImageLoader.Avalonia" Version="3.3.0" />
<PackageVersion Include="Avalonia" Version="11.0.11" /> <PackageVersion Include="Avalonia" Version="11.1.3" />
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.0.6" /> <PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.1.0" />
<PackageVersion Include="Avalonia.Controls.ItemsRepeater" Version="11.0.11" /> <PackageVersion Include="Avalonia.Controls.ItemsRepeater" Version="11.1.3" />
<PackageVersion Include="Avalonia.Controls.PanAndZoom" Version="11.0.0.3" /> <PackageVersion Include="Avalonia.Controls.PanAndZoom" Version="11.1.0.1" />
<PackageVersion Include="Avalonia.Desktop" Version="11.0.11" /> <PackageVersion Include="Avalonia.Desktop" Version="11.1.3" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.0.9" /> <PackageVersion Include="Avalonia.Diagnostics" Version="11.0.9" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.0.11" /> <PackageVersion Include="Avalonia.ReactiveUI" Version="11.1.3" />
<PackageVersion Include="Avalonia.Skia.Lottie" Version="11.0.0" /> <PackageVersion Include="Avalonia.Skia.Lottie" Version="11.0.0" />
<PackageVersion Include="Avalonia.Win32" Version="11.0.11" /> <PackageVersion Include="Avalonia.Win32" Version="11.1.3" />
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="8.0.0" /> <PackageVersion Include="Microsoft.Win32.SystemEvents" Version="8.0.0" />
<PackageVersion Include="Avalonia.Xaml.Behaviors" Version="11.0.10.9" /> <PackageVersion Include="Avalonia.Xaml.Behaviors" Version="11.1.0.4" />
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.0.6" /> <PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
<PackageVersion Include="DryIoc.Microsoft.DependencyInjection" Version="6.2.0" /> <PackageVersion Include="DryIoc.Microsoft.DependencyInjection" Version="6.2.0" />
<PackageVersion Include="DryIoc.dll" Version="5.4.3" /> <PackageVersion Include="DryIoc.dll" Version="5.4.3" />
<PackageVersion Include="DynamicData" Version="8.4.1" /> <PackageVersion Include="DynamicData" Version="8.4.1" />
<PackageVersion Include="EmbedIO" Version="3.5.2" /> <PackageVersion Include="EmbedIO" Version="3.5.2" />
<PackageVersion Include="FluentAvalonia.ProgressRing" Version="1.69.2" /> <PackageVersion Include="FluentAvalonia.ProgressRing" Version="1.69.2" />
<PackageVersion Include="FluentAvaloniaUI" Version="2.0.5" /> <PackageVersion Include="FluentAvaloniaUI" Version="2.1.0" />
<PackageVersion Include="HidSharp" Version="2.1.0" /> <PackageVersion Include="HidSharp" Version="2.1.0" />
<PackageVersion Include="Humanizer.Core" Version="2.14.1" /> <PackageVersion Include="Humanizer.Core" Version="2.14.1" />
<PackageVersion Include="IdentityModel" Version="7.0.0" /> <PackageVersion Include="IdentityModel" Version="7.0.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" /> <PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" />
<PackageVersion Include="LiteDB" Version="5.0.17" /> <PackageVersion Include="LiteDB" Version="5.0.21" />
<PackageVersion Include="Markdown.Avalonia.Tight" Version="11.0.2" /> <PackageVersion Include="Markdown.Avalonia.Tight" Version="11.0.2" />
<PackageVersion Include="Material.Icons.Avalonia" Version="2.1.10" /> <PackageVersion Include="Material.Icons.Avalonia" Version="2.1.10" />
<PackageVersion Include="McMaster.NETCore.Plugins" Version="1.4.0" /> <PackageVersion Include="McMaster.NETCore.Plugins" Version="1.4.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.8" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.6"> <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.8">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion> </PackageVersion>
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" /> <PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" /> <PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" />
<PackageVersion Include="Microsoft.Win32" Version="2.0.1" /> <PackageVersion Include="Microsoft.Win32" Version="2.0.1" />
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.6" /> <PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.8" />
<PackageVersion Include="NoStringEvaluating" Version="2.5.2" /> <PackageVersion Include="NoStringEvaluating" Version="2.5.2" />
<PackageVersion Include="Octopus.Octodiff" Version="2.0.546" /> <PackageVersion Include="Octopus.Octodiff" Version="2.0.546" />
<PackageVersion Include="PropertyChanged.SourceGenerator" Version="1.1.0" /> <PackageVersion Include="PropertyChanged.SourceGenerator" Version="1.1.0" />
@ -50,16 +50,16 @@
<PackageVersion Include="RawInput.Sharp" Version="0.1.3" /> <PackageVersion Include="RawInput.Sharp" Version="0.1.3" />
<PackageVersion Include="ReactiveUI" Version="20.1.1" /> <PackageVersion Include="ReactiveUI" Version="20.1.1" />
<PackageVersion Include="ReactiveUI.Validation" Version="4.0.9" /> <PackageVersion Include="ReactiveUI.Validation" Version="4.0.9" />
<PackageVersion Include="Serilog" Version="4.0.0" /> <PackageVersion Include="Serilog" Version="4.0.1" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" /> <PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" /> <PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageVersion Include="SkiaSharp" Version="2.88.8" /> <PackageVersion Include="SkiaSharp" Version="2.88.8" />
<PackageVersion Include="SkiaSharp.Vulkan.SharpVk" Version="2.88.8" /> <PackageVersion Include="SkiaSharp.Vulkan.SharpVk" Version="2.88.8" />
<PackageVersion Include="Splat.DryIoc" Version="15.1.1" /> <PackageVersion Include="Splat.DryIoc" Version="15.2.22" />
<PackageVersion Include="StrawberryShake.Server" Version="13.9.6" /> <PackageVersion Include="StrawberryShake.Server" Version="13.9.12" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.6.2" /> <PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.0.2" />
<PackageVersion Include="System.Text.Json" Version="8.0.4" /> <PackageVersion Include="System.Text.Json" Version="8.0.4" />
<PackageVersion Include="TextMateSharp.Grammars" Version="1.0.57" /> <PackageVersion Include="TextMateSharp.Grammars" Version="1.0.63" />
</ItemGroup> </ItemGroup>
</Project> </Project>