3 Commits

Author SHA1 Message Date
d6d4d793bd Merge version_2_1781730291109 into main
Merge version_2_1781730291109 into main
2026-06-17 21:06:25 +00:00
kudinDmitriyUp
4c7470d19d Bob AI: Update products to feature replica jerseys of top players 2026-06-17 21:05:39 +00:00
30d6113150 Merge version_1_1781729844269 into main
Merge version_1_1781729844269 into main
2026-06-17 20:58:56 +00:00
8 changed files with 224 additions and 150 deletions

View File

@@ -1,160 +1,33 @@
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import { CheckCircle, Shield, Zap } from "lucide-react";
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 ProductsSection from './HomePage/sections/Products';
import FeaturesSection from './HomePage/sections/Features';
import MetricsSection from './HomePage/sections/Metrics';
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">
<HeroOverlayMarquee
tag="PREMIUM SOCCER KITS"
title="Own the Pitch."
description="Authentic professional soccer jerseys delivered to your door. High-performance fabric, iconic designs."
primaryButton={{
text: "Browse Jerseys", href: "#products"}}
secondaryButton={{
text: "Contact Support", href: "#contact"}}
items={[
{
text: "Authentic Quality", icon: CheckCircle,
},
{
text: "Fast Worldwide Shipping", icon: Zap,
},
{
text: "Secure Checkout", icon: Shield,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/football-composition-with-slate_23-2147827656.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="NEW ARRIVALS"
title="Shop Professional Jerseys"
description="Explore our curated selection of top-tier kits."
items={[
{
title: "Home Pro Kit", description: "$89.99", imageSrc: "http://img.b2bpic.net/free-photo/football-composition-with-jersey_23-2147827778.jpg"},
{
title: "Away Pro Kit", description: "$89.99", imageSrc: "http://img.b2bpic.net/free-photo/crop-ethnic-sportsman-with-soccer-ball-arm_23-2148203525.jpg"},
{
title: "Retro Heritage", description: "$75.00", imageSrc: "http://img.b2bpic.net/free-photo/football-composition-with-whiteboard_23-2147827753.jpg"},
{
title: "Third Edition", description: "$95.00", imageSrc: "http://img.b2bpic.net/free-photo/neon-style-american-football-player_23-2151827377.jpg"},
{
title: "Limited Collection", description: "$120.00", imageSrc: "https://storage.googleapis.com/webild/default/no-image.jpg?id=208oif"},
{
title: "Keeper Series", description: "$99.00", imageSrc: "http://img.b2bpic.net/free-photo/portrait-professional-soccer-player_93675-134364.jpg"},
{
title: "Custom Name Kit", description: "$110.00", imageSrc: "http://img.b2bpic.net/free-photo/view-american-football-ball_23-2150784018.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCarousel
tag="PERFORMANCE GEAR"
title="Why ProKits?"
description="Engineered for elite performance and everyday comfort."
items={[
{
title: "Advanced Fabric", description: "Moisture-wicking tech keeps you dry under pressure.", buttonIcon: "Zap", imageSrc: "http://img.b2bpic.net/free-photo/abstract-green-metal-background-iron-dots-texture-outdoor-metal-wall_158595-7210.jpg"},
{
title: "Pro Printing", description: "High-durable name and number customization.", buttonIcon: "PenTool", imageSrc: "http://img.b2bpic.net/free-photo/t-shirt-painting-indoors-still-life_23-2150572742.jpg"},
{
title: "Fan Tested", description: "Loved by thousands of soccer enthusiasts globally.", buttonIcon: "Award", imageSrc: "http://img.b2bpic.net/free-photo/front-view-male-doctor-emotionally-rejoicing-yellow-wall_179666-12572.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="BY THE NUMBERS"
title="Proven Excellence"
description="We deliver the best gear for fans worldwide."
metrics={[
{
value: "15k+", description: "Jerseys Sold"},
{
value: "4.9/5", description: "Customer Rating"},
{
value: "50+", description: "League Designs"},
{
value: "24h", description: "Dispatch Time"},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="FANS SPEAK"
title="Trusted by Pro Fans"
description="Read what our community has to say."
testimonials={[
{
name: "John Doe", role: "Fan", quote: "Incredible quality, feels just like the real kits on the field.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-supporter-fan-morocco-national-team-painted-flag-face-get-happy-victory-screaming-into-camera-fans-emotions_231208-7086.jpg"},
{
name: "Sarah Miller", role: "Collector", quote: "The print quality is amazing and has lasted for years.", imageSrc: "http://img.b2bpic.net/free-photo/confused-young-sporty-man-wearing-wristband-holding-ball-isolated-orange-background-with-copy-space_141793-63341.jpg"},
{
name: "Mike Ross", role: "Coach", quote: "Best gear for our entire academy team. Highly recommended.", imageSrc: "http://img.b2bpic.net/free-photo/happy-satisfied-customer-making-ok-gesture_74855-2298.jpg"},
{
name: "Leo Messi Fan", role: "Supporter", quote: "Fast shipping and perfect sizing every single time.", imageSrc: "http://img.b2bpic.net/free-photo/young-crazy-sports-man-happy-expression_1194-5248.jpg"},
{
name: "Ana Silva", role: "Player", quote: "Comfortable, breathable and looks absolutely iconic.", imageSrc: "http://img.b2bpic.net/free-photo/woman-stretching-leg-field_23-2148930211.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="HELP"
title="Frequently Asked"
description="Common questions about our products and services."
items={[
{
question: "Are these jerseys authentic?", answer: "Yes, we sell high-quality, authentic-style jerseys."},
{
question: "What is the return policy?", answer: "We offer free returns within 30 days of purchase."},
{
question: "How long is shipping?", answer: "Usually 3-5 business days for standard shipping."},
{
question: "Do you offer international shipping?", answer: "Yes, we ship to over 100 countries worldwide."},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="GET IN TOUCH"
text="Have questions about a specific kit or need help with sizing? Our expert team is ready to assist."
primaryButton={{
text: "Email Support", href: "mailto:hello@prokits.com"}}
secondaryButton={{
text: "FAQ Center", href: "#faq"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}
}

View File

@@ -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 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="GET IN TOUCH"
text="Have questions about a specific kit or need help with sizing? Our expert team is ready to assist."
primaryButton={{
text: "Email Support", href: "mailto:hello@prokits.com"}}
secondaryButton={{
text: "FAQ Center", href: "#faq"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,30 @@
// 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 (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="HELP"
title="Frequently Asked"
description="Common questions about our products and services."
items={[
{
question: "Are these jerseys authentic?", answer: "Yes, we sell high-quality, authentic-style jerseys."},
{
question: "What is the return policy?", answer: "We offer free returns within 30 days of purchase."},
{
question: "How long is shipping?", answer: "Usually 3-5 business days for standard shipping."},
{
question: "Do you offer international shipping?", answer: "Yes, we ship to over 100 countries worldwide."},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCarousel
tag="PERFORMANCE GEAR"
title="Why ProKits?"
description="Engineered for elite performance and everyday comfort."
items={[
{
title: "Advanced Fabric", description: "Moisture-wicking tech keeps you dry under pressure.", buttonIcon: "Zap", imageSrc: "http://img.b2bpic.net/free-photo/abstract-green-metal-background-iron-dots-texture-outdoor-metal-wall_158595-7210.jpg"},
{
title: "Pro Printing", description: "High-durable name and number customization.", buttonIcon: "PenTool", imageSrc: "http://img.b2bpic.net/free-photo/t-shirt-painting-indoors-still-life_23-2150572742.jpg"},
{
title: "Fan Tested", description: "Loved by thousands of soccer enthusiasts globally.", buttonIcon: "Award", imageSrc: "http://img.b2bpic.net/free-photo/front-view-male-doctor-emotionally-rejoicing-yellow-wall_179666-12572.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// 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 HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { CheckCircle, Shield, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="PREMIUM SOCCER KITS"
title="Own the Pitch."
description="Authentic professional soccer jerseys delivered to your door. High-performance fabric, iconic designs."
primaryButton={{
text: "Browse Jerseys", href: "#products"}}
secondaryButton={{
text: "Contact Support", href: "#contact"}}
items={[
{
text: "Authentic Quality", icon: CheckCircle,
},
{
text: "Fast Worldwide Shipping", icon: Zap,
},
{
text: "Secure Checkout", icon: Shield,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/football-composition-with-slate_23-2147827656.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,30 @@
// 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 MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="BY THE NUMBERS"
title="Proven Excellence"
description="We deliver the best gear for fans worldwide."
metrics={[
{
value: "15k+", description: "Jerseys Sold"},
{
value: "4.9/5", description: "Customer Rating"},
{
value: "50+", description: "League Designs"},
{
value: "24h", description: "Dispatch Time"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="NEW ARRIVALS"
title="Shop Professional Replica Jerseys"
description="Explore our curated selection of top-tier replica kits."
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/football-composition-with-jersey_23-2147827778.jpg","title":"Ronaldo Replica Kit","description":"$89.99"},{"imageSrc":"http://img.b2bpic.net/free-photo/crop-ethnic-sportsman-with-soccer-ball-arm_23-2148203525.jpg","title":"Messi Replica Kit","description":"$89.99"},{"description":"$75.00","imageSrc":"http://img.b2bpic.net/free-photo/football-composition-with-whiteboard_23-2147827753.jpg","title":"Neymar Replica Kit"},{"description":"$95.00","imageSrc":"http://img.b2bpic.net/free-photo/neon-style-american-football-player_23-2151827377.jpg","title":"Mbappe Replica Kit"},{"imageSrc":"https://storage.googleapis.com/webild/default/no-image.jpg?id=208oif","title":"Haaland Replica Kit","description":"$120.00"},{"imageSrc":"http://img.b2bpic.net/free-photo/portrait-professional-soccer-player_93675-134364.jpg","title":"Vinicius Replica Kit","description":"$99.00"},{"description":"$110.00","imageSrc":"http://img.b2bpic.net/free-photo/view-american-football-ball_23-2150784018.jpg","title":"Custom Name Replica Kit"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// 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 TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="FANS SPEAK"
title="Trusted by Pro Fans"
description="Read what our community has to say."
testimonials={[
{
name: "John Doe", role: "Fan", quote: "Incredible quality, feels just like the real kits on the field.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-supporter-fan-morocco-national-team-painted-flag-face-get-happy-victory-screaming-into-camera-fans-emotions_231208-7086.jpg"},
{
name: "Sarah Miller", role: "Collector", quote: "The print quality is amazing and has lasted for years.", imageSrc: "http://img.b2bpic.net/free-photo/confused-young-sporty-man-wearing-wristband-holding-ball-isolated-orange-background-with-copy-space_141793-63341.jpg"},
{
name: "Mike Ross", role: "Coach", quote: "Best gear for our entire academy team. Highly recommended.", imageSrc: "http://img.b2bpic.net/free-photo/happy-satisfied-customer-making-ok-gesture_74855-2298.jpg"},
{
name: "Leo Messi Fan", role: "Supporter", quote: "Fast shipping and perfect sizing every single time.", imageSrc: "http://img.b2bpic.net/free-photo/young-crazy-sports-man-happy-expression_1194-5248.jpg"},
{
name: "Ana Silva", role: "Player", quote: "Comfortable, breathable and looks absolutely iconic.", imageSrc: "http://img.b2bpic.net/free-photo/woman-stretching-leg-field_23-2148930211.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}