|
|
@@ -323,21 +323,9 @@ private struct PaywallPricingCard: View {
|
|
|
var body: some View {
|
|
|
Button(action: onSelect) {
|
|
|
VStack(alignment: .leading, spacing: 0) {
|
|
|
- if plan.isBestValue {
|
|
|
- Text("BEST VALUE")
|
|
|
- .font(.system(size: metrics.featureFontSize * 0.75, weight: .bold))
|
|
|
- .foregroundStyle(Color(hex: 0x0B0E14))
|
|
|
- .padding(.horizontal, 10)
|
|
|
- .padding(.vertical, 4)
|
|
|
- .background(AppTheme.accentTeal)
|
|
|
- .clipShape(Capsule())
|
|
|
- .frame(maxWidth: .infinity)
|
|
|
- .padding(.bottom, metrics.cardPadding)
|
|
|
- } else {
|
|
|
- Color.clear
|
|
|
- .frame(height: metrics.cardPadding * 1.6)
|
|
|
- .padding(.bottom, metrics.cardPadding * 0.4)
|
|
|
- }
|
|
|
+ Color.clear
|
|
|
+ .frame(height: metrics.cardPadding * 1.0)
|
|
|
+ .padding(.bottom, metrics.cardPadding * 0.15)
|
|
|
|
|
|
Text(plan.title)
|
|
|
.font(.system(size: metrics.ctaFontSize, weight: .semibold))
|
|
|
@@ -395,6 +383,19 @@ private struct PaywallPricingCard: View {
|
|
|
lineWidth: isSelected ? 2 : 1
|
|
|
)
|
|
|
)
|
|
|
+ .overlay(alignment: .topTrailing) {
|
|
|
+ if plan.isBestValue {
|
|
|
+ Text("BEST VALUE")
|
|
|
+ .font(.system(size: metrics.featureFontSize * 0.75, weight: .bold))
|
|
|
+ .foregroundStyle(Color(hex: 0x0B0E14))
|
|
|
+ .padding(.horizontal, 10)
|
|
|
+ .padding(.vertical, 4)
|
|
|
+ .background(AppTheme.accentTeal)
|
|
|
+ .clipShape(Capsule())
|
|
|
+ .padding(.top, metrics.cardPadding * 0.65)
|
|
|
+ .padding(.trailing, metrics.cardPadding * 0.65)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.buttonStyle(.plain)
|
|
|
}
|