Merge version_4 into main #8

Merged
bender merged 8 commits from version_4 into main 2026-04-15 16:58:41 +00:00
8 changed files with 170 additions and 129 deletions

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

@@ -0,0 +1,55 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import { LayoutDashboard, Utensils, ShoppingCart, BarChart3, Settings } from "lucide-react";
export default function AdminDashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="reveal-blur"
borderRadius="rounded"
contentWidth="smallMedium"
sizing="mediumLargeSizeMediumTitles"
background="grid"
cardStyle="glass-elevated"
primaryButtonStyle="shadow"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<div className="min-h-screen">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Admin Dashboard", id: "/admin" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Gallery", id: "/gallery" },
{ name: "Contact", id: "/contact" },
{ name: "Order Online", id: "/order" },
]}
brandName="Admin Portal"
/>
<main className="pt-32 pb-20 px-6 max-w-7xl mx-auto">
<h1 className="text-4xl font-bold mb-8">Service Management Dashboard</h1>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
{[
{ title: "Menu Management", icon: Utensils, desc: "Edit, add, or delete menu items." },
{ title: "Services", icon: Settings, desc: "Manage operational services." },
{ title: "Orders", icon: ShoppingCart, desc: "View and process customer orders." },
{ title: "Analytics", icon: BarChart3, desc: "View site performance metrics." },
].map((item, idx) => (
<div key={idx} className="p-6 rounded-xl border border-white/10 bg-white/5 hover:bg-white/10 transition">
<item.icon className="w-10 h-10 mb-4 text-primary" />
<h2 className="text-xl font-semibold mb-2">{item.title}</h2>
<p className="text-sm opacity-70">{item.desc}</p>
</div>
))}
</div>
</main>
</div>
</ThemeProvider>
);
}

View File

