import SwiftUI

// MARK: - Legend Bar

/// Horizontal bar showing part names in their respective colors.
/// Shows a microphone icon next to parts that have recordings.
struct LegendBar: View {
    let parts: [Part]
    let recordedParts: Set<String>

    var body: some View {
        HStack(spacing: 16) {
            ForEach(Array(parts.enumerated()), id: \.element.name) { index, part in
                HStack(spacing: 6) {
                    Circle()
                        .fill(partColor(for: part.colorIndex))
                        .frame(width: 10, height: 10)
                    Text(part.name)
                        .font(.system(size: 12, weight: .medium))
                        .foregroundColor(partColor(for: part.colorIndex))

                    // Show mic icon if this part has been recorded
                    if recordedParts.contains(part.name) {
                        Image(systemName: "mic.fill")
                            .font(.system(size: 9))
                            .foregroundColor(.green)
                    }
                }
            }
            Spacer()
        }
        .padding(.horizontal, 16)
        .padding(.vertical, 6)
        .background(Color(nsColor: .windowBackgroundColor))
    }

    private func partColor(for index: Int) -> Color {
        let rgb = PartColors.paletteRGB[index % PartColors.paletteRGB.count]
        return Color(red: rgb.r, green: rgb.g, blue: rgb.b)
    }
}
