diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index f5875cb..5213b7e 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,118 +1,37 @@ +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in the sibling sections/ folder (one file per section). +// Edit those section files directly. Non-block content (wrappers, +// non-inlinable sections) is preserved inline; extracted section blocks +// become component refs. + import { StyleProvider } from "@/components/ui/StyleProvider"; import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot"; import PageTransitionSwirl from "@/components/ui/PageTransitionSwirl"; -import HeroBillboardBrandFloatingCards from "@/components/sections/hero/HeroBillboardBrandFloatingCards"; -import AboutCursorTrail from "@/components/sections/about/AboutCursorTrail"; -import FeaturesFilterGrid from "@/components/sections/features/FeaturesFilterGrid"; -import FeaturesGridSplitLarge from "@/components/sections/features/FeaturesGridSplitLarge"; -import ContactBar from "@/components/sections/contact/ContactBar"; -import { Phone, MessageCircle, Mail } from "lucide-react"; +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import AboutSection from './HomePage/sections/About'; +import MenuSection from './HomePage/sections/Menu'; +import FeaturesSection from './HomePage/sections/Features'; +import ContactSection from './HomePage/sections/Contact'; -export default function HomePage() { + +import ReviewsSection from './HomePage/sections/Reviews';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..5aaef03 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,29 @@ +// 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 AboutCursorTrail from "@/components/sections/about/AboutCursorTrail"; + +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..68ec9db --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -0,0 +1,23 @@ +// 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 ContactBar from "@/components/sections/contact/ContactBar"; +import { Phone, MessageCircle, Mail } from "lucide-react"; + +export default function ContactSection(): 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..8057e43 --- /dev/null +++ b/src/pages/HomePage/sections/Features.tsx @@ -0,0 +1,36 @@ +// 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 FeaturesGridSplitLarge from "@/components/sections/features/FeaturesGridSplitLarge"; + +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..e94e034 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,24 @@ +// 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 HeroBillboardBrandFloatingCards from "@/components/sections/hero/HeroBillboardBrandFloatingCards"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/Menu.tsx b/src/pages/HomePage/sections/Menu.tsx new file mode 100644 index 0000000..6bebe23 --- /dev/null +++ b/src/pages/HomePage/sections/Menu.tsx @@ -0,0 +1,33 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "menu" section. + +import React from 'react'; +import FeaturesFilterGrid from "@/components/sections/features/FeaturesFilterGrid"; + +export default function MenuSection(): React.JSX.Element { + return ( + + ); +} diff --git a/src/pages/HomePage/sections/Reviews.tsx b/src/pages/HomePage/sections/Reviews.tsx new file mode 100644 index 0000000..592752c --- /dev/null +++ b/src/pages/HomePage/sections/Reviews.tsx @@ -0,0 +1,79 @@ +import TextAnimation from "@/components/ui/TextAnimation"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import Card from "@/components/ui/Card"; +import RatingStars from "@/components/ui/RatingStars"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import Tag from "@/components/ui/Tag"; + +export default function ReviewsSection() { + const testimonials = [ + { + name: "Sarah Jenkins", + role: "Local Resident", + quote: "The best oat milk latte in town, hands down. The atmosphere is so cozy, it's become my go-to spot for morning reading.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&q=80&w=150&h=150" + }, + { + name: "David Chen", + role: "Freelancer", + quote: "Incredible espresso and the staff always remembers my order. The freshly baked croissants are dangerously good.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&q=80&w=150&h=150" + }, + { + name: "Emily Rodriguez", + role: "Coffee Enthusiast", + quote: "You can really taste the care they put into sourcing their beans. The pour-over selection is fantastic.", + rating: 5, + imageSrc: "https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&q=80&w=150&h=150" + } + ]; + + return ( +
+
+
+ + + + + +

+ Don't just take our word for it. Here's what the community thinks about our coffee and pastries. +

+
+
+ +
+ {testimonials.map((testimonial, index) => ( + + + +

"{testimonial.quote}"

+
+
+ +
+
+

{testimonial.name}

+

{testimonial.role}

+
+
+
+
+ ))} +
+
+
+ ); +} \ No newline at end of file