// ── macOS Settings View ─────────────────────────────────────── import SwiftUI struct MacSettingsView: View { @EnvironmentObject var store: MacTimerStore @AppStorage("cm_defaultUrgency") private var defaultUrgency = "standard" @AppStorage("cm_defaultCascade") private var defaultCascade = "standard" @AppStorage("cm_launchAtLogin") private var launchAtLogin = false var body: some View { TabView { generalTab .tabItem { Label("General", systemImage: "gearshape") } dataTab .tabItem { Label("Data", systemImage: "externaldrive") } aboutTab .tabItem { Label("About", systemImage: "info.circle") } } .frame(width: 400, height: 300) } // MARK: - General private var generalTab: some View { Form { Toggle("Launch at Login", isOn: $launchAtLogin) Picker("Default Urgency", selection: $defaultUrgency) { ForEach(UrgencyLevel.allCases) { level in Text(getUrgencyConfig(level).label).tag(level.rawValue) } } Picker("Default Cascade", selection: $defaultCascade) { ForEach(CascadePreset.allCases.filter { $0 != .custom }) { preset in Text(preset.label).tag(preset.rawValue) } } } .padding() } // MARK: - Data private var dataTab: some View { Form { HStack { Text("Total Timers") Spacer() Text("\(store.timers.count)") .foregroundStyle(.secondary) } HStack { Text("Active") Spacer() Text("\(store.activeTimers.count)") .foregroundStyle(.secondary) } Divider() Button("Clear Completed") { store.timers.removeAll { [.completed, .dismissed].contains($0.state) } } Button("Delete All Timers", role: .destructive) { store.timers.removeAll() } } .padding() } // MARK: - About private var aboutTab: some View { VStack(spacing: 12) { Image(systemName: "clock.fill") .font(.system(size: 48)) .foregroundStyle(CMColors.accent) Text("ChronoMind") .font(.title2.bold()) Text("Version 1.0.0") .foregroundStyle(.secondary) Text("Time management with cascade warnings") .font(.caption) .foregroundStyle(.tertiary) Spacer() } .padding() .frame(maxWidth: .infinity) } }