import Foundation import Observation @Observable @MainActor final class ThemeManager { static let shared = ThemeManager() private(set) var current: AppTheme = .default private static let key = "appThemeID" private init() { let saved = UserDefaults.standard.string(forKey: Self.key) ?? "default" current = AppTheme.all.first { $0.id == saved } ?? .default } func select(_ theme: AppTheme) { current = theme UserDefaults.standard.set(theme.id, forKey: Self.key) } }