Ariver
2026-06-27 7a5b90ce9aff96fa46f356c8feb66a4a02e8f218
src/Apptag/ProAccessViews.swift
@@ -14,7 +14,14 @@
    var compact = false
    var body: some View {
        Text(text)
        HStack(spacing: compact ? 4 : 5) {
            if showsCrown {
                Image(systemName: "crown.fill")
                    .font(.system(size: compact ? 9 : 10, weight: .bold))
            }
            Text(text)
        }
            .font(.system(size: compact ? 10 : 11, weight: .semibold))
            .foregroundStyle(foregroundColor)
            .lineLimit(1)
@@ -33,11 +40,11 @@
    private var foregroundColor: Color {
        switch style {
        case .locked:
            return Color.accentColor
            return Color(red: 0.56, green: 0.35, blue: 0.03)
        case .preview:
            return Color(red: 0.30, green: 0.22, blue: 0.08)
        case .unlocked, .legacy:
            return Color(red: 0.10, green: 0.42, blue: 0.24)
            return Color(red: 0.56, green: 0.35, blue: 0.03)
        case .neutral:
            return .secondary
        }
@@ -46,11 +53,11 @@
    private var backgroundColor: Color {
        switch style {
        case .locked:
            return Color.accentColor.opacity(0.10)
            return Color(red: 1.0, green: 0.78, blue: 0.22).opacity(0.18)
        case .preview:
            return Color.orange.opacity(0.14)
        case .unlocked, .legacy:
            return Color.green.opacity(0.12)
            return Color(red: 1.0, green: 0.78, blue: 0.22).opacity(0.18)
        case .neutral:
            return Color.secondary.opacity(0.10)
        }
@@ -59,15 +66,24 @@
    private var strokeColor: Color {
        switch style {
        case .locked:
            return Color.accentColor.opacity(0.26)
            return Color(red: 0.93, green: 0.62, blue: 0.10).opacity(0.42)
        case .preview:
            return Color.orange.opacity(0.28)
        case .unlocked, .legacy:
            return Color.green.opacity(0.26)
            return Color(red: 0.93, green: 0.62, blue: 0.10).opacity(0.42)
        case .neutral:
            return Color.secondary.opacity(0.18)
        }
    }
    private var showsCrown: Bool {
        switch style {
        case .locked, .unlocked, .legacy:
            return text.localizedCaseInsensitiveContains("Pro")
        case .preview, .neutral:
            return false
        }
    }
}
extension ProFeature {