Merge version_2_1781476108115 into main #2
@@ -36,10 +36,15 @@ export default function Layout() {
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarFloatingLogo
|
||||
logo="Prime Moving"
|
||||
logoImageSrc="http://img.b2bpic.net/free-photo/man-giving-order-curbside-pickup_23-2149106422.jpg"
|
||||
logoImageSrc="https://images.unsplash.com/photo-1600518464441-9154a4dea21b?q=80&w=1000&auto=format&fit=crop"
|
||||
ctaButton={{
|
||||
text: "Get Quote", href: "#quote"}}
|
||||
navItems={navItems}
|
||||
text: "Get Free Estimate", href: "#quote"}}
|
||||
navItems={[
|
||||
{ name: "Services", href: "#services" },
|
||||
{ name: "Service Areas", href: "#areas" },
|
||||
{ name: "About Us", href: "#trust" },
|
||||
{ name: "Contact", href: "#contact" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
<main className="flex-grow">
|
||||
@@ -50,33 +55,33 @@ export default function Layout() {
|
||||
brand="Prime Moving"
|
||||
columns={[
|
||||
{
|
||||
title: "Company", items: [
|
||||
title: "Quick Links", items: [
|
||||
{
|
||||
label: "About Us", href: "#"},
|
||||
label: "Services", href: "#services"},
|
||||
{
|
||||
label: "Legal", href: "#"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Services", items: [
|
||||
label: "Service Areas", href: "#areas"},
|
||||
{
|
||||
label: "Residential", href: "#"},
|
||||
{
|
||||
label: "Commercial", href: "#"},
|
||||
{
|
||||
label: "Freight", href: "#"},
|
||||
label: "About Us", href: "#trust"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Contact", items: [
|
||||
{
|
||||
label: "1099 Shorecrest Ave", href: "#"},
|
||||
label: "+1 (514) 549-9675", href: "tel:+15145499675"},
|
||||
{
|
||||
label: "Laval, QC H7W 1R4", href: "#"},
|
||||
label: "info@prime-moving.ca", href: "mailto:info@prime-moving.ca"},
|
||||
{
|
||||
label: "WhatsApp", href: "https://wa.me/15145499675"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Quotes", items: [
|
||||
{
|
||||
label: "quotes@prime-moving.ca", href: "mailto:quotes@prime-moving.ca"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
copyright="© 2024 93177699 Quebec Inc. All rights reserved."
|
||||
copyright="© 2024 Prime Moving. All rights reserved."
|
||||
links={[
|
||||
{
|
||||
label: "Privacy Policy", href: "#"},
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #0057B8;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #0F172A;
|
||||
--background: #ffffff;
|
||||
--card: #f8fafc;
|
||||
--foreground: #0B1F3A;
|
||||
--primary-cta: #D4AF37;
|
||||
--primary-cta-text: #0B1F3A;
|
||||
--secondary-cta: #0B1F3A;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #2563EB;
|
||||
--background-accent: #e0efff;
|
||||
--accent: #D4AF37;
|
||||
--background-accent: #f1f5f9;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 0.5rem;
|
||||
|
||||
@@ -1,268 +1,36 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
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 TrustSection from './HomePage/sections/Trust';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import CommercialSection from './HomePage/sections/Commercial';
|
||||
import AreasSection from './HomePage/sections/Areas';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import QuoteSection from './HomePage/sections/Quote';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Trusted Canadian Logistics"
|
||||
title="Moving Made Simple. Delivered With Confidence."
|
||||
description="Professional residential, commercial, freight, and pallet transportation services across Quebec and Ontario. Experience reliability, safety, and on-time service with our expert team."
|
||||
primaryButton={{
|
||||
text: "Get Free Quote",
|
||||
href: "#quote",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Call Now",
|
||||
href: "tel:15551234567",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-delivery-people_23-2149103420.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/warehouse-employees-inspecting_482257-75341.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="trust" data-section="trust">
|
||||
<SectionErrorBoundary name="trust">
|
||||
<MetricsFeatureCards
|
||||
tag="Our Commitment"
|
||||
title="Why Choose Prime Moving?"
|
||||
description="Excellence in every mile. We bridge the gap between your requirements and seamless delivery with premium service standards."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Insured Operations",
|
||||
features: [
|
||||
"Full cargo insurance",
|
||||
"Public liability coverage",
|
||||
"Verified professional team",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "24/7",
|
||||
title: "Reliable Scheduling",
|
||||
features: [
|
||||
"On-time delivery guarantee",
|
||||
"Flexible booking options",
|
||||
"Real-time communication",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "Expert",
|
||||
title: "Logistics Specialists",
|
||||
features: [
|
||||
"Residential experts",
|
||||
"Commercial warehouse pros",
|
||||
"Pallet transport leaders",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TrustSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesTaggedCards
|
||||
tag="Our Premium Services"
|
||||
title="Comprehensive Transportation Solutions"
|
||||
description="From residential moves to complex warehouse logistics, Prime Moving handles every detail with professional care."
|
||||
items={[
|
||||
{
|
||||
tag: "Residential",
|
||||
title: "Residential Moving",
|
||||
description: "Seamless home relocations designed to minimize stress with safe handling and efficient packing.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adult-man-woman-carrying-cardboard-boxes_23-2148460906.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Commercial",
|
||||
title: "Commercial & Office",
|
||||
description: "Strategic office and commercial relocations focusing on minimal downtime and professional business flow.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-leaving-work_23-2149392118.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Freight",
|
||||
title: "Freight & Pallets",
|
||||
description: "Expert logistics for pallets, freight, and warehouse transportation throughout Quebec and Ontario.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-warehouse-view_23-2148923141.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="commercial" data-section="commercial">
|
||||
<SectionErrorBoundary name="commercial">
|
||||
<AboutMediaOverlay
|
||||
tag="Business Logistics"
|
||||
title="Commercial Moving & Logistics Solutions"
|
||||
description="Prime Moving works with offices, warehouses, retailers, and commercial clients requiring dependable transportation, pallet movement, freight delivery, and business relocation services. We understand business demands."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/diverse-employees-group-preparing-parcels-managing-stock-organized-warehouse-depot_482257-134846.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<CommercialSection />
|
||||
|
||||
<div id="areas" data-section="areas">
|
||||
<SectionErrorBoundary name="areas">
|
||||
<FeaturesImageBento
|
||||
tag="Service Regions"
|
||||
title="Serving Quebec & Ontario"
|
||||
description="Local expertise meets broad coverage across major metropolitan hubs."
|
||||
items={[
|
||||
{
|
||||
title: "Montreal",
|
||||
description: "Your local moving experts in MTL.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-delivering-box_23-2149103441.jpg",
|
||||
},
|
||||
{
|
||||
title: "Laval",
|
||||
description: "Dedicated service throughout Laval.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-presenting-their-job-resignation_23-2149445146.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ottawa",
|
||||
description: "Reliable routes to the Capital.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-holding-clipboard_23-2148943318.jpg",
|
||||
},
|
||||
{
|
||||
title: "Quebec City",
|
||||
description: "Professional fleet across QC.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/long-line-semi-trucks-highway-through-mountainous-landscape_84443-86049.jpg",
|
||||
},
|
||||
{
|
||||
title: "Toronto",
|
||||
description: "Long-distance and freight connections.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-delivery-man-with-mask_23-2149035866.jpg",
|
||||
},
|
||||
{
|
||||
title: "All Quebec",
|
||||
description: "Covering every province route.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-moving-into-new-home_23-2149199078.jpg",
|
||||
},
|
||||
{
|
||||
title: "All Ontario",
|
||||
description: "Connected and reliable service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-carrying-cardboard-box_23-2149445800.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AreasSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Client Success"
|
||||
title="Trusted by Businesses & Families"
|
||||
description="Professional service is the core of our reputation."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Resident",
|
||||
quote: "Prime Moving made our residential relocation seamless. Professional, punctual, and very careful with our furniture.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-couple-with-cardboard-boxes-new-home-moving-house-concept_1157-47982.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael R.",
|
||||
role: "Office Manager",
|
||||
quote: "We relocated our entire office with Prime Moving and the team was exceptional. Minimal downtime.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-people-working-warehouse_329181-12791.jpg",
|
||||
},
|
||||
{
|
||||
name: "Robert B.",
|
||||
role: "Logistics Lead",
|
||||
quote: "Reliable freight transportation that keeps our warehouse supply chain moving on time.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-wearing-hat_23-2149426503.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily K.",
|
||||
role: "Homeowner",
|
||||
quote: "Excellent packing and loading services. Everything arrived safely in Montreal.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-signing-after-receiving-parcel-with-courier_23-2147787863.jpg",
|
||||
},
|
||||
{
|
||||
name: "David T.",
|
||||
role: "Retail Partner",
|
||||
quote: "Prime Moving handles our daily pallet deliveries with unmatched precision and care.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/storage-room-worker-having-remote-conversation-with-supervisor-talking-landline-phone-storage-room-woman-working-products-inventory-checking-boxes-with-clients-orders-preparing-shipment_482257-73189.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="quote" data-section="quote">
|
||||
<SectionErrorBoundary name="quote">
|
||||
<ContactCta
|
||||
tag="Get Started"
|
||||
text="Ready To Move? Get Your Free Quote Today. Fast response times and competitive pricing."
|
||||
primaryButton={{
|
||||
text: "Request Quote",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Call Now",
|
||||
href: "tel:15551234567",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<QuoteSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<FaqSplitMedia
|
||||
tag="Need Help?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about your next move with Prime Moving."
|
||||
items={[
|
||||
{
|
||||
question: "What areas do you serve?",
|
||||
answer: "We serve all of Quebec and Ontario, focusing on Montreal, Laval, Ottawa, Quebec City, and Toronto.",
|
||||
},
|
||||
{
|
||||
question: "Are you fully insured?",
|
||||
answer: "Yes, we are 93177699 Quebec Inc., fully insured with professional liability and cargo coverage.",
|
||||
},
|
||||
{
|
||||
question: "Do you provide commercial moving?",
|
||||
answer: "Absolutely. We specialize in office relocation, freight transport, and warehouse logistics.",
|
||||
},
|
||||
{
|
||||
question: "How do I get a quote?",
|
||||
answer: "You can fill out our quote request form, call us, or send us a WhatsApp message at any time.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/woman-driving-truck-vehicle_342744-1578.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
57
src/pages/HomePage/sections/Areas.tsx
Normal file
57
src/pages/HomePage/sections/Areas.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "areas" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AreasSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="areas" data-section="areas">
|
||||
<SectionErrorBoundary name="areas">
|
||||
<FeaturesImageBento
|
||||
tag="Service Regions"
|
||||
title="Serving Quebec & Ontario"
|
||||
description="Local expertise meets broad coverage across major metropolitan hubs."
|
||||
items={[
|
||||
{
|
||||
title: "Montreal",
|
||||
description: "Your local moving experts in MTL.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-delivering-box_23-2149103441.jpg",
|
||||
},
|
||||
{
|
||||
title: "Laval",
|
||||
description: "Dedicated service throughout Laval.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-presenting-their-job-resignation_23-2149445146.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ottawa",
|
||||
description: "Reliable routes to the Capital.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-holding-clipboard_23-2148943318.jpg",
|
||||
},
|
||||
{
|
||||
title: "Quebec City",
|
||||
description: "Professional fleet across QC.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/long-line-semi-trucks-highway-through-mountainous-landscape_84443-86049.jpg",
|
||||
},
|
||||
{
|
||||
title: "Toronto",
|
||||
description: "Long-distance and freight connections.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-delivery-man-with-mask_23-2149035866.jpg",
|
||||
},
|
||||
{
|
||||
title: "All Quebec",
|
||||
description: "Covering every province route.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-moving-into-new-home_23-2149199078.jpg",
|
||||
},
|
||||
{
|
||||
title: "All Ontario",
|
||||
description: "Connected and reliable service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-carrying-cardboard-box_23-2149445800.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Commercial.tsx
Normal file
21
src/pages/HomePage/sections/Commercial.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "commercial" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CommercialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="commercial" data-section="commercial">
|
||||
<SectionErrorBoundary name="commercial">
|
||||
<AboutMediaOverlay
|
||||
tag="Business Logistics"
|
||||
title="Commercial Moving & Logistics Solutions"
|
||||
description="Prime Moving works with offices, warehouses, retailers, and commercial clients requiring dependable transportation, pallet movement, freight delivery, and business relocation services. We understand business demands."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/diverse-employees-group-preparing-parcels-managing-stock-organized-warehouse-depot_482257-134846.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
39
src/pages/HomePage/sections/Contact.tsx
Normal file
39
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<FaqSplitMedia
|
||||
tag="Need Help?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about your next move with Prime Moving."
|
||||
items={[
|
||||
{
|
||||
question: "What areas do you serve?",
|
||||
answer: "We serve all of Quebec and Ontario, focusing on Montreal, Laval, Ottawa, Quebec City, and Toronto.",
|
||||
},
|
||||
{
|
||||
question: "Are you fully insured?",
|
||||
answer: "Yes, we are 93177699 Quebec Inc., fully insured with professional liability and cargo coverage.",
|
||||
},
|
||||
{
|
||||
question: "Do you provide commercial moving?",
|
||||
answer: "Absolutely. We specialize in office relocation, freight transport, and warehouse logistics.",
|
||||
},
|
||||
{
|
||||
question: "How do I get a quote?",
|
||||
answer: "You can fill out our quote request form, call us, or send us a WhatsApp message at any time.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/woman-driving-truck-vehicle_342744-1578.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Hero.tsx
Normal file
23
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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 HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Premium Moving Services"
|
||||
title="Moving Made Simple, Reliable & Stress-Free"
|
||||
description="Professional moving services for homes and businesses across Quebec and Ontario. Fast quotes, transparent pricing, and dependable service."
|
||||
primaryButton={{"href":"#quote","text":"Get Your Free Moving Estimate"}}
|
||||
secondaryButton={{"text":"Chat on WhatsApp","href":"https://wa.me/15145499675"}}
|
||||
items={[{"imageSrc":"https://images.unsplash.com/photo-1600518464441-9154a4dea21b?q=80&w=1000&auto=format&fit=crop"},{"imageSrc":"https://images.unsplash.com/photo-1581578731548-c64695cc6952?q=80&w=1000&auto=format&fit=crop"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Quote.tsx
Normal file
27
src/pages/HomePage/sections/Quote.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 "quote" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function QuoteSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="quote" data-section="quote">
|
||||
<SectionErrorBoundary name="quote">
|
||||
<ContactCta
|
||||
tag="Get Started"
|
||||
text="Ready To Move? Get Your Free Quote Today. Fast response times and competitive pricing."
|
||||
primaryButton={{
|
||||
text: "Request Quote",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Call Now",
|
||||
href: "tel:15551234567",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Services.tsx
Normal file
52
src/pages/HomePage/sections/Services.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 "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesTaggedCards
|
||||
tag="Our Premium Services"
|
||||
title="Comprehensive Transportation Solutions"
|
||||
description="From residential moves to complex warehouse logistics, Prime Moving handles every detail with professional care."
|
||||
items={[
|
||||
{
|
||||
tag: "Residential",
|
||||
title: "Residential Moving",
|
||||
description: "Seamless home relocations designed to minimize stress with safe handling and efficient packing.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adult-man-woman-carrying-cardboard-boxes_23-2148460906.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Commercial",
|
||||
title: "Commercial & Office",
|
||||
description: "Strategic office and commercial relocations focusing on minimal downtime and professional business flow.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-leaving-work_23-2149392118.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Freight",
|
||||
title: "Freight & Pallets",
|
||||
description: "Expert logistics for pallets, freight, and warehouse transportation throughout Quebec and Ontario.",
|
||||
primaryButton: {
|
||||
text: "Learn More",
|
||||
href: "#services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-warehouse-view_23-2148923141.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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 TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Client Success"
|
||||
title="Trusted by Businesses & Families"
|
||||
description="Professional service is the core of our reputation."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Resident",
|
||||
quote: "Prime Moving made our residential relocation seamless. Professional, punctual, and very careful with our furniture.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-couple-with-cardboard-boxes-new-home-moving-house-concept_1157-47982.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael R.",
|
||||
role: "Office Manager",
|
||||
quote: "We relocated our entire office with Prime Moving and the team was exceptional. Minimal downtime.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-people-working-warehouse_329181-12791.jpg",
|
||||
},
|
||||
{
|
||||
name: "Robert B.",
|
||||
role: "Logistics Lead",
|
||||
quote: "Reliable freight transportation that keeps our warehouse supply chain moving on time.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-wearing-hat_23-2149426503.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily K.",
|
||||
role: "Homeowner",
|
||||
quote: "Excellent packing and loading services. Everything arrived safely in Montreal.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-signing-after-receiving-parcel-with-courier_23-2147787863.jpg",
|
||||
},
|
||||
{
|
||||
name: "David T.",
|
||||
role: "Retail Partner",
|
||||
quote: "Prime Moving handles our daily pallet deliveries with unmatched precision and care.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/storage-room-worker-having-remote-conversation-with-supervisor-talking-landline-phone-storage-room-woman-working-products-inventory-checking-boxes-with-clients-orders-preparing-shipment_482257-73189.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
49
src/pages/HomePage/sections/Trust.tsx
Normal file
49
src/pages/HomePage/sections/Trust.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 "trust" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TrustSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="trust" data-section="trust">
|
||||
<SectionErrorBoundary name="trust">
|
||||
<MetricsFeatureCards
|
||||
tag="Our Commitment"
|
||||
title="Why Choose Prime Moving?"
|
||||
description="Excellence in every mile. We bridge the gap between your requirements and seamless delivery with premium service standards."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Insured Operations",
|
||||
features: [
|
||||
"Full cargo insurance",
|
||||
"Public liability coverage",
|
||||
"Verified professional team",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "24/7",
|
||||
title: "Reliable Scheduling",
|
||||
features: [
|
||||
"On-time delivery guarantee",
|
||||
"Flexible booking options",
|
||||
"Real-time communication",
|
||||
],
|
||||
},
|
||||
{
|
||||
value: "Expert",
|
||||
title: "Logistics Specialists",
|
||||
features: [
|
||||
"Residential experts",
|
||||
"Commercial warehouse pros",
|
||||
"Pallet transport leaders",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user