Merge version_2 into main #1

Merged
bender merged 4 commits from version_2 into main 2026-04-15 12:19:42 +00:00
4 changed files with 159 additions and 12 deletions

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

@@ -0,0 +1,81 @@
"use client";
import React, { useState } from "react";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import ProductCardThree from "@/components/sections/product/ProductCardThree";
const ALL_PASTA = [
{ id: "p1", category: "Klasyki", name: "Tagliatelle al Tartufo", price: "48 zł", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-pasta-with-vegetables_23-2148584799.jpg" },
{ id: "p2", category: "Klasyki", name: "Spaghetti Carbonara", price: "42 zł", imageSrc: "http://img.b2bpic.net/free-photo/pasta-carbonara_23-2148496734.jpg" },
{ id: "p3", category: "Wegańskie", name: "Ravioli Ricotta e Spinaci", price: "45 zł", imageSrc: "http://img.b2bpic.net/free-photo/making-pasta_23-2147985276.jpg" },
{ id: "p4", category: "Wegańskie", name: "Penne Arrabbiata", price: "38 zł", imageSrc: "http://img.b2bpic.net/free-photo/penne-arrabbiata_23-2148584824.jpg" },
{ id: "p5", category: "Owoce Morza", name: "Linguine ai Frutti di Mare", price: "58 zł", imageSrc: "http://img.b2bpic.net/free-photo/seafood-pasta_23-2148584796.jpg" }
];
const CATEGORIES = ["Wszystkie", "Klasyki", "Wegańskie", "Owoce Morza"];
export default function MenuPage() {
const [activeCategory, setActiveCategory] = useState("Wszystkie");
const filteredProducts = activeCategory === "Wszystkie"
? ALL_PASTA
: ALL_PASTA.filter(p => p.category === activeCategory);
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="floatingGradient"
cardStyle="glass-elevated"
primaryButtonStyle="shadow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<ReactLenis root>
<NavbarLayoutFloatingInline
brandName="Fresca Pasta Bar"
navItems={[
{ name: "Strona główna", id: "/" },
{ name: "Menu", id: "/menu" }
]}
/>
<div className="pt-32 pb-20 px-6 max-w-7xl mx-auto">
<h1 className="text-5xl font-bold mb-12 text-center">Nasze Menu</h1>
<div className="flex flex-wrap gap-4 justify-center mb-16">
{CATEGORIES.map((cat) => (
<button
key={cat}
onClick={() => setActiveCategory(cat)}
className={`px-6 py-2 rounded-full transition-all border ${activeCategory === cat ? "bg-primary text-white border-primary" : "hover:bg-gray-100 border-gray-200"}`}
>
{cat}
</button>
))}
</div>
<ProductCardThree
title=""
products={filteredProducts}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
/>
</div>
<FooterLogoReveal
logoText="Fresca Pasta Bar"
leftLink={{ text: "Polityka prywatności", href: "#" }}
rightLink={{ text: "Kontakt", href: "/" }}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -11,7 +11,7 @@ import TestimonialCardTen from "@/components/sections/testimonial/TestimonialCar
import FeatureCardSixteen from "@/components/sections/feature/FeatureCardSixteen";
import ContactText from "@/components/sections/contact/ContactText";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import { Phone, MessageCircle, Sparkles } from "lucide-react";
import { Sparkles } from "lucide-react";
export default function ItalianRestaurantPage() {
return (
@@ -51,7 +51,7 @@ export default function ItalianRestaurantPage() {
tag="Pasta Fresca Kraków"
tagIcon={Sparkles}
imageSrc="http://img.b2bpic.net/free-photo/chicken-caesar-salad-with-rose-wine_140725-412.jpg"
imageAlt="Piękny talerz świeżej pasty z koktajlem w tle"
imageAlt="Świeża pasta fresca w najlepszej włoskiej restauracji w Krakowie"
buttons={[
{ text: "Zobacz menu", href: "#menu" },
{ text: "Rezerwuj stolik", href: "#contact" }
@@ -71,7 +71,7 @@ export default function ItalianRestaurantPage() {
<div id="menu" data-section="menu">
<ProductCardOne
title="Nasze Menu"
description="Wybierz coś dla siebie z bogatej karty dań i autorskich koktajli."
description="Wybierz coś dla siebie z bogatej karty dań i autorskich koktajli w naszej włoskiej restauracji."
products={[
{ id: "p1", name: "Tagliatelle al Tartufo", price: "48 zł", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-pasta-with-vegetables_23-2148584799.jpg" },
{ id: "p2", name: "Ravioli Ricotta e Spinaci", price: "42 zł", imageSrc: "http://img.b2bpic.net/free-photo/making-pasta_23-2147985276.jpg" },
@@ -100,7 +100,7 @@ export default function ItalianRestaurantPage() {
<div id="testimonials" data-section="testimonials">
<TestimonialCardTen
title="Co mówią o nas goście"
description="Opinie naszych zadowolonych klientów."
description="Opinie naszych zadowolonych klientów odwiedzających naszą włoską restaurację."
testimonials={[
{ id: "t1", title: "Najlepsza pasta!", quote: "Czuć tutaj prawdziwą jakość składników. To mój ulubiony punkt w Krakowie.", name: "Anna K.", role: "Klientka" },
{ id: "t2", title: "Wspaniałe koktajle", quote: "Autorskie drinki są genialne. Idealne miejsce na wieczorne spotkanie.", name: "Marek W.", role: "Gość" }
@@ -113,7 +113,7 @@ export default function ItalianRestaurantPage() {
<div id="comparison" data-section="comparison">
<FeatureCardSixteen
title="Jakość bez kompromisów"
description="Sprawdź, co nas wyróżnia na tle innych miejsc."
description="Sprawdź, dlaczego nasza pasta fresca w Krakowie jest tak wyjątkowa."
animationType="slide-up"
textboxLayout="default"
negativeCard={{ items: ["Gotowe mrożone makarony", "Niska jakość składników"] }}
@@ -123,7 +123,7 @@ export default function ItalianRestaurantPage() {
<div id="contact" data-section="contact">
<ContactText
text="Zarezerwuj stolik w Fresca Pasta Bar. Czekamy na Ciebie! Pon-Czw: 13-22, Pt-Sb: 13-23, Nd: 13-20."
text="Zarezerwuj stolik w Fresca Pasta Bar - najlepszej włoskiej restauracji w Krakowie. Czekamy na Ciebie! Pon-Czw: 13-22, Pt-Sb: 13-23, Nd: 13-20."
background={{ variant: "sparkles-gradient" }}
buttons={[
{ text: "Zadzwoń teraz", href: "tel:+48123456789" },

View File

@@ -0,0 +1,66 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
export default function ReservationsPage() {
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="floatingGradient"
cardStyle="glass-elevated"
primaryButtonStyle="shadow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="Fresca Pasta Bar"
navItems={[
{ name: "Menu", id: "/" },
{ name: "O nas", id: "/" },
{ name: "Rezerwacja", id: "/reservations" },
{ name: "Opinie", id: "/" }
]}
button={{ text: "Rezerwuj stolik", href: "/reservations" }}
/>
</div>
<div id="contact-form" data-section="contact-form">
<ContactSplitForm
title="Zarezerwuj swój stolik"
description="Wypełnij formularz, aby zarezerwować miejsce w Fresca Pasta Bar. Skontaktujemy się w celu potwierdzenia rezerwacji."
inputs={[
{ name: "name", type: "text", placeholder: "Imię i nazwisko", required: true },
{ name: "email", type: "email", placeholder: "Email", required: true },
{ name: "date", type: "date", placeholder: "Data", required: true },
{ name: "time", type: "time", placeholder: "Godzina", required: true },
{ name: "guests", type: "number", placeholder: "Liczba gości", required: true }
]}
buttonText="Potwierdź rezerwację"
onSubmit={(data) => console.log("Form submitted:", data)}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/people-having-dinner-restaurant_23-2148704251.jpg"
mediaPosition="right"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Fresca Pasta Bar"
leftLink={{ text: "Polityka prywatności", href: "#" }}
rightLink={{ text: "Kontakt", href: "/" }}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #f5f5f5;
--card: #ffffff;
--foreground: #1c1c1c;
--primary-cta: #1c1c1c;
--background: #fdfaf6;
--card: #f7f0e6;
--foreground: #0a7ea3;
--primary-cta: #ff8c00;
--primary-cta-text: #f5f5f5;
--secondary-cta: #ffffff;
--secondary-cta-text: #1c1c1c;
--accent: #e63946;
--background-accent: #e8bea8;
--accent: #ff8c00;
--background-accent: #f3e5d5;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);