@@ -4,58 +4,29 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import SplitAbout from '@/components/sections/about/SplitAbout';
export default function GalleryPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
borderRadius="rounded"
contentWidth="smallMedium"
sizing="mediumLargeSizeMediumTitles"
>
<ThemeProvider>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Gallery", id: "/gallery" },
{ name: "Contact", id: "/contact" },
]}
brandName="Lollys Food Joint"
/>
</div>
<ProductCardTwo
title="Our Gallery"
description="A collection of our favorite dishes and moments at the restaurant."
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
products={[
{ id: "g1", brand: "Food", name: "Signature Burger", price: "", rating: 5, reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/home-made-tasty-burgers_628469-332.jpg?_wi=1" },
{ id: "g2", brand: "Drinks", name: "Fresh Shakes", price: "", rating: 5, reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/cacao-milkshake-topped-with-colourful-sprinkles-ice-cream-oreo_140725-8264.jpg?_wi=1" },
{ id: "g3", brand: "Food", name: "Fresh Wraps", price: "", rating: 5, reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/fast-fashion-concept-with-materials-textiles-disguised-as-sushi-rolls_23-2150771195.jpg?_wi=1" },
{ id: "g4", brand: "Food", name: "Side Bites", price: "", rating: 5, reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/delicious-creamy-melted-cheese_23-2149332823.jpg?_wi=1" },
]}
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Menu", id: "/menu" }, { name: "Gallery", id: "/gallery" }, { name: "Testimonials", id: "/testimonials" }, { name: "Reservations", id: "/reservations" }, { name: "Contact", id: "/contact" }]}
brandName="Lollys Food Joint"
/>
<div id="footer" data-section="footer">
<FooterSimple
columns={[
{ title: "Company", items: [{ label: "About Us", href: "/about" }, { label: "Gallery", href: "/gallery" }] },
{ title: "Order", items: [{ label: "Contact Us", href: "/contact" }] },
]}
bottomLeftText="© 2024 Lolly's Food Joint"
bottomRightText="All rights reserved."
/>
<div className="pt-32 pb-20">
<SplitAbout
title="Our Food Gallery"
description="A visual journey through our kitchen's best creations."
imageSrc="http://img.b2bpic.net/free-photo/man-preparing-salad-with-fresh-vegetables-wooden-table-cooking-tasty-healthy-food-black-background-vegetarian-food-healthy-cooking-concept_639032-421.jpg"
mediaAnimation="slide-up"
textboxLayout="split"
/>
</div>
<FooterSimple
columns={[{ title: "Links", items: [{ label: "Home", href: "/" }] }]}
bottomLeftText="© 2024 Lolly's Food Joint"
/>
</ReactLenis>
</ThemeProvider>
);

View File

@@ -3,85 +3,34 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import { useState } from "react";
const categories = [
{ id: "burgers", name: "Burgers" },
{ id: "street-food", name: "Street Food" },
{ id: "wraps", name: "Wraps" },
{ id: "fries", name: "Fries & Sides" },
{ id: "drinks", name: "Drinks" },
{ id: "milkshakes", name: "Milkshakes" },
];
export default function MenuPage() {
const [activeCategory, setActiveCategory] = useState("burgers");
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
borderRadius="rounded"
contentWidth="smallMedium"
sizing="mediumLargeSizeMediumTitles"
>
<ThemeProvider>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Gallery", id: "/gallery" },
{ name: "Contact", id: "/contact" },
{ name: "Order Online", id: "/order" },
]}
brandName="Lollys Food Joint"
/>
</div>
<main className="pt-32 pb-20 px-6 max-w-4xl mx-auto">
<h1 className="text-4xl md:text-5xl font-bold mb-10 text-center">Our Menu</h1>
<div className="flex flex-wrap gap-2 justify-center mb-12">
{categories.map((cat) => (
<button
key={cat.id}
onClick={() => setActiveCategory(cat.id)}
className={`px-6 py-2 rounded-full transition ${activeCategory === cat.id ? "bg-primary text-white" : "bg-card hover:bg-muted"}`}
>
{cat.name}
</button>
))}
</div>
<div className="grid gap-6 md:grid-cols-2">
{[1, 2, 3, 4, 5, 6].map((item) => (
<div key={item} className="p-6 rounded-xl border border-border bg-card shadow-sm">
<h3 className="text-xl font-bold">Signature Item {item}</h3>
<p className="text-muted-foreground mt-2">Delicious description of our amazing {categories.find(c => c.id === activeCategory)?.name || "dish"}.</p>
<p className="font-bold mt-4">$9.99</p>
</div>
))}
</div>
</main>
<div id="footer" data-section="footer">
<FooterSimple
columns={[
{ title: "Company", items: [{ label: "About Us", href: "/about" }, { label: "Menu", href: "/menu" }] },
{ title: "Order", items: [{ label: "Order Online", href: "/order" }, { label: "Contact Us", href: "/contact" }] },
]}
bottomLeftText="© 2024 Lolly's Food Joint"
bottomRightText="All rights reserved."
/>
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Menu", id: "/menu" }, { name: "Gallery", id: "/gallery" }, { name: "Testimonials", id: "/testimonials" }, { name: "Reservations", id: "/reservations" }, { name: "Contact", id: "/contact" }]}
brandName="Lollys Food Joint"
/>
<div className="pt-32 pb-20">
<ProductCardTwo
title="Full Menu"
description="Explore our complete selection of fresh, signature dishes."
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up"
textboxLayout="default"
products={[
{ id: "m1", brand: "Burgers", name: "Signature Burger", price: "$12.99", imageSrc: "http://img.b2bpic.net/free-photo/home-made-tasty-burgers_628469-332.jpg" },
{ id: "m2", brand: "Sides", name: "Hand-cut Fries", price: "$5.99", imageSrc: "http://img.b2bpic.net/free-photo/delicious-creamy-melted-cheese_23-2149332823.jpg" }
]}
/>
</div>
<FooterSimple
columns={[{ title: "Links", items: [{ label: "Home", href: "/" }] }]}
bottomLeftText="© 2024 Lolly's Food Joint"
/>
</ReactLenis>
</ThemeProvider>
);

View File

@@ -95,10 +95,10 @@ export default function LandingPage() {
gridVariant="four-items-2x2-equal-grid"
useInvertedBackground={true}
products={[
{ id: "p1", brand: "Burgers", name: "Lolly's Classic Burger", price: "$12.99", rating: 5, reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/home-made-tasty-burgers_628469-332.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p2", brand: "Street Food", name: "Crispy Fries & Sauce", price: "$5.99", rating: 4, reviewCount: "85", imageSrc: "http://img.b2bpic.net/free-photo/delicious-creamy-melted-cheese_23-2149332823.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p3", brand: "Wraps", name: "Signature Spicy Wrap", price: "$9.49", rating: 5, reviewCount: "95", imageSrc: "http://img.b2bpic.net/free-photo/fast-fashion-concept-with-materials-textiles-disguised-as-sushi-rolls_23-2150771195.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p4", brand: "Drinks", name: "Creamy Milkshake", price: "$6.99", rating: 5, reviewCount: "210", imageSrc: "http://img.b2bpic.net/free-photo/cacao-milkshake-topped-with-colourful-sprinkles-ice-cream-oreo_140725-8264.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p1", brand: "Burgers", name: "Lolly's Classic Burger", price: "R 129.99", rating: 5, reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/home-made-tasty-burgers_628469-332.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p2", brand: "Street Food", name: "Crispy Fries & Sauce", price: "R 59.99", rating: 4, reviewCount: "85", imageSrc: "http://img.b2bpic.net/free-photo/delicious-creamy-melted-cheese_23-2149332823.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p3", brand: "Wraps", name: "Signature Spicy Wrap", price: "R 94.99", rating: 5, reviewCount: "95", imageSrc: "http://img.b2bpic.net/free-photo/fast-fashion-concept-with-materials-textiles-disguised-as-sushi-rolls_23-2150771195.jpg", onProductClick: () => window.location.href = '/order' },
{ id: "p4", brand: "Drinks", name: "Creamy Milkshake", price: "R 69.99", rating: 5, reviewCount: "210", imageSrc: "http://img.b2bpic.net/free-photo/cacao-milkshake-topped-with-colourful-sprinkles-ice-cream-oreo_140725-8264.jpg", onProductClick: () => window.location.href = '/order' },
]}
title="Featured Favourites"
description="Our signature dishes you must try today."

View File

@@ -0,0 +1,32 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterSimple from '@/components/sections/footer/FooterSimple';
export default function ReservationsPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Menu", id: "/menu" }, { name: "Gallery", id: "/gallery" }, { name: "Testimonials", id: "/testimonials" }, { name: "Reservations", id: "/reservations" }, { name: "Contact", id: "/contact" }]}
brandName="Lollys Food Joint"
/>
<div className="pt-32 pb-20">
<ContactSplitForm
title="Book a Table"
description="Secure your reservation today for a premium dining experience."
inputs={[{ name: "name", type: "text", placeholder: "Full Name" }, { name: "date", type: "date", placeholder: "Date" }]}
useInvertedBackground={false}
/>
</div>
<FooterSimple
columns={[{ title: "Links", items: [{ label: "Home", href: "/" }] }]}
bottomLeftText="© 2024 Lolly's Food Joint"
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-raleway), sans-serif;
font-family: var(--font-montserrat), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-raleway), sans-serif;
font-family: var(--font-montserrat), sans-serif;
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #FFF8E1;
--card: #FFFFFF;
--foreground: #1A1A1A;
--background: #0a0a0a;
--card: #1a1a1a;
--foreground: #f5f5f5;
--primary-cta: #B71C1C;
--primary-cta-text: #FFFFFF;
--secondary-cta: #FFD700;
--secondary-cta-text: #1C1C1C;
--accent: #B71C1C;
--background-accent: #FFF8E1;
--background-accent: #2a2928;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);

View File

@@ -0,0 +1,34 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
import FooterSimple from '@/components/sections/footer/FooterSimple';
export default function TestimonialsPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleFullscreen
navItems={[{ name: "Home", id: "/" }, { name: "Menu", id: "/menu" }, { name: "Gallery", id: "/gallery" }, { name: "Testimonials", id: "/testimonials" }, { name: "Reservations", id: "/reservations" }, { name: "Contact", id: "/contact" }]}
brandName="Lollys Food Joint"
/>
<div className="pt-32 pb-20">
<TestimonialCardFive
title="Customer Stories"
description="See what our happy customers are saying about us."
textboxLayout="default"
testimonials={[
{ id: "t1", name: "John Doe", date: "2024-01-01", title: "Excellent!", quote: "Best food in town!", tag: "Foodie", avatarSrc: "" }
]}
/>
</div>
<FooterSimple
columns={[{ title: "Links", items: [{ label: "Home", href: "/" }] }]}
bottomLeftText="© 2024 Lolly's Food Joint"
/>
</ReactLenis>
</ThemeProvider>
);
}