Bob AI: Added certifications strip below hero section

This commit is contained in:
kudinDmitriyUp
2026-06-18 23:30:11 +00:00
parent 8d3d36d934
commit eb52664b41
10 changed files with 295 additions and 166 deletions

View File

@@ -1,178 +1,38 @@
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
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 ProductsSection from './HomePage/sections/Products';
import MetricsSection from './HomePage/sections/Metrics';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import CertificationsSection from './HomePage/sections/Certifications';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroTiltedCards
tag="Licensed & Insured Experts"
title="Powering Your Future With Precision"
description="Professional electrical services for residential and commercial clients. Quality workmanship, safety first."
primaryButton={{
text: "Get a Quote", href: "#contact"}}
secondaryButton={{
text: "Our Services", href: "#features"}}
items={[
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-electrician-works-with-tablet-near-electrical-panel-digital-control_169016-71089.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/notepad-supplies_23-2147710920.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-with-electrical-connecting-cab_169016-1474.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/electrician-installer-with-tool-his-hands-working-with-cable-construction-site_169016-5885.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-overalls-against-backdrop-emergency-lighting_169016-66832.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<CertificationsSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Expert Solutions"
title="Comprehensive Electrical Services"
description="From emergency repairs to advanced smart home installations, we handle it all with professional care."
items={[
{
tag: "Emergency", title: "24/7 Repairs", description: "Rapid response for all critical electrical emergencies.", primaryButton: {
text: "Call Now", href: "#contact"},
imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-with-electrical-connecting-cable_169016-18199.jpg"},
{
tag: "Smart Home", title: "Home Automation", description: "Full integration for lighting, climate, and security systems.", primaryButton: {
text: "Learn More", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/electrical-technician-looking-focused-while-working-switchboard-with-fuses_169016-23922.jpg"},
{
tag: "Green Energy", title: "Solar Installation", description: "Sustainable energy solutions for residential solar power.", primaryButton: {
text: "View Plans", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/man-with-white-helmet-near-solar-panel_1157-29992.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Premium Components"
title="Our Trusted Equipment"
description="We only install high-quality, durable electrical components for your safety and convenience."
items={[
{ title: "Modern Switches", description: "Sleek finishes for every room", imageSrc: "http://img.b2bpic.net/free-photo/white-electric-socket_1339-4846.jpg" },
{ title: "Smart Thermostats", description: "Efficient energy management", imageSrc: "http://img.b2bpic.net/free-photo/person-looking-mobile-phone-with-lighting-controlling-app-sitting-kitchen-house-with-automation-light-system-turning-bulb-using-voice-command_482257-2272.jpg" },
{ title: "Security Cameras", description: "Full HD monitoring solutions", imageSrc: "http://img.b2bpic.net/free-photo/security-guard-workspace_23-2150321645.jpg" },
{ title: "LED Lighting Kits", description: "Energy-efficient ambiance", imageSrc: "http://img.b2bpic.net/free-photo/sofa_1203-3069.jpg" },
{ title: "Video Doorbells", description: "See who is at your door", imageSrc: "http://img.b2bpic.net/free-photo/senior-woman-using-smartphone-sitting-sofa_23-2149356606.jpg" },
{ title: "EV Chargers", description: "Faster charging at home", imageSrc: "http://img.b2bpic.net/free-photo/close-view-electric-car-charging-station_1268-20909.jpg" },
{ title: "Surge Protectors", description: "Protect your electronics", imageSrc: "http://img.b2bpic.net/free-photo/electrical-panel-with-fuses-contactors-closeup_169016-24158.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Our Impact"
title="Experience You Can Count On"
description="Decades of service delivering safety and satisfaction across the region."
metrics={[
{
value: "1500+", title: "Projects Completed", description: "Successfully finished residential and commercial tasks.", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-51895.jpg"},
{
value: "24/7", title: "Emergency Support", description: "Always there when you need urgent help.", imageSrc: "http://img.b2bpic.net/free-photo/different-electrical-tools-digital-tablet-wooden-background-flat-lay_169016-24603.jpg"},
{
value: "500+", title: "Happy Clients", description: "Trusted by hundreds of local homeowners.", imageSrc: "http://img.b2bpic.net/free-photo/woman-changing-ligh-tbulb_53876-48893.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="The Experts"
title="Meet Our Certified Team"
description="Qualified electricians dedicated to excellence and customer satisfaction."
members={[
{ name: "John Doe", role: "Master Electrician", imageSrc: "http://img.b2bpic.net/free-photo/young-bearded-handsome-builder-wearing-construction-uniform-cap-standing-with-arms-crossed-self-confident-smiling-isolated-orange-wall_141793-15716.jpg" },
{ name: "Jane Smith", role: "Senior Technician", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg" },
{ name: "Mike Johnson", role: "Automation Specialist", imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-working-business-with-computer_482257-20185.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Client Voices"
title="Why Clients Trust Us"
description="See what our local partners and residents have to say about our electrical services."
testimonials={[
{
name: "Sarah Miller", role: "Homeowner", quote: "Fantastic service! Very thorough and friendly.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-girl-white-shirt-black-pants-looking-camera-happy-excited-holding-hands-her-head-sitting-chair-light-living-room_141793-94175.jpg"},
{
name: "David Clark", role: "Business Owner", quote: "Professional, efficient, and cost-effective.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiley-business-owner-with-document-medium-shot_23-2149434531.jpg"},
{
name: "Elena Ross", role: "Architect", quote: "Great attention to detail and modern solutions.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/lovely-couple-moving-start-new-life-house-flat-man-hugs-his-lady-apartment-boxes_197531-1633.jpg"},
{
name: "George Brown", role: "Retired", quote: "Fixed my breaker in minutes! Life saver.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/grandma-grandpa-cooking-together_52683-116807.jpg"},
{
name: "Alice Wong", role: "Homeowner", quote: "Very reliable team. Highly recommended.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-modern-house-kitchen-dining-room_181624-2870.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Knowledge Hub"
title="Frequently Asked Questions"
description="Answers to common concerns about our residential and commercial services."
categories={[
{
name: "General", items: [
{
question: "Are you licensed?", answer: "Yes, we are fully licensed and insured."},
{
question: "What areas do you serve?", answer: "We serve the entire metro area."},
],
},
{
name: "Emergency", items: [
{
question: "What is an emergency?", answer: "Power outages, exposed wires, sparking equipment."},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Ready to Start?"
text="Get a free consultation for your next electrical project today."
primaryButton={{
text: "Contact Us", href: "mailto:hello@volttech.com"}}
secondaryButton={{
text: "View Plans", href: "#features"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,26 @@
import { ShieldCheck, Award, CheckCircle, Zap } from "lucide-react";
export default function CertificationsSection() {
return (
<section data-webild-section="certifications" className="w-full py-8 bg-background-accent/10 border-y border-background-accent/20">
<div className="w-content-width mx-auto flex flex-wrap justify-center items-center gap-8 md:gap-16 text-foreground">
<div className="flex items-center gap-3">
<Award className="w-6 h-6 text-primary-cta" />
<span className="font-semibold text-sm md:text-base">Master Electrician</span>
</div>
<div className="flex items-center gap-3">
<ShieldCheck className="w-6 h-6 text-primary-cta" />
<span className="font-semibold text-sm md:text-base">BBB Accredited</span>
</div>
<div className="flex items-center gap-3">
<CheckCircle className="w-6 h-6 text-primary-cta" />
<span className="font-semibold text-sm md:text-base">ESA Licensed</span>
</div>
<div className="flex items-center gap-3">
<Zap className="w-6 h-6 text-primary-cta" />
<span className="font-semibold text-sm md:text-base">Fully Insured</span>
</div>
</div>
</section>
);
}

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="Ready to Start?"
text="Get a free consultation for your next electrical project today."
primaryButton={{
text: "Contact Us", href: "mailto:hello@volttech.com"}}
secondaryButton={{
text: "View Plans", href: "#features"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// 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="Knowledge Hub"
title="Frequently Asked Questions"
description="Answers to common concerns about our residential and commercial services."
categories={[
{
name: "General", items: [
{
question: "Are you licensed?", answer: "Yes, we are fully licensed and insured."},
{
question: "What areas do you serve?", answer: "We serve the entire metro area."},
],
},
{
name: "Emergency", items: [
{
question: "What is an emergency?", answer: "Power outages, exposed wires, sparking equipment."},
],
},
]}
/>
</SectionErrorBoundary>
</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 "features" section.
import React from 'react';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Expert Solutions"
title="Comprehensive Electrical Services"
description="From emergency repairs to advanced smart home installations, we handle it all with professional care."
items={[
{
tag: "Emergency", title: "24/7 Repairs", description: "Rapid response for all critical electrical emergencies.", primaryButton: {
text: "Call Now", href: "#contact"},
imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-with-electrical-connecting-cable_169016-18199.jpg"},
{
tag: "Smart Home", title: "Home Automation", description: "Full integration for lighting, climate, and security systems.", primaryButton: {
text: "Learn More", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/electrical-technician-looking-focused-while-working-switchboard-with-fuses_169016-23922.jpg"},
{
tag: "Green Energy", title: "Solar Installation", description: "Sustainable energy solutions for residential solar power.", primaryButton: {
text: "View Plans", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/man-with-white-helmet-near-solar-panel_1157-29992.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,31 @@
// 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 HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroTiltedCards
tag="Licensed & Insured Experts"
title="Powering Your Future With Precision"
description="Professional electrical services for residential and commercial clients. Quality workmanship, safety first."
primaryButton={{
text: "Get a Quote", href: "#contact"}}
secondaryButton={{
text: "Our Services", href: "#features"}}
items={[
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-electrician-works-with-tablet-near-electrical-panel-digital-control_169016-71089.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/notepad-supplies_23-2147710920.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-with-electrical-connecting-cab_169016-1474.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/electrician-installer-with-tool-his-hands-working-with-cable-construction-site_169016-5885.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-overalls-against-backdrop-emergency-lighting_169016-66832.jpg" },
]}
/>
</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 "metrics" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Our Impact"
title="Experience You Can Count On"
description="Decades of service delivering safety and satisfaction across the region."
metrics={[
{
value: "1500+", title: "Projects Completed", description: "Successfully finished residential and commercial tasks.", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-51895.jpg"},
{
value: "24/7", title: "Emergency Support", description: "Always there when you need urgent help.", imageSrc: "http://img.b2bpic.net/free-photo/different-electrical-tools-digital-tablet-wooden-background-flat-lay_169016-24603.jpg"},
{
value: "500+", title: "Happy Clients", description: "Trusted by hundreds of local homeowners.", imageSrc: "http://img.b2bpic.net/free-photo/woman-changing-ligh-tbulb_53876-48893.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// 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="Premium Components"
title="Our Trusted Equipment"
description="We only install high-quality, durable electrical components for your safety and convenience."
items={[
{ title: "Modern Switches", description: "Sleek finishes for every room", imageSrc: "http://img.b2bpic.net/free-photo/white-electric-socket_1339-4846.jpg" },
{ title: "Smart Thermostats", description: "Efficient energy management", imageSrc: "http://img.b2bpic.net/free-photo/person-looking-mobile-phone-with-lighting-controlling-app-sitting-kitchen-house-with-automation-light-system-turning-bulb-using-voice-command_482257-2272.jpg" },
{ title: "Security Cameras", description: "Full HD monitoring solutions", imageSrc: "http://img.b2bpic.net/free-photo/security-guard-workspace_23-2150321645.jpg" },
{ title: "LED Lighting Kits", description: "Energy-efficient ambiance", imageSrc: "http://img.b2bpic.net/free-photo/sofa_1203-3069.jpg" },
{ title: "Video Doorbells", description: "See who is at your door", imageSrc: "http://img.b2bpic.net/free-photo/senior-woman-using-smartphone-sitting-sofa_23-2149356606.jpg" },
{ title: "EV Chargers", description: "Faster charging at home", imageSrc: "http://img.b2bpic.net/free-photo/close-view-electric-car-charging-station_1268-20909.jpg" },
{ title: "Surge Protectors", description: "Protect your electronics", imageSrc: "http://img.b2bpic.net/free-photo/electrical-panel-with-fuses-contactors-closeup_169016-24158.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
);
}

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 "team" section.
import React from 'react';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="The Experts"
title="Meet Our Certified Team"
description="Qualified electricians dedicated to excellence and customer satisfaction."
members={[
{ name: "John Doe", role: "Master Electrician", imageSrc: "http://img.b2bpic.net/free-photo/young-bearded-handsome-builder-wearing-construction-uniform-cap-standing-with-arms-crossed-self-confident-smiling-isolated-orange-wall_141793-15716.jpg" },
{ name: "Jane Smith", role: "Senior Technician", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg" },
{ name: "Mike Johnson", role: "Automation Specialist", imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-working-business-with-computer_482257-20185.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 "testimonials" section.
import React from 'react';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Client Voices"
title="Why Clients Trust Us"
description="See what our local partners and residents have to say about our electrical services."
testimonials={[
{
name: "Sarah Miller", role: "Homeowner", quote: "Fantastic service! Very thorough and friendly.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-girl-white-shirt-black-pants-looking-camera-happy-excited-holding-hands-her-head-sitting-chair-light-living-room_141793-94175.jpg"},
{
name: "David Clark", role: "Business Owner", quote: "Professional, efficient, and cost-effective.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiley-business-owner-with-document-medium-shot_23-2149434531.jpg"},
{
name: "Elena Ross", role: "Architect", quote: "Great attention to detail and modern solutions.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/lovely-couple-moving-start-new-life-house-flat-man-hugs-his-lady-apartment-boxes_197531-1633.jpg"},
{
name: "George Brown", role: "Retired", quote: "Fixed my breaker in minutes! Life saver.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/grandma-grandpa-cooking-together_52683-116807.jpg"},
{
name: "Alice Wong", role: "Homeowner", quote: "Very reliable team. Highly recommended.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-modern-house-kitchen-dining-room_181624-2870.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}