32 Commits

Author SHA1 Message Date
d7b48a7993 Update src/app/schedule/page.tsx 2026-03-25 01:35:30 +00:00
4232caefea Update src/app/page.tsx 2026-03-25 01:35:29 +00:00
9e6a196464 Update src/app/blackout-times/page.tsx 2026-03-25 01:35:29 +00:00
0bc1226146 Update src/app/appointments/page.tsx 2026-03-25 01:35:29 +00:00
f5e4e0bb1f Update src/app/admin/dashboard/page.tsx 2026-03-25 01:35:28 +00:00
1f51b2ac23 Merge version_8 into main
Merge version_8 into main
2026-03-25 01:30:56 +00:00
4f3e114539 Update src/app/page.tsx 2026-03-25 01:30:50 +00:00
14bd19e1f4 Merge version_7 into main
Merge version_7 into main
2026-03-25 01:23:32 +00:00
464bfbd288 Update src/app/page.tsx 2026-03-25 01:23:29 +00:00
38d37a3ef9 Merge version_6 into main
Merge version_6 into main
2026-03-25 01:12:23 +00:00
3b52fa1040 Update src/app/page.tsx 2026-03-25 01:12:20 +00:00
ef595e7125 Merge version_5 into main
Merge version_5 into main
2026-03-25 01:06:19 +00:00
3266c1a667 Update src/app/schedule/page.tsx 2026-03-25 01:06:16 +00:00
6e170834e1 Update src/app/page.tsx 2026-03-25 01:06:15 +00:00
40b42be76c Update src/app/blackout-times/page.tsx 2026-03-25 01:06:15 +00:00
313b9d9320 Update src/app/appointments/page.tsx 2026-03-25 01:06:14 +00:00
a66cf56a59 Merge version_4 into main
Merge version_4 into main
2026-03-25 01:01:25 +00:00
e0838dc5b5 Update src/app/page.tsx 2026-03-25 01:01:19 +00:00
0d846632da Merge version_3 into main
Merge version_3 into main
2026-03-25 00:40:18 +00:00
099bfe1370 Update src/app/schedule/page.tsx 2026-03-25 00:40:15 +00:00
c8deb19114 Update src/app/page.tsx 2026-03-25 00:40:14 +00:00
0343d81921 Update src/app/blackout-times/page.tsx 2026-03-25 00:40:14 +00:00
a6a17a7c30 Update src/app/appointments/page.tsx 2026-03-25 00:40:13 +00:00
ee843a3eea Merge version_2 into main
Merge version_2 into main
2026-03-25 00:32:55 +00:00
28b5a3d431 Update src/app/appointments/page.tsx 2026-03-25 00:32:52 +00:00
dbe41494ec Merge version_2 into main
Merge version_2 into main
2026-03-25 00:32:28 +00:00
c66cbeb463 Add src/app/schedule/page.tsx 2026-03-25 00:32:25 +00:00
13bf399b78 Update src/app/page.tsx 2026-03-25 00:32:25 +00:00
65a6db7503 Add src/app/blackout-times/page.tsx 2026-03-25 00:32:25 +00:00
e7fe183a29 Add src/app/appointments/page.tsx 2026-03-25 00:32:24 +00:00
6f93eb137e Add src/app/admin/dashboard/page.tsx 2026-03-25 00:32:24 +00:00
4ee7c45951 Merge version_1 into main
Merge version_1 into main
2026-03-25 00:16:20 +00:00
5 changed files with 436 additions and 226 deletions

View File

