498f407585
Introduce optional Apple account-backed credits with scoped gateway access while preserving local and BYOK paths. Refresh assistant behavior, tests, privacy disclosures, docs, and the website for the 2.0 experience.
35 lines
1.2 KiB
Swift
35 lines
1.2 KiB
Swift
// PrivacyDisclosureViews.swift
|
|
// OSGKeyboard · Main App
|
|
//
|
|
// Reusable privacy / data-flow disclosure blocks for Settings and Onboarding.
|
|
|
|
import OSGKeyboardShared
|
|
import SwiftUI
|
|
|
|
/// Card-style block for Full Access and similar permission explanations.
|
|
struct PrivacyInfoCard: View {
|
|
@Environment(\.themePalette) private var palette: ThemePalette
|
|
|
|
let title: LocalizedStringKey
|
|
let bodyText: LocalizedStringKey
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading, spacing: Spacing.xs) {
|
|
Text(title)
|
|
.font(TypeStyle.body)
|
|
.foregroundStyle(palette.textPrimary)
|
|
Text(bodyText)
|
|
.font(TypeStyle.caption2)
|
|
.foregroundStyle(palette.textSecondary)
|
|
.fixedSize(horizontal: false, vertical: true)
|
|
}
|
|
.padding(Spacing.md)
|
|
.frame(maxWidth: .infinity, alignment: .leading)
|
|
.background(palette.surface, in: RoundedRectangle(cornerRadius: Radius.large, style: .continuous))
|
|
.overlay(
|
|
RoundedRectangle(cornerRadius: Radius.large, style: .continuous)
|
|
.stroke(palette.divider, lineWidth: 0.5)
|
|
)
|
|
}
|
|
}
|