| | |
| | | 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) |
| | |
| | | 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 |
| | | } |
| | |
| | | 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) |
| | | } |
| | |
| | | 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 true |
| | | case .preview, .neutral: |
| | | return false |
| | | } |
| | | } |
| | | } |
| | |
| | | return "pro.prompt.import" |
| | | case .layoutExport: |
| | | return "pro.prompt.export" |
| | | case .customTagColors: |
| | | return "pro.prompt.customTagColors" |
| | | case .unlimitedNotes: |
| | | return "pro.prompt.notes" |
| | | case .persistentAppSorting: |
| | | return "pro.prompt.sorting" |
| | | case .customHotkeys: |
| | | return "pro.prompt.customHotkeys" |
| | | } |
| | | } |
| | | } |