From c2a7369cdb57ee197af942bfad0fa19de2a4c82c Mon Sep 17 00:00:00 2001 From: erri120 Date: Tue, 21 May 2024 23:02:51 +0200 Subject: [PATCH] Add warning modal dialog (#1390) * Add warning modal dialog * Show warning overlay when clicking help button * Hide useless top bar buttons --- .../Controls/TopBar/TopBarView.axaml | 12 +-- .../Controls/TopBar/TopBarViewModel.cs | 21 +++- src/NexusMods.App.UI/NexusMods.App.UI.csproj | 3 + .../AlphaWarning/AlphaWarningView.axaml | 83 +++++++++++++++ .../AlphaWarning/AlphaWarningView.axaml.cs | 34 ++++++ .../AlphaWarning/AlphaWarningViewModel.cs | 100 ++++++++++++++++++ .../AlphaWarning/IAlphaWarningViewModel.cs | 22 ++++ src/NexusMods.App.UI/Services.cs | 4 + .../Settings/AlphaSettings.cs | 13 +++ .../Settings/ServiceExtensions.cs | 3 +- .../Windows/MainWindowViewModel.cs | 30 ++---- src/NexusMods.Icons/IconValues.cs | 19 +++- .../Palette/Colors/ElementColors.axaml | 1 + .../Styles/Controls/Border/BorderStyles.axaml | 10 ++ .../Styles/Controls/Icons/IconsStyles.axaml | 19 +++- .../MessageBox/MessageBoxStyles.axaml | 1 - 16 files changed, 339 insertions(+), 36 deletions(-) create mode 100644 src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml create mode 100644 src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml.cs create mode 100644 src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningViewModel.cs create mode 100644 src/NexusMods.App.UI/Overlays/AlphaWarning/IAlphaWarningViewModel.cs create mode 100644 src/NexusMods.App.UI/Settings/AlphaSettings.cs diff --git a/src/NexusMods.App.UI/Controls/TopBar/TopBarView.axaml b/src/NexusMods.App.UI/Controls/TopBar/TopBarView.axaml index 4ac83d6523..14b4a1d2d8 100644 --- a/src/NexusMods.App.UI/Controls/TopBar/TopBarView.axaml +++ b/src/NexusMods.App.UI/Controls/TopBar/TopBarView.axaml @@ -32,23 +32,19 @@ Margin="16,0" x:Name="ActionStackPanel"> - - - - diff --git a/src/NexusMods.App.UI/Controls/TopBar/TopBarViewModel.cs b/src/NexusMods.App.UI/Controls/TopBar/TopBarViewModel.cs index 43d3f0de6f..10c5661ad1 100644 --- a/src/NexusMods.App.UI/Controls/TopBar/TopBarViewModel.cs +++ b/src/NexusMods.App.UI/Controls/TopBar/TopBarViewModel.cs @@ -5,9 +5,12 @@ using Avalonia.Media.Imaging; using DynamicData.Kernel; using JetBrains.Annotations; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NexusMods.Abstractions.NexusWebApi; using NexusMods.App.UI.Controls.Navigation; +using NexusMods.App.UI.Overlays; +using NexusMods.App.UI.Overlays.AlphaWarning; using NexusMods.App.UI.Pages.Settings; using NexusMods.App.UI.Windows; using NexusMods.App.UI.WorkspaceSystem; @@ -22,7 +25,12 @@ public class TopBarViewModel : AViewModel, ITopBarViewModel private readonly ILoginManager _loginManager; private readonly ILogger _logger; - public TopBarViewModel(ILogger logger, ILoginManager loginManager, IWindowManager windowManager) + public TopBarViewModel( + IServiceProvider serviceProvider, + ILogger logger, + ILoginManager loginManager, + IWindowManager windowManager, + IOverlayController overlayController) { _logger = logger; _loginManager = loginManager; @@ -46,6 +54,14 @@ public TopBarViewModel(ILogger logger, ILoginManager loginManag workspaceController.OpenPage(workspaceController.ActiveWorkspace!.Id, page, behavior); }); + HelpActionCommand = ReactiveCommand.Create(() => + { + var alphaWarningViewModel = serviceProvider.GetRequiredService(); + alphaWarningViewModel.WorkspaceController = workspaceController; + + overlayController.SetOverlayContent(new SetOverlayItem(alphaWarningViewModel)); + }); + this.WhenActivated(d => { var canLogin = this.WhenAnyValue(x => x.IsLoggedIn).Select(isLoggedIn => !isLoggedIn); @@ -138,8 +154,7 @@ private async Task Logout() public ReactiveCommand RedoActionCommand { get; } = ReactiveCommand.Create(() => { }, Observable.Return(false)); - public ReactiveCommand HelpActionCommand { get; } = - ReactiveCommand.Create(() => { }, Observable.Return(false)); + public ReactiveCommand HelpActionCommand { get; } public ReactiveCommand SettingsActionCommand { get; } } diff --git a/src/NexusMods.App.UI/NexusMods.App.UI.csproj b/src/NexusMods.App.UI/NexusMods.App.UI.csproj index 93b6ab5253..c882f4976a 100644 --- a/src/NexusMods.App.UI/NexusMods.App.UI.csproj +++ b/src/NexusMods.App.UI/NexusMods.App.UI.csproj @@ -553,6 +553,9 @@ ITextEditorPageViewModel.cs + + IAlphaWarningViewModel.cs + diff --git a/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml new file mode 100644 index 0000000000..650b99b2e9 --- /dev/null +++ b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml @@ -0,0 +1,83 @@ + + + + + + + Thank you for joining the Nexus Mods App alpha test + + + + + + Important + + + This app is still very early in development and currently only supports Stardew Valley. Please ensure no mods are installed in your game folder before testing. + + + + + + Congratulations on being one of the first to dive into the Alpha test version of the Nexus Mods App! + + + + Your feedback is our compass. So, if you encounter any bugs, quirks, or have suggestions for improvement, don't hesitate to reach out. + + + + + + + + + + + Thank you for embarking on this exciting journey with us. Happy modding! + + + + + + + + + + + + + + + + diff --git a/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml.cs b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml.cs new file mode 100644 index 0000000000..5f15666eab --- /dev/null +++ b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningView.axaml.cs @@ -0,0 +1,34 @@ +using System.Reactive.Disposables; +using Avalonia.ReactiveUI; +using JetBrains.Annotations; +using ReactiveUI; + +namespace NexusMods.App.UI.Overlays.AlphaWarning; + +[UsedImplicitly] +public partial class AlphaWarningView : ReactiveUserControl +{ + public AlphaWarningView() + { + InitializeComponent(); + + this.WhenActivated(disposables => + { + this.BindCommand(ViewModel, vm => vm.OpenDiscordCommand, view => view.OpenDiscordButton) + .DisposeWith(disposables); + + this.BindCommand(ViewModel, vm => vm.OpenForumsCommand, view => view.OpenForumsButton) + .DisposeWith(disposables); + + this.BindCommand(ViewModel, vm => vm.OpenGitHubCommand, view => view.OpenGitHubButton) + .DisposeWith(disposables); + + this.BindCommand(ViewModel, vm => vm.ViewChangelogCommand, view => view.ViewChangelogButton) + .DisposeWith(disposables); + + this.BindCommand(ViewModel, vm => vm.CloseCommand, view => view.DoneButton) + .DisposeWith(disposables); + }); + } +} + diff --git a/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningViewModel.cs b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningViewModel.cs new file mode 100644 index 0000000000..7fcd0dcb69 --- /dev/null +++ b/src/NexusMods.App.UI/Overlays/AlphaWarning/AlphaWarningViewModel.cs @@ -0,0 +1,100 @@ +using System.Reactive; +using System.Reactive.Disposables; +using DynamicData.Kernel; +using NexusMods.Abstractions.Settings; +using NexusMods.App.UI.Controls.Navigation; +using NexusMods.App.UI.Pages.Changelog; +using NexusMods.App.UI.Settings; +using NexusMods.App.UI.WorkspaceSystem; +using NexusMods.CrossPlatform.Process; +using ReactiveUI; +using ReactiveUI.Fody.Helpers; + +namespace NexusMods.App.UI.Overlays.AlphaWarning; + +public class AlphaWarningViewModel : AViewModel, IAlphaWarningViewModel +{ + [Reactive] public bool IsActive { get; set; } + + // NOTE(erri120): from https://github.com/Nexus-Mods/NexusMods.App/issues/1376 + private static readonly Uri DiscordUri = new("https://discord.gg/y7NfQWyRkj"); + private static readonly Uri ForumsUri = new("https://forums.nexusmods.com/forum/9052-nexus-mods-app/"); + private static readonly Uri GitHubUri = new("https://github.com/Nexus-Mods/NexusMods.App"); + + public ReactiveCommand ViewChangelogCommand { get; } + public ReactiveCommand OpenDiscordCommand { get; } + public ReactiveCommand OpenForumsCommand { get; } + public ReactiveCommand OpenGitHubCommand { get; } + + public ReactiveCommand CloseCommand { get; } + + public IWorkspaceController? WorkspaceController { get; set; } + + private readonly ISettingsManager _settingsManager; + private readonly IOverlayController _overlayController; + + public AlphaWarningViewModel( + IOSInterop osInterop, + ISettingsManager settingsManager, + IOverlayController overlayController) + { + _settingsManager = settingsManager; + _overlayController = overlayController; + + OpenDiscordCommand = ReactiveCommand.Create(() => DiscordUri); + OpenForumsCommand = ReactiveCommand.Create(() => ForumsUri); + OpenGitHubCommand = ReactiveCommand.Create(() => GitHubUri); + + ViewChangelogCommand = ReactiveCommand.Create(() => + { + var workspaceController = WorkspaceController; + if (workspaceController is null) return; + + var pageData = new PageData + { + Context = new ChangelogPageContext + { + TargetVersion = null, + }, + FactoryId = ChangelogPageFactory.StaticId, + }; + + var behavior = workspaceController.GetOpenPageBehavior(pageData, new NavigationInformation(NavigationInput.Default, Optional.None), Optional.None); + workspaceController.OpenPage(workspaceController.ActiveWorkspace!.Id, pageData, behavior); + }); + + CloseCommand = ReactiveCommand.Create(() => + { + _settingsManager.Update(settings => settings with + { + HasShownModal = true, + }); + + IsActive = false; + }); + + this.WhenActivated(disposables => + { + this.WhenAnyObservable( + vm => vm.OpenDiscordCommand, + vm => vm.OpenForumsCommand, + vm => vm.OpenGitHubCommand) + .SubscribeWithErrorLogging(uri => + { + _ = Task.Run(async () => + { + await osInterop.OpenUrl(uri); + }); + }) + .DisposeWith(disposables); + }); + } + + public bool MaybeShow() + { + if (_settingsManager.Get().HasShownModal) return false; + + _overlayController.SetOverlayContent(new SetOverlayItem(this)); + return true; + } +} diff --git a/src/NexusMods.App.UI/Overlays/AlphaWarning/IAlphaWarningViewModel.cs b/src/NexusMods.App.UI/Overlays/AlphaWarning/IAlphaWarningViewModel.cs new file mode 100644 index 0000000000..35fe4c9622 --- /dev/null +++ b/src/NexusMods.App.UI/Overlays/AlphaWarning/IAlphaWarningViewModel.cs @@ -0,0 +1,22 @@ +using System.Reactive; +using NexusMods.App.UI.WorkspaceSystem; +using ReactiveUI; + +namespace NexusMods.App.UI.Overlays.AlphaWarning; + +public interface IAlphaWarningViewModel : IOverlayViewModel +{ + public ReactiveCommand ViewChangelogCommand { get; } + + public ReactiveCommand OpenDiscordCommand { get; } + + public ReactiveCommand OpenForumsCommand { get; } + + public ReactiveCommand OpenGitHubCommand { get; } + + public ReactiveCommand CloseCommand { get; } + + public IWorkspaceController? WorkspaceController { get; set; } + + public bool MaybeShow(); +} diff --git a/src/NexusMods.App.UI/Services.cs b/src/NexusMods.App.UI/Services.cs index d842cd4da6..695d6df4a9 100644 --- a/src/NexusMods.App.UI/Services.cs +++ b/src/NexusMods.App.UI/Services.cs @@ -34,6 +34,7 @@ using NexusMods.App.UI.LeftMenu.Items; using NexusMods.App.UI.LeftMenu.Loadout; using NexusMods.App.UI.Overlays; +using NexusMods.App.UI.Overlays.AlphaWarning; using NexusMods.App.UI.Overlays.Download.Cancel; using NexusMods.App.UI.Overlays.Generic.MessageBox.OkCancel; using NexusMods.App.UI.Overlays.Login; @@ -209,6 +210,9 @@ public static IServiceCollection AddUI(this IServiceCollection c) .AddView() .AddViewModel() + .AddView() + .AddViewModel() + // workspace system .AddSingleton() .AddRepository([WindowDataAttributes.Data]) diff --git a/src/NexusMods.App.UI/Settings/AlphaSettings.cs b/src/NexusMods.App.UI/Settings/AlphaSettings.cs new file mode 100644 index 0000000000..68ab224d1f --- /dev/null +++ b/src/NexusMods.App.UI/Settings/AlphaSettings.cs @@ -0,0 +1,13 @@ +using NexusMods.Abstractions.Settings; + +namespace NexusMods.App.UI.Settings; + +public record AlphaSettings : ISettings +{ + public bool HasShownModal { get; set; } + + public static ISettingsBuilder Configure(ISettingsBuilder settingsBuilder) + { + return settingsBuilder; + } +} diff --git a/src/NexusMods.App.UI/Settings/ServiceExtensions.cs b/src/NexusMods.App.UI/Settings/ServiceExtensions.cs index eafefd4e94..f365342ea5 100644 --- a/src/NexusMods.App.UI/Settings/ServiceExtensions.cs +++ b/src/NexusMods.App.UI/Settings/ServiceExtensions.cs @@ -10,6 +10,7 @@ public static IServiceCollection AddUISettings(this IServiceCollection serviceCo return serviceCollection .AddSettings() .AddSettings() - .AddSettings(); + .AddSettings() + .AddSettings(); } } diff --git a/src/NexusMods.App.UI/Windows/MainWindowViewModel.cs b/src/NexusMods.App.UI/Windows/MainWindowViewModel.cs index 6552e4fe4e..d19bd1e712 100644 --- a/src/NexusMods.App.UI/Windows/MainWindowViewModel.cs +++ b/src/NexusMods.App.UI/Windows/MainWindowViewModel.cs @@ -1,21 +1,15 @@ using System.Reactive.Disposables; using System.Reactive.Linq; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using NexusMods.Abstractions.FileStore.Downloads; -using NexusMods.Abstractions.Installers; -using NexusMods.Abstractions.Loadouts; -using NexusMods.Abstractions.Loadouts.Ids; using NexusMods.App.UI.Controls.DevelopmentBuildBanner; using NexusMods.App.UI.Controls.Spine; using NexusMods.App.UI.Controls.TopBar; using NexusMods.App.UI.LeftMenu; using NexusMods.App.UI.Overlays; +using NexusMods.App.UI.Overlays.AlphaWarning; using NexusMods.App.UI.Overlays.MetricsOptIn; using NexusMods.App.UI.Overlays.Updater; using NexusMods.App.UI.WorkspaceSystem; -using NexusMods.MnemonicDB.Abstractions; -using NexusMods.Networking.Downloaders.Interfaces; using NexusMods.Paths; using ReactiveUI; using ReactiveUI.Fody.Helpers; @@ -24,21 +18,13 @@ namespace NexusMods.App.UI.Windows; public class MainWindowViewModel : AViewModel, IMainWindowViewModel { - private readonly IArchiveInstaller _archiveInstaller; private readonly IWindowManager _windowManager; - private readonly IConnection _conn; public MainWindowViewModel( IServiceProvider serviceProvider, - ILogger logger, IOSInformation osInformation, IWindowManager windowManager, - IOverlayController controller, - IDownloadService downloadService, - IArchiveInstaller archiveInstaller, - IMetricsOptInViewModel metricsOptInViewModel, - IUpdaterViewModel updaterViewModel, - IConnection conn) + IOverlayController controller) { // NOTE(erri120): can't use DI for VMs that require an active Window because // those VMs would be instantiated before this constructor gets called. @@ -57,9 +43,6 @@ public MainWindowViewModel( Spine = serviceProvider.GetRequiredService(); DevelopmentBuildBanner = serviceProvider.GetRequiredService(); - _archiveInstaller = archiveInstaller; - _conn = conn; - // Only show controls in Windows since we can remove the chrome on that platform TopBar.ShowWindowControls = osInformation.IsWindows; @@ -84,9 +67,18 @@ public MainWindowViewModel( }) .DisposeWith(d); + var alphaWarningViewModel = serviceProvider.GetRequiredService(); + alphaWarningViewModel.WorkspaceController = WorkspaceController; + alphaWarningViewModel.MaybeShow(); + + var metricsOptInViewModel = serviceProvider.GetRequiredService(); + // Only show the updater if the metrics opt-in has been shown before, so we don't spam the user. if (!metricsOptInViewModel.MaybeShow()) + { + var updaterViewModel = serviceProvider.GetRequiredService(); updaterViewModel.MaybeShow(); + } this.WhenAnyValue(vm => vm.Spine.LeftMenuViewModel) .BindToVM(this, vm => vm.LeftMenu) diff --git a/src/NexusMods.Icons/IconValues.cs b/src/NexusMods.Icons/IconValues.cs index 3a900c89cf..9911a932e0 100644 --- a/src/NexusMods.Icons/IconValues.cs +++ b/src/NexusMods.Icons/IconValues.cs @@ -8,6 +8,9 @@ public static class IconValues { #region Action + // https://pictogrammers.com/library/mdi/icon/code-tags/ + public static readonly IconValue Code = new ProjektankerIcon("mdi-code-tags"); + // https://pictogrammers.com/library/mdi/icon/delete-outline/ public static readonly IconValue DeleteOutline = new ProjektankerIcon("mdi-delete-outline"); @@ -277,8 +280,20 @@ public static class IconValues "M18.3721 4.87439H6.40772C6.40772 4.87439 6.1358 2.87439 8.03922 2.87439H17.2844C18.644 2.87439 18.3721 4.87439 18.3721 4.87439ZM22.3943 20.5411V11.2077C22.3943 9.92439 21.4943 8.87439 20.3943 8.87439H4.39429C3.29429 8.87439 2.39429 9.92439 2.39429 11.2077V20.5411C2.39429 21.8244 3.29429 22.8744 4.39429 22.8744H20.3943C21.4943 22.8744 22.3943 21.8244 22.3943 20.5411ZM4.41219 7.87439H20.3647C20.3647 7.87439 20.7272 5.87439 18.9145 5.87439H6.58753C4.04963 5.87439 4.41219 7.87439 4.41219 7.87439ZM12.3943 11.8744L18.3943 15.8805L12.3943 19.8744L6.39429 15.8805L12.3943 11.8744Z" ) ); - - + + // From Design System "Custom Icons" section on Figma + public static readonly IconValue Discord = new AvaloniaPathIcon( + Geometry.Parse( + "M17.4058 1.38929C16.1311 0.804386 14.7641 0.373457 13.3349 0.126646C13.3089 0.121882 13.2829 0.133786 13.2695 0.157595C13.0937 0.470274 12.8989 0.878189 12.7626 1.19881C11.2253 0.968668 9.69596 0.968668 8.19024 1.19881C8.05385 0.871062 7.85205 0.470274 7.67546 0.157595C7.66205 0.134581 7.63605 0.122677 7.61002 0.126646C6.18157 0.372668 4.81461 0.803598 3.53909 1.38929C3.52805 1.39405 3.51858 1.40199 3.5123 1.4123C0.919469 5.28593 0.209184 9.06436 0.557626 12.7959C0.559202 12.8142 0.56945 12.8317 0.583641 12.8428C2.29432 14.099 3.9514 14.8617 5.57771 15.3672C5.60374 15.3752 5.63131 15.3657 5.64788 15.3442C6.03258 14.8189 6.37551 14.2649 6.66954 13.6824C6.68689 13.6483 6.67033 13.6078 6.63486 13.5943C6.09092 13.388 5.57298 13.1364 5.07475 12.8507C5.03534 12.8277 5.03219 12.7713 5.06844 12.7443C5.17329 12.6658 5.27816 12.584 5.37827 12.5015C5.39638 12.4864 5.42162 12.4832 5.44292 12.4928C8.71605 13.9871 12.2596 13.9871 15.4941 12.4928C15.5154 12.4824 15.5406 12.4856 15.5595 12.5007C15.6597 12.5832 15.7645 12.6658 15.8702 12.7443C15.9064 12.7713 15.904 12.8277 15.8646 12.8507C15.3664 13.1419 14.8485 13.388 14.3037 13.5935C14.2683 13.607 14.2525 13.6483 14.2698 13.6824C14.5702 14.2641 14.9131 14.818 15.2907 15.3434C15.3065 15.3657 15.3349 15.3752 15.3609 15.3672C16.9951 14.8617 18.6522 14.099 20.3628 12.8428C20.3778 12.8317 20.3873 12.815 20.3889 12.7967C20.8059 8.48261 19.6904 4.73517 17.4318 1.41309C17.4263 1.40199 17.4169 1.39405 17.4058 1.38929ZM7.15833 10.5238C6.17289 10.5238 5.36092 9.61909 5.36092 8.50802C5.36092 7.39695 6.15715 6.49224 7.15833 6.49224C8.16737 6.49224 8.97148 7.40489 8.95571 8.50802C8.95571 9.61909 8.15948 10.5238 7.15833 10.5238ZM13.8039 10.5238C12.8185 10.5238 12.0066 9.61909 12.0066 8.50802C12.0066 7.39695 12.8028 6.49224 13.8039 6.49224C14.813 6.49224 15.6171 7.40489 15.6013 8.50802C15.6013 9.61909 14.813 10.5238 13.8039 10.5238Z" + ) + ); + + // From Design System "Custom Icons" section on Figma + public static readonly IconValue Forum = new AvaloniaPathIcon( + Geometry.Parse( + "M13.4751 2.12561V9.12561H3.6451L2.4751 10.2956V2.12561H13.4751ZM14.4751 0.12561H1.4751C0.925098 0.12561 0.475098 0.57561 0.475098 1.12561V15.1256L4.4751 11.1256H14.4751C15.0251 11.1256 15.4751 10.6756 15.4751 10.1256V1.12561C15.4751 0.57561 15.0251 0.12561 14.4751 0.12561ZM19.4751 4.12561H17.4751V13.1256H4.4751V15.1256C4.4751 15.6756 4.9251 16.1256 5.4751 16.1256H16.4751L20.4751 20.1256V5.12561C20.4751 4.57561 20.0251 4.12561 19.4751 4.12561Z" + ) + ); #endregion } diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Resources/Palette/Colors/ElementColors.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Resources/Palette/Colors/ElementColors.axaml index 643e10514a..b4e10de6b9 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Resources/Palette/Colors/ElementColors.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Resources/Palette/Colors/ElementColors.axaml @@ -101,6 +101,7 @@ + diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/Controls/Border/BorderStyles.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/Controls/Border/BorderStyles.axaml index 5d423d1c36..b4440dbbbe 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/Controls/Border/BorderStyles.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/Controls/Border/BorderStyles.axaml @@ -55,6 +55,9 @@ + + + @@ -218,6 +221,13 @@ + + + - + + + + + + diff --git a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/MessageBox/MessageBoxStyles.axaml b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/MessageBox/MessageBoxStyles.axaml index 52062650c2..bd5b44728a 100644 --- a/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/MessageBox/MessageBoxStyles.axaml +++ b/src/Themes/NexusMods.Themes.NexusFluentDark/Styles/UserControls/MessageBox/MessageBoxStyles.axaml @@ -15,7 +15,6 @@