import { ActionLink } from '@/components/actions/ActionLink'; import { Accordion } from '@/components/controls/Accordion'; import { Icon } from '@/components/foundation/Icon'; import { Container, Section, Stack } from '@/components/layout/LayoutPrimitives'; import { CTA } from '@/components/marketing/CTA'; import { Comparison } from '@/components/marketing/Comparison'; import { FeatureCard } from '@/components/marketing/FeatureCard'; import { ProductPreview } from '@/components/marketing/ProductPreview'; import { SectionHeader } from '@/components/marketing/SectionHeader'; import { FeatureGrid } from '@/components/marketing/SectionPatterns'; import { Workflow } from '@/components/marketing/Workflow'; import { Callout } from '@/components/surfaces/Callout'; import { Card } from '@/components/surfaces/Card'; import { Eyebrow, Heading, Text } from '@/components/typography/Typography'; import { buildHomepageContent } from '@/content/homepage-model'; import { isLocale, localizedPath, type Locale } from '@/lib/localization/config'; import { getMessages } from '@/lib/localization/messages'; import { buildLocalizedMetadata } from '@/lib/metadata/build-metadata'; import type { Metadata } from 'next'; import { notFound } from 'next/navigation'; import styles from './page.module.css'; interface LocalePageProps { params: Promise<{ locale: string }>; } export async function generateMetadata({ params }: LocalePageProps): Promise { const { locale: localeValue } = await params; if (!isLocale(localeValue)) notFound(); const messages = getMessages(localeValue); return buildLocalizedMetadata({ locale: localeValue, routeId: 'home', title: messages.homepage.meta.title, description: messages.homepage.meta.description, indexable: true, }); } export default async function LocaleHomePage({ params }: LocalePageProps) { const { locale: localeValue } = await params; if (!isLocale(localeValue)) notFound(); const locale: Locale = localeValue; const messages = getMessages(locale); const content = buildHomepageContent(messages.homepage, messages.shell); const homePath = localizedPath('home', locale); return (
{content.hero.eyebrow} {content.hero.title} {content.hero.body}
{content.hero.primary.label} {content.hero.secondary.label}
{content.trust.items.map((item) => ( ))}
{content.roles.items.map((item) => ( ))}
{content.modules.items.map((item) => ( ))}
{content.results.metrics.map((metric) => ( ))}
    {content.results.method.map((item) => (
  1. {item}
  2. ))}
    {content.integrations.items.map((item) => (
  • {item}
  • ))}
{content.security.checks.map((check) => ( ))}
    {content.pricing.factors.map((factor) => (
  • {factor}
  • ))}
({ id: item.id, title: item.title, content: {item.body}, open: index === 0, }))} />
); }