import SwiftUI

// MARK: - DiscreetWarningBanner

/// A highly minimalist, wireframe-style warning banner that displays system warnings discretely.
/// Can be dismissed by the user.
struct DiscreetWarningBanner: View {
    
    /// Warning message to display.
    let warning: String
    
    /// Triggered when the user taps the close button.
    let onDismiss: () -> Void
    
    var body: some View {
        HStack(spacing: 8) {
            Image(systemName: "exclamationmark.triangle")
                .font(.system(size: 11, weight: .light))
                .foregroundColor(.primary)
            
            Text(warning)
                .font(.system(size: 10, weight: .regular))
                .foregroundColor(.secondary)
                .lineLimit(1)
            
            Spacer()
            
            Button(action: onDismiss) {
                Image(systemName: "xmark")
                    .font(.system(size: 8, weight: .light))
                    .foregroundColor(.secondary.opacity(0.7))
                    .frame(width: 16, height: 16)
            }
            .buttonStyle(.plain)
        }
        .padding(.horizontal, 12)
        .padding(.vertical, 8)
        .background(Color.cardBackground.opacity(0.1))
        .businessBorder(cornerRadius: 6)
        .transition(.move(edge: .top).combined(with: .opacity))
    }
}

// MARK: - Preview

#Preview {
    VStack {
        DiscreetWarningBanner(
            warning: "⚠️ 检测到后台有其他音频播放中，建议关闭以防混入录音。"
        ) {
            print("Dismissed")
        }
        .padding()
        Spacer()
    }
    .background(Color.spaceBlack)
}
