17 Commits

Author SHA1 Message Date
629bcd59f5 Update src/app/reservation/page.tsx 2026-05-14 03:22:18 +00:00
6a3e23acaa Merge version_3 into main
Merge version_3 into main
2026-05-14 03:20:01 +00:00
db8ae748e8 Update src/app/reservation/page.tsx 2026-05-14 03:19:55 +00:00
c976ce13b5 Merge version_3 into main
Merge version_3 into main
2026-05-14 03:19:29 +00:00
a198106dc8 Add src/app/reservation/page.tsx 2026-05-14 03:19:25 +00:00
253326a3bc Update src/app/page.tsx 2026-05-14 03:19:25 +00:00
1e2eb68e62 Update src/app/menu/page.tsx 2026-05-14 03:19:24 +00:00
a37541e311 Update src/app/about/page.tsx 2026-05-14 03:19:24 +00:00
53fd89161f Merge version_2 into main
Merge version_2 into main
2026-05-14 03:18:11 +00:00
2bfb47b6e2 Update src/app/page.tsx 2026-05-14 03:18:07 +00:00
0da3da5821 Update src/app/menu/page.tsx 2026-05-14 03:18:07 +00:00
f3ed4fd6f0 Update src/app/about/page.tsx 2026-05-14 03:18:06 +00:00
3dc5294a6b Merge version_2 into main
Merge version_2 into main
2026-05-14 03:17:36 +00:00
804912e14a Update src/app/page.tsx 2026-05-14 03:17:32 +00:00
3156013c07 Add src/app/menu/page.tsx 2026-05-14 03:17:32 +00:00
dd012cd832 Add src/app/about/page.tsx 2026-05-14 03:17:31 +00:00
c70793f8f6 Merge version_1 into main
Merge version_1 into main
2026-05-14 03:09:16 +00:00
4 changed files with 181 additions and 12 deletions

47
src/app/about/page.tsx Normal file
View File

@@ -0,0 +1,47 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
export default function AboutPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="circleGradient"
cardStyle="glass-depth"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "gallery" },
{ name: "Reservation", id: "/reservation" },
{ name: "Contact", id: "contact" },
]}
brandName="Pizzeria Primavera"
/>
<div className="pt-32">
<MetricSplitMediaAbout
useInvertedBackground={false}
title="Our Story"
description="Pizzeria Primavera was born out of a passion for authentic Italian flavors. We have been serving the Vienna community since 1995 with heart and tradition."
metrics={[
{ value: "25+", title: "Years Legacy" },
{ value: "100%", title: "Authentic" },
{ value: "100k", title: "Pizzas Served" },
]}
imageSrc="http://img.b2bpic.net/free-photo/top-view-raw-dough-slices-with-flour-cream-desk_140725-91104.jpg?_wi=2"
/>
</div>
</ThemeProvider>
);
}

50
src/app/menu/page.tsx Normal file
View File

@@ -0,0 +1,50 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
export default function MenuPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="circleGradient"
cardStyle="glass-depth"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "gallery" },
{ name: "Reservation", id: "/reservation" },
{ name: "Contact", id: "contact" },
]}
brandName="Pizzeria Primavera"
/>
<div className="pt-32">
<ProductCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
products={[
{ id: "1", name: "Capricciosa", price: "€16.50", imageSrc: "http://img.b2bpic.net/free-photo/view-vegan-pizza-done-with-vegetables-by-bakery_23-2150195155.jpg?_wi=2" },
{ id: "2", name: "Carbonara", price: "€14.90", imageSrc: "http://img.b2bpic.net/free-photo/selective-focus-shot-appetizing-pasta-with-shrimps-mushrooms-greens_181624-59472.jpg?_wi=2" },
{ id: "3", name: "Salmon", price: "€22.00", imageSrc: "http://img.b2bpic.net/free-photo/salmon-steak-grilled_1339-3582.jpg?_wi=2" },
{ id: "4", name: "Margherita", price: "€12.00", imageSrc: "http://img.b2bpic.net/free-photo/top-view-raw-dough-slices-with-flour-cream-desk_140725-91104.jpg?_wi=3" },
]}
title="Full Menu"
description="Everything from the wood oven."
/>
</div>
</ThemeProvider>
);
}

View File

