/**
* @license
* SPDX-License-Identifier: Apache-2.0
*/
import {
FileText,
Layers,
MousePointer2,
Download,
Globe,
Cpu,
CheckCircle2,
ArrowRight,
Layout,
PieChart,
FileSpreadsheet,
Presentation,
MessageSquare,
ShieldCheck,
Zap,
Menu,
X,
Languages,
Monitor,
Eye,
Lock,
Clock,
Activity
} from 'lucide-react';
import { motion, AnimatePresence } from 'motion/react';
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Dashboard } from './components/Dashboard';
const Logo = () => (
);
const Navbar = ({ onLogin }: { onLogin: () => void }) => {
const [isOpen, setIsOpen] = useState(false);
const { t, i18n } = useTranslation();
const toggleLanguage = () => {
const nextLang = i18n.language === 'fr' ? 'en' : 'fr';
i18n.changeLanguage(nextLang);
};
return (
);
};
const Hero = ({ onLogin }: { onLogin: () => void }) => {
const { t } = useTranslation();
return (
{t('hero.tag')}
{t('hero.titleLine1')}
{t('hero.titleLine2')}
{t('hero.description')}
{/* Floating Badges */}
"Translation detected: Technical maintenance term for HVAC systems..."
{[1,2,3].map(i => (
JD
))}
+12 terms detected
);
};
const Steps = () => {
const { t } = useTranslation();
const steps = [
{
num: t('steps.step1.num'),
title: t('steps.step1.title'),
desc: t('steps.step1.desc'),
icon: ,
},
{
num: t('steps.step2.num'),
title: t('steps.step2.title'),
desc: t('steps.step2.desc'),
icon: ,
},
{
num: t('steps.step3.num'),
title: t('steps.step3.title'),
desc: t('steps.step3.desc'),
icon: ,
}
];
return (
{t('steps.stepLabel', { num: '0' })} PROCESUS
{t('steps.title')}
{t('steps.subtitle')}
{steps.map((st, i) => (
{st.icon}
{st.title}
{st.desc}
))}
);
};
const FeaturesContext = () => {
const { t } = useTranslation();
return (
intelligence intégrée
{t('features.title')}
{[
{ icon:
, title: t('features.context.title'), desc: t('features.context.desc') },
{ icon:
, title: t('features.glossary.title'), desc: t('features.glossary.desc') },
{ icon:
, title: t('features.vision.title'), desc: t('features.vision.desc') }
].map((item, i) => (
))}
);
};
const LayoutFeatures = () => {
const { t } = useTranslation();
const points = (t('layout.points', { returnObjects: true }) as any[]).map((p, i) => ({
...p,
icon: i === 0 ? :
i === 1 ? :
i === 2 ? :
i === 3 ? :
i === 4 ? :
}));
return (
{t('layout.title')}
{t('layout.title2')}
{t('layout.subtitle')}
{points.map((p, i) => (
{p.icon}
{p.title}
{p.desc}
))}
);
};
const FormatsSection = () => {
const { t } = useTranslation();
const formats = [
{
id: ".DOCX",
name: t('formats.word.name'),
icon: ,
items: t('formats.word.items', { returnObjects: true }) as string[],
},
{
id: ".XLSX",
name: t('formats.excel.name'),
icon: ,
items: t('formats.excel.items', { returnObjects: true }) as string[],
},
{
id: ".PPTX",
name: t('formats.pptx.name'),
icon: ,
items: t('formats.pptx.items', { returnObjects: true }) as string[],
},
{
id: ".PDF",
name: t('formats.pdf.name'),
icon: ,
items: t('formats.pdf.items', { returnObjects: true }) as string[],
}
];
return (
);
};
const PricingSection = () => {
const { t } = useTranslation();
const [isAnnual, setIsAnnual] = useState(true);
const plans = [
{
name: t('pricing.starter.name'),
desc: t('pricing.starter.desc'),
monthlyPrice: 9,
annualPrice: 7,
features: t('pricing.starter.features', { returnObjects: true }) as string[],
cta: t('pricing.starter.cta'),
popular: false
},
{
name: t('pricing.pro.name'),
desc: t('pricing.pro.desc'),
monthlyPrice: 25,
annualPrice: 19,
features: t('pricing.pro.features', { returnObjects: true }) as string[],
cta: t('pricing.pro.cta'),
popular: true
},
{
name: t('pricing.business.name'),
desc: t('pricing.business.desc'),
monthlyPrice: 65,
annualPrice: 49,
features: t('pricing.business.features', { returnObjects: true }) as string[],
cta: t('pricing.business.cta'),
popular: false
}
];
return (
{t('pricing.title')}
{t('pricing.subtitle')}
{plans.map((p, i) => (
{p.name}
{p.desc}
€{isAnnual ? p.annualPrice : p.monthlyPrice}
/ {t('pricing.month')}
{p.features.map((f, j) => (
-
{f}
))}
))}
);
};
const CTASection = () => {
const { t } = useTranslation();
return (
{t('cta.title')}
{t('cta.subtitle')}
);
};
const Footer = () => {
const { t } = useTranslation();
return (
);
};
export default function App() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
if (isLoggedIn) {
return setIsLoggedIn(false)} />;
}
return (
setIsLoggedIn(true)} />
setIsLoggedIn(true)} />
);
}