diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index ec34b13..40210cd 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,194 +1,32 @@ -import AboutTestimonial from '@/components/sections/about/AboutTestimonial'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; -import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp'; -import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee'; -import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards'; -import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards'; -import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; -import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards'; -import { Cloud, Gauge, Leaf } from "lucide-react"; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly; this shell only fixes render order. -export default function HomePage() { +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import AboutSection from './HomePage/sections/About'; +import ProcessSection from './HomePage/sections/Process'; +import ServicesSection from './HomePage/sections/Services'; +import PricingSection from './HomePage/sections/Pricing'; +import MetricsSection from './HomePage/sections/Metrics'; +import TestimonialsSection from './HomePage/sections/Testimonials'; +import SocialProofSection from './HomePage/sections/SocialProof'; +import ContactSection from './HomePage/sections/Contact'; + + +import FaqSection from './HomePage/sections/Faq';export default function HomePage(): React.JSX.Element { return ( <> -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
+ + + + + + + + + + ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..f5e9cfc --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,22 @@ +// 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 AboutTestimonial from '@/components/sections/about/AboutTestimonial'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..130f6dc --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..7b73025 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,61 @@ +// Created by create_section tool. + +import React from 'react'; +import Tag from '@/components/ui/Tag'; +import ScrollReveal from '@/components/ui/ScrollReveal'; + +export default function FaqSection(): React.JSX.Element { + return ( +
+
+
+ +

+ Frequently Asked Questions +

+

+ Find answers to common questions about our HVAC services, maintenance, and more. +

+
+ +
+ {[ + { + question: "How often should I have my HVAC system serviced?", + answer: "We recommend having your HVAC system serviced at least twice a year—once in the spring for your AC and once in the fall for your heating system. Regular maintenance helps prevent breakdowns and ensures optimal efficiency." + }, + { + question: "What are the signs that my AC needs repair?", + answer: "Common signs include unusual noises, weak airflow, warm air blowing from vents, frequent cycling, and unexpected increases in your energy bills. If you notice any of these, it's best to call a professional." + }, + { + question: "Do you offer emergency HVAC services?", + answer: "Yes, we offer 24/7 emergency repair services. HVAC emergencies don't always happen during business hours, so our team is ready to help restore your comfort whenever you need us." + }, + { + question: "How can I improve my home's indoor air quality?", + answer: "Improving indoor air quality can be achieved by regularly changing air filters, installing air purifiers or UV lamps, ensuring proper ventilation, and keeping your ductwork clean." + }, + { + question: "What is the average lifespan of an HVAC system?", + answer: "Most HVAC systems last between 15 to 20 years, depending on the model, usage, and how well they are maintained. Regular servicing can significantly extend the life of your unit." + }, + { + question: "Are your technicians licensed and insured?", + answer: "Absolutely. All of our technicians are fully licensed, insured, and undergo regular training to stay up-to-date with the latest HVAC technologies and safety standards." + } + ].map((faq, index) => ( + +

+ {faq.question} +

+

+ {faq.answer} +

+
+ ))} +
+
+
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..992c6e6 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -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 { Cloud, Gauge, Leaf } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..b70d2b9 --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Pricing.tsx b/src/pages/HomePage/sections/Pricing.tsx new file mode 100644 index 0000000..642c978 --- /dev/null +++ b/src/pages/HomePage/sections/Pricing.tsx @@ -0,0 +1,40 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "pricing" section. + +import React from 'react'; +import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function PricingSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Process.tsx b/src/pages/HomePage/sections/Process.tsx new file mode 100644 index 0000000..53cff21 --- /dev/null +++ b/src/pages/HomePage/sections/Process.tsx @@ -0,0 +1,28 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "process" section. + +import React from 'react'; +import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ProcessSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Services.tsx b/src/pages/HomePage/sections/Services.tsx new file mode 100644 index 0000000..d21568a --- /dev/null +++ b/src/pages/HomePage/sections/Services.tsx @@ -0,0 +1,36 @@ +// 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 FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ServicesSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/SocialProof.tsx b/src/pages/HomePage/sections/SocialProof.tsx new file mode 100644 index 0000000..b7d7df5 --- /dev/null +++ b/src/pages/HomePage/sections/SocialProof.tsx @@ -0,0 +1,22 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "social-proof" section. + +import React from 'react'; +import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function SocialProofSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx new file mode 100644 index 0000000..81191af --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -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 TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TestimonialsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +}