"use client" import Link from "next/link" import { Icon } from "@iconify/react" import { LandingReveal } from "@/components/landing/landing-reveal" import { LANDING_APPS, LANDING_FEATURES, LANDING_INTEGRATIONS, } from "@/components/landing/landing-data" import { useChromeIdentity } from "@/lib/hooks/use-chrome-identity" import { getAuthentikEnrollmentUrl } from "@/lib/auth/oidc-config" import { cn } from "@/lib/utils" function SectionHeading({ eyebrow, title, description, }: { eyebrow: string title: React.ReactNode description?: string }) { return ( {eyebrow}

{title}

{description ? (

{description}

) : null}
) } /* ---------- Applications ---------- */ export function LandingAppsSection() { return (
Une suite connectée, pas une collection d'outils } description="Chaque application partage la même identité, les mêmes contacts et le même stockage. Ouvrez, l'écosystème suit." />
    {LANDING_APPS.map((app, index) => { const card = (
    {app.iconDark ? ( <> ) : ( )} {app.soon ? ( Bientôt ) : ( )}

    {app.tagline}

    {app.name}

    {app.description}

    ) return ( {app.href && !app.soon ? ( {card} ) : ( card )} ) })}
) } /* ---------- Fonctionnalités (bento) ---------- */ export function LandingFeaturesSection() { return (
Conçue pour remplacer,
pensée pour{" "} durer } description="Tout ce que vous attendez d'une suite moderne — sans céder vos données pour l'obtenir." />
    {LANDING_FEATURES.map((feature, index) => (

    {feature.title}

    {feature.description}

    ))}
) } /* ---------- Souveraineté + stats ---------- */ const STATS = [ { value: "100 %", label: "open source, auditable" }, { value: "0", label: "tracker, télémétrie ou pub" }, { value: "1", label: "identité SSO pour toute la suite" }, { value: "∞", label: "contrôle : c'est votre serveur" }, ] export function LandingSovereigntySection() { return (
Souveraineté

Vos données ne quittent jamais{" "} votre territoire

Déployée chez vous ou chez l'hébergeur de votre choix, la suite Ulti garde mails, fichiers et identités sous votre juridiction. Migration progressive : rattachez vos comptes existants et avancez à votre rythme.

{STATS.map((stat, index) => (
{stat.label}
{stat.value}
))}
) } /* ---------- Intégrations (marquee) ---------- */ function IntegrationsTrack() { return (
{LANDING_INTEGRATIONS.map((item) => ( {item.label} ))}
) } export function LandingIntegrationsSection() { return (

S'intègre avec vos standards ouverts

i.label).join(", ")} >
) } /* ---------- CTA final + footer ---------- */ export function LandingFooter() { const identity = useChromeIdentity() return ( ) }