Bob AI: i want one big image in hero section

This commit is contained in:
kudinDmitriyUp
2026-06-04 10:52:55 +00:00
parent 789a150f8c
commit 135437233f
9 changed files with 305 additions and 229 deletions

View File

@@ -1,235 +1,28 @@
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesMarqueeCards from '@/components/sections/features/FeaturesMarqueeCards';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
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; this shell only fixes render order.
export default function HomePage() {
import React from 'react';
import AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import PortfolioSection from './HomePage/sections/Portfolio';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import HeroSection from './HomePage/sections/Hero';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroSplitMediaGrid
tag="Your Outdoor Oasis Awaits"
title="Transform Your Landscape with Expertise and Care"
description="At GreenScape Landscaping, we bring your vision to life. From lush gardens to functional outdoor living spaces, our team delivers unparalleled design, installation, and maintenance services."
primaryButton={{
text: "Explore Services",
href: "#services",
}}
secondaryButton={{
text: "Get a Free Quote",
href: "#contact",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/relaxation-space-garden-with-beds_1232-3472.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/pensive-middle-aged-gardener-holding-small-thuja-pot-bearded-garden-worker-glasses-wearing-blue-shirt-apron-growing-evergreen-plants-greenhouse-commercial-gardening-summer-concept_74855-12936.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="About GreenScape"
title="Crafting Beautiful Outdoor Spaces Since 20XX"
description="With years of dedicated experience, GreenScape Landscaping is passionate about creating stunning and sustainable environments that enhance your property's beauty and value. Our commitment to quality, creativity, and client satisfaction sets us apart."
primaryButton={{
text: "Meet Our Team",
href: "#team",
}}
imageSrc="http://img.b2bpic.net/free-photo/close-up-smiley-people-greenhouse_23-2149098326.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesMarqueeCards
tag="Our Core Services"
title="Comprehensive Solutions for Every Landscape Need"
description="We offer a full spectrum of landscaping services, from meticulous design to ongoing maintenance, ensuring your outdoor space is always vibrant and thriving."
items={[
{
title: "Lawn Care & Maintenance",
description: "Keep your lawn healthy and pristine with our professional mowing, fertilizing, and aeration services.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-female-gardener-watering-plants_53876-101140.jpg",
},
{
title: "Garden Design & Planting",
description: "From vibrant flowerbeds to serene rock gardens, we design and install custom gardens tailored to your preferences.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-flowers-right-side-orange-with-copy-space_141793-6498.jpg",
},
{
title: "Hardscaping & Patios",
description: "Enhance your outdoor living with custom patios, walkways, retaining walls, and fire pits built to last.",
imageSrc: "http://img.b2bpic.net/free-photo/stone-road_1417-1558.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="portfolio" data-section="portfolio">
<SectionErrorBoundary name="portfolio">
<FeaturesRevealCardsBento
tag="Our Recent Projects"
title="Showcasing Our Landscaping Masterpieces"
description="Browse a selection of our completed projects that highlight our diverse expertise and commitment to exceptional outdoor design."
items={[
{
title: "Modern Urban Oasis",
description: "A sleek, contemporary garden with minimalist planting and clean lines for city living.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/minimalist-courtyard-pool-design_23-2151934177.jpg",
},
{
title: "Tropical Retreat",
description: "Transformed backyard into a lush, vibrant tropical paradise with exotic plants and water features.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/wooden-dummy-figure-sitting-front-colorful-flowers-table_23-2147925574.jpg",
},
{
title: "Desert Xeriscape",
description: "Water-efficient landscape design featuring native plants, decorative rocks, and stunning succulents.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/background-red-colorful-nature-park_1232-3747.jpg",
},
{
title: "Zen Garden",
description: "A serene Japanese-inspired garden with meticulously placed rocks, raked sand, and peaceful greenery.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-spring-floral-wallpaper_23-2150725103.jpg",
},
{
title: "English Countryside",
description: "A charming and vibrant garden overflowing with traditional English flowers, climbing roses, and winding paths.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/view-backyard-garden-digital-art-style_23-2151488203.jpg",
},
{
title: "Rooftop Sanctuary",
description: "An elevated green space transforming a city rooftop into a lush, inviting outdoor sanctuary.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/artists-garden-filled-with-variety-plants-beautiful-flowers_1258-296326.jpg",
},
{
title: "Edible Landscape",
description: "Sustainable design integrating fruit trees, vegetable beds, and herbs for a beautiful and productive garden.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/plants-grown-cultivated-indoors_23-2149854837.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="Our Impact"
title="Years of Dedication, Thousands of Smiles"
description="Our commitment to excellence shines through in every project, big or small."
metrics={[
{
value: "15+",
description: "Years in Business",
},
{
value: "500+",
description: "Projects Completed",
},
{
value: "98%",
description: "Client Satisfaction",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialTrustCard
quote="GreenScape transformed my barren backyard into a vibrant oasis! Their team was professional, creative, and completed the project ahead of schedule. I couldn't be happier with the results."
rating={5}
author="Sarah M., Homeowner"
avatars={[
{
name: "Sarah M.",
imageSrc: "http://img.b2bpic.net/free-photo/businessman-smiling-looking-camera_23-2148112827.jpg",
},
{
name: "John D.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-with-big-smile-ginger-hair_23-2148263404.jpg",
},
{
name: "Emily R.",
imageSrc: "http://img.b2bpic.net/free-photo/black-businessman-happy-expression_1194-2533.jpg",
},
{
name: "David K.",
imageSrc: "http://img.b2bpic.net/free-photo/expressive-senior-female-posing-indoor_344912-360.jpg",
},
{
name: "Marcus T.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-bearded-smiling-black-man-wool-suit_613910-16049.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Got Questions?"
title="Commonly Asked Questions About Our Services"
description="Find answers to frequently asked questions regarding our landscaping services, processes, and pricing."
items={[
{
question: "What types of landscaping services do you offer?",
answer: "We offer a wide range of services including lawn care, garden design, planting, hardscaping (patios, walkways), irrigation, and seasonal cleanups. Visit our Services section for more details.",
},
{
question: "How do I get a quote for my project?",
answer: "You can request a free, no-obligation quote by filling out the contact form on our website, calling us directly, or emailing us. We'll schedule a consultation to assess your needs.",
},
{
question: "Are your services eco-friendly?",
answer: "Yes, we are committed to sustainable landscaping practices. We prioritize native plant species, efficient irrigation systems, organic fertilizers, and environmentally conscious methods whenever possible.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/still-life-with-gardening-objects_23-2148060724.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Ready to Transform Your Outdoors?"
text="Get in touch with GreenScape Landscaping today for a free consultation and let's create something beautiful together."
primaryButton={{
text: "Request a Free Quote",
href: "#",
}}
secondaryButton={{
text: "Call Us Now",
href: "tel:123-456-7890",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<ServicesSection />
<PortfolioSection />
<MetricsSection />
<TestimonialsSection />
<FaqSection />
<ContactSection />
<HeroSection />
</>
);
}

View File

@@ -0,0 +1,25 @@
// 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 AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="About GreenScape"
title="Crafting Beautiful Outdoor Spaces Since 20XX"
description="With years of dedicated experience, GreenScape Landscaping is passionate about creating stunning and sustainable environments that enhance your property's beauty and value. Our commitment to quality, creativity, and client satisfaction sets us apart."
primaryButton={{
text: "Meet Our Team",
href: "#team",
}}
imageSrc="http://img.b2bpic.net/free-photo/close-up-smiley-people-greenhouse_23-2149098326.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View 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="Ready to Transform Your Outdoors?"
text="Get in touch with GreenScape Landscaping today for a free consultation and let's create something beautiful together."
primaryButton={{
text: "Request a Free Quote",
href: "#",
}}
secondaryButton={{
text: "Call Us Now",
href: "tel:123-456-7890",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,35 @@
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Got Questions?"
title="Commonly Asked Questions About Our Services"
description="Find answers to frequently asked questions regarding our landscaping services, processes, and pricing."
items={[
{
question: "What types of landscaping services do you offer?",
answer: "We offer a wide range of services including lawn care, garden design, planting, hardscaping (patios, walkways), irrigation, and seasonal cleanups. Visit our Services section for more details.",
},
{
question: "How do I get a quote for my project?",
answer: "You can request a free, no-obligation quote by filling out the contact form on our website, calling us directly, or emailing us. We'll schedule a consultation to assess your needs.",
},
{
question: "Are your services eco-friendly?",
answer: "Yes, we are committed to sustainable landscaping practices. We prioritize native plant species, efficient irrigation systems, organic fertilizers, and environmentally conscious methods whenever possible.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/still-life-with-gardening-objects_23-2148060724.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,19 @@
// Created by add_section_from_catalog (HeroBillboard).
import React from 'react';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
export default function HeroSection(): React.JSX.Element {
return (
<div data-webild-section="hero" id="hero">
<HeroBillboard
secondaryButton={{"href":"#contact","text":"Get a Free Quote"}}
tag="Your Outdoor Oasis Awaits"
imageSrc="http://img.b2bpic.net/free-photo/relaxation-space-garden-with-beds_1232-3472.jpg"
primaryButton={{"href":"#services","text":"Explore Services"}}
description="At GreenScape Landscaping, we bring your vision to life. From lush gardens to functional outdoor living spaces, our team delivers unparalleled design, installation, and maintenance services."
title="Transform Your Landscape with Expertise and Care"
/>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// 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="Our Impact"
title="Years of Dedication, Thousands of Smiles"
description="Our commitment to excellence shines through in every project, big or small."
metrics={[
{
value: "15+",
description: "Years in Business",
},
{
value: "500+",
description: "Projects Completed",
},
{
value: "98%",
description: "Client Satisfaction",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "portfolio" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PortfolioSection(): React.JSX.Element {
return (
<div id="portfolio" data-section="portfolio">
<SectionErrorBoundary name="portfolio">
<FeaturesRevealCardsBento
tag="Our Recent Projects"
title="Showcasing Our Landscaping Masterpieces"
description="Browse a selection of our completed projects that highlight our diverse expertise and commitment to exceptional outdoor design."
items={[
{
title: "Modern Urban Oasis",
description: "A sleek, contemporary garden with minimalist planting and clean lines for city living.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/minimalist-courtyard-pool-design_23-2151934177.jpg",
},
{
title: "Tropical Retreat",
description: "Transformed backyard into a lush, vibrant tropical paradise with exotic plants and water features.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/wooden-dummy-figure-sitting-front-colorful-flowers-table_23-2147925574.jpg",
},
{
title: "Desert Xeriscape",
description: "Water-efficient landscape design featuring native plants, decorative rocks, and stunning succulents.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/background-red-colorful-nature-park_1232-3747.jpg",
},
{
title: "Zen Garden",
description: "A serene Japanese-inspired garden with meticulously placed rocks, raked sand, and peaceful greenery.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-spring-floral-wallpaper_23-2150725103.jpg",
},
{
title: "English Countryside",
description: "A charming and vibrant garden overflowing with traditional English flowers, climbing roses, and winding paths.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/view-backyard-garden-digital-art-style_23-2151488203.jpg",
},
{
title: "Rooftop Sanctuary",
description: "An elevated green space transforming a city rooftop into a lush, inviting outdoor sanctuary.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/artists-garden-filled-with-variety-plants-beautiful-flowers_1258-296326.jpg",
},
{
title: "Edible Landscape",
description: "Sustainable design integrating fruit trees, vegetable beds, and herbs for a beautiful and productive garden.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/plants-grown-cultivated-indoors_23-2149854837.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 "services" section.
import React from 'react';
import FeaturesMarqueeCards from '@/components/sections/features/FeaturesMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesMarqueeCards
tag="Our Core Services"
title="Comprehensive Solutions for Every Landscape Need"
description="We offer a full spectrum of landscaping services, from meticulous design to ongoing maintenance, ensuring your outdoor space is always vibrant and thriving."
items={[
{
title: "Lawn Care & Maintenance",
description: "Keep your lawn healthy and pristine with our professional mowing, fertilizing, and aeration services.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-female-gardener-watering-plants_53876-101140.jpg",
},
{
title: "Garden Design & Planting",
description: "From vibrant flowerbeds to serene rock gardens, we design and install custom gardens tailored to your preferences.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-flowers-right-side-orange-with-copy-space_141793-6498.jpg",
},
{
title: "Hardscaping & Patios",
description: "Enhance your outdoor living with custom patios, walkways, retaining walls, and fire pits built to last.",
imageSrc: "http://img.b2bpic.net/free-photo/stone-road_1417-1558.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,42 @@
// 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 TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialTrustCard
quote="GreenScape transformed my barren backyard into a vibrant oasis! Their team was professional, creative, and completed the project ahead of schedule. I couldn't be happier with the results."
rating={5}
author="Sarah M., Homeowner"
avatars={[
{
name: "Sarah M.",
imageSrc: "http://img.b2bpic.net/free-photo/businessman-smiling-looking-camera_23-2148112827.jpg",
},
{
name: "John D.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-with-big-smile-ginger-hair_23-2148263404.jpg",
},
{
name: "Emily R.",
imageSrc: "http://img.b2bpic.net/free-photo/black-businessman-happy-expression_1194-2533.jpg",
},
{
name: "David K.",
imageSrc: "http://img.b2bpic.net/free-photo/expressive-senior-female-posing-indoor_344912-360.jpg",
},
{
name: "Marcus T.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-bearded-smiling-black-man-wool-suit_613910-16049.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}