diff --git a/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift b/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift index 842217ae9..e4dbb08de 100644 --- a/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift +++ b/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift @@ -307,12 +307,6 @@ private struct VoiceWakeOverlayView: View { var body: some View { ZStack(alignment: .topLeading) { HStack(alignment: .top, spacing: 8) { - if self.controller.model.isVisible { - LevelBars(level: self.controller.model.level) - .frame(width: 36, height: 26) - .padding(.top, 2) - } - if self.controller.model.isEditing { TranscriptTextView( text: Binding( @@ -599,38 +593,28 @@ private struct CloseButtonOverlay: View { var body: some View { Group { if isVisible { - CloseHoverButton(onClose: onClose) - .onHover { self.onHover($0) } - .offset(x: -9, y: -9) - .transition(.opacity) + Button(action: onClose) { + Image(systemName: "xmark") + .font(.system(size: 12, weight: .bold)) + .foregroundColor(Color.white.opacity(0.9)) + .frame(width: 22, height: 22) + .background(Color.black.opacity(0.4)) + .clipShape(Circle()) + .shadow(color: Color.black.opacity(0.35), radius: 6, y: 2) + } + .buttonStyle(.plain) + .focusable(false) + .contentShape(Circle()) + .padding(6) + .onHover { self.onHover($0) } + .offset(x: -9, y: -9) + .transition(.opacity) } } .allowsHitTesting(isVisible) } } -private struct LevelBars: View { - var level: Double - - private let barCount = 14 - - var body: some View { - let capped = max(0, min(1, level)) - let active = Int(Double(barCount) * capped.rounded(.up)) - HStack(alignment: .bottom, spacing: 2) { - ForEach(0.. Void)? var onBeginEditing: (() -> Void)?