GUI Avalonia multipiattaforma in solo C# e rinomina in agent-wiki-ui

Sostituisce WinForms, WebView2 e ui.html con una GUI Avalonia (XAML,
ViewModel, tema chiaro/scuro) e un renderer markdown che trasforma l'albero
di Markdig in controlli. Un solo progetto net10.0 per Windows e Linux, con
publish single-file compresso. L'avvio di claude è in un solo punto
(Core/Claude.cs) condiviso da CLI e GUI. Il nome dell'app viene
dall'AssemblyName; ChatStore migra la cartella dati LlmRun alla nuova.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
davideandClaude Sonnet 5.5 committed 2026-10-15 11:18:46 +02:00
1 parent 9c6a679e6a
commit 941d02110d
13 files changed
+966 -50

No files matched your search

+123
View File
@@ -0,0 +1,123 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AgentWikiUi.Gui.App"
RequestedThemeVariant="Default">
<!-- Token di design: vedi docs/MVP.md → "Design (UI/UX)". Il tema segue il sistema. -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="Bg">#FFFFFF</SolidColorBrush>
<SolidColorBrush x:Key="Surface">#FFFFFF</SolidColorBrush>
<SolidColorBrush x:Key="Fg">#0F172A</SolidColorBrush>
<SolidColorBrush x:Key="Muted">#F1F5F9</SolidColorBrush>
<SolidColorBrush x:Key="FgMuted">#475569</SolidColorBrush>
<SolidColorBrush x:Key="Border">#CBD5E1</SolidColorBrush>
<SolidColorBrush x:Key="Accent">#15803D</SolidColorBrush>
<SolidColorBrush x:Key="OnAccent">#FFFFFF</SolidColorBrush>
<SolidColorBrush x:Key="AccentSoft">#DCFCE7</SolidColorBrush>
<SolidColorBrush x:Key="Err">#B91C1C</SolidColorBrush>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="Bg">#0F172A</SolidColorBrush>
<SolidColorBrush x:Key="Surface">#1E293B</SolidColorBrush>
<SolidColorBrush x:Key="Fg">#F8FAFC</SolidColorBrush>
<SolidColorBrush x:Key="Muted">#1E293B</SolidColorBrush>
<SolidColorBrush x:Key="FgMuted">#94A3B8</SolidColorBrush>
<SolidColorBrush x:Key="Border">#334155</SolidColorBrush>
<SolidColorBrush x:Key="Accent">#22C55E</SolidColorBrush>
<SolidColorBrush x:Key="OnAccent">#0F172A</SolidColorBrush>
<SolidColorBrush x:Key="AccentSoft">#14301F</SolidColorBrush>
<SolidColorBrush x:Key="Err">#F87171</SolidColorBrush>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
<Application.Styles>
<FluentTheme />
<Style Selector="Window">
<Setter Property="Background" Value="{DynamicResource Bg}" />
<Setter Property="Foreground" Value="{DynamicResource Fg}" />
<Setter Property="FontFamily" Value="Segoe UI Variable Text, Segoe UI, Inter, Ubuntu, Cantarell, Noto Sans, DejaVu Sans, sans-serif" />
<Setter Property="FontSize" Value="15.5" />
</Style>
<Style Selector="Button.ghost">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource Border}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="10" />
<Setter Property="MinHeight" Value="36" />
<Setter Property="Padding" Value="14,0" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style Selector="Button.ghost:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="{DynamicResource Bg}" />
<Setter Property="BorderBrush" Value="{DynamicResource Accent}" />
</Style>
<Style Selector="Button.mini">
<Setter Property="FontSize" Value="12" />
<Setter Property="Padding" Value="8,2" />
<Setter Property="MinHeight" Value="24" />
<Setter Property="CornerRadius" Value="6" />
<Setter Property="Background" Value="{DynamicResource Surface}" />
<Setter Property="BorderBrush" Value="{DynamicResource Border}" />
<Setter Property="BorderThickness" Value="1" />
</Style>
<Style Selector="Button.chip">
<Setter Property="Background" Value="{DynamicResource Surface}" />
<Setter Property="BorderBrush" Value="{DynamicResource Border}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="14" />
<Setter Property="Padding" Value="16,12" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
<Style Selector="Button.chip:pointerover /template/ ContentPresenter">
<Setter Property="BorderBrush" Value="{DynamicResource Accent}" />
<Setter Property="Background" Value="{DynamicResource Muted}" />
</Style>
<Style Selector="Button.send">
<Setter Property="Width" Value="36" />
<Setter Property="Height" Value="36" />
<Setter Property="CornerRadius" Value="18" />
<Setter Property="Padding" Value="0" />
<Setter Property="Background" Value="{DynamicResource Accent}" />
<Setter Property="Foreground" Value="{DynamicResource OnAccent}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style Selector="Button.send:disabled /template/ ContentPresenter">
<Setter Property="Background" Value="{DynamicResource Border}" />
<Setter Property="Foreground" Value="{DynamicResource FgMuted}" />
</Style>
<Style Selector="Button.send:pointerover:not(:disabled) /template/ ContentPresenter">
<Setter Property="Background" Value="{DynamicResource Accent}" />
<Setter Property="Opacity" Value="0.88" />
</Style>
<Style Selector="TextBox.bare /template/ Border#PART_BorderElement">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
</Style>
<Style Selector="Border.composer:focus-within">
<Setter Property="BorderBrush" Value="{DynamicResource Accent}" />
</Style>
<Style Selector="Border.item">
<Setter Property="CornerRadius" Value="10" />
<Setter Property="Margin" Value="8,1" />
<Setter Property="BorderThickness" Value="3,0,0,0" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
<Style Selector="Border.item.active">
<Setter Property="Background" Value="{DynamicResource Bg}" />
<Setter Property="BorderBrush" Value="{DynamicResource Accent}" />
</Style>
<Style Selector="Border.item:pointerover">
<Setter Property="Background" Value="{DynamicResource Bg}" />
</Style>
</Application.Styles>
</Application>