Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 464bfbd288 | |||
| 38d37a3ef9 | |||
| 3b52fa1040 | |||
| ef595e7125 | |||
| 3266c1a667 | |||
| 6e170834e1 | |||
| 40b42be76c | |||
| 313b9d9320 | |||
| a66cf56a59 | |||
| e0838dc5b5 | |||
| 0d846632da | |||
| 099bfe1370 | |||
| c8deb19114 | |||
| 0343d81921 | |||
| a6a17a7c30 | |||
| ee843a3eea | |||
| 28b5a3d431 | |||
| dbe41494ec | |||
| c66cbeb463 | |||
| 13bf399b78 | |||
| 65a6db7503 | |||
| e7fe183a29 | |||
| 6f93eb137e | |||
| 4ee7c45951 |
119
src/app/admin/dashboard/page.tsx
Normal file
119
src/app/admin/dashboard/page.tsx
Normal 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="mediumLarge"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
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>
|
||||||
|
);
|
||||||
|
}
|
||||||
93
src/app/appointments/page.tsx
Normal file
93
src/app/appointments/page.tsx
Normal 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="mediumLarge"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
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>
|
||||||
|
);
|
||||||
|
}
|
||||||
75
src/app/blackout-times/page.tsx
Normal file
75
src/app/blackout-times/page.tsx
Normal 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="mediumLarge"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
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>
|
||||||
|
);
|
||||||
|
}
|
||||||
264
src/app/page.tsx
264
src/app/page.tsx
@@ -10,7 +10,6 @@ import HeroSplitTestimonial from '@/components/sections/hero/HeroSplitTestimonia
|
|||||||
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout';
|
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout';
|
||||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
|
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
|
||||||
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
|
|
||||||
import { Award, Facebook, Instagram, Shield, Sparkles, Twitter } from "lucide-react";
|
import { Award, Facebook, Instagram, Shield, Sparkles, Twitter } from "lucide-react";
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
@@ -32,30 +31,20 @@ export default function LandingPage() {
|
|||||||
<NavbarStyleCentered
|
<NavbarStyleCentered
|
||||||
navItems={[
|
navItems={[
|
||||||
{
|
{
|
||||||
name: "Home",
|
name: "Home", id: "/"},
|
||||||
id: "home",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "Services",
|
name: "Services", id: "#services"},
|
||||||
id: "services",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "Why Us",
|
name: "Why Us", id: "#why-us"},
|
||||||
id: "why-us",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "Testimonials",
|
name: "FAQ", id: "#faq"},
|
||||||
id: "testimonials",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "FAQ",
|
name: "Appointments", id: "/appointments"},
|
||||||
id: "faq",
|
{
|
||||||
},
|
name: "Manage Availability", id: "/blackout-times"}
|
||||||
]}
|
]}
|
||||||
button={{
|
button={{
|
||||||
text: "Schedule Now",
|
text: "Schedule Now", href: "/schedule"}}
|
||||||
href: "#contact",
|
|
||||||
}}
|
|
||||||
brandName="Detail Pros"
|
brandName="Detail Pros"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,78 +53,27 @@ export default function LandingPage() {
|
|||||||
<HeroSplitTestimonial
|
<HeroSplitTestimonial
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
background={{
|
background={{
|
||||||
variant: "plain",
|
variant: "plain"}}
|
||||||
}}
|
|
||||||
title="Shine Brighter with Detail Pros - Your Car, Our Passion."
|
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."
|
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={[
|
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",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
buttons={[
|
buttons={[
|
||||||
{
|
{
|
||||||
text: "View Services",
|
text: "View Services", href: "#services"},
|
||||||
href: "#services",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
text: "Book Now",
|
text: "Book Now", href: "#contact"},
|
||||||
href: "#contact",
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
avatars={[
|
avatars={[
|
||||||
{
|
{
|
||||||
src: "http://img.b2bpic.net/free-photo/front-view-young-male-grey-t-shirt-posing-smiling_140725-27983.jpg",
|
src: "http://img.b2bpic.net/free-photo/front-view-young-male-grey-t-shirt-posing-smiling_140725-27983.jpg", alt: "Student avatar"},
|
||||||
alt: "Student avatar",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
src: "http://img.b2bpic.net/free-photo/attractive-young-woman-smiling_74855-2579.jpg",
|
src: "http://img.b2bpic.net/free-photo/attractive-young-woman-smiling_74855-2579.jpg", alt: "Student avatar"},
|
||||||
alt: "Student avatar",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
src: "http://img.b2bpic.net/free-photo/happy-man-sitting-mat-outdoors_23-2147562273.jpg",
|
src: "http://img.b2bpic.net/free-photo/happy-man-sitting-mat-outdoors_23-2147562273.jpg", alt: "Student avatar"},
|
||||||
alt: "Student avatar",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
src: "http://img.b2bpic.net/free-photo/happy-african-young-lady-walking-outdoors_171337-15134.jpg",
|
src: "http://img.b2bpic.net/free-photo/happy-african-young-lady-walking-outdoors_171337-15134.jpg", alt: "Student avatar"},
|
||||||
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",
|
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"},
|
||||||
alt: "Student avatar",
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
avatarText="Meet the Team!"
|
avatarText="Meet the Team!"
|
||||||
imageSrc="http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg"
|
imageSrc="http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg"
|
||||||
@@ -148,9 +86,7 @@ export default function LandingPage() {
|
|||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
heading={[
|
heading={[
|
||||||
{
|
{
|
||||||
type: "text",
|
type: "text", content: "We’re two dedicated high school freshmen who take pride in delivering top-quality detailing with a personal touch. What sets us apart isn’t just our attention to detail—it’s 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 you’re completely satisfied with the results. Even at a young age, we’ve 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. We’re always learning, improving, and pushing ourselves to be better with every job. When you choose us, you’re not just getting a service—you’re supporting two motivated students who care deeply about doing things the right way."},
|
||||||
content: "About Our Dedicated Student Team",
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -162,22 +98,10 @@ export default function LandingPage() {
|
|||||||
features={[
|
features={[
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: "Precision Interior Detailing",
|
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"},
|
||||||
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,
|
id: 2,
|
||||||
title: "Spotless 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"},
|
||||||
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",
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
title="Our Promise: Meticulous Care & Guaranteed Satisfaction"
|
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."
|
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."
|
||||||
@@ -191,119 +115,44 @@ export default function LandingPage() {
|
|||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
plans={[
|
plans={[
|
||||||
{
|
{
|
||||||
id: "bronze",
|
id: "standard", badge: "STANDARD DETAIL", badgeIcon: Sparkles,
|
||||||
badge: "Basic Brilliance",
|
price: "Starting at $179", subtitle: "Best for regular maintenance.", buttons: [
|
||||||
badgeIcon: Sparkles,
|
|
||||||
price: "$99",
|
|
||||||
subtitle: "Essential clean, inside and out.",
|
|
||||||
buttons: [
|
|
||||||
{
|
{
|
||||||
text: "Book Bronze",
|
text: "Book Standard", href: "#contact"
|
||||||
href: "#contact",
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Exterior wash & dry",
|
"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."
|
||||||
"Vacuum interior",
|
|
||||||
"Window cleaning",
|
|
||||||
"Tire dressing",
|
|
||||||
"Wipe down surfaces",
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "silver",
|
id: "enhanced", badge: "ENHANCED DETAIL", badgeIcon: Shield,
|
||||||
badge: "Enhanced Clean",
|
price: "Starting at $219", subtitle: "Most popular, best value for most vehicles.", buttons: [
|
||||||
badgeIcon: Shield,
|
|
||||||
price: "$149",
|
|
||||||
subtitle: "Deep clean with added protection.",
|
|
||||||
buttons: [
|
|
||||||
{
|
{
|
||||||
text: "Book Silver",
|
text: "Book Enhanced", href: "#contact"
|
||||||
href: "#contact",
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Bronze package features",
|
"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."
|
||||||
"Hand wax application",
|
|
||||||
"Interior detail & polish",
|
|
||||||
"Door jam cleaning",
|
|
||||||
"Air freshener treatment",
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "gold",
|
id: "deep", badge: "DEEP DETAIL", badgeIcon: Award,
|
||||||
badge: "Ultimate Perfection",
|
price: "Starting at $289", subtitle: "Best for heavily used or very dirty cars.", buttons: [
|
||||||
badgeIcon: Award,
|
|
||||||
price: "$249",
|
|
||||||
subtitle: "Full rejuvenation, top to bottom.",
|
|
||||||
buttons: [
|
|
||||||
{
|
{
|
||||||
text: "Book Gold",
|
text: "Book Deep", href: "#contact"
|
||||||
href: "#contact",
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Silver package features",
|
"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."
|
||||||
"Clay bar treatment",
|
|
||||||
"Leather conditioning",
|
|
||||||
"Engine bay detail",
|
|
||||||
"Fabric stain removal",
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
title="Flexible Tiers for Every Need"
|
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>
|
||||||
|
|
||||||
<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">
|
<div id="faq" data-section="faq">
|
||||||
<FaqSplitMedia
|
<FaqSplitMedia
|
||||||
@@ -311,35 +160,17 @@ export default function LandingPage() {
|
|||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
faqs={[
|
faqs={[
|
||||||
{
|
{
|
||||||
id: "1",
|
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."},
|
||||||
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",
|
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."},
|
||||||
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",
|
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."},
|
||||||
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",
|
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."},
|
||||||
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",
|
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."},
|
||||||
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",
|
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."},
|
||||||
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"
|
imageSrc="http://img.b2bpic.net/free-photo/car-being-taking-care-workshop_23-2149580539.jpg"
|
||||||
mediaAnimation="opacity"
|
mediaAnimation="opacity"
|
||||||
@@ -355,8 +186,7 @@ export default function LandingPage() {
|
|||||||
<ContactCenter
|
<ContactCenter
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
background={{
|
background={{
|
||||||
variant: "plain",
|
variant: "plain"}}
|
||||||
}}
|
|
||||||
tag="Book Your Detail"
|
tag="Book Your Detail"
|
||||||
title="Ready for a Spotless Car?"
|
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."
|
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 +203,17 @@ export default function LandingPage() {
|
|||||||
socialLinks={[
|
socialLinks={[
|
||||||
{
|
{
|
||||||
icon: Instagram,
|
icon: Instagram,
|
||||||
href: "#",
|
href: "#", ariaLabel: "Instagram"},
|
||||||
ariaLabel: "Instagram",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: Facebook,
|
icon: Facebook,
|
||||||
href: "#",
|
href: "#", ariaLabel: "Facebook"},
|
||||||
ariaLabel: "Facebook",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: Twitter,
|
icon: Twitter,
|
||||||
href: "#",
|
href: "#", ariaLabel: "Twitter"},
|
||||||
ariaLabel: "Twitter",
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
96
src/app/schedule/page.tsx
Normal file
96
src/app/schedule/page.tsx
Normal 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="mediumLarge"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user