Compare commits
111 Commits
version_1
...
version_19
| Author | SHA1 | Date | |
|---|---|---|---|
| 01f90b33f6 | |||
| 4d3b1197e6 | |||
| 7327d56a91 | |||
| ac949f82e2 | |||
| a57572ed57 | |||
| 7cca83ca69 | |||
| 7c95452906 | |||
| 5edd07e31d | |||
| a92ef9fd1a | |||
| 63b98ac0f4 | |||
| 1219ad7b80 | |||
| d277380e39 | |||
| 38cdd14aa5 | |||
| 88ab612d15 | |||
| d9072d9178 | |||
| 88749e5930 | |||
| 5088d8cba2 | |||
| 50ff137947 | |||
| ae1eef9ef6 | |||
| b6b26b317a | |||
| 31ecb00422 | |||
| 970df4359d | |||
| 091939fda1 | |||
| 32329e0aae | |||
| a95f2648ce | |||
| ae88a9e4d5 | |||
| 981686d3ad | |||
| 04ff1e1d6b | |||
| 76a2d9497a | |||
| ac18eaca5b | |||
| 974b621bc2 | |||
| dca7a3304d | |||
| 1453627dd8 | |||
| 08d4d517fd | |||
| bad10f3bda | |||
| 38ff919469 | |||
| af79846d84 | |||
| 92066f1908 | |||
| 003b0fea48 | |||
| cffd167521 | |||
| 32c05d93c9 | |||
| 377a9db766 | |||
| 1d788a65ef | |||
| 29152dc756 | |||
| 32393c2b81 | |||
| 2247bc6ffe | |||
| dc7150e000 | |||
| dd868a961f | |||
| 308fcd683b | |||
| f9d638bba7 | |||
| 0e731d01d3 | |||
| 40fa75e83d | |||
| 716756499b | |||
| e8aff9532d | |||
| 7de72a7956 | |||
| a64cd7139d | |||
| 087f663ed1 | |||
| ae54028d2f | |||
| cde3f26da1 | |||
| e3cd0f3c73 | |||
| 71098f9d80 | |||
| a72a4ec0c6 | |||
| 50f282ae0b | |||
| 3371230815 | |||
| ebf33e8468 | |||
| edb19693a9 | |||
| 6e769443a9 | |||
| 58ecc27117 | |||
| dc5479509b | |||
| 31f9684f0d | |||
| 3ea51e76fe | |||
| 5739a1d082 | |||
| 1fbb9cadd7 | |||
| 224073f0be | |||
| 1eacbfa04e | |||
| d65e5d8f85 | |||
| 5877d68283 | |||
| 57b6a0a6f6 | |||
| ea86aa23d8 | |||
| d7b48a7993 | |||
| 4232caefea | |||
| 9e6a196464 | |||
| 0bc1226146 | |||
| f5e4e0bb1f | |||
| 1f51b2ac23 | |||
| 4f3e114539 | |||
| 14bd19e1f4 | |||
| 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="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>
|
||||
);
|
||||
}
|
||||
96
src/app/appointments/page.tsx
Normal file
96
src/app/appointments/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
79
src/app/blackout-times/page.tsx
Normal file
79
src/app/blackout-times/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
@@ -11,8 +11,8 @@ import { Manrope } from "next/font/google";
|
||||
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Detail Pros | 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!',
|
||||
title: 'Upper Valley Detail | Premium Car Detailing by Students',
|
||||
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"],
|
||||
openGraph: {
|
||||
"title": "Detail Pros | Premium Car Detailing by Students",
|
||||
|
||||
320
src/app/page.tsx
320
src/app/page.tsx
@@ -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 MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout'; // New import
|
||||
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,31 +31,25 @@ 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: "About Us", id: "#about-student-team"},
|
||||
{
|
||||
name: "FAQ",
|
||||
id: "faq",
|
||||
},
|
||||
name: "FAQ", id: "#faq"},
|
||||
{
|
||||
name: "Appointments", id: "/appointments"},
|
||||
{
|
||||
name: "Manage Availability", id: "/blackout-times"},
|
||||
{
|
||||
name: "Schedule", id: "/schedule"}
|
||||
]}
|
||||
button={{
|
||||
text: "Schedule Now",
|
||||
href: "#contact",
|
||||
}}
|
||||
brandName="Detail Pros"
|
||||
text: "Schedule Now", href: "/schedule"}}
|
||||
brandName="Upper Valley Detail"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -64,123 +57,52 @@ export default function LandingPage() {
|
||||
<HeroSplitTestimonial
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
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",
|
||||
},
|
||||
]}
|
||||
variant: "plain"}}
|
||||
title="Upper Valley Detail: Precision Car Care by Dedicated Students"
|
||||
titleClassName="font-bold"
|
||||
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={[]}
|
||||
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/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"
|
||||
mediaAnimation="opacity"
|
||||
/>
|
||||
</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">
|
||||
<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/premium-photo/foam-detergent-cleaning-leather-seat-using-brush-worker-auto-cleaning-service-clean-car-inside-car-interior-detailing_255847-7909.jpg?id=33580195"},
|
||||
{
|
||||
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-wash-detailing-station_1303-22322.jpg?id=8380359"},
|
||||
]}
|
||||
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>
|
||||
|
||||
<div id="about-student-team" data-section="about-student-team">
|
||||
<MetricSplitMediaAbout
|
||||
title="About our Student Team"
|
||||
description="We’re 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>
|
||||
|
||||
@@ -191,119 +113,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 +158,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,11 +184,10 @@ 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."
|
||||
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"
|
||||
buttonText="Schedule Service"
|
||||
termsText="By clicking Schedule Service you're confirming that you agree with our Terms and Conditions."
|
||||
@@ -368,28 +196,22 @@ export default function LandingPage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterCard
|
||||
logoText="Detail Pros"
|
||||
copyrightText="© 2024 Detail Pros. All rights reserved."
|
||||
logoText="Upper Valley Detail"
|
||||
copyrightText="© 2024 Upper Valley Detail. All rights reserved."
|
||||
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>
|
||||
);
|
||||
}
|
||||
}
|
||||
98
src/app/schedule/page.tsx
Normal file
98
src/app/schedule/page.tsx
Normal file
@@ -0,0 +1,98 @@
|
||||
"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"},
|
||||
{ name: "Schedule", id: "/schedule"}
|
||||
]}
|
||||
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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user