@@ -30,10 +30,11 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "hero" },
{ name: "About", id: "about" },
{ name: "Menu", id: "menu" },
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "gallery" },
{ name: "Reservation", id: "/reservation" },
{ name: "Contact", id: "contact" },
]}
brandName="Pizzeria Primavera"
@@ -47,8 +48,8 @@ export default function LandingPage() {
description="Wood-fired pizza, fresh ingredients, unforgettable atmosphere."
tag="Since 1995"
buttons={[
{ text: "Reserve a Table", href: "#contact" },
{ text: "Explore Menu", href: "#menu" },
{ text: "Reserve a Table", href: "/reservation" },
{ text: "Explore Menu", href: "/menu" },
]}
mediaItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hand-cutting-pizza-wooden-table_23-2148305681.jpg", imageAlt: "Wood fired pizza" },
@@ -70,7 +71,7 @@ export default function LandingPage() {
{ value: "4.8", title: "Rating" },
{ value: "100%", title: "Fresh Ingredients" },
]}
imageSrc="http://img.b2bpic.net/free-photo/top-view-raw-dough-slices-with-flour-cream-desk_140725-91104.jpg"
imageSrc="http://img.b2bpic.net/free-photo/top-view-raw-dough-slices-with-flour-cream-desk_140725-91104.jpg?_wi=1"
imageAlt="Traditional italian chef"
mediaAnimation="blur-reveal"
metricsAnimation="slide-up"
@@ -84,9 +85,9 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
products={[
{ id: "1", name: "Capricciosa Pizza", price: "€16.50", imageSrc: "http://img.b2bpic.net/free-photo/view-vegan-pizza-done-with-vegetables-by-bakery_23-2150195155.jpg" },
{ id: "2", name: "Spaghetti Carbonara", price: "€14.90", imageSrc: "http://img.b2bpic.net/free-photo/selective-focus-shot-appetizing-pasta-with-shrimps-mushrooms-greens_181624-59472.jpg" },
{ id: "3", name: "Grilled Salmon", price: "€22.00", imageSrc: "http://img.b2bpic.net/free-photo/salmon-steak-grilled_1339-3582.jpg" },
{ id: "1", name: "Capricciosa Pizza", price: "€16.50", imageSrc: "http://img.b2bpic.net/free-photo/view-vegan-pizza-done-with-vegetables-by-bakery_23-2150195155.jpg?_wi=1" },
{ id: "2", name: "Spaghetti Carbonara", price: "€14.90", imageSrc: "http://img.b2bpic.net/free-photo/selective-focus-shot-appetizing-pasta-with-shrimps-mushrooms-greens_181624-59472.jpg?_wi=1" },
{ id: "3", name: "Grilled Salmon", price: "€22.00", imageSrc: "http://img.b2bpic.net/free-photo/salmon-steak-grilled_1339-3582.jpg?_wi=1" },
]}
title="Signature Menu"
description="A curated selection of authentic italian classics."
@@ -148,7 +149,7 @@ export default function LandingPage() {
background={{ variant: "radial-gradient" }}
text="Pizzeria Primavera Wien | Steinbauergasse 22/3, 1120 Vienna, Austria | Phone: +43 681 20111959"
buttons={[
{ text: "Reserve Now", href: "#contact" },
{ text: "Reserve Now", href: "/reservation" },
{ text: "Get Directions", href: "https://maps.google.com" },
]}
/>
@@ -159,7 +160,7 @@ export default function LandingPage() {
imageSrc="http://img.b2bpic.net/free-photo/italian-chef-is-putting-prepared-margarita-pizza-oven-with-flame-it_613910-3398.jpg"
logoText="Pizzeria Primavera"
columns={[
{ title: "Navigate", items: [{ label: "Menu", href: "#menu" }, { label: "Gallery", href: "#gallery" }] },
{ title: "Navigate", items: [{ label: "Menu", href: "/menu" }, { label: "Gallery", href: "/gallery" }] },
{ title: "Hours", items: [{ label: "Daily 11:00 - 23:00", href: "#" }] },
]}
/>
@@ -167,4 +168,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -0,0 +1,71 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import { useState } from 'react';
export default function ReservationPage() {
const [time, setTime] = useState("19:00");
const [partySize, setPartySize] = useState("2");
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="circleGradient"
cardStyle="glass-depth"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "gallery" },
{ name: "Reservation", id: "/reservation" },
{ name: "Contact", id: "contact" },
]}
brandName="Pizzeria Primavera"
/>
</div>
<div id="contact" data-section="contact" className="pt-32">
<ContactCenter
title="Book Your Table"
tag="Reservation"
description="Experience authentic Italian flavors. Select your preferred time and party size below to secure your spot."
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
/>
<div className="max-w-md mx-auto p-8 space-y-6">
<div className="flex flex-col gap-2">
<label className="font-medium">Reservation Time</label>
<input
type="time"
value={time}
onChange={(e) => setTime(e.target.value)}
className="w-full p-3 rounded border border-gray-300 bg-white"
/>
</div>
<div className="flex flex-col gap-2">
<label className="font-medium">Number of Guests</label>
<input
type="number"
min="1"
max="20"
value={partySize}
onChange={(e) => setPartySize(e.target.value)}
className="w-full p-3 rounded border border-gray-300 bg-white"
/>
</div>
</div>
</div>
</ThemeProvider>
);
}