diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 9ca5a60..54fa959 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,279 +1,33 @@ -import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit'; -import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn'; -import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; -import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos'; -import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards'; -import TeamStackedCards from '@/components/sections/team/TeamStackedCards'; -import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards'; -import { CheckCircle, Clock, GraduationCap } from "lucide-react"; -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 ServicesSection from './HomePage/sections/Services'; +import ExpertsSection from './HomePage/sections/Experts'; +import TestimonialsSection from './HomePage/sections/Testimonials'; +import PricingSection from './HomePage/sections/Pricing'; +import FaqSection from './HomePage/sections/Faq'; + +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..9d9f870 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,39 @@ +// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit'; +import { CheckCircle, Clock, GraduationCap } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Experts.tsx b/src/pages/HomePage/sections/Experts.tsx new file mode 100644 index 0000000..57dcdc0 --- /dev/null +++ b/src/pages/HomePage/sections/Experts.tsx @@ -0,0 +1,37 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "experts" section. + +import React from 'react'; +import TeamStackedCards from '@/components/sections/team/TeamStackedCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ExpertsSection(): 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..8590ed8 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,38 @@ +// 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/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..aed81cb --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,40 @@ +// 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 HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Pricing.tsx b/src/pages/HomePage/sections/Pricing.tsx new file mode 100644 index 0000000..a311d4b --- /dev/null +++ b/src/pages/HomePage/sections/Pricing.tsx @@ -0,0 +1,65 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "pricing" section. + +import React from 'react'; +import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function PricingSection(): 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..fd96666 --- /dev/null +++ b/src/pages/HomePage/sections/Services.tsx @@ -0,0 +1,21 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "services" section. + +import React from 'react'; +import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ServicesSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx new file mode 100644 index 0000000..eb29bfb --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -0,0 +1,98 @@ +/* eslint-disable */ +// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body +import Button from "@/components/ui/Button"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; +import ScrollReveal from "@/components/ui/ScrollReveal"; + +const testimonials = [ + { + name: "Wei Chen", + role: "International Student, MSc Finance", + quote: "UKSCHOLARPRO is one of the best platforms. I secured the best positions and that was thanks to them.", + imageSrc: "http://img.b2bpic.net/free-photo/teenage-student-smiling-with-book-head_23-2148208755.jpg" + }, + { + name: "Aisha Patel", + role: "International Student, Law", + quote: "UKSCHOLARPRO is one of the best platforms. I secured the best positions and that was thanks to them.", + imageSrc: "http://img.b2bpic.net/free-photo/portrait-school-girl-with-books-park_23-2148199228.jpg" + }, + { + name: "Mateo Garcia", + role: "International Student, Engineering", + quote: "UKSCHOLARPRO is one of the best platforms. I secured the best positions and that was thanks to them.", + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-handsome-black-man-white_285396-403.jpg" + } +]; + +type Testimonial = { + name: string; + role: string; + quote: string; +} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); + +import RatingStars from "@/components/ui/RatingStars"; + +const TestimonialsInline = () => ( +
+
+
+
+

{"Success Stories"}

+
+ + + + + + {(undefined || undefined) && ( +
+ {undefined &&
+ )} +
+ + + + {testimonials.map((testimonial) => ( +
+
+ +
+ +
+ {testimonial.name} + {testimonial.role} +
+ +

{testimonial.quote}

+
+ ))} +
+
+
+
+); + +export default function TestimonialsSection() { + return ( +
+ +
+ ); +}