| 10 |
10 |
"KA, la super-app de l'écosystème Groupe KA : 12 univers, recherche universelle, carte 2D/3D, favoris, KA Agent. iPhone (TestFlight), Android (APK direct) et macOS (DMG notarié).", |
| 11 |
11 |
}; |
| 12 |
12 |
|
|
13 |
+// Vrais logos vectoriels des plateformes (fill = couleur courante). |
|
14 |
+function AppleLogo({ className }: { className?: string }) { |
|
15 |
+ return ( |
|
16 |
+ <svg viewBox="0 0 384 512" className={className} aria-hidden="true" fill="currentColor"> |
|
17 |
+ <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" /> |
|
18 |
+ </svg> |
|
19 |
+ ); |
|
20 |
+} |
|
21 |
+ |
|
22 |
+function AndroidLogo({ className }: { className?: string }) { |
|
23 |
+ return ( |
|
24 |
+ <svg viewBox="0 0 24 24" className={className} aria-hidden="true" fill="currentColor"> |
|
25 |
+ <path d="M17.523 15.341a.999.999 0 1 1 0-1.999.999.999 0 0 1 0 2m-11.046 0a.999.999 0 1 1 0-1.999.999.999 0 0 1 0 2m11.405-6.02 1.997-3.46a.416.416 0 0 0-.72-.415l-2.022 3.503A12.19 12.19 0 0 0 12 7.851c-1.853 0-3.59.393-5.137 1.099L4.841 5.447a.416.416 0 0 0-.72.415l1.997 3.46C2.689 11.187.343 14.658 0 18.761h24c-.344-4.102-2.689-7.574-6.118-9.44" /> |
|
26 |
+ </svg> |
|
27 |
+ ); |
|
28 |
+} |
|
29 |
+ |
|
30 |
+const BRAND_ICONS = { |
|
31 |
+ apple: AppleLogo, |
|
32 |
+ android: AndroidLogo, |
|
33 |
+} as const; |
|
34 |
+ |
| 13 |
35 |
type Release = { |
| 14 |
36 |
platform: string; |
| 15 |
|
− icon: string; |
|
37 |
+ icon: keyof typeof BRAND_ICONS; |
| 16 |
38 |
version: string; |
| 17 |
39 |
build: string; |
| 18 |
40 |
date: string; |
| 27 |
49 |
const RELEASES: Release[] = [ |
| 28 |
50 |
{ |
| 29 |
51 |
platform: "iPhone (iOS 17+)", |
| 30 |
|
− icon: "📱", |
|
52 |
+ icon: "apple", |
| 31 |
53 |
version: "1.0.0", |
| 32 |
54 |
build: "build 7", |
| 33 |
55 |
date: "2026-08-18", |
| 38 |
60 |
}, |
| 39 |
61 |
{ |
| 40 |
62 |
platform: "Android (8.0+)", |
| 41 |
|
− icon: "🤖", |
|
63 |
+ icon: "android", |
| 42 |
64 |
version: "2.0.0", |
| 43 |
65 |
build: "release signée", |
| 44 |
66 |
date: "2026-08-18", |
| 51 |
73 |
}, |
| 52 |
74 |
{ |
| 53 |
75 |
platform: "macOS (14+)", |
| 54 |
|
− icon: "💻", |
|
76 |
+ icon: "apple", |
| 55 |
77 |
version: "1.0.0", |
| 56 |
78 |
build: "notarisée Apple", |
| 57 |
79 |
date: "2026-08-18", |
| 77 |
99 |
</p> |
| 78 |
100 |
|
| 79 |
101 |
<div className="mt-10 grid gap-6 md:grid-cols-3"> |
| 80 |
|
− {RELEASES.map((r) => ( |
|
102 |
+ {RELEASES.map((r) => { |
|
103 |
+ const Logo = BRAND_ICONS[r.icon]; |
|
104 |
+ return ( |
| 81 |
105 |
<article key={r.platform} className="gk-card gk-card-hover flex flex-col p-6"> |
| 82 |
|
− <p className="text-[34px]" aria-hidden="true">{r.icon}</p> |
|
106 |
+ <span className="flex h-12 w-12 items-center justify-center rounded-xl border-[1.5px] border-ink bg-ink text-lime"> |
|
107 |
+ <Logo className="h-7 w-7" /> |
|
108 |
+ </span> |
| 83 |
109 |
<h2 className="gk-display mt-2 text-[19px] font-bold">{r.platform}</h2> |
| 84 |
110 |
<p className="gk-mono mt-1 text-[11px] font-bold tracking-[0.08em] text-green uppercase"> |
| 85 |
111 |
v{r.version} · {r.build} · {r.date} |
| 104 |
130 |
</p> |
| 105 |
131 |
)} |
| 106 |
132 |
</article> |
| 107 |
|
− ))} |
|
133 |
+ ); |
|
134 |
+ })} |
| 108 |
135 |
</div> |
| 109 |
136 |
|
| 110 |
137 |
<p className="gk-mono mt-10 text-[11px] leading-relaxed text-ink-3"> |
| 111 |
138 |
|