<local:NavigablePage
    x:Class="Microsoft.PowerToys.Settings.UI.Views.GeneralPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
    xmlns:converters="using:Microsoft.PowerToys.Settings.UI.Converters"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="using:Microsoft.PowerToys.Settings.UI.Helpers"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:ptcontrols="using:Microsoft.PowerToys.Common.UI.Controls"
    xmlns:tkcontrols="using:CommunityToolkit.WinUI.Controls"
    xmlns:ui="using:CommunityToolkit.WinUI"
    AutomationProperties.LandmarkType="Main"
    mc:Ignorable="d">

    <local:NavigablePage.Resources>
        <converters:UpdateStateToBoolConverter x:Key="UpdateStateToBoolConverter" />
        <converters:StringToInfoBarSeverityConverter x:Key="StringToInfoBarSeverityConverter" />
    </local:NavigablePage.Resources>

    <controls:SettingsPageControl x:Uid="General" ModuleImageSource="ms-appx:///Assets/Settings/Modules/PT.png">
        <controls:SettingsPageControl.ModuleContent>
            <StackPanel ChildrenTransitions="{StaticResource SettingsCardsAnimations}" Orientation="Vertical">
                <controls:SettingsGroup x:Uid="General_VersionAndUpdate" Margin="0,-32,0,0">
                    <tkcontrols:SettingsExpander Header="{x:Bind ViewModel.PowerToysVersion, Mode=OneWay}" HeaderIcon="{ui:FontIcon Glyph=&#xE895;}">
                        <tkcontrols:SettingsExpander.Description>
                            <StackPanel Orientation="Vertical">
                                <TextBlock Style="{StaticResource SecondaryTextStyle}">
                                    <Run x:Uid="General_VersionLastChecked" />
                                    <Run Text="{x:Bind ViewModel.UpdateCheckedDate, Mode=OneWay}" />
                                </TextBlock>
                                <HyperlinkButton
                                    x:Uid="ReleaseNotes"
                                    Margin="0,2,0,0"
                                    FontWeight="SemiBold"
                                    NavigateUri="https://github.com/microsoft/PowerToys/releases/" />
                            </StackPanel>
                        </tkcontrols:SettingsExpander.Description>
                        <Grid Visibility="{x:Bind ViewModel.IsUpdatePanelVisible, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
                            <StackPanel
                                VerticalAlignment="Center"
                                Orientation="Horizontal"
                                Spacing="18"
                                Visibility="{x:Bind ViewModel.IsNewVersionDownloading, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}">
                                <ProgressRing Width="24" Height="24" />
                                <TextBlock
                                    x:Uid="General_CheckingForUpdates"
                                    VerticalAlignment="Center"
                                    FontWeight="SemiBold"
                                    Foreground="{ThemeResource TextFillColorSecondaryBrush}" />
                            </StackPanel>
                            <Button
                                x:Uid="GeneralPage_CheckForUpdates"
                                HorizontalAlignment="Right"
                                Command="{Binding CheckForUpdatesEventHandler}"
                                IsEnabled="{Binding IsDownloadAllowed}"
                                Visibility="{Binding Mode=OneWay, Path=IsNewVersionDownloading, Converter={StaticResource BoolNegationConverter}}" />
                        </Grid>
                        <tkcontrols:SettingsExpander.ItemsHeader>
                            <InfoBar
                                x:Uid="GPO_SomeSettingsAreManaged"
                                BorderThickness="0"
                                CornerRadius="0"
                                IsClosable="False"
                                IsOpen="{x:Bind ViewModel.SomeUpdateSettingsAreGpoManaged, Mode=OneWay}"
                                IsTabStop="{x:Bind ViewModel.SomeUpdateSettingsAreGpoManaged, Mode=OneWay}"
                                Severity="Informational">
                                <InfoBar.IconSource>
                                    <FontIconSource FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xE72E;" />
                                </InfoBar.IconSource>
                            </InfoBar>
                        </tkcontrols:SettingsExpander.ItemsHeader>
                        <tkcontrols:SettingsExpander.Items>
                            <tkcontrols:SettingsCard
                                ContentAlignment="Left"
                                IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsAutoDownloadUpdatesCardEnabled}"
                                Visibility="{x:Bind ViewModel.IsAdmin, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}">
                                <ptcontrols:CheckBoxWithDescriptionControl x:Uid="GeneralPage_AutoDownloadAndInstallUpdates" IsChecked="{Binding Mode=TwoWay, Path=AutoDownloadUpdates}" />
                            </tkcontrols:SettingsCard>
                            <tkcontrols:SettingsCard ContentAlignment="Left" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsShowNewUpdatesToastNotificationCardEnabled}">
                                <ptcontrols:CheckBoxWithDescriptionControl x:Uid="GeneralPage_ShowNewUpdatesToast" IsChecked="{Binding Mode=TwoWay, Path=ShowNewUpdatesToastNotification}" />
                            </tkcontrols:SettingsCard>
                            <tkcontrols:SettingsCard ContentAlignment="Left" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsShowWhatsNewAfterUpdatesCardEnabled}">
                                <CheckBox x:Uid="GeneralPage_ShowWhatsNewAfterUpdates" IsChecked="{Binding Mode=TwoWay, Path=ShowWhatsNewAfterUpdates}" />
                            </tkcontrols:SettingsCard>
                        </tkcontrols:SettingsExpander.Items>
                    </tkcontrols:SettingsExpander>

                    <StackPanel Orientation="Vertical">
                        <InfoBar
                            x:Uid="General_UpToDate"
                            IsClosable="False"
                            IsOpen="{x:Bind ViewModel.IsNewVersionCheckedAndUpToDate, Mode=OneWay}"
                            IsTabStop="{x:Bind ViewModel.IsNewVersionCheckedAndUpToDate, Mode=OneWay}"
                            Severity="Success" />

                        <!--  Network error while checking for new version  -->
                        <InfoBar
                            x:Uid="General_CantCheck"
                            IsClosable="False"
                            IsOpen="{x:Bind ViewModel.IsNoNetwork, Mode=OneWay}"
                            IsTabStop="{x:Bind ViewModel.IsNoNetwork, Mode=OneWay}"
                            Severity="Error" />

                        <!--  New version available  -->
                        <InfoBar
                            x:Uid="General_NewVersionAvailable"
                            IsClosable="False"
                            IsOpen="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ReadyToDownload}"
                            IsTabStop="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ReadyToDownload}"
                            Message="{x:Bind ViewModel.PowerToysNewAvailableVersion, Mode=OneWay}"
                            Severity="Warning">

                            <InfoBar.Content>
                                <StackPanel Spacing="16">
                                    <Button
                                        x:Uid="General_DownloadAndInstall"
                                        Margin="0,0,0,16"
                                        Command="{Binding UpdateNowButtonEventHandler}"
                                        IsEnabled="{Binding IsDownloadAllowed}"
                                        Visibility="{Binding Mode=OneWay, Path=IsNewVersionDownloading, Converter={StaticResource BoolNegationConverter}}" />

                                    <!--  In progress panel  -->
                                    <StackPanel
                                        Margin="0,0,0,16"
                                        Orientation="Horizontal"
                                        Spacing="18"
                                        Visibility="{x:Bind ViewModel.IsNewVersionDownloading, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}">
                                        <ProgressRing Width="24" Height="24" />
                                        <TextBlock
                                            x:Uid="General_Downloading"
                                            FontWeight="SemiBold"
                                            Foreground="{ThemeResource TextFillColorSecondaryBrush}" />
                                    </StackPanel>
                                </StackPanel>
                            </InfoBar.Content>
                            <InfoBar.ActionButton>
                                <HyperlinkButton
                                    x:Uid="SeeWhatsNew"
                                    HorizontalAlignment="Right"
                                    NavigateUri="{Binding PowerToysNewAvailableVersionLink, Mode=OneWay}"
                                    Style="{StaticResource TextButtonStyle}" />
                            </InfoBar.ActionButton>
                        </InfoBar>

                        <!--  Ready to install  -->
                        <InfoBar
                            x:Uid="General_NewVersionReadyToInstall"
                            IsClosable="False"
                            IsOpen="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ReadyToInstall}"
                            IsTabStop="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ReadyToInstall}"
                            Message="{x:Bind ViewModel.PowerToysNewAvailableVersion, Mode=OneWay}"
                            Severity="Warning">
                            <InfoBar.Content>
                                <Button
                                    x:Uid="General_InstallNow"
                                    Margin="0,0,0,16"
                                    Command="{Binding UpdateNowButtonEventHandler}"
                                    IsEnabled="{Binding IsDownloadAllowed}"
                                    Style="{StaticResource AccentButtonStyle}" />
                            </InfoBar.Content>
                            <InfoBar.ActionButton>
                                <HyperlinkButton
                                    x:Uid="SeeWhatsNew"
                                    HorizontalAlignment="Right"
                                    NavigateUri="{Binding PowerToysNewAvailableVersionLink, Mode=OneWay}"
                                    Style="{StaticResource TextButtonStyle}" />
                            </InfoBar.ActionButton>
                        </InfoBar>

                        <!--  Install failed  -->
                        <InfoBar
                            x:Uid="General_FailedToDownloadTheNewVersion"
                            IsClosable="False"
                            IsOpen="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ErrorDownloading}"
                            IsTabStop="{x:Bind ViewModel.PowerToysUpdatingState, Mode=OneWay, Converter={StaticResource UpdateStateToBoolConverter}, ConverterParameter=ErrorDownloading}"
                            Message="{x:Bind ViewModel.PowerToysNewAvailableVersion, Mode=OneWay}"
                            Severity="Error">
                            <InfoBar.Content>
                                <StackPanel Spacing="16">
                                    <Button
                                        x:Uid="General_TryAgainToDownloadAndInstall"
                                        Command="{Binding UpdateNowButtonEventHandler}"
                                        IsEnabled="{Binding IsDownloadAllowed}"
                                        Visibility="{Binding Mode=OneWay, Path=IsNewVersionDownloading, Converter={StaticResource BoolNegationConverter}}" />

                                    <!--  In progress panel  -->
                                    <StackPanel
                                        Margin="0,0,0,16"
                                        Orientation="Horizontal"
                                        Spacing="18"
                                        Visibility="{x:Bind ViewModel.IsNewVersionDownloading, Converter={StaticResource BoolToVisibilityConverter}}">
                                        <ProgressRing Width="24" Height="24" />
                                        <TextBlock
                                            x:Uid="General_Downloading"
                                            FontWeight="SemiBold"
                                            Foreground="{ThemeResource TextFillColorSecondaryBrush}" />
                                    </StackPanel>
                                </StackPanel>
                            </InfoBar.Content>
                            <InfoBar.ActionButton>
                                <HyperlinkButton
                                    x:Uid="SeeWhatsNew"
                                    HorizontalAlignment="Right"
                                    NavigateUri="{Binding PowerToysNewAvailableVersionLink, Mode=OneWay}"
                                    Style="{StaticResource TextButtonStyle}" />
                            </InfoBar.ActionButton>
                        </InfoBar>
                    </StackPanel>
                </controls:SettingsGroup>

                <controls:SettingsGroup x:Uid="Admin_Mode">
                    <tkcontrols:SettingsExpander
                        Name="AdminModeRunningAs"
                        x:Uid="Admin_Mode_Running_As"
                        Header="{x:Bind ViewModel.RunningAsText, Mode=OneWay}"
                        HeaderIcon="{ui:FontIcon Glyph=&#xE7EF;}"
                        IsExpanded="True">
                        <tkcontrols:SettingsExpander.Description>
                            <HyperlinkButton x:Uid="GeneralPage_ToggleSwitch_AlwaysRunElevated_Link" NavigateUri="https://aka.ms/powertoysDetectedElevatedHelp" />
                        </tkcontrols:SettingsExpander.Description>
                        <Button
                            x:Uid="GeneralPage_RestartAsAdmin_Button"
                            Command="{Binding RestartElevatedButtonEventHandler}"
                            IsEnabled="{Binding IsAdminButtonEnabled}" />
                        <tkcontrols:SettingsExpander.Items>
                            <tkcontrols:SettingsCard ContentAlignment="Left" IsEnabled="{x:Bind ViewModel.IsElevated, Mode=OneWay}">
                                <ptcontrols:CheckBoxWithDescriptionControl x:Uid="GeneralSettings_AlwaysRunAsAdminText" IsChecked="{x:Bind ViewModel.RunElevated, Mode=TwoWay}" />
                            </tkcontrols:SettingsCard>
                            <tkcontrols:SettingsCard ContentAlignment="Left">
                                <CheckBox x:Uid="GeneralPage_WarningsElevatedApps" IsChecked="{Binding Mode=TwoWay, Path=EnableWarningsElevatedApps}" />
                            </tkcontrols:SettingsCard>
                        </tkcontrols:SettingsExpander.Items>
                    </tkcontrols:SettingsExpander>
                </controls:SettingsGroup>

                <controls:SettingsGroup x:Uid="Appearance_Behavior" IsEnabled="True">
                    <tkcontrols:SettingsCard
                        Name="LanguageHeader"
                        x:Uid="LanguageHeader"
                        HeaderIcon="{ui:FontIcon Glyph=&#xF2B7;}">
                        <ComboBox
                            x:Name="Languages_ComboBox"
                            MinWidth="{StaticResource SettingActionControlMinWidth}"
                            AutomationProperties.Name="{Binding ElementName=LanguageHeader, Path=Header}"
                            DisplayMemberPath="Language"
                            ItemsSource="{Binding Languages, Mode=TwoWay}"
                            SelectedIndex="{Binding LanguagesIndex, Mode=TwoWay}" />
                    </tkcontrols:SettingsCard>
                    <InfoBar
                        x:Uid="LanguageRestartInfo"
                        IsClosable="False"
                        IsOpen="{x:Bind Mode=OneWay, Path=ViewModel.LanguageChanged}"
                        IsTabStop="True"
                        Severity="Informational">
                        <InfoBar.ActionButton>
                            <Button x:Uid="LanguageRestartInfoButton" Click="Click_LanguageRestart" />
                        </InfoBar.ActionButton>
                    </InfoBar>

                    <tkcontrols:SettingsCard
                        Name="ColorModeHeader"
                        x:Uid="ColorModeHeader"
                        HeaderIcon="{ui:FontIcon Glyph=&#xE790;}">
                        <tkcontrols:SettingsCard.Description>
                            <HyperlinkButton x:Uid="Windows_Color_Settings" Click="OpenColorsSettings_Click" />
                        </tkcontrols:SettingsCard.Description>
                        <ComboBox
                            MinWidth="{StaticResource SettingActionControlMinWidth}"
                            AutomationProperties.Name="{Binding ElementName=ColorModeHeader, Path=Header}"
                            SelectedIndex="{x:Bind ViewModel.ThemeIndex, Mode=TwoWay}">
                            <ComboBoxItem x:Uid="Radio_Theme_Dark" />
                            <ComboBoxItem x:Uid="Radio_Theme_Light" />
                            <ComboBoxItem x:Uid="Radio_Theme_Default" />
                        </ComboBox>
                    </tkcontrols:SettingsCard>

                    <tkcontrols:SettingsCard
                        Name="GeneralPageRunAtStartUp"
                        x:Uid="GeneralPage_RunAtStartUp"
                        IsEnabled="{x:Bind ViewModel.IsRunAtStartupGPOManaged, Mode=OneWay, Converter={StaticResource BoolNegationConverter}}">
                        <ToggleSwitch
                            x:Uid="ToggleSwitch"
                            AutomationProperties.Name="{Binding ElementName=GeneralPageRunAtStartUp, Path=Header}"
                            IsOn="{x:Bind ViewModel.Startup, Mode=TwoWay}" />
                    </tkcontrols:SettingsCard>
                    <controls:GPOInfoControl ShowWarning="{x:Bind ViewModel.IsRunAtStartupGPOManaged, Mode=OneWay}">
                        <tkcontrols:SettingsExpander x:Name="ShowSystemTrayIconCard" x:Uid="ShowSystemTrayIcon">
                            <ToggleSwitch
                                x:Uid="ShowSystemTrayIcon_ToggleSwitch"
                                AutomationProperties.Name="{Binding ElementName=ShowSystemTrayIconCard, Path=Header}"
                                IsOn="{x:Bind ViewModel.ShowSysTrayIcon, Mode=TwoWay}"
                                Toggled="ShowSystemTrayIcon_Toggled" />
                            <tkcontrols:SettingsExpander.Items>
                                <tkcontrols:SettingsCard
                                    x:Name="ShowThemeAdaptiveTrayIconCard"
                                    ContentAlignment="Left"
                                    IsEnabled="{x:Bind ViewModel.ShowSysTrayIcon, Mode=OneWay}">
                                    <CheckBox x:Uid="ShowThemeAdaptiveTrayIcon" IsChecked="{x:Bind ViewModel.ShowThemeAdaptiveTrayIcon, Mode=TwoWay}" />
                                </tkcontrols:SettingsCard>
                            </tkcontrols:SettingsExpander.Items>
                        </tkcontrols:SettingsExpander>
                    </controls:GPOInfoControl>

                    <tkcontrols:SettingsExpander
                        Name="GeneralPageEnableQuickAccess"
                        x:Uid="GeneralPage_EnableQuickAccess"
                        HeaderIcon="{ui:FontIcon Glyph=&#xE91C;}"
                        IsExpanded="True">
                        <ToggleSwitch
                            x:Uid="ToggleSwitch"
                            AutomationProperties.Name="{Binding ElementName=GeneralPageEnableQuickAccess, Path=Header}"
                            IsOn="{x:Bind ViewModel.EnableQuickAccess, Mode=TwoWay}" />
                        <tkcontrols:SettingsExpander.Items>
                            <!--  HACK: For some weird reason, a ShortcutControl does not work correctly if it's the first or last item in the expander, so we add an invisible card.  -->
                            <tkcontrols:SettingsCard Visibility="Collapsed" />
                            <tkcontrols:SettingsCard
                                Name="QuickAccessShortcut"
                                x:Uid="GeneralPage_QuickAccessShortcut"
                                IsEnabled="{x:Bind ViewModel.EnableQuickAccess, Mode=OneWay}">
                                <controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.QuickAccessShortcut, Mode=TwoWay}" />
                            </tkcontrols:SettingsCard>
                            <tkcontrols:SettingsCard Visibility="Collapsed" />
                        </tkcontrols:SettingsExpander.Items>
                    </tkcontrols:SettingsExpander>
                </controls:SettingsGroup>

                <controls:SettingsGroup x:Uid="General_SettingsBackupAndRestoreTitle" Visibility="Visible">
                    <tkcontrols:SettingsExpander
                        Name="GeneralSettingsBackupAndRestore"
                        x:Uid="General_SettingsBackupAndRestore"
                        HeaderIcon="{ui:FontIcon Glyph=&#xE777;}">
                        <StackPanel Orientation="Horizontal" Spacing="8">
                            <Button x:Uid="General_SettingsBackupAndRestore_ButtonBackup" Command="{Binding BackupConfigsEventHandler}" />
                            <Button x:Uid="General_SettingsBackupAndRestore_ButtonRestore" Command="{Binding RestoreConfigsEventHandler}" />
                        </StackPanel>
                        <tkcontrols:SettingsExpander.Items>
                            <tkcontrols:SettingsCard Name="GeneralSettingsBackupAndRestoreLocationText" x:Uid="General_SettingsBackupAndRestoreLocationText">
                                <Grid ColumnSpacing="8">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="Auto" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock
                                        x:Name="pathTextBlock"
                                        MaxWidth="286"
                                        VerticalAlignment="Center"
                                        Foreground="{ThemeResource TextFillColorSecondaryBrush}"
                                        IsTextSelectionEnabled="True"
                                        Style="{StaticResource CaptionTextBlockStyle}"
                                        Text="{x:Bind ViewModel.SettingsBackupAndRestoreDir, Mode=TwoWay}"
                                        TextWrapping="Wrap">
                                        <ToolTipService.ToolTip>
                                            <ToolTip IsEnabled="{Binding IsTextTrimmed, ElementName=pathTextBlock, Mode=OneWay}">
                                                <TextBlock Text="{x:Bind ViewModel.SettingsBackupAndRestoreDir, Mode=TwoWay}" />
                                            </ToolTip>
                                        </ToolTipService.ToolTip>
                                    </TextBlock>
                                    <Button
                                        x:Uid="General_SettingsBackupAndRestore_ButtonSelectFolder"
                                        Grid.Column="1"
                                        Command="{Binding SelectSettingBackupDirEventHandler}"
                                        Content="&#xe8da;"
                                        FontFamily="{ThemeResource SymbolThemeFontFamily}">
                                        <ToolTipService.ToolTip>
                                            <ToolTip>
                                                <TextBlock x:Uid="General_SettingsBackupAndRestore_ButtonSelectLocation" />
                                            </ToolTip>
                                        </ToolTipService.ToolTip>
                                    </Button>
                                </Grid>
                            </tkcontrols:SettingsCard>
                            <tkcontrols:SettingsCard
                                Name="GeneralSettingsBackupAndRestoreStatusInfo"
                                x:Uid="General_SettingsBackupAndRestoreStatusInfo"
                                HorizontalContentAlignment="Left"
                                ContentAlignment="Vertical">
                                <Grid
                                    Margin="0,0,0,6"
                                    ColumnSpacing="36"
                                    RowSpacing="4">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                    </Grid.RowDefinitions>
                                    <TextBlock x:Uid="General_SettingsBackupInfo_StatusHeader" />
                                    <TextBlock
                                        Grid.Column="1"
                                        Foreground="{ThemeResource TextFillColorSecondaryBrush}"
                                        TextWrapping="WrapWholeWords">
                                        <Run Text="{x:Bind ViewModel.CurrentSettingMatchText, Mode=OneWay}" />
                                        <Hyperlink Click="UpdateBackupAndRestoreStatusText" TextDecorations="Underline">
                                            <Run x:Uid="General_SettingsBackupAndRestore_LinkRefresh" />
                                        </Hyperlink>
                                    </TextBlock>

                                    <TextBlock x:Uid="General_SettingsBackupInfo_FileNameHeader" Grid.Row="1" />
                                    <TextBlock
                                        Grid.Row="1"
                                        Grid.Column="1"
                                        Foreground="{ThemeResource TextFillColorSecondaryBrush}"
                                        Text="{x:Bind ViewModel.LastSettingsBackupFileName, Mode=OneWay}"
                                        TextWrapping="WrapWholeWords" />

                                    <TextBlock x:Uid="General_SettingsBackupInfo_SourceHeader" Grid.Row="2" />
                                    <TextBlock
                                        Grid.Row="2"
                                        Grid.Column="1"
                                        Foreground="{ThemeResource TextFillColorSecondaryBrush}"
                                        Text="{x:Bind ViewModel.LastSettingsBackupSource, Mode=OneWay}"
                                        TextWrapping="WrapWholeWords" />
                                    <TextBlock x:Uid="General_SettingsBackupInfo_DateHeader" Grid.Row="3" />
                                    <TextBlock
                                        Grid.Row="3"
                                        Grid.Column="1"
                                        Foreground="{ThemeResource TextFillColorSecondaryBrush}"
                                        Text="{x:Bind ViewModel.LastSettingsBackupDate, Mode=OneWay}"
                                        TextWrapping="WrapWholeWords" />
                                </Grid>
                            </tkcontrols:SettingsCard>
                        </tkcontrols:SettingsExpander.Items>
                    </tkcontrols:SettingsExpander>
                </controls:SettingsGroup>
                <InfoBar
                    x:Uid="General_SettingsBackupMessageResults"
                    Title="{x:Bind ViewModel.SettingsBackupMessage, Mode=OneWay}"
                    IsClosable="False"
                    IsOpen="{x:Bind ViewModel.SettingsBackupRestoreMessageVisible, Mode=OneWay}"
                    IsTabStop="{x:Bind ViewModel.SettingsBackupRestoreMessageVisible, Mode=OneWay}"
                    Severity="{x:Bind ViewModel.BackupRestoreMessageSeverity, Converter={StaticResource StringToInfoBarSeverityConverter}}" />
                <controls:SettingsGroup x:Uid="General_Experimentation" Visibility="Visible">
                    <controls:GPOInfoControl ShowWarning="{x:Bind ViewModel.IsExperimentationGpoDisallowed, Mode=OneWay}">
                        <tkcontrols:SettingsCard Name="GeneralPageEnableExperimentation" x:Uid="GeneralPage_EnableExperimentation">
                            <tkcontrols:SettingsCard.HeaderIcon>
                                <PathIcon Data="M1859 1758q14 23 21 47t7 51q0 40-15 75t-41 61-61 41-75 15H354q-40 0-75-15t-61-41-41-61-15-75q0-27 6-51t21-47l569-992q10-14 10-34V128H640V0h768v128h-128v604q0 19 10 35l569 991zM896 732q0 53-27 99l-331 577h972l-331-577q-27-46-27-99V128H896v604zm799 1188q26 0 44-19t19-45q0-10-2-17t-8-16l-164-287H464l-165 287q-9 15-9 33 0 26 18 45t46 19h1341z" />
                            </tkcontrols:SettingsCard.HeaderIcon>
                            <ToggleSwitch
                                x:Uid="ToggleSwitch"
                                AutomationProperties.Name="{Binding ElementName=GeneralPageEnableExperimentation, Path=Header}"
                                IsOn="{x:Bind ViewModel.EnableExperimentation, Mode=TwoWay}" />
                        </tkcontrols:SettingsCard>
                    </controls:GPOInfoControl>
                </controls:SettingsGroup>
                <controls:SettingsGroup x:Uid="General_DiagnosticsAndFeedback">
                    <tkcontrols:SettingsExpander
                        x:Name="GeneralPageEnableDataDiagnostics"
                        x:Uid="GeneralPage_EnableDataDiagnostics"
                        HeaderIcon="{ui:FontIcon Glyph=&#xE9D9;}"
                        IsEnabled="{x:Bind ViewModel.IsDataDiagnosticsGPOManaged, Mode=OneWay, Converter={StaticResource BoolNegationConverter}}"
                        IsExpanded="True">
                        <tkcontrols:SettingsExpander.Description>
                            <StackPanel Orientation="Vertical">
                                <TextBlock
                                    x:Uid="GeneralPage_EnableDataDiagnosticsText"
                                    Style="{StaticResource SecondaryTextStyle}"
                                    TextWrapping="WrapWholeWords" />
                                <HyperlinkButton
                                    x:Uid="GeneralPage_DiagnosticsAndFeedback_Link"
                                    Margin="0,2,0,0"
                                    FontWeight="SemiBold"
                                    NavigateUri="https://aka.ms/powertoys-data-and-privacy-documentation" />
                            </StackPanel>
                        </tkcontrols:SettingsExpander.Description>
                        <ToggleSwitch
                            x:Uid="ToggleSwitch"
                            AutomationProperties.Name="{Binding ElementName=GeneralPageEnableDataDiagnostics, Path=Header}"
                            IsOn="{x:Bind ViewModel.EnableDataDiagnostics, Mode=TwoWay}" />
                        <tkcontrols:SettingsExpander.Items>
                            <tkcontrols:SettingsCard
                                x:Name="GeneralPageEnableViewDiagnosticData"
                                x:Uid="GeneralPage_EnableViewDiagnosticData"
                                IsEnabled="{x:Bind ViewModel.EnableDataDiagnostics, Mode=TwoWay}">
                                <ToggleSwitch
                                    x:Uid="ToggleSwitch"
                                    AutomationProperties.Name="{Binding ElementName=GeneralPageEnableViewDiagnosticData, Path=Header}"
                                    IsOn="{x:Bind ViewModel.EnableViewDataDiagnostics, Mode=TwoWay}" />
                                <tkcontrols:SettingsCard.Description>
                                    <StackPanel Orientation="Vertical">
                                        <TextBlock
                                            x:Uid="GeneralPage_EnableViewDiagnosticDataText"
                                            Style="{StaticResource SecondaryTextStyle}"
                                            TextWrapping="WrapWholeWords" />
                                        <HyperlinkButton
                                            x:Uid="GeneralPage_ViewDiagnosticDataButton"
                                            Margin="0,2,0,0"
                                            Click="ViewDiagnosticData_Click"
                                            FontWeight="SemiBold" />
                                    </StackPanel>
                                </tkcontrols:SettingsCard.Description>
                            </tkcontrols:SettingsCard>
                        </tkcontrols:SettingsExpander.Items>
                        <tkcontrols:SettingsExpander.ItemsFooter>
                            <InfoBar
                                x:Uid="GeneralPage_ViewDiagnosticDataViewerInfo"
                                BorderThickness="0"
                                CornerRadius="0,0,4,4"
                                IsClosable="False"
                                IsOpen="{x:Bind Mode=OneWay, Path=ViewModel.ViewDiagnosticDataViewerChanged}"
                                IsTabStop="{x:Bind Mode=OneWay, Path=ViewModel.ViewDiagnosticDataViewerChanged}"
                                Severity="Informational">
                                <InfoBar.ActionButton>
                                    <Button x:Uid="GeneralPage_ViewDiagnosticDataViewerInfoButton" Click="Click_ViewDiagnosticDataViewerRestart" />
                                </InfoBar.ActionButton>
                            </InfoBar>
                        </tkcontrols:SettingsExpander.ItemsFooter>
                    </tkcontrols:SettingsExpander>
                    <InfoBar
                        x:Uid="GPO_SettingIsManaged"
                        IsClosable="False"
                        IsOpen="{x:Bind ViewModel.IsDataDiagnosticsGPOManaged, Mode=OneWay}"
                        IsTabStop="{x:Bind ViewModel.IsDataDiagnosticsGPOManaged, Mode=OneWay}"
                        Severity="Informational">
                        <InfoBar.IconSource>
                            <FontIconSource FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xE72E;" />
                        </InfoBar.IconSource>
                    </InfoBar>
                    <tkcontrols:SettingsCard x:Uid="GeneralPage_ReportBugPackage" HeaderIcon="{ui:FontIcon Glyph=&#xEBE8;}">
                        <StackPanel Orientation="Horizontal">
                            <Button
                                x:Uid="GeneralPageReportBugPackage"
                                Click="BugReportToolClicked"
                                Visibility="{x:Bind ViewModel.IsBugReportRunning, Converter={StaticResource ReverseBoolToVisibilityConverter}, Mode=OneWay}" />
                            <ProgressRing
                                Width="24"
                                Height="24"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center"
                                Visibility="{x:Bind ViewModel.IsBugReportRunning, Mode=OneWay}" />
                        </StackPanel>
                    </tkcontrols:SettingsCard>
                </controls:SettingsGroup>
            </StackPanel>

        </controls:SettingsPageControl.ModuleContent>
        <controls:SettingsPageControl.PrimaryLinks>
            <controls:PageLink x:Uid="GeneralPage_Documentation" Link="https://aka.ms/PowerToysOverview" />
            <controls:PageLink x:Uid="General_Repository" Link="https://aka.ms/powertoys" />
            <controls:PageLink x:Uid="GeneralPage_ReportAbug" Link="{x:Bind ViewModel.ReportBugLink, Mode=OneWay}" />
            <controls:PageLink x:Uid="GeneralPage_RequestAFeature_URL" Link="https://aka.ms/powerToysRequestFeature" />
        </controls:SettingsPageControl.PrimaryLinks>
        <controls:SettingsPageControl.SecondaryLinks>
            <controls:PageLink x:Uid="GeneralPage_PrivacyStatement_URL" Link="http://go.microsoft.com/fwlink/?LinkId=521839" />
            <controls:PageLink x:Uid="OpenSource_Notice" Link="https://github.com/microsoft/PowerToys/blob/main/NOTICE.md" />
        </controls:SettingsPageControl.SecondaryLinks>
    </controls:SettingsPageControl>
</local:NavigablePage>
