diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index e7416be..33a8639 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,31 +1,243 @@ -// AUTO-GENERATED shell by per-section-migrate. -// Section bodies live in .//sections/.tsx. Edit the section -// files directly; this shell only fixes render order. - import LightRaysCenterBackground from "@/components/ui/LightRaysCenterBackground"; import { StyleProvider } from "@/components/ui/StyleProvider"; +import HeroBillboardFloatingCards from "@/components/sections/hero/HeroBillboardFloatingCards"; +import FeaturesGridSplit from "@/components/sections/features/FeaturesGridSplit"; import FeaturesMediaCards from "@/components/sections/features/FeaturesMediaCards"; -import React from 'react'; -import HeroSection from './HomePage/sections/Hero'; -import FeaturesSection from './HomePage/sections/Features'; -import MetricsSection from './HomePage/sections/Metrics'; -import PricingSection from './HomePage/sections/Pricing'; -import TestimonialsSection from './HomePage/sections/Testimonials'; -import FaqSection from './HomePage/sections/Faq'; -import BlogSection from './HomePage/sections/Blog'; -import ContactSection from './HomePage/sections/Contact'; +import MetricsFeatureCards from "@/components/sections/metrics/MetricsFeatureCards"; +import PricingLayeredCards from "@/components/sections/pricing/PricingLayeredCards"; +import TestimonialDetailedCards from "@/components/sections/testimonial/TestimonialDetailedCards"; +import FaqTwoColumn from "@/components/sections/faq/FaqTwoColumn"; +import BlogSimpleCards from "@/components/sections/blog/BlogSimpleCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; -export default function HomePage(): React.JSX.Element { +export default function HomePage() { return ( - <> - - - - - - - - - + +
+ +
+ + + +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
); } diff --git a/src/pages/HomePage/sections/Blog.tsx b/src/pages/HomePage/sections/Blog.tsx index d0b0036..45195ae 100644 --- a/src/pages/HomePage/sections/Blog.tsx +++ b/src/pages/HomePage/sections/Blog.tsx @@ -19,7 +19,7 @@ export default function BlogSection(): React.JSX.Element { authorName: "Sarah Chen", authorImageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-1.webp", date: "May 8, 2026", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-subject-lines.webp", + imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-subject-lines.webp?_wi=2", }, { category: "Tutorial", @@ -28,7 +28,7 @@ export default function BlogSection(): React.JSX.Element { authorName: "Marcus Rivera", authorImageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-2.webp", date: "May 5, 2026", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-automated-workflow.webp", + imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-automated-workflow.webp?_wi=2", }, { category: "Insights", @@ -37,7 +37,7 @@ export default function BlogSection(): React.JSX.Element { authorName: "Priya Sharma", authorImageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-3.webp", date: "May 1, 2026", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-benchmarks.webp", + imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/blog-benchmarks.webp?_wi=2", }, ]} /> diff --git a/src/pages/HomePage/sections/Features.tsx b/src/pages/HomePage/sections/Features.tsx index 3138c3c..29ae251 100644 --- a/src/pages/HomePage/sections/Features.tsx +++ b/src/pages/HomePage/sections/Features.tsx @@ -12,13 +12,13 @@ export default function FeaturesSection(): React.JSX.Element { title="Everything You Need to Scale" description="From team workflows to real-time analytics, Flashly gives you the tools to grow faster." topItems={[ - { title: "Unify and Analyze All Your Data", description: "Connect internal docs, third-party tools, and real-time inputs into a single intelligent interface. Let AI surface insights that drive smarter, more confident business decisions.", imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-collaborate.webp" }, - { title: "Automate High-Frequency Workflows", description: "AI Supply agents break down complex tasks into clear, traceable steps. Eliminate repetitive work and scale your team's output with unmatched efficiency and precision.", imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-track.webp" }, + { title: "Unify and Analyze All Your Data", description: "Connect internal docs, third-party tools, and real-time inputs into a single intelligent interface. Let AI surface insights that drive smarter, more confident business decisions.", imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-collaborate.webp?_wi=2" }, + { title: "Automate High-Frequency Workflows", description: "AI Supply agents break down complex tasks into clear, traceable steps. Eliminate repetitive work and scale your team's output with unmatched efficiency and precision.", imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-track.webp?_wi=2" }, ]} bottomItem={{ title: "Accelerate Execution with Reliable Autonomy", description: "Our agents don't just assist — they complete tasks end-to-end with accountability and speed. Track progress, refine outputs, and get results faster.", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-optimize.webp", + imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/feature-optimize.webp?_wi=2", primaryButton: { text: "View use cases", href: "#" }, avatarsSrc: [ "https://storage.googleapis.com/webild/default/templates/ai-email-platform/avatar-1.webp", diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx index 4a08c7b..b343ffd 100644 --- a/src/pages/HomePage/sections/Hero.tsx +++ b/src/pages/HomePage/sections/Hero.tsx @@ -26,7 +26,7 @@ export default function HeroSection(): React.JSX.Element { "https://storage.googleapis.com/webild/default/templates/ai-email-platform/brand-3.webp", "https://storage.googleapis.com/webild/default/templates/ai-email-platform/brand-4.webp", ]} - imageSrc="https://storage.googleapis.com/webild/default/templates/ai-email-platform/dashboard.webp" + imageSrc="https://storage.googleapis.com/webild/default/templates/ai-email-platform/dashboard.webp?_wi=2" logosSrc={[ "https://storage.googleapis.com/webild/default/templates/ai-email-platform/brand-1.webp", "https://storage.googleapis.com/webild/default/templates/ai-email-platform/brand-2.webp", diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx index d131bd8..7ef4f6c 100644 --- a/src/pages/HomePage/sections/Testimonials.tsx +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -1,204 +1,17 @@ -/* eslint-disable */ -// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body -import { useState } from "react"; -import { ArrowLeft, ArrowRight } from "lucide-react"; -import Button from "@/components/ui/Button"; -import TextAnimation from "@/components/ui/TextAnimation"; -import ImageOrVideo from "@/components/ui/ImageOrVideo"; -import Transition from "@/components/ui/Transition"; -import ScrollReveal from "@/components/ui/ScrollReveal"; -import LoopCarousel from "@/components/ui/LoopCarousel"; -import Card from "@/components/ui/Card"; +// Created by add_section_from_catalog (TestimonialMarqueeCards). -const testimonials = [ - { - title: "Game-changer for our email strategy", - quote: "We switched to Flashly six months ago and our open rates have nearly tripled. The AI suggestions are incredibly accurate and save us hours every week.", - name: "Sarah Chen", - role: "Head of Marketing, Lumino", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-1.webp?_wi=1" - }, - { - title: "Best ROI on any tool we use", - quote: "The automation workflows alone paid for the subscription in the first month. Our team can now focus on strategy instead of manual sends.", - name: "Marcus Rivera", - role: "Growth Lead, NovaBrand", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-2.webp" - }, - { - title: "Finally, email that just works", - quote: "Setup took 15 minutes. Within a week we had our first automated campaign running. The deliverability is the best we've ever seen.", - name: "Erik Lindqvist", - role: "Founder, Canopy", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-3.webp" - }, - { - title: "Incredible support and product", - quote: "Every time we've had a question, the team responds within minutes. The product keeps getting better with every update. Truly world-class.", - name: "James Park", - role: "CTO, AdScale", - imageSrc: "https://storage.googleapis.com/webild/default/templates/ai-email-platform/testimonial-1.webp?_wi=2" - } -]; +import React from 'react'; +import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards'; -type Testimonial = { - title: string; - quote: string; - name: string; - role: string; -} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); - -const TestimonialsInline = () => { - return ( -
-
-
-
-

