<Application xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:sty="using:FluentAvalonia.Styling"
             xmlns:fi="using:FluentIcons.Avalonia"
             xmlns:mi="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
             x:Class="LanMountainDesktop.App"
             xmlns:local="using:LanMountainDesktop"
             RequestedThemeVariant="Default">
             <!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->

    <Application.Resources>
        <FontFamily x:Key="AppFontFamily">avares://LanMountainDesktop/Assets/Fonts#MiSans</FontFamily>
    </Application.Resources>

    <Application.DataTemplates>
        <local:ViewLocator/>
    </Application.DataTemplates>

    <Application.Styles>
        <sty:FluentAvaloniaTheme />
        <mi:MaterialIconStyles />
        <StyleInclude Source="avares://LanMountainDesktop/Styles/FluttermotionToken.axaml" />
        <StyleInclude Source="avares://LanMountainDesktop/Styles/GlassModule.axaml" />
        <StyleInclude Source="avares://LanMountainDesktop/Styles/SettingsAnimations.axaml" />
        <StyleInclude Source="avares://LanMountainDesktop/Styles/SettingsCardStyles.axaml" />

        <Style Selector="Window">
            <Setter Property="FontFamily" Value="{DynamicResource AppFontFamily}" />
        </Style>

        <Style Selector="UserControl">
            <Setter Property="FontFamily" Value="{DynamicResource AppFontFamily}" />
        </Style>

        <!-- Mitigation for Avalonia ScrollContentPresenter offset recursion during gesture inertia -->
        <Style Selector="ScrollViewer">
            <Setter Property="ScrollViewer.IsScrollInertiaEnabled" Value="False" />
        </Style>

        <Style Selector="fi|SymbolIcon">
            <Setter Property="Foreground" Value="{DynamicResource AdaptiveTextPrimaryBrush}" />
            <Setter Property="FontSize" Value="16" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>

        <Style Selector="fi|FluentIcon">
            <Setter Property="Foreground" Value="{DynamicResource AdaptiveTextPrimaryBrush}" />
            <Setter Property="FontSize" Value="16" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>

        <Style Selector="fi|SymbolIcon.icon-s, fi|FluentIcon.icon-s">
            <Setter Property="FontSize" Value="12" />
        </Style>

        <Style Selector="fi|SymbolIcon.icon-m, fi|FluentIcon.icon-m">
            <Setter Property="FontSize" Value="16" />
        </Style>

        <Style Selector="fi|SymbolIcon.icon-l, fi|FluentIcon.icon-l">
            <Setter Property="FontSize" Value="20" />
        </Style>

        <Style Selector="mi|MaterialIcon">
            <Setter Property="Foreground" Value="{DynamicResource AdaptiveTextPrimaryBrush}" />
            <Setter Property="Width" Value="20" />
            <Setter Property="Height" Value="20" />
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="VerticalAlignment" Value="Center" />
        </Style>
    </Application.Styles>
</Application>
