66 Commits

Author SHA1 Message Date
991029a66a Update src/app/page.tsx 2026-03-10 16:43:08 +00:00
5d680badc5 Update src/app/contact/page.tsx 2026-03-10 16:43:06 +00:00
3040ee7707 Update src/app/styles/variables.css 2026-03-10 16:38:02 +00:00
9a3f4d6c2c Update src/app/page.tsx 2026-03-10 16:38:00 +00:00
1a1ca65727 Update src/app/contact/page.tsx 2026-03-10 16:37:58 +00:00
e779a2f06d Update src/app/page.tsx 2026-03-10 16:09:35 +00:00
de509fb6f9 Update src/app/contact/page.tsx 2026-03-10 16:09:33 +00:00
fd1d1351d5 Add src/app/admin/page.tsx 2026-03-10 16:09:31 +00:00
d9cca644e1 Switch to version 5: remove src/app/service-request/page.tsx 2026-03-10 16:07:03 +00:00
83a1fc5e15 Switch to version 5: remove src/app/membership/page.tsx 2026-03-10 16:07:03 +00:00
6e3dc7d215 Switch to version 5: remove src/app/dashboard/page.tsx 2026-03-10 16:07:02 +00:00
4cd5edc456 Switch to version 5: modified src/app/page.tsx 2026-03-10 16:07:01 +00:00
03c0beff67 Switch to version 5: modified src/app/contact/page.tsx 2026-03-10 16:07:01 +00:00
86262a145e Merge version_7 into main
Merge version_7 into main
2026-03-10 16:05:22 +00:00
53cbc550eb Update src/app/service-request/page.tsx 2026-03-10 16:05:15 +00:00
283cbc8441 Update src/app/membership/page.tsx 2026-03-10 16:05:13 +00:00
8e4a6f0594 Update src/app/dashboard/page.tsx 2026-03-10 16:05:12 +00:00
7813c4d12c Update src/app/contact/page.tsx 2026-03-10 16:05:10 +00:00
f46a8dcd39 Merge version_7 into main
Merge version_7 into main
2026-03-10 15:50:43 +00:00
d86585a83e Update src/app/page.tsx 2026-03-10 15:50:37 +00:00
7d9e0f70a9 Merge version_6 into main
Merge version_6 into main
2026-03-10 15:48:22 +00:00
e98c8c5d5f Add src/app/service-request/page.tsx 2026-03-10 15:48:15 +00:00
175ae4498f Update src/app/page.tsx 2026-03-10 15:48:14 +00:00
50df1b89f7 Add src/app/membership/page.tsx 2026-03-10 15:48:13 +00:00
371275a0d2 Add src/app/dashboard/page.tsx 2026-03-10 15:48:11 +00:00
2147f00101 Update src/app/contact/page.tsx 2026-03-10 15:48:10 +00:00
c6827bc6d0 Merge version_5 into main
Merge version_5 into main
2026-03-10 14:50:40 +00:00
fc457c0111 Update src/app/contact/page.tsx 2026-03-10 14:50:36 +00:00
4139dce37d Merge version_5 into main
Merge version_5 into main
2026-03-10 14:40:24 +00:00
1e0131b52a Update src/app/contact/page.tsx 2026-03-10 14:40:10 +00:00
5cccffb965 Merge version_5 into main
Merge version_5 into main
2026-03-10 14:15:11 +00:00
1475426aa2 Update src/app/contact/page.tsx 2026-03-10 14:15:05 +00:00
77cb47421f Merge version_5 into main
Merge version_5 into main
2026-03-10 13:52:20 +00:00
94d17eaf5c Update src/app/contact/page.tsx 2026-03-10 13:51:57 +00:00
84a9b6cced Merge version_5 into main
Merge version_5 into main
2026-03-10 13:42:16 +00:00
a3b72f5294 Update src/app/contact/page.tsx 2026-03-10 13:42:07 +00:00
1820e0dc1e Merge version_5 into main
Merge version_5 into main
2026-03-10 13:38:15 +00:00
dc66382035 Update src/app/page.tsx 2026-03-10 13:38:09 +00:00
0eefa55441 Update src/app/contact/page.tsx 2026-03-10 13:38:09 +00:00
a6aee2f71c Merge version_5 into main
Merge version_5 into main
2026-03-10 13:34:35 +00:00
1ae8fd9c0d Update src/app/contact/page.tsx 2026-03-10 13:34:28 +00:00
63b2abab97 Merge version_5 into main
Merge version_5 into main
2026-03-10 13:32:17 +00:00
cc9fc90796 Update src/app/contact/page.tsx 2026-03-10 13:32:12 +00:00
177b11fff0 Merge version_5 into main
Merge version_5 into main
2026-03-10 13:29:35 +00:00
314e5a2155 Update src/app/contact/page.tsx 2026-03-10 13:29:31 +00:00
d68596f792 Merge version_5 into main
Merge version_5 into main
2026-03-10 13:27:52 +00:00
fd99c4098d Update src/app/contact/page.tsx 2026-03-10 13:27:48 +00:00
cafccc2bb9 Merge version_5 into main
Merge version_5 into main
2026-03-10 13:26:19 +00:00
aed9b2b98b Update src/app/contact/page.tsx 2026-03-10 13:26:14 +00:00
0de718b267 Merge version_5 into main
Merge version_5 into main
2026-03-10 13:22:21 +00:00
f79ca3bf25 Update src/app/page.tsx 2026-03-10 13:22:11 +00:00
2a475c3569 Add src/app/contact/page.tsx 2026-03-10 13:22:08 +00:00
b3b369f9a3 Switch to version 1: remove src/app/contact/page.tsx 2026-03-10 13:18:31 +00:00
524ef9d2ce Switch to version 1: modified src/app/page.tsx 2026-03-10 13:18:29 +00:00
8270ed02f9 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:15:57 +00:00
a3f3535ec4 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:14:35 +00:00
6dc81c2d06 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:12:32 +00:00
1c1a14a2f9 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:11:19 +00:00
eeef14991b Merge version_4 into main
Merge version_4 into main
2026-03-10 13:10:01 +00:00
59d92bb9fb Merge version_4 into main
Merge version_4 into main
2026-03-10 13:08:43 +00:00
5ddfd5cd4c Merge version_4 into main
Merge version_4 into main
2026-03-10 13:06:32 +00:00
9b2b897371 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:05:06 +00:00
e177fba23a Merge version_4 into main
Merge version_4 into main
2026-03-10 13:03:52 +00:00
d57373f1c4 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:02:39 +00:00
2a7607af45 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:01:31 +00:00
e68a449496 Merge version_4 into main
Merge version_4 into main
2026-03-10 13:00:26 +00:00
4 changed files with 375 additions and 366 deletions