{"Testimonials"}

-
- - - - -
-
- -
- -
- {testimonials.map((testimonial, idx) => ( - -
-

"{testimonial.title}"

-

"{testimonial.quote}"

-
-
-
- -
-
-

{testimonial.name}

-

{testimonial.role}

-
-
-
- ))} -
-
-
-
- ); -}; - -const TestimonialsInlineOld = () => { - const [activeIndex, setActiveIndex] = useState(0); - - const handlePrev = () => { - setActiveIndex((prev) => (prev === 0 ? testimonials.length - 1 : prev - 1)); - }; - - const handleNext = () => { - setActiveIndex((prev) => (prev === testimonials.length - 1 ? 0 : prev + 1)); - }; - - const activeTestimonial = testimonials[activeIndex]; - - return ( -
-
-
-
-

{"Testimonials"}

-
- - - - - - {(undefined || undefined) && ( -
- {undefined &&
- )} -
- - -
- -

- {activeTestimonial.title} -

- -

- “{activeTestimonial.quote}” -

-
- -
- -
- - {activeTestimonial.name} - {activeTestimonial.role} - - -
- - -
-
-
- - - - - -
-
- ); -}; - -export default function TestimonialsSection() { +export default function TestimonialsSection(): React.JSX.Element { return (
- +
); }