Release v0.1.2

This commit is contained in:
nikit3s
2026-10-10 14:58:04 +03:00
parent b2ae91b5b3
commit 3cdc30ec2a
33 changed files with 1218 additions and 212 deletions
+118 -89
View File
@@ -23,97 +23,97 @@
<ResourceDictionary x:Key="Theme.Dark">
<LinearGradientBrush x:Key="Bg" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#101B36" Offset="0"/>
<GradientStop Color="#1C315C" Offset="0.54"/>
<GradientStop Color="#323B72" Offset="1"/>
<GradientStop Color="#101113" Offset="0"/>
<GradientStop Color="#17191D" Offset="0.5"/>
<GradientStop Color="#1C1F25" Offset="1"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="Panel" Color="#B51D2D50"/>
<SolidColorBrush x:Key="Card" Color="#8D38527E"/>
<SolidColorBrush x:Key="CardHover" Color="#B24A6490"/>
<SolidColorBrush x:Key="CardSel" Color="#BE5274AA"/>
<SolidColorBrush x:Key="Stroke" Color="#77C4DAFF"/>
<SolidColorBrush x:Key="GlassEdge" Color="#A6E6F3FF"/>
<SolidColorBrush x:Key="Text" Color="#F5F9FF"/>
<SolidColorBrush x:Key="Muted" Color="#B9CBE6"/>
<SolidColorBrush x:Key="Accent" Color="#6B9FFF"/>
<SolidColorBrush x:Key="AccentHover" Color="#8AB6FF"/>
<SolidColorBrush x:Key="AccentDim" Color="#416DC5"/>
<SolidColorBrush x:Key="OnAccent" Color="#FFFFFF"/>
<SolidColorBrush x:Key="SoftBg" Color="#703F5B83"/>
<SolidColorBrush x:Key="SoftHover" Color="#A452709B"/>
<SolidColorBrush x:Key="SwitchTrack" Color="#66869CC1"/>
<SolidColorBrush x:Key="SwitchThumb" Color="#F0F7FF"/>
<SolidColorBrush x:Key="BadgeBg" Color="#82536F9A"/>
<SolidColorBrush x:Key="PingBg" Color="#7B21375E"/>
<SolidColorBrush x:Key="LogBg" Color="#A0182B4F"/>
<SolidColorBrush x:Key="LogText" Color="#D7E5F8"/>
<SolidColorBrush x:Key="ScrollTrack" Color="#3223375A"/>
<SolidColorBrush x:Key="ScrollThumb" Color="#9DAFC9EA"/>
<SolidColorBrush x:Key="ScrollThumbHover" Color="#D5DDECFF"/>
<SolidColorBrush x:Key="HeroRing" Color="#B2BBDDFF"/>
<SolidColorBrush x:Key="HeroRingDim" Color="#55A6C8FF"/>
<SolidColorBrush x:Key="Panel" Color="#DD1B1E23"/>
<SolidColorBrush x:Key="Card" Color="#C0252931"/>
<SolidColorBrush x:Key="CardHover" Color="#D7333944"/>
<SolidColorBrush x:Key="CardSel" Color="#D2354052"/>
<SolidColorBrush x:Key="Stroke" Color="#3AADB7C6"/>
<SolidColorBrush x:Key="GlassEdge" Color="#45C3CFDF"/>
<SolidColorBrush x:Key="Text" Color="#F1F3F6"/>
<SolidColorBrush x:Key="Muted" Color="#A5AFBD"/>
<SolidColorBrush x:Key="Accent" Color="#78A9FF"/>
<SolidColorBrush x:Key="AccentHover" Color="#98BEFF"/>
<SolidColorBrush x:Key="AccentDim" Color="#5385DC"/>
<SolidColorBrush x:Key="OnAccent" Color="#101820"/>
<SolidColorBrush x:Key="SoftBg" Color="#AA282D36"/>
<SolidColorBrush x:Key="SoftHover" Color="#CE353D49"/>
<SolidColorBrush x:Key="SwitchTrack" Color="#FF363C46"/>
<SolidColorBrush x:Key="SwitchThumb" Color="#F4F6FA"/>
<SolidColorBrush x:Key="BadgeBg" Color="#FF303844"/>
<SolidColorBrush x:Key="PingBg" Color="#A6191D24"/>
<SolidColorBrush x:Key="LogBg" Color="#D214171C"/>
<SolidColorBrush x:Key="LogText" Color="#BECBD9"/>
<SolidColorBrush x:Key="ScrollTrack" Color="#182D3540"/>
<SolidColorBrush x:Key="ScrollThumb" Color="#706A778B"/>
<SolidColorBrush x:Key="ScrollThumbHover" Color="#ACA7B4C7"/>
<SolidColorBrush x:Key="HeroRing" Color="#948BA4C9"/>
<SolidColorBrush x:Key="HeroRingDim" Color="#3D93AACA"/>
<RadialGradientBrush x:Key="GlowA">
<GradientStop Color="#98759CFF" Offset="0"/>
<GradientStop Color="#00759CFF" Offset="1"/>
<GradientStop Color="#28687890" Offset="0"/>
<GradientStop Color="#00687890" Offset="1"/>
</RadialGradientBrush>
<RadialGradientBrush x:Key="GlowB">
<GradientStop Color="#6652C8DC" Offset="0"/>
<GradientStop Color="#0052C8DC" Offset="1"/>
<GradientStop Color="#1C4B6F9C" Offset="0"/>
<GradientStop Color="#004B6F9C" Offset="1"/>
</RadialGradientBrush>
<!-- смысловые цвета: их же читает код для статуса и пинга -->
<SolidColorBrush x:Key="Ok" Color="#34D399"/>
<SolidColorBrush x:Key="Warn" Color="#FBBF24"/>
<SolidColorBrush x:Key="Bad" Color="#F87171"/>
<SolidColorBrush x:Key="Idle" Color="#8A94A6"/>
<SolidColorBrush x:Key="Na" Color="#6B7280"/>
<sys:Double x:Key="ShadowOpacity">0.55</sys:Double>
<SolidColorBrush x:Key="Ok" Color="#6BDBAE"/>
<SolidColorBrush x:Key="Warn" Color="#E8BF78"/>
<SolidColorBrush x:Key="Bad" Color="#F28794"/>
<SolidColorBrush x:Key="Idle" Color="#A5AFBD"/>
<SolidColorBrush x:Key="Na" Color="#85918E"/>
<sys:Double x:Key="ShadowOpacity">0.35</sys:Double>
</ResourceDictionary>
<ResourceDictionary x:Key="Theme.Light">
<LinearGradientBrush x:Key="Bg" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#DDEEFF" Offset="0"/>
<GradientStop Color="#BCD6FB" Offset="0.54"/>
<GradientStop Color="#E2E7FA" Offset="1"/>
<GradientStop Color="#F3F4F6" Offset="0"/>
<GradientStop Color="#E8EBEF" Offset="0.5"/>
<GradientStop Color="#EFF1F4" Offset="1"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="Panel" Color="#B9F8FBFF"/>
<SolidColorBrush x:Key="Card" Color="#9CFFFFFF"/>
<SolidColorBrush x:Key="CardHover" Color="#D8FFFFFF"/>
<SolidColorBrush x:Key="CardSel" Color="#D7DFEDFF"/>
<SolidColorBrush x:Key="Stroke" Color="#A7FFFFFF"/>
<SolidColorBrush x:Key="GlassEdge" Color="#EFFFFFFF"/>
<SolidColorBrush x:Key="Text" Color="#173052"/>
<SolidColorBrush x:Key="Muted" Color="#577190"/>
<SolidColorBrush x:Key="Accent" Color="#347CF2"/>
<SolidColorBrush x:Key="AccentHover" Color="#5291F8"/>
<SolidColorBrush x:Key="AccentDim" Color="#2466CB"/>
<SolidColorBrush x:Key="Panel" Color="#EBF8F9FB"/>
<SolidColorBrush x:Key="Card" Color="#FFFFFF"/>
<SolidColorBrush x:Key="CardHover" Color="#F7F9FC"/>
<SolidColorBrush x:Key="CardSel" Color="#E3EAF3"/>
<SolidColorBrush x:Key="Stroke" Color="#CDD3DC"/>
<SolidColorBrush x:Key="GlassEdge" Color="#D5DAE2"/>
<SolidColorBrush x:Key="Text" Color="#242B35"/>
<SolidColorBrush x:Key="Muted" Color="#606C7B"/>
<SolidColorBrush x:Key="Accent" Color="#405B80"/>
<SolidColorBrush x:Key="AccentHover" Color="#4E6D96"/>
<SolidColorBrush x:Key="AccentDim" Color="#344C6E"/>
<SolidColorBrush x:Key="OnAccent" Color="#FFFFFF"/>
<SolidColorBrush x:Key="SoftBg" Color="#AFFFFFFF"/>
<SolidColorBrush x:Key="SoftHover" Color="#E5FFFFFF"/>
<SolidColorBrush x:Key="SwitchTrack" Color="#8CA7BEDD"/>
<SolidColorBrush x:Key="SoftBg" Color="#E9EDF2"/>
<SolidColorBrush x:Key="SoftHover" Color="#F6F8FB"/>
<SolidColorBrush x:Key="SwitchTrack" Color="#C5CDD7"/>
<SolidColorBrush x:Key="SwitchThumb" Color="#FFFFFF"/>
<SolidColorBrush x:Key="BadgeBg" Color="#BDDFEAFA"/>
<SolidColorBrush x:Key="PingBg" Color="#9AFFFFFF"/>
<SolidColorBrush x:Key="LogBg" Color="#B6F5F9FF"/>
<SolidColorBrush x:Key="LogText" Color="#365476"/>
<SolidColorBrush x:Key="ScrollTrack" Color="#34FFFFFF"/>
<SolidColorBrush x:Key="ScrollThumb" Color="#8D8FA6C5"/>
<SolidColorBrush x:Key="ScrollThumbHover" Color="#B37490B5"/>
<SolidColorBrush x:Key="HeroRing" Color="#C84483EF"/>
<SolidColorBrush x:Key="HeroRingDim" Color="#665896E7"/>
<SolidColorBrush x:Key="BadgeBg" Color="#E0E6EE"/>
<SolidColorBrush x:Key="PingBg" Color="#EDF1F5"/>
<SolidColorBrush x:Key="LogBg" Color="#F8F9FB"/>
<SolidColorBrush x:Key="LogText" Color="#49586B"/>
<SolidColorBrush x:Key="ScrollTrack" Color="#18758499"/>
<SolidColorBrush x:Key="ScrollThumb" Color="#8895A6"/>
<SolidColorBrush x:Key="ScrollThumbHover" Color="#687A90"/>
<SolidColorBrush x:Key="HeroRing" Color="#905F7591"/>
<SolidColorBrush x:Key="HeroRingDim" Color="#407D8FA6"/>
<RadialGradientBrush x:Key="GlowA">
<GradientStop Color="#AA8EC2FF" Offset="0"/>
<GradientStop Color="#008EC2FF" Offset="1"/>
<GradientStop Color="#127689A2" Offset="0"/>
<GradientStop Color="#007689A2" Offset="1"/>
</RadialGradientBrush>
<RadialGradientBrush x:Key="GlowB">
<GradientStop Color="#99B2A5FF" Offset="0"/>
<GradientStop Color="#00B2A5FF" Offset="1"/>
<GradientStop Color="#108398B4" Offset="0"/>
<GradientStop Color="#008398B4" Offset="1"/>
</RadialGradientBrush>
<SolidColorBrush x:Key="Ok" Color="#0E9F6E"/>
<SolidColorBrush x:Key="Warn" Color="#B4790B"/>
<SolidColorBrush x:Key="Bad" Color="#DC2626"/>
<SolidColorBrush x:Key="Idle" Color="#7A8699"/>
<SolidColorBrush x:Key="Na" Color="#9AA3B2"/>
<sys:Double x:Key="ShadowOpacity">0.16</sys:Double>
<SolidColorBrush x:Key="Ok" Color="#207553"/>
<SolidColorBrush x:Key="Warn" Color="#95620D"/>
<SolidColorBrush x:Key="Bad" Color="#BD3848"/>
<SolidColorBrush x:Key="Idle" Color="#606C7B"/>
<SolidColorBrush x:Key="Na" Color="#606C7B"/>
<sys:Double x:Key="ShadowOpacity">0.10</sys:Double>
</ResourceDictionary>
<!-- Одинаковая прокрутка во всех ScrollViewer/ListBox/TextBox. -->
@@ -570,12 +570,14 @@
<Style x:Key="Tab" TargetType="Button">
<Setter Property="FontSize" Value="10.5"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Width" Value="112"/>
<Setter Property="Height" Value="32"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent" Padding="0,2,20,8">
<ContentPresenter/>
<Border Background="Transparent" CornerRadius="10">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
@@ -646,7 +648,22 @@
VerticalAlignment="Center" Margin="0,0,12,0">
<Button x:Name="BtnTheme" Style="{StaticResource Chrome}"
FontFamily="Segoe MDL2 Assets" FontSize="14"
Content="{Binding ThemeGlyph}" ToolTip="Тема: светлая / тёмная"/>
ToolTip="{Binding ThemeAction}" AutomationProperties.Name="{Binding ThemeAction}">
<Grid Width="22" Height="22" IsHitTestVisible="False">
<TextBlock x:Name="ThemeSun" Text="&#xE706;" HorizontalAlignment="Center"
VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
<TransformGroup><ScaleTransform/><RotateTransform/></TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
<TextBlock x:Name="ThemeMoon" Text="&#xE708;" HorizontalAlignment="Center"
VerticalAlignment="Center" Opacity="0" RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
<TransformGroup><ScaleTransform ScaleX="0.4" ScaleY="0.4"/><RotateTransform Angle="90"/></TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
</Button>
<Button x:Name="BtnMin" Style="{StaticResource Chrome}" Content="&#x2013;"/>
<Button x:Name="BtnClose" Style="{StaticResource Chrome}" Content="&#x2715;"/>
</StackPanel>
@@ -884,22 +901,33 @@
</Border>
<!-- вкладки -->
<Grid Grid.Row="2" Margin="6,14,4,3">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<Button x:Name="BtnTabLog" Style="{StaticResource Tab}" Content="ЛОГ"
Foreground="{Binding TabLogBrush}"/>
<Button x:Name="BtnTabSettings" Style="{StaticResource Tab}" Content="НАСТРОЙКИ"
Foreground="{Binding TabSettingsBrush}"/>
</StackPanel>
</Grid>
<Border Grid.Row="2" Margin="0,12,0,10" Padding="3"
HorizontalAlignment="Left" CornerRadius="14"
Background="{DynamicResource SoftBg}"
BorderBrush="{DynamicResource GlassEdge}" BorderThickness="1">
<Grid x:Name="TabSelectorHost">
<Border x:Name="TabSelectionWindow" Width="112" HorizontalAlignment="Left"
CornerRadius="10" BorderBrush="{DynamicResource Accent}" BorderThickness="1">
<Border.RenderTransform><TranslateTransform/></Border.RenderTransform>
<Border CornerRadius="9" Background="{DynamicResource Accent}" Opacity="0.16"/>
</Border>
<StackPanel Orientation="Horizontal">
<Button x:Name="BtnTabLog" Style="{StaticResource Tab}" Content="ЛОГ"
Foreground="{Binding TabLogBrush}"/>
<Button x:Name="BtnTabSettings" Style="{StaticResource Tab}" Content="НАСТРОЙКИ"
Foreground="{Binding TabSettingsBrush}"/>
</StackPanel>
</Grid>
</Border>
<!-- содержимое вкладки: два слоя, видим всегда ровно один -->
<Grid Grid.Row="3">
<!-- Панели скользят в пределах этой области и сохраняют своё содержимое. -->
<Grid x:Name="TabContentHost" Grid.Row="3" ClipToBounds="True">
<!-- ── лог ─────────────────────────────────────────────── -->
<Border Visibility="{Binding LogVis}"
<Border x:Name="LogPane"
CornerRadius="21" Background="{DynamicResource LogBg}"
BorderBrush="{DynamicResource GlassEdge}" BorderThickness="1" Padding="4">
<Border.RenderTransform><TranslateTransform/></Border.RenderTransform>
<TextBox x:Name="LogBox" Text="{Binding LogText, Mode=OneWay}"
IsReadOnly="True" BorderThickness="0" Background="Transparent"
Foreground="{Binding LogBrush}" SelectionBrush="{DynamicResource Accent}"
@@ -910,9 +938,10 @@
</Border>
<!-- ── настройки ───────────────────────────────────────── -->
<Border Visibility="{Binding SettingsVis}"
<Border x:Name="SettingsPane" Visibility="Hidden"
CornerRadius="21" Background="{DynamicResource Panel}"
BorderBrush="{DynamicResource GlassEdge}" BorderThickness="1" Padding="22,18">
<Border.RenderTransform><TranslateTransform/></Border.RenderTransform>
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="0,0,6,0">
<StackPanel>