<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:services="clr-namespace:NexusShell.Services">

    <LinearGradientBrush x:Key="NexusDockIconAccentGradient" StartPoint="0,0" EndPoint="1,1">
        <GradientStop Color="#FF8A4FFF" Offset="0"/>
        <GradientStop Color="#FF00D9FF" Offset="1"/>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="NexusDockIconAccentGradientHorizontal" StartPoint="0,0.5" EndPoint="1,0.5">
        <GradientStop Color="#FF8A4FFF" Offset="0"/>
        <GradientStop Color="#FF00D9FF" Offset="0.55"/>
        <GradientStop Color="#FF8A4FFF" Offset="1"/>
    </LinearGradientBrush>

    <Style x:Key="NexusDockIconPathStyle" TargetType="Path">
        <Setter Property="Stretch" Value="Uniform"/>
        <Setter Property="Stroke" Value="{StaticResource NexusDockIconAccentGradient}"/>
        <Setter Property="StrokeThickness" Value="2"/>
        <Setter Property="Fill" Value="Transparent"/>
        <Setter Property="StrokeStartLineCap" Value="Round"/>
        <Setter Property="StrokeEndLineCap" Value="Round"/>
        <Setter Property="StrokeLineJoin" Value="Round"/>
        <Setter Property="Width" Value="24"/>
        <Setter Property="Height" Value="24"/>
    </Style>

    <Style x:Key="NexusDockIconVisualStyle" TargetType="ContentControl">
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding IconKey}" Value="nexus">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="30" Height="30">
                            <Grid Width="32" Height="32">
                                <Image Source="{DynamicResource NexusDockBrandIcon}"
                                       Width="32" Height="32"
                                       RenderOptions.BitmapScalingMode="HighQuality">
                                    <Image.Effect>
                                        <DropShadowEffect Color="#00D9FF" BlurRadius="10" ShadowDepth="0" Opacity="0.45"/>
                                    </Image.Effect>
                                </Image>
                            </Grid>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="search">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.SearchGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="apps">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.LayoutGridGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="files">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.FolderGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="browser">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.GlobeGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="terminal">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.TerminalGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="settings">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.SettingsGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding IconKey}" Value="add">
                <Setter Property="Content">
                    <Setter.Value>
                        <Viewbox Width="22" Height="22">
                            <Path Data="{x:Static services:NexusLucideIcons.PlusGeometry}"
                                  Style="{StaticResource NexusDockIconPathStyle}"/>
                        </Viewbox>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</ResourceDictionary>
