import SwiftUI @main struct ContainerComposeApp: App { @StateObject private var compose = ComposeModel() @StateObject private var monitor = Monitor() @State private var tab = "compose" var body: some Scene { WindowGroup("Container Compose") { TabView(selection: $tab) { ContentView().environmentObject(compose).disabled(monitor.demo || monitor.acting) .tabItem { Label("Compose", systemImage: "square.stack.3d.up") }.tag("compose") Workspace(model: monitor).disabled(compose.busy) .tabItem { Label("Monitor & Resources", systemImage: "waveform.path.ecg") }.tag("monitor") } .frame(minWidth: 1050, minHeight: 720) .onChange(of: compose.projectName) { _, name in monitor.project = name } }.defaultSize(width: 1250, height: 850) .commands { CommandGroup(after: .appInfo) { Button("Save Command-Line Tool…") { monitor.exportCLI() } } CommandMenu("Containers") { Button("Refresh") { Task { await monitor.refresh() } }.keyboardShortcut("r") Button("Inspect") { monitor.mode = "Inspect" }.keyboardShortcut("i") Button("Logs") { monitor.mode = "Logs" }.keyboardShortcut("l") Button("Stats") { monitor.mode = "Stats" }.keyboardShortcut("s") } } Settings { Preferences(model: monitor) } } }