@@ -0,0 +1,119 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import { Settings, LogOut, CalendarDays, LayoutDashboard } from "lucide-react"; // Import necessary icons
export default function AdminDashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="flat"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{
name: "Dashboard", id: "dashboard-overview" // Scrolls to the dashboard content section
},
{
name: "Appointments", id: "appointments-list" // Scrolls to the appointments section
},
{
name: "Settings", id: "admin-settings" // Scrolls to the settings section
}
]}
button={{
text: "Logout", href: "#" // Placeholder for logout action
}}
brandName="Admin Portal"
/>
</div>
<main className="container mx-auto px-4 py-8">
<div id="dashboard-overview" data-section="dashboard-overview" className="mb-12">
<h1 className="text-4xl font-bold mb-6 flex items-center gap-3">
<LayoutDashboard size={32} />
Dashboard Overview
</h1>
<p className="text-lg text-foreground/80 mb-8">
Welcome to the administration portal. Here you can manage appointments and settings for Detail Pros.
</p>
<section className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<div className="bg-card p-6 rounded-lg shadow-md border border-accent/20">
<h2 className="text-2xl font-semibold mb-3">Today's Appointments</h2>
<p className="text-4xl font-bold text-primary-cta">5</p>
<p className="text-foreground/70">Upcoming appointments today</p>
</div>
<div className="bg-card p-6 rounded-lg shadow-md border border-accent/20">
<h2 className="text-2xl font-semibold mb-3">Total This Week</h2>
<p className="text-4xl font-bold text-primary-cta">22</p>
<p className="text-foreground/70">Scheduled appointments this week</p>
</div>
<div className="bg-card p-6 rounded-lg shadow-md border border-accent/20">
<h2 className="text-2xl font-semibold mb-3">New Bookings</h2>
<p className="text-4xl font-bold text-primary-cta">2</p>
<p className="text-foreground/70">New bookings in the last 24 hours</p>
</div>
</section>
</div>
<div id="appointments-list" data-section="appointments-list" className="mb-12">
<h2 className="text-3xl font-bold mb-6 flex items-center gap-3">
<CalendarDays size={28} />
Scheduled Detailing Appointments
</h2>
<div className="bg-card p-6 rounded-lg shadow-md border border-accent/20">
<ul className="space-y-4">
<li className="flex justify-between items-center py-2 border-b border-accent/10 last:border-b-0">
<div>
<p className="font-semibold text-lg">John Doe - Honda Civic</p>
<p className="text-foreground/70 text-sm">Tomorrow, 10:00 AM - Gold Package</p>
</div>
<button className="bg-primary-cta hover:bg-primary-cta/90 text-primary-cta-foreground px-4 py-2 rounded-md transition-colors">View Details</button>
</li>
<li className="flex justify-between items-center py-2 border-b border-accent/10 last:border-b-0">
<div>
<p className="font-semibold text-lg">Jane Smith - Ford F-150</p>
<p className="text-foreground/70 text-sm">Friday, 02:00 PM - Silver Package</p>
</div>
<button className="bg-primary-cta hover:bg-primary-cta/90 text-primary-cta-foreground px-4 py-2 rounded-md transition-colors">View Details</button>
</li>
<li className="flex justify-between items-center py-2 border-b border-accent/10 last:border-b-0">
<div>
<p className="font-semibold text-lg">Peter Jones - Tesla Model 3</p>
<p className="text-foreground/70 text-sm">Next Monday, 09:00 AM - Bronze Package</p>
</div>
<button className="bg-primary-cta hover:bg-primary-cta/90 text-primary-cta-foreground px-4 py-2 rounded-md transition-colors">View Details</button>
</li>
</ul>
<p className="text-center text-foreground/60 mt-6">More appointments available in the full list.</p>
</div>
</div>
<div id="admin-settings" data-section="admin-settings">
<h2 className="text-3xl font-bold mb-6 flex items-center gap-3">
<Settings size={28} />
Admin Settings
</h2>
<div className="bg-card p-6 rounded-lg shadow-md border border-accent/20">
<p className="text-foreground/80">Settings will be managed here.</p>
<button className="bg-secondary-cta hover:bg-secondary-cta/90 text-secondary-cta-foreground px-4 py-2 rounded-md mt-4 transition-colors">Edit Profile</button>
</div>
</div>
</main>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,93 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Facebook, Instagram, Twitter } from "lucide-react";
export default function AppointmentsPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="flat"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "#services" },
{ name: "Why Us", id: "#why-us" },
{ name: "FAQ", id: "#faq" },
{ name: "Appointments", id: "/appointments" }
]}
button={{
text: "Schedule Now", href: "/schedule"
}}
brandName="Detail Pros"
/>
</div>
<div className="flex flex-col items-center justify-center min-h-[calc(100vh-10rem)] py-12 px-4 text-center">
<h1 className="text-4xl md:text-5xl font-bold mb-6">Appointment Management</h1>
<p className="text-lg md:text-xl text-foreground text-opacity-80 mb-8 max-w-2xl">
Welcome to your personal appointment dashboard. Here you can view details of all scheduled bookings and manage their status.
</p>
<div className="bg-card p-8 rounded-xl shadow-xl w-full max-w-4xl border border-border">
<h2 className="text-2xl font-semibold mb-6 text-foreground">Scheduled Appointments</h2>
<div className="space-y-6">
<div className="flex flex-col md:flex-row items-center justify-between p-5 bg-background-accent rounded-lg border border-border">
<div className="text-left mb-4 md:mb-0">
<p className="text-lg font-bold text-foreground">John Doe - Gold Package</p>
<p className="text-sm text-foreground text-opacity-70">Date: August 15, 2024 | Time: 10:00 AM</p>
<p className="text-sm text-foreground text-opacity-70">Vehicle: Tesla Model 3 (Black)</p>
<p className="text-sm text-foreground text-opacity-70">Contact: john.doe@example.com | (555) 123-4567</p>
</div>
<div className="flex space-x-3">
<button className="bg-green-600 text-white px-5 py-2 rounded-lg hover:bg-green-700 transition-colors shadow-md">Accept</button>
<button className="bg-red-600 text-white px-5 py-2 rounded-lg hover:bg-red-700 transition-colors shadow-md">Reject</button>
<button className="bg-blue-600 text-white px-5 py-2 rounded-lg hover:bg-blue-700 transition-colors shadow-md">Details</button>
</div>
</div>
<div className="flex flex-col md:flex-row items-center justify-between p-5 bg-background-accent rounded-lg border border-border">
<div className="text-left mb-4 md:mb-0">
<p className="text-lg font-bold text-foreground">Jane Smith - Silver Package</p>
<p className="text-sm text-foreground text-opacity-70">Date: August 16, 2024 | Time: 02:00 PM</p>
<p className="text-sm text-foreground text-opacity-70">Vehicle: Honda Civic (Silver)</p>
<p className="text-sm text-foreground text-opacity-70">Contact: jane.smith@example.com | (555) 987-6543</p>
</div>
<div className="flex space-x-3">
<button className="bg-green-600 text-white px-5 py-2 rounded-lg hover:bg-green-700 transition-colors shadow-md">Accept</button>
<button className="bg-red-600 text-white px-5 py-2 rounded-lg hover:bg-red-700 transition-colors shadow-md">Reject</button>
<button className="bg-blue-600 text-white px-5 py-2 rounded-lg hover:bg-blue-700 transition-colors shadow-md">Details</button>
</div>
</div>
</div>
<p className="text-sm text-foreground text-opacity-60 mt-8">For any issues or further assistance, please contact support.</p>
</div>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="Detail Pros"
copyrightText="© 2024 Detail Pros. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" },
{ icon: Twitter, href: "#", ariaLabel: "Twitter" }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,75 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Facebook, Instagram, Twitter } from "lucide-react";
export default function BlackoutTimesPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="flat"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{
name: "Home", id: "/"},
{
name: "Services", id: "#services"},
{
name: "Why Us", id: "#why-us"},
{
name: "FAQ", id: "#faq"},
{
name: "Appointments", id: "/appointments"},
{
name: "Manage Availability", id: "/blackout-times"}
]}
button={{
text: "Schedule Now", href: "/schedule"}}
brandName="Detail Pros"
/>
</div>
<div className="min-h-[60vh] flex flex-col justify-center items-center py-20 px-4 text-center">
<h1 className="text-4xl md:text-5xl font-bold mb-4">Manage Service Availability</h1>
<p className="text-lg md:text-xl text-foreground/80 max-w-2xl">Use this interface to block out specific dates and times when services are not available for booking.</p>
<div className="mt-10 p-6 bg-card rounded-lg shadow-lg max-w-md w-full">
<p className="text-foreground/70">Blackout time slot management interface will be integrated here.</p>
{/* Placeholder for actual time slot management UI */}
</div>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="Detail Pros"
copyrightText="© 2024 Detail Pros. All rights reserved."
socialLinks={[
{
icon: Instagram,
href: "#", ariaLabel: "Instagram"},
{
icon: Facebook,
href: "#", ariaLabel: "Facebook"},
{
icon: Twitter,
href: "#", ariaLabel: "Twitter"},
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -4,13 +4,12 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactCenter from '@/components/sections/contact/ContactCenter';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree';
import FooterCard from '@/components/sections/footer/FooterCard';
import HeroSplitTestimonial from '@/components/sections/hero/HeroSplitTestimonial';
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import { Award, Facebook, Instagram, Shield, Sparkles, Twitter } from "lucide-react";
export default function LandingPage() {
@@ -19,8 +18,8 @@ export default function LandingPage() {
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="mediumLarge"
sizing="largeSmallSizeMediumTitles"
contentWidth="compact"
sizing="medium"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="flat"
@@ -32,30 +31,20 @@ export default function LandingPage() {
<NavbarStyleCentered
navItems={[
{
name: "Home",
id: "home",
},
name: "Home", id: "/"},
{
name: "Services",
id: "services",
},
name: "Services", id: "#services"},
{
name: "Why Us",
id: "why-us",
},
name: "Why Us", id: "#why-us"},
{
name: "Testimonials",
id: "testimonials",
},
name: "FAQ", id: "#faq"},
{
name: "FAQ",
id: "faq",
},
name: "Appointments", id: "/appointments"},
{
name: "Manage Availability", id: "/blackout-times"}
]}
button={{
text: "Schedule Now",
href: "#contact",
}}
text: "Schedule Now", href: "/schedule"}}
brandName="Detail Pros"
/>
</div>
@@ -64,78 +53,27 @@ export default function LandingPage() {
<HeroSplitTestimonial
useInvertedBackground={false}
background={{
variant: "plain",
}}
variant: "plain"}}
title="Shine Brighter with Detail Pros - Your Car, Our Passion."
description="Experience top-tier car detailing by dedicated local high school students. We guarantee meticulous attention to every detail, ensuring your vehicle looks its absolute best, every time."
testimonials={[
{
name: "Sarah J.",
handle: "@HappyDriver",
testimonial: "My car hasn't looked this good since I bought it! The students were incredibly thorough and professional. Highly recommend Detail Pros!",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-cafe_273609-12690.jpg?_wi=1",
},
{
name: "Mark T.",
handle: "@CleanRide",
testimonial: "The attention to detail was outstanding. They really took their time and made sure every inch of my car was spotless. Fantastic work!",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-working-as-nurse_23-2151061623.jpg?_wi=1",
},
{
name: "Emily R.",
handle: "@ShinyCar",
testimonial: "So impressed by the dedication of these students. My car feels brand new, and the price was unbeatable for the quality. Will definitely be a repeat customer.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-overjoyed-woman-rejoicing-her-success_74855-3513.jpg?_wi=1",
},
{
name: "David K.",
handle: "@LocalSupporter",
testimonial: "It's great to support local students doing such high-quality work. They were polite, efficient, and my car looks showroom ready. Excellent service!",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-teenage-girl-sitting-cafe_1262-3048.jpg?_wi=1",
},
{
name: "Jessica L.",
handle: "@DetailFan",
testimonial: "From the wheels to the interior, every part of my car was gleaming. Their 'guaranteed satisfaction' is no joke - they truly deliver!",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/headshot-attractive-young-redhead-female-with-hair-bun-sitting-cafe-having-surprised-facial-expression_273609-9261.jpg?_wi=1",
},
]}
testimonials={[]}
buttons={[
{
text: "View Services",
href: "#services",
},
text: "View Services", href: "#services"},
{
text: "Book Now",
href: "#contact",
},
text: "Book Now", href: "#contact"},
]}
avatars={[
{
src: "http://img.b2bpic.net/free-photo/front-view-young-male-grey-t-shirt-posing-smiling_140725-27983.jpg",
alt: "Student avatar",
},
src: "http://img.b2bpic.net/free-photo/front-view-young-male-grey-t-shirt-posing-smiling_140725-27983.jpg", alt: "Student avatar"},
{
src: "http://img.b2bpic.net/free-photo/attractive-young-woman-smiling_74855-2579.jpg",
alt: "Student avatar",
},
src: "http://img.b2bpic.net/free-photo/attractive-young-woman-smiling_74855-2579.jpg", alt: "Student avatar"},
{
src: "http://img.b2bpic.net/free-photo/happy-man-sitting-mat-outdoors_23-2147562273.jpg",
alt: "Student avatar",
},
src: "http://img.b2bpic.net/free-photo/happy-man-sitting-mat-outdoors_23-2147562273.jpg", alt: "Student avatar"},
{
src: "http://img.b2bpic.net/free-photo/happy-african-young-lady-walking-outdoors_171337-15134.jpg",
alt: "Student avatar",
},
src: "http://img.b2bpic.net/free-photo/happy-african-young-lady-walking-outdoors_171337-15134.jpg", alt: "Student avatar"},
{
src: "http://img.b2bpic.net/free-photo/cheerful-schoolgirl-carries-rucksack-notepads-digital-tablet-looks-into-distance-with-happy-expression-walks-campus-daytime-female-student-returns-from-university-education-concept_273609-59160.jpg",
alt: "Student avatar",
},
src: "http://img.b2bpic.net/free-photo/cheerful-schoolgirl-carries-rucksack-notepads-digital-tablet-looks-into-distance-with-happy-expression-walks-campus-daytime-female-student-returns-from-university-education-concept_273609-59160.jpg", alt: "Student avatar"},
]}
avatarText="Meet the Team!"
imageSrc="http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg"
@@ -148,39 +86,28 @@ export default function LandingPage() {
useInvertedBackground={false}
heading={[
{
type: "text",
content: "About Our Dedicated Student Team",
},
type: "text", content: "Were two young high school freshmen who take pride in delivering top-quality detailing with a personal touch. What sets us apart isnt just our attention to detail—its the way we treat every client with honesty, respect, and care. We believe that great service starts with trust, which is why we never ask for payment until youre completely satisfied with the results. Even at a young age, weve built a reputation for being reliable, hardworking, and genuinely passionate about what we do. Every car we work on gets our full effort, as if it were our own. We enjoy transforming vehicles and seeing the difference a clean, polished finish can make—not just for the car, but for its owner too. Our goal is simple: to provide a professional-level clean while building real connections with our customers. Were always learning, improving, and pushing ourselves to be better with every job. When you choose us, youre not just getting a service—youre supporting two motivated students who care deeply about doing things the right way."},
]}
headingClassName="text-xs text-foreground/80 leading-relaxed max-w-xl mx-auto"
containerClassName="max-w-3xl mx-auto"
/>
</div>
<div id="why-us" data-section="why-us">
<FeatureCardSix
<FeatureCardThree
textboxLayout="default"
useInvertedBackground={false}
features={[
{
id: 1,
title: "Precision Interior Detailing",
description: "From vacuuming every crumb to polishing surfaces and conditioning leather, we ensure your car's interior feels fresh and pristine.",
imageSrc: "http://img.b2bpic.net/free-photo/interior-modern-red-luxury-sport-car_181624-25467.jpg",
},
id: "interior-detail", title: "Precision Interior Detailing", description: "From vacuuming every crumb to polishing surfaces and conditioning leather, we ensure your car's interior feels fresh and pristine.", imageSrc: "http://img.b2bpic.net/free-photo/interior-modern-red-luxury-sport-car_181624-25467.jpg"},
{
id: 2,
title: "Spotless Exterior Wash & Wax",
description: "Our exterior service includes a thorough wash, paint decontamination, wheel cleaning, tire dressing, and a durable wax for lasting shine and protection.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-car-care-dusting_23-2149172885.jpg",
},
{
id: 3,
title: "Engine Bay Revitalization",
description: "We carefully clean and dress your engine bay, removing grime and leaving it looking as good as new, enhancing your vehicle's overall presentation.",
imageSrc: "http://img.b2bpic.net/free-photo/mechanics-examining-car-engine_1170-1357.jpg",
},
id: "exterior-wash-wax", title: "Spotless Exterior Wash & Wax", description: "Our exterior service includes a thorough wash, paint decontamination, wheel cleaning, tire dressing, and a durable wax for lasting shine and protection.", imageSrc: "http://img.b2bpic.net/free-photo/car-polishing-process-washing_23-2149547517.jpg"},
]}
title="Our Promise: Meticulous Care & Guaranteed Satisfaction"
description="We don't just clean cars; we restore them. Our dedicated student team adheres to a strict detailing regimen, ensuring every crevice and surface shines with perfection. Your satisfaction is our top priority, and we stand by the quality of our work."
gridVariant="uniform-all-items-equal"
animationType="slide-up"
className="py-12 md:py-16"
/>
</div>
@@ -191,119 +118,44 @@ export default function LandingPage() {
useInvertedBackground={false}
plans={[
{
id: "bronze",
badge: "Basic Brilliance",
badgeIcon: Sparkles,
price: "$99",
subtitle: "Essential clean, inside and out.",
buttons: [
id: "standard", badge: "STANDARD DETAIL", badgeIcon: Sparkles,
price: "Starting at $129", subtitle: "Best for regular maintenance.", buttons: [
{
text: "Book Bronze",
href: "#contact",
text: "Book Standard", href: "#contact"
},
],
features: [
"Exterior wash & dry",
"Vacuum interior",
"Window cleaning",
"Tire dressing",
"Wipe down surfaces",
"Full interior and exterior clean", "Vacuum, wipe-down, windows, wash", "Light dirt and salt removal", "Price may be adjusted for extra large or exceptionally dirty vehicles."
],
},
{
id: "silver",
badge: "Enhanced Clean",
badgeIcon: Shield,
price: "$149",
subtitle: "Deep clean with added protection.",
buttons: [
id: "enhanced", badge: "ENHANCED DETAIL", badgeIcon: Shield,
price: "Starting at $199", subtitle: "Most popular, best value for most vehicles.", buttons: [
{
text: "Book Silver",
href: "#contact",
text: "Book Enhanced", href: "#contact"
},
],
features: [
"Bronze package features",
"Hand wax application",
"Interior detail & polish",
"Door jam cleaning",
"Air freshener treatment",
"Everything in Standard", "Deeper interior cleaning (seats, carpets, buildup, and grime)", "More detailed exterior finish and shine", "Price may be adjusted for extra large or exceptionally dirty vehicles."
],
},
{
id: "gold",
badge: "Ultimate Perfection",
badgeIcon: Award,
price: "$249",
subtitle: "Full rejuvenation, top to bottom.",
buttons: [
id: "deep", badge: "DEEP DETAIL", badgeIcon: Award,
price: "Starting at $249", subtitle: "Best for heavily used or very dirty cars.", buttons: [
{
text: "Book Gold",
href: "#contact",
text: "Book Deep", href: "#contact"
},
],
features: [
"Silver package features",
"Clay bar treatment",
"Leather conditioning",
"Engine bay detail",
"Fabric stain removal",
"Everything in Enhanced", "Heavy stain removal + deep extraction", "Full interior reset + high detailed finish", "Price may be adjusted for extra large or exceptionally dirty vehicles."
],
},
]}
title="Flexible Tiers for Every Need"
description="Choose from our Bronze, Silver, or Gold packages, designed to give your car the perfect level of care. All tiers include our signature attention to detail and satisfaction guarantee."
description="Choose from our Standard, Enhanced, or Deep packages, designed to give your car the perfect level of care. All tiers include our signature attention to detail and satisfaction guarantee."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardSix
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
testimonials={[
{
id: "1",
name: "Sarah J.",
handle: "Local Resident",
testimonial: "My car hasn't looked this good since I bought it! The students were incredibly thorough and professional. Highly recommend Detail Pros for their amazing work!",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-cafe_273609-12690.jpg?_wi=2",
},
{
id: "2",
name: "Mark T.",
handle: "Car Enthusiast",
testimonial: "The attention to detail was outstanding. They really took their time and made sure every inch of my car was spotless. Fantastic work by a great team!",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-working-as-nurse_23-2151061623.jpg?_wi=2",
},
{
id: "3",
name: "Emily R.",
handle: "Busy Professional",
testimonial: "So impressed by the dedication of these students. My car feels brand new, and the price was unbeatable for the quality. Will definitely be a repeat customer!",
imageSrc: "http://img.b2bpic.net/free-photo/happy-overjoyed-woman-rejoicing-her-success_74855-3513.jpg?_wi=2",
},
{
id: "4",
name: "David K.",
handle: "Community Member",
testimonial: "It's great to support local students doing such high-quality work. They were polite, efficient, and my car looks showroom ready. Excellent service and fantastic initiative!",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-teenage-girl-sitting-cafe_1262-3048.jpg?_wi=2",
},
{
id: "5",
name: "Jessica L.",
handle: "First-time Client",
testimonial: "From the wheels to the interior, every part of my car was gleaming. Their 'guaranteed satisfaction' is no joke - they truly deliver on their promise. A truly professional detail!",
imageSrc: "http://img.b2bpic.net/free-photo/headshot-attractive-young-redhead-female-with-hair-bun-sitting-cafe-having-surprised-facial-expression_273609-9261.jpg?_wi=2",
},
]}
title="Hear From Our Happy Customers"
description="Our clients consistently praise our attention to detail, professional service, and the incredible results we deliver. Read what they have to say about the Detail Pros experience and our dedicated student team."
speed={40}
topMarqueeDirection="left"
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitMedia
@@ -311,35 +163,17 @@ export default function LandingPage() {
useInvertedBackground={false}
faqs={[
{
id: "1",
title: "How do I schedule a detailing service?",
content: "You can schedule a service by filling out the form in our 'Contact Us' section or by clicking the 'Schedule Now' button at the top of the page. We'll get back to you to confirm your appointment and details.",
},
id: "1", title: "How do I schedule a detailing service?", content: "You can schedule a service by filling out the form in our 'Contact Us' section or by clicking the 'Schedule Now' button at the top of the page. We'll get back to you to confirm your appointment and details."},
{
id: "2",
title: "What payment methods do you accept?",
content: "We accept major credit cards, debit cards, and secure online payments. Payment is due upon completion of the service.",
},
id: "2", title: "What payment methods do you accept?", content: "We accept major credit cards, debit cards, and secure online payments. Payment is due upon completion of the service."},
{
id: "3",
title: "Are your services eco-friendly?",
content: "We strive to use environmentally friendly products and practices whenever possible, ensuring a high-quality clean with minimal environmental impact.",
},
id: "3", title: "Are your services eco-friendly?", content: "We strive to use environmentally friendly products and practices whenever possible, ensuring a high-quality clean with minimal environmental impact."},
{
id: "4",
title: "What if I'm not satisfied with the service?",
content: "Your satisfaction is 100% guaranteed. If for any reason you're not completely happy, please contact us within 24 hours, and we'll make it right.",
},
id: "4", title: "What if I'm not satisfied with the service?", content: "Your satisfaction is 100% guaranteed. If for any reason you're not completely happy, please contact us within 24 hours, and we'll make it right."},
{
id: "5",
title: "Can I request a custom detailing package?",
content: "Absolutely! If our Bronze, Silver, or Gold packages don't quite fit your needs, please reach out via the contact form, and we'll create a custom quote for you.",
},
id: "5", title: "Can I request a custom detailing package?", content: "Absolutely! If our Bronze, Silver, or Gold packages don't quite fit your needs, please reach out via the contact form, and we'll create a custom quote for you."},
{
id: "6",
title: "How do I know the students are qualified?",
content: "Our students undergo thorough training and are supervised by experienced detailing professionals. We pride ourselves on their dedication and the high standards they uphold.",
},
id: "6", title: "How do I know the students are qualified?", content: "Our students undergo thorough training and are supervised by experienced detailing professionals. We pride ourselves on their dedication and the high standards they uphold."},
]}
imageSrc="http://img.b2bpic.net/free-photo/car-being-taking-care-workshop_23-2149580539.jpg"
mediaAnimation="opacity"
@@ -355,8 +189,7 @@ export default function LandingPage() {
<ContactCenter
useInvertedBackground={false}
background={{
variant: "plain",
}}
variant: "plain"}}
tag="Book Your Detail"
title="Ready for a Spotless Car?"
description="Schedule your car detailing service with Detail Pros today! Let us bring the shine back to your vehicle. For custom requests or administrative inquiries, please reach out via this form."
@@ -373,23 +206,17 @@ export default function LandingPage() {
socialLinks={[
{
icon: Instagram,
href: "#",
ariaLabel: "Instagram",
},
href: "#", ariaLabel: "Instagram"},
{
icon: Facebook,
href: "#",
ariaLabel: "Facebook",
},
href: "#", ariaLabel: "Facebook"},
{
icon: Twitter,
href: "#",
ariaLabel: "Twitter",
},
href: "#", ariaLabel: "Twitter"},
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

