Swift 98.3%
Shell 1.7%
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// AboutView.swift — À propos de KA : marque, mission, contacts et légal du3// Groupe KA (repris d'Ecosystem.swift), liens vers le hub.4import SwiftUI56struct AboutView: View {7 @Environment(\.colorScheme) private var scheme89 private var version: String {10 let v = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "1.0.0"11 return "Version \(v)"12 }1314 var body: some View {15 VStack(alignment: .leading, spacing: 16) {16 HStack(spacing: 14) {17 GroupeKAMark(size: 26)18 VStack(alignment: .leading, spacing: 2) {19 Text("KA pour macOS").font(.headline)20 Text(version + " · l'app compagnon de l'écosystème")21 .font(.caption).foregroundStyle(.secondary)22 }23 }2425 Text(Ecosystem.disclaimer)26 .font(.subheadline)27 .foregroundStyle(KATheme.ink2(scheme))28 .padding(13)29 .frame(maxWidth: .infinity, alignment: .leading)30 .kaCard()3132 VStack(alignment: .leading, spacing: 8) {33 Text("Contacts").font(.headline)34 ForEach(Ecosystem.contacts, id: \.email) { c in35 Link(destination: URL(string: "mailto:\(c.email)")!) {36 HStack {37 Image(systemName: "envelope.fill").font(.caption)38 Text(c.email).font(.subheadline.weight(.semibold))39 Spacer()40 Text(c.role).font(.caption).foregroundStyle(.secondary)41 }42 .padding(.horizontal, 12).padding(.vertical, 8)43 .background(KATheme.green.opacity(0.08), in: RoundedRectangle(cornerRadius: 9, style: .continuous))44 }45 .foregroundStyle(KATheme.green)46 }47 }4849 VStack(alignment: .leading, spacing: 8) {50 Text("Légal").font(.headline)51 ForEach(Ecosystem.legal, id: \.path) { l in52 Link(destination: Ecosystem.hubURL.appendingPathComponent(l.path)) {53 HStack {54 Image(systemName: "doc.text").font(.caption)55 Text(l.label).font(.subheadline)56 Spacer()57 Image(systemName: "arrow.up.right").font(.caption2)58 }59 }60 .foregroundStyle(.primary)61 }62 }63 .padding(13)64 .frame(maxWidth: .infinity, alignment: .leading)65 .kaCard()6667 HStack {68 Link("www.groupe-ka.com", destination: Ecosystem.hubURL)69 .font(.caption.weight(.bold))70 .foregroundStyle(KATheme.green)71 Spacer()72 Text("© Simon-Pierre Boucher — Groupe KA")73 .font(.caption2).foregroundStyle(.tertiary)74 }75 }76 .padding(22)77 .frame(width: 470)78 .background(KATheme.paper(scheme))79 }80}81