109 Commits

Author SHA1 Message Date
7327d56a91 Update src/app/page.tsx 2026-03-25 19:34:24 +00:00
ac949f82e2 Merge version_17 into main
Merge version_17 into main
2026-03-25 19:33:09 +00:00
a57572ed57 Update src/app/schedule/page.tsx 2026-03-25 19:33:06 +00:00
7cca83ca69 Update src/app/layout.tsx 2026-03-25 19:33:05 +00:00
7c95452906 Merge version_16 into main
Merge version_16 into main
2026-03-25 19:12:45 +00:00
5edd07e31d Update src/app/page.tsx 2026-03-25 19:12:42 +00:00
a92ef9fd1a Merge version_16 into main
Merge version_16 into main
2026-03-25 19:11:07 +00:00
63b98ac0f4 Update src/app/page.tsx 2026-03-25 19:11:04 +00:00
1219ad7b80 Update src/app/blackout-times/page.tsx 2026-03-25 19:11:04 +00:00
d277380e39 Update src/app/appointments/page.tsx 2026-03-25 19:11:03 +00:00
38cdd14aa5 Switch to version 13: modified src/app/schedule/page.tsx 2026-03-25 19:01:37 +00:00
88ab612d15 Switch to version 13: modified src/app/page.tsx 2026-03-25 19:01:37 +00:00
d9072d9178 Switch to version 13: modified src/app/blackout-times/page.tsx 2026-03-25 19:01:36 +00:00
88749e5930 Switch to version 13: modified src/app/appointments/page.tsx 2026-03-25 19:01:36 +00:00
5088d8cba2 Switch to version 14: modified src/app/schedule/page.tsx 2026-03-25 19:01:09 +00:00
50ff137947 Switch to version 14: modified src/app/page.tsx 2026-03-25 19:01:09 +00:00
ae1eef9ef6 Switch to version 14: modified src/app/blackout-times/page.tsx 2026-03-25 19:01:08 +00:00
b6b26b317a Switch to version 14: modified src/app/appointments/page.tsx 2026-03-25 19:01:08 +00:00
31ecb00422 Merge version_15 into main
Merge version_15 into main
2026-03-25 19:00:20 +00:00
970df4359d Update src/app/page.tsx 2026-03-25 19:00:17 +00:00
091939fda1 Update src/app/blackout-times/page.tsx 2026-03-25 19:00:16 +00:00
32329e0aae Update src/app/appointments/page.tsx 2026-03-25 19:00:16 +00:00
a95f2648ce Merge version_13 into main
Merge version_13 into main
2026-03-25 18:58:25 +00:00
ae88a9e4d5 Update src/app/page.tsx 2026-03-25 18:58:19 +00:00
981686d3ad Switch to version 13: modified src/app/schedule/page.tsx 2026-03-25 18:55:34 +00:00
04ff1e1d6b Switch to version 13: modified src/app/page.tsx 2026-03-25 18:55:34 +00:00
76a2d9497a Switch to version 13: modified src/app/blackout-times/page.tsx 2026-03-25 18:55:33 +00:00
ac18eaca5b Switch to version 13: modified src/app/appointments/page.tsx 2026-03-25 18:55:33 +00:00
974b621bc2 Merge version_14 into main
Merge version_14 into main
2026-03-25 18:55:28 +00:00
dca7a3304d Update src/app/page.tsx 2026-03-25 18:55:25 +00:00
1453627dd8 Merge version_14 into main
Merge version_14 into main
2026-03-25 18:53:25 +00:00
08d4d517fd Update src/app/schedule/page.tsx 2026-03-25 18:53:22 +00:00
bad10f3bda Update src/app/page.tsx 2026-03-25 18:53:22 +00:00
38ff919469 Update src/app/blackout-times/page.tsx 2026-03-25 18:53:21 +00:00
af79846d84 Update src/app/appointments/page.tsx 2026-03-25 18:53:21 +00:00
92066f1908 Merge version_13 into main
Merge version_13 into main
2026-03-25 18:34:00 +00:00
003b0fea48 Update src/app/schedule/page.tsx 2026-03-25 18:33:57 +00:00
cffd167521 Update src/app/page.tsx 2026-03-25 18:33:57 +00:00
32c05d93c9 Update src/app/blackout-times/page.tsx 2026-03-25 18:33:56 +00:00
377a9db766 Update src/app/appointments/page.tsx 2026-03-25 18:33:56 +00:00
1d788a65ef Merge version_12 into main
Merge version_12 into main
2026-03-25 18:28:12 +00:00
29152dc756 Update src/app/schedule/page.tsx 2026-03-25 18:28:09 +00:00
32393c2b81 Update src/app/page.tsx 2026-03-25 18:28:09 +00:00
2247bc6ffe Update src/app/blackout-times/page.tsx 2026-03-25 18:28:08 +00:00
dc7150e000 Update src/app/appointments/page.tsx 2026-03-25 18:28:08 +00:00
dd868a961f Update src/app/admin/dashboard/page.tsx 2026-03-25 18:28:07 +00:00
308fcd683b Merge version_11 into main
Merge version_11 into main
2026-03-25 01:53:58 +00:00
f9d638bba7 Update src/app/page.tsx 2026-03-25 01:53:55 +00:00
0e731d01d3 Switch to version 9: modified src/app/styles/base.css 2026-03-25 01:50:37 +00:00
40fa75e83d Switch to version 9: modified src/app/page.tsx 2026-03-25 01:50:37 +00:00
716756499b Switch to version 9: modified src/app/layout.tsx 2026-03-25 01:50:36 +00:00
e8aff9532d Switch to version 10: modified src/app/styles/base.css 2026-03-25 01:50:07 +00:00
7de72a7956 Switch to version 10: modified src/app/page.tsx 2026-03-25 01:50:07 +00:00
a64cd7139d Switch to version 10: modified src/app/layout.tsx 2026-03-25 01:50:07 +00:00
087f663ed1 Switch to version 9: modified src/app/styles/base.css 2026-03-25 01:47:26 +00:00
ae54028d2f Switch to version 9: modified src/app/page.tsx 2026-03-25 01:47:26 +00:00
cde3f26da1 Switch to version 9: modified src/app/layout.tsx 2026-03-25 01:47:25 +00:00
e3cd0f3c73 Switch to version 10: modified src/app/styles/base.css 2026-03-25 01:46:57 +00:00
71098f9d80 Switch to version 10: modified src/app/page.tsx 2026-03-25 01:46:56 +00:00
a72a4ec0c6 Switch to version 10: modified src/app/layout.tsx 2026-03-25 01:46:56 +00:00
50f282ae0b Switch to version 9: modified src/app/styles/base.css 2026-03-25 01:45:49 +00:00
3371230815 Switch to version 9: modified src/app/page.tsx 2026-03-25 01:45:49 +00:00
ebf33e8468 Switch to version 9: modified src/app/layout.tsx 2026-03-25 01:45:49 +00:00
edb19693a9 Switch to version 10: modified src/app/styles/base.css 2026-03-25 01:45:22 +00:00
6e769443a9 Switch to version 10: modified src/app/page.tsx 2026-03-25 01:45:22 +00:00
58ecc27117 Switch to version 10: modified src/app/layout.tsx 2026-03-25 01:45:22 +00:00
dc5479509b Switch to version 9: modified src/app/styles/base.css 2026-03-25 01:45:09 +00:00
31f9684f0d Switch to version 9: modified src/app/page.tsx 2026-03-25 01:45:08 +00:00
3ea51e76fe Switch to version 9: modified src/app/layout.tsx 2026-03-25 01:45:08 +00:00
5739a1d082 Merge version_10 into main
Merge version_10 into main
2026-03-25 01:43:51 +00:00
1fbb9cadd7 Update theme fonts 2026-03-25 01:43:45 +00:00
224073f0be Update theme fonts 2026-03-25 01:43:45 +00:00
1eacbfa04e Merge version_10 into main
Merge version_10 into main
2026-03-25 01:42:54 +00:00
d65e5d8f85 Update src/app/page.tsx 2026-03-25 01:42:47 +00:00
5877d68283 Merge version_10 into main
Merge version_10 into main
2026-03-25 01:39:48 +00:00
57b6a0a6f6 Update src/app/page.tsx 2026-03-25 01:39:42 +00:00
ea86aa23d8 Merge version_9 into main
Merge version_9 into main
2026-03-25 01:35:33 +00:00
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
6 changed files with 464 additions and 251 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="Upper Valley Detail"
/>
</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 Upper Valley Detail.
</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,96 @@
"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: "About Us", id: "#about-student-team" },
{ name: "FAQ", id: "#faq" },
{ name: "Appointments", id: "/appointments" },
{ name: "Manage Availability", id: "/blackout-times" },
{ name: "Schedule", id: "/schedule" }
]}
button={{
text: "Schedule Now", href: "/schedule"
}}
brandName="Upper Valley Detail"
/>
</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="Upper Valley Detail"
copyrightText="© 2024 Upper Valley Detail. 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,79 @@
"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: "About Us", id: "#about-student-team"},
{
name: "FAQ", id: "#faq"},
{
name: "Appointments", id: "/appointments"},
{
name: "Manage Availability", id: "/blackout-times"},
{
name: "Schedule", id: "/schedule"}
]}
button={{
text: "Schedule Now", href: "/schedule"}}
brandName="Upper Valley Detail"
/>
</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="Upper Valley Detail"
copyrightText="© 2024 Upper Valley Detail. All rights reserved."
socialLinks={[
{
icon: Instagram,
href: "#", ariaLabel: "Instagram"},
{
icon: Facebook,
href: "#", ariaLabel: "Facebook"},
{
icon: Twitter,
href: "#", ariaLabel: "Twitter"},
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -11,8 +11,8 @@ import { Manrope } from "next/font/google";
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Detail Pros | Premium Car Detailing by Students', title: 'Upper Valley Detail | Premium Car Detailing by Students',
description: 'Experience meticulous car detailing by local high school students. Guaranteed satisfaction, eco-friendly products, and affordable Bronze, Silver, Gold packages. Book your shine today!', description: 'Experience meticulous car detailing by local high school students at Upper Valley Detail. Guaranteed satisfaction, eco-friendly products, and affordable detailing packages. Book your shine today!',
keywords: ["car detailing, auto detailing, local car wash, student car detailing, mobile car wash, car cleaning service, high school students, eco-friendly car wash, car care"], keywords: ["car detailing, auto detailing, local car wash, student car detailing, mobile car wash, car cleaning service, high school students, eco-friendly car wash, car care"],
openGraph: { openGraph: {
"title": "Detail Pros | Premium Car Detailing by Students", "title": "Detail Pros | Premium Car Detailing by Students",

View File

@@ -4,13 +4,12 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import ContactCenter from '@/components/sections/contact/ContactCenter'; import ContactCenter from '@/components/sections/contact/ContactCenter';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; 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 FooterCard from '@/components/sections/footer/FooterCard';
import HeroSplitTestimonial from '@/components/sections/hero/HeroSplitTestimonial'; import HeroSplitTestimonial from '@/components/sections/hero/HeroSplitTestimonial';
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 MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout'; // New import
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() {
@@ -19,8 +18,8 @@ export default function LandingPage() {
defaultButtonVariant="elastic-effect" defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide" defaultTextAnimation="entrance-slide"
borderRadius="soft" borderRadius="soft"
contentWidth="mediumLarge" contentWidth="compact"
sizing="largeSmallSizeMediumTitles" sizing="medium"
background="circleGradient" background="circleGradient"
cardStyle="gradient-bordered" cardStyle="gradient-bordered"
primaryButtonStyle="flat" primaryButtonStyle="flat"
@@ -32,31 +31,25 @@ 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: "About Us", id: "#about-student-team"},
id: "testimonials",
},
{ {
name: "FAQ", name: "FAQ", id: "#faq"},
id: "faq", {
}, name: "Appointments", id: "/appointments"},
{
name: "Manage Availability", id: "/blackout-times"},
{
name: "Schedule", id: "/schedule"}
]} ]}
button={{ button={{
text: "Schedule Now", text: "Schedule Now", href: "/schedule"}}
href: "#contact", brandName="Upper Valley Detail"
}}
brandName="Detail Pros"
/> />
</div> </div>
@@ -64,123 +57,52 @@ export default function LandingPage() {
<HeroSplitTestimonial <HeroSplitTestimonial
useInvertedBackground={false} useInvertedBackground={false}
background={{ background={{
variant: "plain", variant: "plain"}}
}} title="Upper Valley Detail: Precision Car Care by Dedicated Students"
title="Shine Brighter with Detail Pros - Your Car, Our Passion." titleClassName="font-bold"
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="We're two high school freshmen with two years of experience in meticulous detailing. Your satisfaction is guaranteed. Say you're interested and let us transform your vehicle!"
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={[
{
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/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/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" imageSrc="http://img.b2bpic.net/free-photo/high-angle-new-car-with-back-door-open_23-2148332892.jpg"
mediaAnimation="opacity" mediaAnimation="opacity"
/> />
</div> </div>
<div id="about" data-section="about">
<InlineImageSplitTextAbout
useInvertedBackground={false}
heading={[
{
type: "text",
content: "About Our Dedicated Student Team",
},
]}
/>
</div>
<div id="why-us" data-section="why-us"> <div id="why-us" data-section="why-us">
<FeatureCardSix <FeatureCardThree
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
features={[ features={[
{ {
id: 1, 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/premium-photo/foam-detergent-cleaning-leather-seat-using-brush-worker-auto-cleaning-service-clean-car-inside-car-interior-detailing_255847-7909.jpg?id=33580195"},
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, 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-wash-detailing-station_1303-22322.jpg?id=8380359"},
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",
},
]} ]}
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."
gridVariant="uniform-all-items-equal"
animationType="slide-up"
className="py-12 md:py-16"
/>
</div>
<div id="about-student-team" data-section="about-student-team">
<MetricSplitMediaAbout
title="About our Student Team"
description="Were two dedicated freshmen with a passion for making vehicles look their absolute best. What started as a simple interest in cars quickly grew into a commitment to precision detailing and dependable service. We treat every vehicle with the same level of care and attention we would give our own, carefully cleaning, restoring, and protecting every surface. Our goal is to provide a trustworthy, high quality experience that leaves your car looking refreshed and well cared for. With a strong work ethic and a focus on customer satisfaction, we take pride in delivering results you can see and feel every time you drive."
metrics={[]} // Required but empty as per user request
useInvertedBackground={false}
mediaAnimation="none"
metricsAnimation="none"
textBoxClassName="max-w-md mx-auto"
imageSrc="http://img.b2bpic.net/premium-photo/tranquil-school-campus-with-sunlit-walkway_1254967-61051.jpg?id=327819702"
imageAlt="Outside of a school building"
/> />
</div> </div>
@@ -191,119 +113,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 $129", 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 $199", 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 $249", 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 +158,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,11 +184,10 @@ 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 Upper Valley Detail today! Let us bring the shine back to your vehicle. For custom requests or administrative inquiries, please reach out via this form."
inputPlaceholder="Enter your email" inputPlaceholder="Enter your email"
buttonText="Schedule Service" buttonText="Schedule Service"
termsText="By clicking Schedule Service you're confirming that you agree with our Terms and Conditions." termsText="By clicking Schedule Service you're confirming that you agree with our Terms and Conditions."
@@ -368,24 +196,18 @@ export default function LandingPage() {
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterCard <FooterCard
logoText="Detail Pros" logoText="Upper Valley Detail"
copyrightText="© 2024 Detail Pros. All rights reserved." copyrightText="© 2024 Upper Valley Detail. All rights reserved."
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>

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

@@ -0,0 +1,97 @@
"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 | Upper Valley Detail", description: "Book your next car detailing appointment with Upper Valley Detail 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, Upper Valley Detail schedule"],
openGraph: {
title: "Schedule Your Detail | Upper Valley Detail", description: "Book your next car detailing appointment with Upper Valley Detail using our easy online schedule management system. View available time slots and secure your spot.", url: "https://www.uppervalleydetailing.com/schedule", siteName: "Upper Valley Detail", 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 | Upper Valley Detail", description: "Book your next car detailing appointment with Upper Valley Detail 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: "About Us", id: "#about-student-team" },
{ name: "FAQ", id: "#faq" },
{ name: "Appointments", id: "/appointments" },
{ name: "Manage Availability", id: "/blackout-times"}
]}
button={{
text: "Schedule Now", href: "/schedule"}}
brandName="Upper Valley Detail"
/>
</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="Upper Valley Detail"
copyrightText="© 2024 Upper Valley Detail. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" },
{ icon: Twitter, href: "#", ariaLabel: "Twitter" },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}