96
src/app/schedule/page.tsx Normal file
View File

@@ -0,0 +1,96 @@
"use client";
import type { Metadata } from "next";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Facebook, Instagram, Twitter } from "lucide-react";
export const metadata: Metadata = {
title: "Schedule Your Detail | Detail Pros", description: "Book your next car detailing appointment with Detail Pros using our easy online schedule management system. View available time slots and secure your spot.", keywords: ["schedule car detailing, book car detailing, car detailing calendar, auto detailing appointment, detail pros schedule"],
openGraph: {
title: "Schedule Your Detail | Detail Pros", description: "Book your next car detailing appointment with Detail Pros using our easy online schedule management system. View available time slots and secure your spot.", url: "https://www.detailpros.com/schedule", siteName: "Detail Pros", images: [
{
url: "http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg", alt: "Car detailing schedule calendar"
}
],
type: "website"
},
twitter: {
card: "summary_large_image", title: "Schedule Your Detail | Detail Pros", description: "Book your next car detailing appointment with Detail Pros using our easy online schedule management system. View available time slots and secure your spot.", images: [
"http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg"
]
}
};
export default function SchedulePage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="compact"
sizing="medium"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="flat"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "#services" },
{ name: "Why Us", id: "#why-us" },
{ name: "FAQ", id: "#faq" },
{ name: "Appointments", id: "/appointments" },
{ name: "Manage Availability", id: "/blackout-times"}
]}
button={{
text: "Schedule Now", href: "/schedule"}}
brandName="Detail Pros"
/>
</div>
<div id="schedule-system" data-section="schedule-system" className="min-h-screen py-20 flex flex-col items-center justify-center text-center">
<h1 className="text-5xl md:text-7xl font-bold mb-6">Schedule Your Detailing</h1>
<p className="text-lg md:text-xl text-gray-600 mb-8 max-w-2xl">
Here you will find our interactive calendar to view available time slots and book your appointment.
Select a date and time that works best for you!
</p>
<div className="bg-gray-100 p-8 rounded-lg shadow-xl max-w-4xl w-full">
<h2 className="text-3xl font-semibold mb-4 text-gray-800">Calendar View</h2>
<div className="border border-gray-300 rounded-md p-4 h-96 flex items-center justify-center text-gray-500 text-lg">
<p>Interactive Calendar and Time Slot Selector Coming Soon!</p>
</div>
<div className="mt-8">
<h2 className="text-3xl font-semibold mb-4 text-gray-800">Manage Time Slots</h2>
<p className="text-gray-700">Admins will be able to add and remove available time slots here.</p>
<button className="mt-4 px-6 py-3 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors">
Add New Slot (Admin Only)
</button>
<button className="mt-4 ml-4 px-6 py-3 bg-red-600 text-white rounded-md hover:bg-red-700 transition-colors">
Remove Slot (Admin Only)
</button>
</div>
</div>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="Detail Pros"
copyrightText="© 2024 Detail Pros. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" },
{ icon: Twitter, href: "#", ariaLabel: "Twitter" },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}