// Waveform（design/ 硬规则）：pattern 固定 12 值，仅录音中出现（全产品唯一循环动画）；
// scaleY 0.35→1 交替 0.9s ease-in-out，逐条延迟 (i%6)*0.07s。
// 14C 时内嵌在 KeyboardExt/KeyboardView.swift；14D 起键盘内不再录音（deep link 降级），
// 波形移到 Shared/ 供主 App 听写页使用（bars=12 height=24，白色 95%）。
import SwiftUI

struct WaveformView: View {
    let bars: Int
    let height: CGFloat
    @State private var animating = false

    /// design/ 硬规则的唯一波形序列
    private static let pattern: [CGFloat] = [0.3, 0.55, 0.85, 0.45, 0.7, 1, 0.4, 0.6, 0.25, 0.8, 0.5, 0.35]

    var body: some View {
        HStack(spacing: 3) {
            ForEach(0..<bars, id: \.self) { i in
                RoundedRectangle(cornerRadius: 2)
                    .frame(width: 3,
                           height: max(4, Self.pattern[i % Self.pattern.count] * height))
                    .scaleEffect(y: animating ? 1 : 0.35, anchor: .center)
                    .animation(
                        .easeInOut(duration: 0.9)
                            .repeatForever(autoreverses: true)
                            .delay(Double(i % 6) * 0.07),
                        value: animating)
            }
        }
        .frame(height: height)
        .onAppear { animating = true }
    }
}
