Merge version_2_1781431376370 into main
Merge version_2_1781431376370 into main
This commit was merged in pull request #1.
This commit is contained in:
@@ -42,7 +42,7 @@ export default function Layout() {
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarCentered
|
||||
logo="AliExpress"
|
||||
logo="Store"
|
||||
ctaButton={{
|
||||
text: "Shop Now",
|
||||
href: "#",
|
||||
@@ -54,7 +54,7 @@ export default function Layout() {
|
||||
</main>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterBrand
|
||||
brand="AliExpress 2024"
|
||||
brand="Store 2024"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
|
||||
@@ -1,298 +1,36 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import BenefitsSection from './HomePage/sections/Benefits';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import SocialSection from './HomePage/sections/Social';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="Reliable Quality"
|
||||
title="Upgrade Your Daily Routine"
|
||||
description="Experience superior performance with our latest product range designed for excellence."
|
||||
primaryButton={{
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#features",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/minimal-tech-setup-with-earbuds_58702-17248.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-virtual-reality-headset-white-headphones_23-2148912739.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hard-drive-with-blue-light_23-2149413403.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-with-headphones-keyboard-light-background_185193-162012.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gradient-specks-light_23-2147786092.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blue-model-career-kit-arrangement_23-2150084001.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Top Features"
|
||||
title="Why Choose Us"
|
||||
description="Engineered for speed, durability, and a sleek aesthetic."
|
||||
items={[
|
||||
{
|
||||
title: "Premium Material",
|
||||
description: "High-grade components that last.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glass-pitcher-with-delicious-orange-juice_114579-53860.jpg",
|
||||
},
|
||||
{
|
||||
title: "Rapid Delivery",
|
||||
description: "Global shipping directly to you.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-pumpkins-blue-background_23-2149441645.jpg",
|
||||
},
|
||||
{
|
||||
title: "24/7 Support",
|
||||
description: "We are here for you whenever.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/face-wash-tech-device-with-minimalist-monochrome-background_23-2150763323.jpg",
|
||||
},
|
||||
{
|
||||
title: "Global Warranty",
|
||||
description: "Covered against manufacturing defects.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cups-with-sake-beverage-white-background_23-2149869748.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sleek Design",
|
||||
description: "Modern look for any environment.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/foundation-bottles-advertising-assortment_23-2149511242.jpg",
|
||||
},
|
||||
{
|
||||
title: "Optimized Tech",
|
||||
description: "Latest internal components used.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-nail-polish-floating-water_23-2150963115.jpg",
|
||||
},
|
||||
{
|
||||
title: "Eco Friendly",
|
||||
description: "Sustainable packaging & materials.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/perfume-bottle_1203-7612.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="benefits" data-section="benefits">
|
||||
<SectionErrorBoundary name="benefits">
|
||||
<FeaturesDetailedCards
|
||||
tag="Benefits"
|
||||
title="Your Advantages"
|
||||
description="Maximum efficiency with every use."
|
||||
items={[
|
||||
{
|
||||
title: "Performance",
|
||||
description: "Optimized logic.",
|
||||
tags: [
|
||||
"fast",
|
||||
"tech",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072191.jpg",
|
||||
},
|
||||
{
|
||||
title: "Durability",
|
||||
description: "Built for longevity.",
|
||||
tags: [
|
||||
"strong",
|
||||
"premium",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-purple-tin-cans-with-copy-space_23-2148785260.jpg",
|
||||
},
|
||||
{
|
||||
title: "Versatility",
|
||||
description: "Fits all scenarios.",
|
||||
tags: [
|
||||
"flexible",
|
||||
"adaptable",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/recycled-aluminium-cans_23-2149436507.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<BenefitsSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Statistics"
|
||||
title="Proven Excellence"
|
||||
description="Our numbers speak for themselves."
|
||||
metrics={[
|
||||
{
|
||||
value: "100K+",
|
||||
title: "Orders Shipped",
|
||||
features: [
|
||||
"Fast shipping",
|
||||
"Safe delivery",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "99.9%",
|
||||
title: "Satisfaction Rate",
|
||||
features: [
|
||||
"Happy users",
|
||||
"Verified quality",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "50+",
|
||||
title: "Global Markets",
|
||||
features: [
|
||||
"Available everywhere",
|
||||
"Localized support",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Partnerships"
|
||||
title="Trusted Globally"
|
||||
description="We collaborate with the best."
|
||||
names={[
|
||||
"Intel",
|
||||
"Samsung",
|
||||
"LG",
|
||||
"Sony",
|
||||
"Dell",
|
||||
"HP",
|
||||
"Panasonic",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Reviews"
|
||||
title="What Users Say"
|
||||
description="Hear directly from our community."
|
||||
testimonials={[
|
||||
{
|
||||
name: "David",
|
||||
role: "User",
|
||||
quote: "Excellent quality!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah",
|
||||
role: "User",
|
||||
quote: "Delivered very fast.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/confident-middle-aged-businesswoman-looking-camera_74855-4120.jpg",
|
||||
},
|
||||
{
|
||||
name: "Mark",
|
||||
role: "User",
|
||||
quote: "Exactly as described.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena",
|
||||
role: "User",
|
||||
quote: "Great packaging.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-with-smartphone_23-2148294016.jpg",
|
||||
},
|
||||
{
|
||||
name: "James",
|
||||
role: "User",
|
||||
quote: "Top notch support.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-67131.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Help Center"
|
||||
description="Common questions answered."
|
||||
categories={[
|
||||
{
|
||||
name: "Ordering",
|
||||
items: [
|
||||
{
|
||||
question: "Shipping time?",
|
||||
answer: "Usually 3-7 days.",
|
||||
},
|
||||
{
|
||||
question: "Is it tracked?",
|
||||
answer: "Yes, full tracking provided.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Support",
|
||||
items: [
|
||||
{
|
||||
question: "Contact?",
|
||||
answer: "Email us anytime.",
|
||||
},
|
||||
{
|
||||
question: "Refunds?",
|
||||
answer: "30-day money back guarantee.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contact"
|
||||
text="Ready to buy? Join the thousands of happy customers today."
|
||||
primaryButton={{
|
||||
text: "Shop Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Support",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
49
src/pages/HomePage/sections/Benefits.tsx
Normal file
49
src/pages/HomePage/sections/Benefits.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "benefits" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function BenefitsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="benefits" data-section="benefits">
|
||||
<SectionErrorBoundary name="benefits">
|
||||
<FeaturesDetailedCards
|
||||
tag="Benefits"
|
||||
title="Your Advantages"
|
||||
description="Maximum efficiency with every use."
|
||||
items={[
|
||||
{
|
||||
title: "Performance",
|
||||
description: "Optimized logic.",
|
||||
tags: [
|
||||
"fast",
|
||||
"tech",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-wireless-cyberpunk-headphones_23-2151072191.jpg",
|
||||
},
|
||||
{
|
||||
title: "Durability",
|
||||
description: "Built for longevity.",
|
||||
tags: [
|
||||
"strong",
|
||||
"premium",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-purple-tin-cans-with-copy-space_23-2148785260.jpg",
|
||||
},
|
||||
{
|
||||
title: "Versatility",
|
||||
description: "Fits all scenarios.",
|
||||
tags: [
|
||||
"flexible",
|
||||
"adaptable",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/recycled-aluminium-cans_23-2149436507.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -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 (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contact"
|
||||
text="Ready to buy? Join the thousands of happy customers today."
|
||||
primaryButton={{
|
||||
text: "Shop Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Support",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Faq.tsx
Normal file
48
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Help Center"
|
||||
description="Common questions answered."
|
||||
categories={[
|
||||
{
|
||||
name: "Ordering",
|
||||
items: [
|
||||
{
|
||||
question: "Shipping time?",
|
||||
answer: "Usually 3-7 days.",
|
||||
},
|
||||
{
|
||||
question: "Is it tracked?",
|
||||
answer: "Yes, full tracking provided.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Support",
|
||||
items: [
|
||||
{
|
||||
question: "Contact?",
|
||||
answer: "Email us anytime.",
|
||||
},
|
||||
{
|
||||
question: "Refunds?",
|
||||
answer: "30-day money back guarantee.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Features.tsx
Normal file
64
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// 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 FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Top Features"
|
||||
title="Why Choose Us"
|
||||
description="Engineered for speed, durability, and a sleek aesthetic."
|
||||
items={[
|
||||
{
|
||||
title: "Premium Material",
|
||||
description: "High-grade components that last.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glass-pitcher-with-delicious-orange-juice_114579-53860.jpg",
|
||||
},
|
||||
{
|
||||
title: "Rapid Delivery",
|
||||
description: "Global shipping directly to you.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-pumpkins-blue-background_23-2149441645.jpg",
|
||||
},
|
||||
{
|
||||
title: "24/7 Support",
|
||||
description: "We are here for you whenever.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/face-wash-tech-device-with-minimalist-monochrome-background_23-2150763323.jpg",
|
||||
},
|
||||
{
|
||||
title: "Global Warranty",
|
||||
description: "Covered against manufacturing defects.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cups-with-sake-beverage-white-background_23-2149869748.jpg",
|
||||
},
|
||||
{
|
||||
title: "Sleek Design",
|
||||
description: "Modern look for any environment.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/foundation-bottles-advertising-assortment_23-2149511242.jpg",
|
||||
},
|
||||
{
|
||||
title: "Optimized Tech",
|
||||
description: "Latest internal components used.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-nail-polish-floating-water_23-2150963115.jpg",
|
||||
},
|
||||
{
|
||||
title: "Eco Friendly",
|
||||
description: "Sustainable packaging & materials.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/perfume-bottle_1203-7612.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Hero.tsx
Normal file
48
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// 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 HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardTiltedCarousel
|
||||
tag="Reliable Quality"
|
||||
title="Upgrade Your Daily Routine"
|
||||
description="Experience superior performance with our latest product range designed for excellence."
|
||||
primaryButton={{
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#features",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/minimal-tech-setup-with-earbuds_58702-17248.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-virtual-reality-headset-white-headphones_23-2148912739.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hard-drive-with-blue-light_23-2149413403.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-with-headphones-keyboard-light-background_185193-162012.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gradient-specks-light_23-2147786092.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blue-model-career-kit-arrangement_23-2150084001.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
46
src/pages/HomePage/sections/Metrics.tsx
Normal file
46
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
// 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 MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Statistics"
|
||||
title="Proven Excellence"
|
||||
description="Our numbers speak for themselves."
|
||||
metrics={[
|
||||
{
|
||||
value: "100K+",
|
||||
title: "Orders Shipped",
|
||||
features: [
|
||||
"Fast shipping",
|
||||
"Safe delivery",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "99.9%",
|
||||
title: "Satisfaction Rate",
|
||||
features: [
|
||||
"Happy users",
|
||||
"Verified quality",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "50+",
|
||||
title: "Global Markets",
|
||||
features: [
|
||||
"Available everywhere",
|
||||
"Localized support",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Social.tsx
Normal file
29
src/pages/HomePage/sections/Social.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Partnerships"
|
||||
title="Trusted Globally"
|
||||
description="We collaborate with the best."
|
||||
names={[
|
||||
"Intel",
|
||||
"Samsung",
|
||||
"LG",
|
||||
"Sony",
|
||||
"Dell",
|
||||
"HP",
|
||||
"Panasonic",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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 TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Reviews"
|
||||
title="What Users Say"
|
||||
description="Hear directly from our community."
|
||||
testimonials={[
|
||||
{
|
||||
name: "David",
|
||||
role: "User",
|
||||
quote: "Excellent quality!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah",
|
||||
role: "User",
|
||||
quote: "Delivered very fast.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/confident-middle-aged-businesswoman-looking-camera_74855-4120.jpg",
|
||||
},
|
||||
{
|
||||
name: "Mark",
|
||||
role: "User",
|
||||
quote: "Exactly as described.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena",
|
||||
role: "User",
|
||||
quote: "Great packaging.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-woman-with-smartphone_23-2148294016.jpg",
|
||||
},
|
||||
{
|
||||
name: "James",
|
||||
role: "User",
|
||||
quote: "Top notch support.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-67131.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user