147
src/app/admin/page.tsx Normal file
View File

@@ -0,0 +1,147 @@
"use client";
import { ThemeProvider } from "@/components/theme/ThemeProvider";
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
import { ReactLenis } from "lenis/react";
interface Request {
id: string;
clientName: string;
address: string;
issueType: string;
membershipPlan: string;
status: "pending" | "in-progress" | "completed" | "cancelled";
}
const mockRequests: Request[] = [
{
id: "REQ-001", clientName: "John Smith", address: "123 Main St, Springfield, IL 62701", issueType: "Plumbing", membershipPlan: "Premium", status: "in-progress"},
{
id: "REQ-002", clientName: "Sarah Johnson", address: "456 Oak Ave, Chicago, IL 60601", issueType: "HVAC", membershipPlan: "Standard", status: "pending"},
{
id: "REQ-003", clientName: "Michael Chen", address: "789 Elm Rd, Naperville, IL 60540", issueType: "Electrical", membershipPlan: "Premium", status: "completed"},
{
id: "REQ-004", clientName: "Emma Davis", address: "321 Pine St, Evanston, IL 60201", issueType: "Roofing", membershipPlan: "Basic", status: "pending"},
{
id: "REQ-005", clientName: "Robert Wilson", address: "654 Maple Dr, Aurora, IL 60505", issueType: "Plumbing", membershipPlan: "Standard", status: "completed"},
];
const getStatusColor = (status: string) => {
switch (status) {
case "completed":
return "bg-green-100 text-green-800";
case "in-progress":
return "bg-blue-100 text-blue-800";
case "pending":
return "bg-yellow-100 text-yellow-800";
case "cancelled":
return "bg-red-100 text-red-800";
default:
return "bg-gray-100 text-gray-800";
}
};
export default function AdminDashboard() {
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="solid"
headingFontWeight="semibold"
>
<ReactLenis root>
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "Dashboard", id: "/admin" },
{ name: "Settings", id: "#settings" },
{ name: "Support", id: "#support" },
]}
brandName="OW HomeShield"
button={{
text: "Logout", onClick: () => {
console.log("Logout clicked");
},
}}
animateOnLoad={true}
/>
<div id="admin-dashboard" data-section="admin-dashboard" className="min-h-screen bg-background pt-32 pb-16 px-4 sm:px-6 lg:px-8">
<div className="max-w-7xl mx-auto">
{/* Header */}
<div className="mb-8">
<h1 className="text-4xl font-bold text-foreground mb-2">Admin Dashboard</h1>
<p className="text-foreground/60">Manage customer requests and track service status</p>
</div>
{/* Table Container */}
<div className="rounded-lg border border-card bg-card overflow-hidden shadow-sm">
<div className="overflow-x-auto">
<table className="w-full">
<thead>
<tr className="border-b border-background bg-background/50">
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Request ID</th>
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Client Name</th>
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Address</th>
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Issue Type</th>
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Membership Plan</th>
<th className="px-6 py-4 text-left text-sm font-semibold text-foreground">Status</th>
</tr>
</thead>
<tbody>
{mockRequests.map((request, index) => (
<tr
key={request.id}
className={`border-b border-background ${index % 2 === 0 ? "bg-white" : "bg-background/30"} hover:bg-background/50 transition-colors`}
>
<td className="px-6 py-4 text-sm text-foreground font-medium">{request.id}</td>
<td className="px-6 py-4 text-sm text-foreground">{request.clientName}</td>
<td className="px-6 py-4 text-sm text-foreground/80">{request.address}</td>
<td className="px-6 py-4 text-sm text-foreground">{request.issueType}</td>
<td className="px-6 py-4 text-sm text-foreground">
<span className="inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-primary-cta/10 text-primary-cta">
{request.membershipPlan}
</span>
</td>
<td className="px-6 py-4 text-sm">
<span className={`inline-flex items-center px-3 py-1 rounded-full text-xs font-medium ${getStatusColor(request.status)}`}>
{request.status.charAt(0).toUpperCase() + request.status.slice(1)}
</span>
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
{/* Summary Stats */}
<div className="mt-8 grid grid-cols-1 md:grid-cols-4 gap-4">
<div className="bg-card rounded-lg border border-background p-6">
<p className="text-sm text-foreground/60 mb-2">Total Requests</p>
<p className="text-3xl font-bold text-foreground">{mockRequests.length}</p>
</div>
<div className="bg-card rounded-lg border border-background p-6">
<p className="text-sm text-foreground/60 mb-2">Pending</p>
<p className="text-3xl font-bold text-yellow-600">{mockRequests.filter(r => r.status === "pending").length}</p>
</div>
<div className="bg-card rounded-lg border border-background p-6">
<p className="text-sm text-foreground/60 mb-2">In Progress</p>
<p className="text-3xl font-bold text-blue-600">{mockRequests.filter(r => r.status === "in-progress").length}</p>
</div>
<div className="bg-card rounded-lg border border-background p-6">
<p className="text-sm text-foreground/60 mb-2">Completed</p>
<p className="text-3xl font-bold text-green-600">{mockRequests.filter(r => r.status === "completed").length}</p>
</div>
</div>
</div>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -1,252 +1,258 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
import TextSplitAbout from "@/components/sections/about/TextSplitAbout";
import FeatureCardOne from "@/components/sections/feature/FeatureCardOne";
import { ThemeProvider } from "@/components/theme/ThemeProvider";
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
import HeroBillboardTestimonial from "@/components/sections/hero/HeroBillboardTestimonial";
import MediaAbout from "@/components/sections/about/MediaAbout";
import FeatureCardTwelve from "@/components/sections/feature/FeatureCardTwelve";
import ProductCardFour from "@/components/sections/product/ProductCardFour";
import PricingCardThree from "@/components/sections/pricing/PricingCardThree";
import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo";
import TestimonialCardTwo from "@/components/sections/testimonial/TestimonialCardTwo";
import PricingCardNine from "@/components/sections/pricing/PricingCardNine";
import { PricingCardTwo } from "@/components/sections/pricing/PricingCardTwo";
import TestimonialCardSix from "@/components/sections/testimonial/TestimonialCardSix";
import ContactSplit from "@/components/sections/contact/ContactSplit";
import FooterBase from "@/components/sections/footer/FooterBase";
import FooterCard from "@/components/sections/footer/FooterCard";
import { Phone, Mail, MapPin, Sparkles } from "lucide-react";
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
import FooterSimple from "@/components/sections/footer/FooterSimple";
import { Mail, Phone, MapPin } from "lucide-react";
export default function ContactPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
];
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="small"
sizing="largeSmallSizeLargeTitles"
background="circleGradient"
cardStyle="inset"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="medium"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="bold"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="OW HomeShield Inc."
navItems={[
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
{ name: "About", id: "#about" },
{ name: "Pricing", id: "#pricing" }
]}
button={{
text: "Call Now: 226-224-3573", href: "tel:226-224-3573"
}}
/>
</div>
<NavbarStyleFullscreen
navItems={navItems}
brandName="OW HomeShield"
bottomLeftText="Available 24/7"
bottomRightText="support@owhomeshield.com"
/>
<div id="hero" data-section="hero">
<HeroBillboard
<HeroBillboardTestimonial
title="Get in Touch with OW HomeShield"
description="Have questions about our membership plans or need immediate service? We're here to help. Contact our team today."
description="We're here to help with all your home maintenance and repair needs. Contact us today for a consultation or to learn more about our membership plans."
tag="Contact Us"
tagAnimation="slide-up"
background={{ variant: "plain" }}
buttons={[
{ text: "Call Now", href: "tel:226-224-3573" },
{ text: "Email Us", href: "mailto:info@owhomeshield.com" }
background={{ variant: "glowing-orb" }}
imageSrc="/hero-contact.jpg"
imageAlt="Contact OW HomeShield"
mediaAnimation="slide-up"
testimonials={[
{
name: "John Miller", handle: "Homeowner", testimonial:
"OW HomeShield's support team responded within minutes. Professional and courteous service!", rating: 5,
imageSrc: "/avatar1.jpg"},
]}
buttons={[
{ text: "Call Now", href: "tel:1-800-123-4567" },
{ text: "Schedule Service", href: "#contact-form" },
]}
buttonAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/high-angle-young-man-taking-break_23-2148384545.jpg"
imageAlt="Contact support team"
/>
</div>
<div id="about" data-section="about">
<TextSplitAbout
title="Why Contact OW HomeShield?"
description="Our dedicated team is ready to assist you with any questions about our services, membership plans, or to schedule urgent repairs. We pride ourselves on fast response times and professional service."
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-home_23-2149412549.jpg"
imageAlt="Happy homeowner"
features={[
{ title: "Fast Response", description: "Get assistance within hours", videoSrc: "" },
{ title: "Expert Team", description: "Licensed and certified professionals", videoSrc: "" },
{ title: "24/7 Available", description: "Emergency support anytime", videoSrc: "" }
]}
animationType="blur-reveal"
<MediaAbout
title="Why Choose OW HomeShield?"
description="Over 20 years of trusted service. Our team of licensed technicians is dedicated to keeping your home in top condition with professional maintenance and rapid emergency response."
tag="Our Expertise"
imageSrc="/about-contact.jpg"
imageAlt="OW HomeShield team"
useInvertedBackground={false}
buttons={[
{ text: "Learn More", href: "#features" },
{ text: "View Plans", href: "#pricing" },
]}
/>
</div>
<div id="features" data-section="features">
<FeatureCardOne
title="Our Service Offerings"
description="Comprehensive home maintenance and repair services designed for your needs"
<FeatureCardTwelve
title="Our Services"
description="Comprehensive home maintenance solutions tailored to your needs"
tag="What We Offer"
features={[
{
id: "maintenance", label: "Maintenance", title: "Regular Home Maintenance Plans", items: [
"Monthly inspections", "HVAC system checks", "Plumbing assessments", "Electrical safety reviews"],
buttons: [{ text: "Learn More", href: "#" }],
},
{
id: "emergency", label: "Emergency", title: "24/7 Emergency Repair Service", items: [
"Rapid response times", "Emergency hotline", "Licensed technicians", "Same-day service available"],
buttons: [{ text: "Get Help", href: "#" }],
},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{
title: "Emergency Repairs", description: "24/7 emergency service for urgent home repairs"
},
{
title: "Consultation", description: "Free consultation to assess your home maintenance needs"
},
{
title: "Local Service", description: "Serving your community with professional local technicians"
}
]}
/>
</div>
<div id="products" data-section="products">
<ProductCardFour
title="Featured Services"
description="Explore our most popular home maintenance and repair services"
title="Service Packages"
description="Choose from our selection of professional home maintenance services"
tag="Available Services"
products={[
{
id: "1", name: "HVAC Maintenance", price: "$150", variant: "Quarterly Service", imageSrc: "/service1.jpg", imageAlt: "HVAC Service"},
{
id: "2", name: "Plumbing Inspection", price: "$120", variant: "Annual Check", imageSrc: "/service2.jpg", imageAlt: "Plumbing Service"},
{
id: "3", name: "Electrical Safety", price: "$180", variant: "Comprehensive Review", imageSrc: "/service3.jpg", imageAlt: "Electrical Service"},
{
id: "4", name: "Roofing Inspection", price: "$200", variant: "Professional Assessment", imageSrc: "/service4.jpg", imageAlt: "Roofing Service"},
]}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
gridVariant="four-items-2x2-equal-grid"
products={[
{
id: "1", name: "Plumbing Repairs", description: "Expert plumbing solutions", imageSrc: "http://img.b2bpic.net/free-vector/protect-against-cyber-attacks-infographic_23-2148534111.jpg", imageAlt: "Plumbing service", price: "$99", variant: "standard"
},
{
id: "2", name: "Electrical Work", description: "Safe electrical installations", imageSrc: "http://img.b2bpic.net/free-vector/flat-labor-day-labels-collection_23-2149037530.jpg", imageAlt: "Electrical service", price: "$129", variant: "standard"
},
{
id: "3", name: "Home Inspections", description: "Thorough home assessments", imageSrc: "http://img.b2bpic.net/free-vector/bank-service-concept-labels-template_23-2150487023.jpg", imageAlt: "Home inspection", price: "$149", variant: "standard"
},
{
id: "4", name: "Preventative Maintenance", description: "Regular maintenance plans", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-pretty-businesswoman-near-business-plan-showing-it_171337-8559.jpg", imageAlt: "Maintenance service", price: "$79", variant: "standard"
}
]}
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardThree
title="Membership Pricing"
description="Choose the perfect plan for your home protection needs"
<PricingCardNine
title="Membership Plans"
description="Choose the perfect plan for your home maintenance needs"
tag="Pricing"
plans={[
{
id: "basic", title: "Basic", price: "$49", period: "/month", imageSrc: "/pricing-basic.jpg", imageAlt: "Basic Plan", button: { text: "Get Started", href: "#contact-form" },
features: [
"Monthly inspection", "Priority support", "10% service discount"],
},
{
id: "premium", title: "Premium", price: "$99", period: "/month", imageSrc: "/pricing-premium.jpg", imageAlt: "Premium Plan", button: { text: "Get Started", href: "#contact-form" },
features: [
"Quarterly inspections", "24/7 emergency support", "20% service discount", "Free diagnostics"],
},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
plans={[
{
id: "silver", name: "Basic plan", badge: "Basic", price: "$44/mo", buttons: [
{ text: "Get Started", href: "tel:226-224-3573" },
{ text: "Learn More", href: "#" }
],
features: ["1 service visit/month", "Minor repairs", "10% discount"]
},
{
id: "gold", name: "Business plan", badge: "Popular", badgeIcon: Sparkles,
price: "$59/mo", buttons: [
{ text: "Get Started", href: "tel:226-224-3573" },
{ text: "Learn More", href: "#" }
],
features: ["2 service visits/month", "Priority booking", "15% discount"]
},
{
id: "platinum", name: "Premium plan", badge: "Premium", price: "$84/mo", buttons: [
{ text: "Get Started", href: "tel:226-224-3573" },
{ text: "Learn More", href: "#" }
],
features: ["Unlimited visits", "24/7 support", "20% discount"]
}
]}
/>
</div>
<div id="pricing2" data-section="pricing2">
<div id="pricing-cards" data-section="pricing-cards">
<PricingCardTwo
title="Additional Services"
description="Specialized services available for your home"
title="Annual Membership"
description="Save more with annual commitment"
tag="Best Value"
plans={[
{
id: "annual-basic", title: "Annual Basic", price: "$499", period: "/year", description: "Save $89 annually", button: { text: "Subscribe", href: "#contact-form" },
features: [
"Monthly inspections", "Priority support", "10% discount on services"],
highlighted: false,
},
{
id: "annual-premium", title: "Annual Premium", price: "$999", period: "/year", description: "Save $189 annually", button: { text: "Subscribe", href: "#contact-form" },
features: [
"Quarterly inspections", "24/7 emergency support", "20% discount on services", "Free annual diagnostics"],
highlighted: true,
},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
plans={[
{
id: "annual", price: "$299/year", subtitle: "Annual Check-up", badge: "Value", buttons: [
{ text: "Book Now", href: "tel:226-224-3573" }
],
features: ["Full system check", "Detailed report", "Recommendations"]
},
{
id: "emergency", price: "$149", subtitle: "Emergency Service", badge: "Priority", buttons: [
{ text: "Call Now", href: "tel:226-224-3573" }
],
features: ["24/7 availability", "Fast response", "Professional service"]
}
]}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardTwo
title="What Our Clients Say"
description="Real feedback from satisfied homeowners"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
<TestimonialCardSix
testimonials={[
{
id: "1", name: "Sarah Johnson", role: "Homeowner", testimonial: "OW HomeShield has been incredible. Their team is professional, reliable, and always responsive to our needs.", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-excited-businesswoman-blue-blouse-showing-thumb-up_1262-14826.jpg", imageAlt: "Sarah Johnson"
},
id: "1", name: "Sarah Johnson", handle: "Homeowner, Portland", testimonial:
"OW HomeShield has been a lifesaver! Their technicians are professional and the service is always on time. Highly recommend!", imageSrc: "/avatar-sarah.jpg", imageAlt: "Sarah Johnson"},
{
id: "2", name: "Michael Chen", role: "Property Manager", testimonial: "We trust OW HomeShield to maintain our properties. Their attention to detail and quick response times are unmatched.", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1644.jpg", imageAlt: "Michael Chen"
}
id: "2", name: "Michael Chen", handle: "Property Manager, Seattle", testimonial:
"Managing multiple properties is much easier with OW HomeShield handling maintenance. Reliable and cost-effective!", imageSrc: "/avatar-michael.jpg", imageAlt: "Michael Chen"},
{
id: "3", name: "Emma Davis", handle: "Homeowner, Vancouver", testimonial:
"The 24/7 emergency support is incredible. When our heating went out in winter, they were there within an hour.", imageSrc: "/avatar-emma.jpg", imageAlt: "Emma Davis"},
{
id: "4", name: "James Wilson", handle: "Real Estate Agent, Bellevue", testimonial:
"I recommend OW HomeShield to all my clients. Their membership plans provide excellent value and peace of mind.", imageSrc: "/avatar-james.jpg", imageAlt: "James Wilson"},
{
id: "5", name: "Lisa Anderson", handle: "Homeowner, Tacoma", testimonial:
"Prevention is better than cure, and OW HomeShield's maintenance plans keep my home running smoothly year-round.", imageSrc: "/avatar-lisa.jpg", imageAlt: "Lisa Anderson"},
{
id: "6", name: "Robert Martinez", handle: "Property Owner, Olympia", testimonial:
"Outstanding customer service and quality workmanship. OW HomeShield is the only choice for home maintenance in the region.", imageSrc: "/avatar-robert.jpg", imageAlt: "Robert Martinez"},
]}
title="What Our Customers Say"
description="Trusted by thousands of homeowners across the Pacific Northwest"
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
/>
</div>
<div id="contact-form" data-section="contact-form">
<ContactSplit
tag="Contact Us"
title="Contact Our Team"
description="Fill out the form below and we'll get back to you as soon as possible. For emergencies, please call us directly."
background={{ variant: "plain" }}
tag="Get in Touch"
title="Ready to protect your home?"
description="Sign up for OW HomeShield today and get professional maintenance and repair support. Our team is ready to help you maintain your property and handle any emergency that comes up."
tagIcon={Mail}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-home_23-2149412549.jpg"
imageAlt="Contact our team"
inputPlaceholder="Your email address"
buttonText="Send Message"
termsText="We'll respond within 24 hours. For emergencies, call 226-224-3573."
imageSrc="/contact-split.jpg"
imageAlt="OW HomeShield team"
mediaAnimation="slide-up"
onSubmit={(email) => console.log('Contact form submitted:', email)}
mediaPosition="right"
inputPlaceholder="Enter your email"
buttonText="Get Started"
termsText="We respect your privacy. Unsubscribe at any time."
onSubmit={(email) => console.log("Email submitted:", email)}
/>
</div>
<div id="footer" data-section="footer">
<FooterBase
copyrightText="© 2025 OW HomeShield Inc. All rights reserved."
<FooterBaseCard
logoText="OW HomeShield"
columns={[
{
title: "Company", items: [
{ label: "Home", href: "/" },
{ label: "Contact", href: "/contact" },
{ label: "About", href: "#about" }
]
title: "Product", items: [
{ label: "Membership Plans", href: "#pricing" },
{ label: "Services", href: "#services" },
{ label: "Pricing", href: "#pricing" },
],
},
{
title: "Services", items: [
{ label: "Repairs", href: "#services" },
{ label: "Maintenance", href: "#services" },
{ label: "Inspections", href: "#services" }
]
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Contact", href: "#contact-form" },
{ label: "Blog", href: "#blog" },
],
},
{
title: "Support", items: [
{ label: "Emergency", href: "tel:226-224-3573" },
{ label: "24/7 Hotline", href: "tel:1-800-123-4567" },
{ label: "Emergency Service", href: "tel:1-800-123-4567" },
{ label: "FAQ", href: "#faq" },
{ label: "Contact", href: "#contact" }
]
}
],
},
]}
copyrightText="© 2025 OW HomeShield. All rights reserved."
onPrivacyClick={() => console.log("Privacy clicked")}
/>
</div>
<div id="footer-simple" data-section="footer-simple">
<FooterCard
copyrightText="© 2025 OW HomeShield Inc. All rights reserved."
<FooterSimple
text="© 2025 OW HomeShield. Professional home maintenance and repair services."
/>
</div>
</ThemeProvider>

View File

@@ -1,203 +1,59 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroSplitKpi from "@/components/sections/hero/HeroSplitKpi";
import FeatureCardSeven from "@/components/sections/feature/FeatureCardSeven";
import PricingCardOne from "@/components/sections/pricing/PricingCardOne";
import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen";
import ContactCTA from "@/components/sections/contact/ContactCTA";
import FooterCard from "@/components/sections/footer/FooterCard";
import { Crown, Home, Sparkles } from "lucide-react";
import { ThemeProvider } from "@/components/theme/ThemeProvider";
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
export default function Home() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
];
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="small"
sizing="largeSmallSizeLargeTitles"
background="circleGradient"
cardStyle="inset"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="medium"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="bold"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="OW HomeShield Inc."
navItems={[
{ name: "Home", id: "/" },
{ name: "Membership Plans", id: "#pricing" },
{ name: "Request Service", id: "#request-service" },
{ name: "About", id: "#about" },
{ name: "Contact", id: "/contact" }
]}
button={{
text: "Call Now: 226-224-3573", href: "tel:226-224-3573"
}}
/>
</div>
<div id="hero" data-section="hero">
<HeroSplitKpi
title="Protect Your Home with Reliable Monthly Maintenance"
description="Repairs • Inspections • Preventative Maintenance"
tag="Emergency Service Available"
tagAnimation="slide-up"
background={{ variant: "plain" }}
kpis={[
{ value: "24/7", label: "Emergency Support" },
{ value: "Licensed", label: "Certified Technicians" },
{ value: "Local", label: "Service Team" }
]}
enableKpiAnimation={true}
buttons={[
{ text: "NEW CLIENT JOIN MEMBERSHIP", href: "#membership-signup" },
{ text: "EXISTING MEMBER REQUEST SERVICE", href: "#member-request" }
]}
mediaAnimation="blur-reveal"
buttonAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/high-angle-young-man-taking-break_23-2148384545.jpg"
imageAlt="Professional home maintenance service"
/>
</div>
<div id="benefits" data-section="benefits">
<FeatureCardSeven
title="Affordable Home Maintenance Made Easy"
description="Protect your investment with preventative care and expert repairs"
animationType="blur-reveal"
textboxLayout="default"
useInvertedBackground={false}
buttons={[
{ text: "Start Your Membership", href: "#pricing" }
]}
buttonAnimation="slide-up"
features={[
{
id: 1,
title: "Keep Your Home Protected", description: "Regular inspections and preventative maintenance catch problems before they become expensive repairs. Our expert technicians identify and address issues early.", imageSrc: "http://img.b2bpic.net/free-vector/protect-against-cyber-attacks-infographic_23-2148534111.jpg", imageAlt: "Home protection"
},
{
id: 2,
title: "Skilled Technicians On-Demand", description: "Fast and reliable repairs from experienced professionals. Our licensed and insured team handles everything from plumbing and electrical to doors, windows, and drywall.", imageSrc: "http://img.b2bpic.net/free-vector/flat-labor-day-labels-collection_23-2149037530.jpg", imageAlt: "Professional technicians"
},
{
id: 3,
title: "Save Time & Money", description: "Prevent costly breakdowns before they happen. Our membership plans offer incredible value with discounts on repairs and priority scheduling.", imageSrc: "http://img.b2bpic.net/free-vector/bank-service-concept-labels-template_23-2150487023.jpg", imageAlt: "Cost savings"
}
]}
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardOne
title="Choose Your Membership Plan"
description="Select the perfect plan to protect your home and save money on repairs"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
plans={[
{
id: "silver", badge: "Basic Protection", price: "$44/month", subtitle: "Perfect for small homes", features: [
"1 service visit per month", "Minor plumbing and electrical repairs", "Door adjustments and small fixes", "10% renovation discount", "+$95 one-time enrollment fee"
]
},
{
id: "gold", badge: "Most Popular", badgeIcon: Sparkles,
price: "$59/month", subtitle: "Enhanced coverage for growing needs", features: [
"2 service visits per month", "Priority booking", "Annual preventative inspection", "15% renovation discount", "+$95 one-time enrollment fee"
]
},
{
id: "platinum", badge: "Advanced Protection", price: "$84/month", subtitle: "Comprehensive home care", features: [
"Unlimited minor service requests", "24/7 emergency phone support", "Seasonal home checkups", "Priority scheduling", "+$95 one-time enrollment fee"
]
},
{
id: "vip", badge: "VIP Ultimate", badgeIcon: Crown,
price: "$109/month", subtitle: "Premium protection and support", features: [
"Same-day priority scheduling", "Dedicated account manager", "29% renovation discount", "Unlimited minor service visits", "Annual full home inspection report", "+$95 one-time enrollment fee"
]
}
]}
/>
</div>
<div id="how-it-works" data-section="how-it-works">
<FeatureCardSeven
title="How OW HomeShield Works"
description="Simple steps to protect your home and get expert service"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{
id: 1,
title: "Choose a Membership Plan", description: "Select the perfect plan that matches your home maintenance needs. Compare features and benefits to find the right fit for your budget.", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-pretty-businesswoman-near-business-plan-showing-it_171337-8559.jpg", imageAlt: "Step 1: Choose membership"
},
{
id: 2,
title: "Schedule Your Inspection", description: "Book an appointment with our team. We'll assess your home and create a customized maintenance plan based on your specific needs.", imageSrc: "http://img.b2bpic.net/free-vector/appointment-booking-mobile-concept_23-2148570788.jpg", imageAlt: "Step 2: Schedule inspection"
},
{
id: 3,
title: "Receive Priority Maintenance & Repairs", description: "Enjoy priority service from our licensed technicians. Get fast repairs, preventative maintenance, and peace of mind knowing your home is protected.", imageSrc: "http://img.b2bpic.net/free-vector/labor-day-badges-collection_23-2147547884.jpg", imageAlt: "Step 3: Priority service"
}
]}
/>
</div>
<div id="trust" data-section="trust">
<TestimonialCardFifteen
testimonial="OW HomeShield has transformed how we maintain our home. The professional team is reliable, efficient, and truly cares about customer satisfaction. Highly recommended!"
rating={5}
author="Local Homeowners Trust OW HomeShield"
ratingAnimation="blur-reveal"
avatarsAnimation="blur-reveal"
useInvertedBackground={false}
avatars={[
{
src: "http://img.b2bpic.net/free-photo/cheerful-excited-businesswoman-blue-blouse-showing-thumb-up_1262-14826.jpg", alt: "happy customer satisfied homeowner"
},
{
src: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-home_23-2149412549.jpg", alt: "professional business portrait"
},
{
src: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1644.jpg", alt: "diverse customer testimonial photo"
},
{
src: "http://img.b2bpic.net/free-photo/young-blonde-woman-with-white-t-shirt_273609-7217.jpg", alt: "customer review professional portrait"
}
]}
/>
</div>
<div id="final-cta" data-section="final-cta">
<ContactCTA
tag="Ready to Protect Your Home?"
tagIcon={Home}
tagAnimation="slide-up"
title="Worry-Free Home Maintenance Starts Here"
description="Join thousands of homeowners who trust OW HomeShield for reliable maintenance and repairs. Contact us today to get started."
buttons={[
{ text: "Join Membership", href: "#pricing" },
{ text: "Book Free Consultation", href: "tel:226-224-3573" }
]}
buttonAnimation="slide-up"
background={{ variant: "plain" }}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="OW HomeShield Inc."
copyrightText="© 2025 OW HomeShield Inc. | Emergency Service Available 24/7"
/>
</div>
<NavbarStyleFullscreen
navItems={navItems}
brandName="OW HomeShield"
bottomLeftText="Available 24/7"
bottomRightText="support@owhomeshield.com"
/>
<main>
<section className="min-h-screen flex items-center justify-center bg-gradient-to-br from-blue-50 to-indigo-100">
<div className="text-center">
<h1 className="text-5xl font-bold text-gray-900 mb-4">
OW HomeShield
</h1>
<p className="text-xl text-gray-600 mb-8">
Professional Home Maintenance & Repair Services
</p>
<div className="flex gap-4 justify-center">
<a
href="/contact"
className="px-8 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"
>
Get Started
</a>
<a
href="#contact"
className="px-8 py-3 border-2 border-blue-600 text-blue-600 rounded-lg hover:bg-blue-50 transition"
>
Learn More
</a>
</div>
</div>
</section>
</main>
</ThemeProvider>
);
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #ffffff;
--card: #f9f9f9;
--foreground: #000612e6;
--primary-cta: #106EFB;
--background: #f7f6f7;
--card: #ffffff;
--foreground: #1a1a1a;
--primary-cta: #0798ff;
--primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9;
--secondary-cta: #ffffff;
--secondary-cta-text: #000612e6;
--accent: #e2e2e2;
--background-accent: #106EFB;
--accent: #93c7ff;
--background-accent: #a8cde8;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);