feat: add theme mode support with AppThemeMode enum and AppThemeState service

- Introduced AppThemeMode enum to define theme options: System, Light, Dark.
- Updated AppSettingsDocument to include ThemeMode property.
- Created AppThemeState service to manage current theme mode and handle changes.
- Integrated theme mode handling in CouchbaseLiteAppSettingsService for persistence.
- Added JavaScript for theme management in the frontend, supporting system preference detection.
- Enhanced CSS with theme variables for consistent styling across light and dark modes.
- Updated Playwright tests to ensure sidebar functionality and responsiveness.
This commit is contained in:
MaddoScientisto 2026-04-20 22:58:25 +02:00
commit 158906fa28
19 changed files with 889 additions and 82 deletions

View file

@ -4,6 +4,8 @@ public sealed class AppSettingsDocument
{
public string Id { get; set; } = "global";
public AppThemeMode ThemeMode { get; set; } = AppThemeMode.System;
public decimal StandardWorkHoursPerDay { get; set; } = 8m;
public decimal HourlyGrossRate { get; set; } = 17.5m;

8
Domain/AppThemeMode.cs Normal file
View file

@ -0,0 +1,8 @@
namespace WorkTracker.Domain;
public enum AppThemeMode
{
System,
Light,
Dark
}