diff --git a/src/index.css b/src/index.css index e950535..c30bc12 100644 --- a/src/index.css +++ b/src/index.css @@ -5,15 +5,15 @@ :root { /* @colorThemes/lightTheme/grayNavyBlue */ - --background: #f5faff; + --background: #f5f5f5; --card: #ffffff; --foreground: #001122; - --primary-cta: #15479c; - --primary-cta-text: #f5faff; - --secondary-cta: #ffffff; - --secondary-cta-text: #001122; - --accent: #a8cce8; - --background-accent: #7ba3cf; + --primary-cta: #e30a17; + --primary-cta-text: #ffffff; + --secondary-cta: #0066cc; + --secondary-cta-text: #ffffff; + --accent: #ff6600; + --background-accent: #0066cc; /* @layout/border-radius/rounded */ --radius: 1rem; diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index f642f05..cc486f7 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,251 +1,38 @@ -import AboutTestimonial from '@/components/sections/about/AboutTestimonial'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn'; -import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid'; -import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; -import HeroBillboard from '@/components/sections/hero/HeroBillboard'; -import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards'; -import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly. Non-block content (wrappers, non-inlinable sections) is +// preserved inline; extracted section blocks become refs. -export default function HomePage() { +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import AboutSection from './HomePage/sections/About'; +import FeaturesSection from './HomePage/sections/Features'; +import ProcessSection from './HomePage/sections/Process'; +import MetricsSection from './HomePage/sections/Metrics'; +import TestimonialsSection from './HomePage/sections/Testimonials'; +import FaqSection from './HomePage/sections/Faq'; +import ContactSection from './HomePage/sections/Contact'; + + +import ServicesSection from './HomePage/sections/Services';export default function HomePage(): React.JSX.Element { return ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ + ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..92b0cb4 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,22 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "about" section. + +import React from 'react'; +import AboutTestimonial from '@/components/sections/about/AboutTestimonial'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..41d6d3d --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -0,0 +1,27 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "contact" section. + +import React from 'react'; +import ContactCta from '@/components/sections/contact/ContactCta'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ContactSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..0a20c02 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,42 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "faq" section. + +import React from 'react'; +import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FaqSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Features.tsx b/src/pages/HomePage/sections/Features.tsx new file mode 100644 index 0000000..9068af7 --- /dev/null +++ b/src/pages/HomePage/sections/Features.tsx @@ -0,0 +1,42 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "features" section. + +import React from 'react'; +import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FeaturesSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..ffd95a9 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,29 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "hero" section. + +import React from 'react'; +import HeroBillboard from '@/components/sections/hero/HeroBillboard'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..5e89327 --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -0,0 +1,40 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "metrics" section. + +import React from 'react'; +import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function MetricsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Process.tsx b/src/pages/HomePage/sections/Process.tsx new file mode 100644 index 0000000..362d198 --- /dev/null +++ b/src/pages/HomePage/sections/Process.tsx @@ -0,0 +1,57 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "process" section. + +import React from 'react'; +import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ProcessSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Services.tsx b/src/pages/HomePage/sections/Services.tsx new file mode 100644 index 0000000..d55c70b --- /dev/null +++ b/src/pages/HomePage/sections/Services.tsx @@ -0,0 +1,169 @@ +import { motion } from "motion/react" +import Button from "@/components/ui/Button" +import Card from "@/components/ui/Card" +import ScrollReveal from "@/components/ui/ScrollReveal" +import TextAnimation from "@/components/ui/TextAnimation" +import { Check, Clock, Percent, FileText, Home, Shield, Plane, Languages, Building, GraduationCap, Users, Calendar } from "lucide-react" + +export default function Services() { + const visas = [ + { + title: "Visa Tourisme", + icon: , + duration: "< 30 jours", + type: "e-Visa", + success: "95%", + desc: "Idéal pour les courts séjours. Processus 100% en ligne.", + }, + { + title: "Visa Travail", + icon: , + duration: "1-2 ans", + type: "Consulat", + success: "90%", + desc: "Pour les professionnels avec contrat d'emploi turc.", + }, + { + title: "Visa Études", + icon: , + duration: "1-4 ans", + type: "Consulat", + success: "95%", + desc: "Pour les étudiants admis dans une université turque.", + }, + { + title: "Visa Familial", + icon: , + duration: "1-2 ans", + type: "Consulat", + success: "85%", + desc: "Pour le regroupement familial en Turquie.", + } + ] + + const services = [ + { icon: , title: "Logement", desc: "Apparts Istanbul/Ankara/Izmir, partenaires, -10%" }, + { icon: , title: "Assurance voyage", desc: "Bupa, -8% exclusif, médical + rapatriement" }, + { icon: , title: "Billets avion", desc: "Négocié groupes, -15% moyen" }, + { icon: , title: "Traduction", desc: "FR→TR, TR→FR, 24h" }, + { icon: , title: "Banque Turquie", desc: "Compte étudiant, aide ouverture" }, + { icon: , title: "Bourses", desc: "5,000+ € universités turques" }, + { icon: , title: "Pré-départ", desc: "Webinaire 1h avant départ" }, + { icon: , title: "Post-arrivée", desc: "Logement + banque + travail + école" }, + { icon: , title: "Communauté", desc: "Forum 'Afriques en Turquie'" } + ] + + const steps = [ + { title: "Créer compte", desc: "Inscription rapide", duration: "5 min" }, + { title: "AI Visa Matcher", desc: "Recommandation auto", duration: "3 min" }, + { title: "Upload documents", desc: "Vérification IA", duration: "15 min" }, + { title: "Suivi online", desc: "Dashboard temps réel", duration: "Auto" }, + { title: "Visa reçu", desc: "Approbation finale", duration: "1-4 mois" } + ] + + return ( +
+
+ + {/* Header */} + + +

+ De l'obtention de votre visa à votre installation en Turquie, nous gérons chaque étape de votre projet d'immigration. +

+
+ + {/* Visas */} +
+

Types de visas

+
+ {visas.map((visa, i) => ( + + +
+ {visa.icon} +
+

{visa.title}

+

{visa.desc}

+
+
+ Durée + {visa.duration} +
+
+ Type + {visa.type} +
+
+ Réussite + {visa.success} +
+
+
+
+ + {/* Services 360 */} +
+

Services complémentaires

+
+ {services.map((service, i) => ( + +
+
+ {service.icon} +
+
+

{service.title}

+

{service.desc}

+
+
+
+ ))} +
+
+ + {/* Process Timeline */} +
+

Processus en 5 étapes

+
+
+
+ {steps.map((step, i) => ( + +
+
+ {i + 1} +
+
+

{step.title}

+

{step.desc}

+ + {step.duration} + +
+
+
+ ))} +
+
+
+ + {/* CTA */} + +
+
+ ) +} \ No newline at end of file diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx new file mode 100644 index 0000000..aa537bf --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -0,0 +1,57 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "testimonials" section. + +import React from 'react'; +import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TestimonialsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +}