Merge version_2 into main #1
@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||
import Tag from "@/tag/Tag";
|
||||
import { getVisualEditScript } from "@/utils/visual-edit-script";
|
||||
import { Public_Sans } from "next/font/google";
|
||||
import { Libre_Baskerville } from "next/font/google";
|
||||
|
||||
|
||||
|
||||
@@ -21,13 +22,13 @@ export const metadata: Metadata = {
|
||||
},
|
||||
};
|
||||
|
||||
const publicSans = Public_Sans({
|
||||
variable: "--font-public-sans",
|
||||
subsets: ["latin"],
|
||||
|
||||
const libreBaskerville = Libre_Baskerville({
|
||||
variable: "--font-libre-baskerville", subsets: ["latin"],
|
||||
weight: ["400", "700"],
|
||||
});
|
||||
const inter = Inter({
|
||||
variable: "--font-inter",
|
||||
subsets: ["latin"],
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
export default function RootLayout({
|
||||
@@ -38,7 +39,7 @@ export default function RootLayout({
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
<body className={`${publicSans.variable} ${inter.variable} antialiased`}>
|
||||
<body className={`${libreBaskerville.variable} ${inter.variable} antialiased`}>
|
||||
<Tag />
|
||||
{children}
|
||||
<script
|
||||
|
||||
193
src/app/page.tsx
193
src/app/page.tsx
@@ -30,25 +30,15 @@ export default function LandingPage() {
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{
|
||||
name: "Home",
|
||||
id: "/",
|
||||
},
|
||||
name: "Home", id: "/"},
|
||||
{
|
||||
name: "About",
|
||||
id: "#about",
|
||||
},
|
||||
name: "About", id: "#about"},
|
||||
{
|
||||
name: "Services",
|
||||
id: "#services",
|
||||
},
|
||||
name: "Services", id: "#services"},
|
||||
{
|
||||
name: "Testimonials",
|
||||
id: "#testimonials",
|
||||
},
|
||||
name: "Testimonials", id: "#testimonials"},
|
||||
{
|
||||
name: "Contact",
|
||||
id: "#contact",
|
||||
},
|
||||
name: "Contact", id: "#contact"},
|
||||
]}
|
||||
brandName="Papas Plumbing"
|
||||
/>
|
||||
@@ -60,35 +50,21 @@ export default function LandingPage() {
|
||||
description="Papas Plumbing delivers honest, expert solutions for every plumbing challenge—from emergency repairs to luxury installations. Serving families with transparent pricing and same-day service."
|
||||
buttons={[
|
||||
{
|
||||
text: "Schedule Your Service Today",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Schedule Your Service Today", href: "#contact"},
|
||||
]}
|
||||
slides={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-bathroom-with-big-mirror_1203-1497.jpg",
|
||||
imageAlt: "Luxury home plumbing",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-bathroom-with-big-mirror_1203-1497.jpg", imageAlt: "Luxury home plumbing"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721552.jpg",
|
||||
imageAlt: "Professional plumbing service",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721552.jpg", imageAlt: "Professional plumbing service"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spring-faucet-led-strip-blue-kitchen_169016-69053.jpg",
|
||||
imageAlt: "Luxury kitchen fixtures",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spring-faucet-led-strip-blue-kitchen_169016-69053.jpg", imageAlt: "Luxury kitchen fixtures"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-carpenter-working-with-experienced-man_329181-15627.jpg",
|
||||
imageAlt: "Emergency repair services",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-carpenter-working-with-experienced-man_329181-15627.jpg", imageAlt: "Emergency repair services"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-white-bathrobe-filling-bath-with-water_259150-59743.jpg",
|
||||
imageAlt: "High-end piping systems",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/person-white-bathrobe-filling-bath-with-water_259150-59743.jpg", imageAlt: "High-end piping systems"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/working-day-two-indian-men-discussing-something-looking-involved_259150-59414.jpg",
|
||||
imageAlt: "Family-trusted plumbing team",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/working-day-two-indian-men-discussing-something-looking-involved_259150-59414.jpg", imageAlt: "Family-trusted plumbing team"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -98,10 +74,7 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
title="Family-Owned, Expert-Driven"
|
||||
description={[
|
||||
"For generations, Papas Plumbing has been the standard for reliability and excellence in local plumbing services.",
|
||||
"Our team of licensed experts combines deep technical knowledge with a family-oriented approach, ensuring every customer feels heard and valued.",
|
||||
"We focus on transparency in pricing and delivering the highest quality work, whether it’s a simple faucet replacement or a complete home installation.",
|
||||
]}
|
||||
"For generations, Papas Plumbing has been the standard for reliability and excellence in local plumbing services.", "Our team of licensed experts combines deep technical knowledge with a family-oriented approach, ensuring every customer feels heard and valued.", "We focus on transparency in pricing and delivering the highest quality work, whether it’s a simple faucet replacement or a complete home installation."]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -113,23 +86,11 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
features={[
|
||||
{
|
||||
title: "Emergency Repairs",
|
||||
description: "Rapid response to burst pipes, severe leaks, and plumbing emergencies around the clock.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/plumber-covering-his-mouth_1368-772.jpg",
|
||||
imageAlt: "Emergency plumbing",
|
||||
},
|
||||
title: "Emergency Repairs", description: "Rapid response to burst pipes, severe leaks, and plumbing emergencies around the clock.", imageSrc: "http://img.b2bpic.net/free-photo/plumber-covering-his-mouth_1368-772.jpg", imageAlt: "Emergency plumbing"},
|
||||
{
|
||||
title: "Water Heater Solutions",
|
||||
description: "Full-service installation and maintenance of high-efficiency water heating systems.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-autonomous-heating-system-boiler-room_169016-51414.jpg",
|
||||
imageAlt: "Water heater service",
|
||||
},
|
||||
title: "Water Heater Solutions", description: "Full-service installation and maintenance of high-efficiency water heating systems.", imageSrc: "http://img.b2bpic.net/free-photo/modern-autonomous-heating-system-boiler-room_169016-51414.jpg", imageAlt: "Water heater service"},
|
||||
{
|
||||
title: "Advanced Drain Cleaning",
|
||||
description: "Professional-grade drain cleaning services to keep your system flowing freely and efficiently.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-drying-glass-with-kitchen-towel-by-black-faucet-drying-dishes_169016-69554.jpg",
|
||||
imageAlt: "Drain cleaning",
|
||||
},
|
||||
title: "Advanced Drain Cleaning", description: "Professional-grade drain cleaning services to keep your system flowing freely and efficiently.", imageSrc: "http://img.b2bpic.net/free-photo/man-drying-glass-with-kitchen-towel-by-black-faucet-drying-dishes_169016-69554.jpg", imageAlt: "Drain cleaning"},
|
||||
]}
|
||||
title="Comprehensive Plumbing Services"
|
||||
description="We offer a wide range of plumbing services designed to maintain your home’s systems to the highest standards."
|
||||
@@ -144,20 +105,11 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
metrics={[
|
||||
{
|
||||
id: "m1",
|
||||
value: "15+",
|
||||
description: "Years of Service",
|
||||
},
|
||||
id: "m1", value: "15+", description: "Years of Service"},
|
||||
{
|
||||
id: "m2",
|
||||
value: "5k+",
|
||||
description: "Successful Repairs",
|
||||
},
|
||||
id: "m2", value: "5k+", description: "Successful Repairs"},
|
||||
{
|
||||
id: "m3",
|
||||
value: "99%",
|
||||
description: "Client Satisfaction",
|
||||
},
|
||||
id: "m3", value: "99%", description: "Client Satisfaction"},
|
||||
]}
|
||||
title="Trust Through Numbers"
|
||||
description="Results that speak for themselves."
|
||||
@@ -171,59 +123,28 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "t1",
|
||||
name: "Sarah Jenkins",
|
||||
role: "Homeowner",
|
||||
company: "Local Community",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-elder-woman-kitchen-holding-tablet_23-2148419314.jpg",
|
||||
},
|
||||
id: "t1", name: "Sarah Jenkins", role: "Homeowner", company: "Local Community", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-elder-woman-kitchen-holding-tablet_23-2148419314.jpg"},
|
||||
{
|
||||
id: "t2",
|
||||
name: "Michael Roberts",
|
||||
role: "Homeowner",
|
||||
company: "Local Community",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pleased-young-male-builder-wearing-uniform-safety-helmet-showing-handshakes-gesture-purple_141793-74804.jpg",
|
||||
},
|
||||
id: "t2", name: "Michael Roberts", role: "Homeowner", company: "Local Community", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pleased-young-male-builder-wearing-uniform-safety-helmet-showing-handshakes-gesture-purple_141793-74804.jpg"},
|
||||
{
|
||||
id: "t3",
|
||||
name: "Emily Chen",
|
||||
role: "Homeowner",
|
||||
company: "Local Community",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/father-holding-child-while-kitchen-with-copy-space_23-2148463645.jpg",
|
||||
},
|
||||
id: "t3", name: "Emily Chen", role: "Homeowner", company: "Local Community", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/father-holding-child-while-kitchen-with-copy-space_23-2148463645.jpg"},
|
||||
{
|
||||
id: "t4",
|
||||
name: "David Thorne",
|
||||
role: "Homeowner",
|
||||
company: "Local Community",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990733.jpg",
|
||||
},
|
||||
id: "t4", name: "David Thorne", role: "Homeowner", company: "Local Community", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-plumber-working-fix-problems-client-s-house_23-2150990733.jpg"},
|
||||
{
|
||||
id: "t5",
|
||||
name: "Jessica Moore",
|
||||
role: "Business Owner",
|
||||
company: "Local Cafe",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/serviceman-does-checkup-client-car_482257-76119.jpg",
|
||||
},
|
||||
id: "t5", name: "Jessica Moore", role: "Business Owner", company: "Local Cafe", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/serviceman-does-checkup-client-car_482257-76119.jpg"},
|
||||
]}
|
||||
kpiItems={[
|
||||
{
|
||||
value: "4.9/5",
|
||||
label: "Avg Rating",
|
||||
},
|
||||
value: "4.9/5", label: "Avg Rating"},
|
||||
{
|
||||
value: "100%",
|
||||
label: "Verified",
|
||||
},
|
||||
value: "100%", label: "Verified"},
|
||||
{
|
||||
value: "24/7",
|
||||
label: "Available",
|
||||
},
|
||||
value: "24/7", label: "Available"},
|
||||
]}
|
||||
title="Trusted by Local Families"
|
||||
description="Don't just take our word for it—read what our valued clients say."
|
||||
@@ -234,16 +155,13 @@ export default function LandingPage() {
|
||||
<ContactCTA
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
variant: "plain",
|
||||
}}
|
||||
variant: "plain"}}
|
||||
tag="Get in touch"
|
||||
title="Ready for Plumbing Help?"
|
||||
description="Schedule a service or consultation today and experience the Papas Plumbing difference."
|
||||
buttons={[
|
||||
{
|
||||
text: "Book Your Appointment Now",
|
||||
href: "tel:+18005550199",
|
||||
},
|
||||
text: "Book Your Appointment Now", href: "tel:+18005550199"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -252,50 +170,31 @@ export default function LandingPage() {
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: "Services",
|
||||
items: [
|
||||
title: "Services", items: [
|
||||
{
|
||||
label: "Emergency Repairs",
|
||||
href: "#services",
|
||||
},
|
||||
label: "Emergency Repairs", href: "#services"},
|
||||
{
|
||||
label: "Water Heaters",
|
||||
href: "#services",
|
||||
},
|
||||
label: "Water Heaters", href: "#services"},
|
||||
{
|
||||
label: "Drain Cleaning",
|
||||
href: "#services",
|
||||
},
|
||||
label: "Drain Cleaning", href: "#services"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#about",
|
||||
},
|
||||
label: "About Us", href: "#about"},
|
||||
{
|
||||
label: "Reviews",
|
||||
href: "#testimonials",
|
||||
},
|
||||
label: "Reviews", href: "#testimonials"},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
label: "Contact", href: "#contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
title: "Legal", items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
label: "Privacy Policy", href: "#"},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
label: "Terms of Service", href: "#"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
@@ -306,4 +205,4 @@ export default function LandingPage() {
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -24,5 +24,5 @@ h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-public-sans), sans-serif;
|
||||
font-family: var(--font-libre-baskerville), serif;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user