Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50ab431078 | |||
| 5a6043befd | |||
| ce353f9abf | |||
| 56e6f9e84c | |||
| 6639dcd246 | |||
| cf13322bab | |||
| 524eb4644b | |||
| ee91d0519a | |||
| 0454827caa | |||
| 3dd5d16e24 | |||
| 5b0df07130 | |||
| ad6f56add3 | |||
| c3157fab3b | |||
| 2851e12656 | |||
| 9ac7a59f3c | |||
| 0c07d88897 | |||
| ff6aca9c02 | |||
| 9f8e7a385f | |||
| 0619f404b3 | |||
| e14d096763 |
182
src/app/about/page.tsx
Normal file
182
src/app/about/page.tsx
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
|
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
|
||||||
|
import FeatureHoverPattern from '@/components/sections/feature/featureHoverPattern/FeatureHoverPattern';
|
||||||
|
import TeamCardFive from '@/components/sections/team/TeamCardFive';
|
||||||
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
|
import { Sparkles, Users, Heart, Award } from "lucide-react";
|
||||||
|
|
||||||
|
export default function AboutPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-bubble"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="pill"
|
||||||
|
contentWidth="small"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="floatingGradient"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="radial-glow"
|
||||||
|
secondaryButtonStyle="layered"
|
||||||
|
headingFontWeight="normal"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="Koliba Ukrainska"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Philosophy", id: "hero" },
|
||||||
|
{ name: "Menu", id: "menu" },
|
||||||
|
{ name: "Banquets", id: "banquets" },
|
||||||
|
{ name: "Delivery", id: "delivery" },
|
||||||
|
{ name: "About Us", id: "about" },
|
||||||
|
{ name: "Contacts", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Reserve Table", href: "#contact" }}
|
||||||
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
|
className="fixed top-6 left-6 right-6 z-50"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroBillboardRotatedCarousel
|
||||||
|
title="Our Heritage"
|
||||||
|
description="For over two decades, Koliba Ukrainska has been a beacon of Ukrainian culture and tradition. Our family-owned restaurant celebrates the warmth, generosity, and authentic flavors that define our heritage."
|
||||||
|
tag="Ukrainian Traditions"
|
||||||
|
tagIcon={Sparkles}
|
||||||
|
buttons={[
|
||||||
|
{ text: "Explore More", href: "#values" },
|
||||||
|
{ text: "Book a Table", href: "#contact" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "radial-gradient" }}
|
||||||
|
carouselItems={[
|
||||||
|
{
|
||||||
|
id: "1", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_32SgGlSmvaVv2SYOkECykbr8Q49/tmp/restaurant-1771515733895-84d8b845.jpg", imageAlt: "Traditional Ukrainian restaurant ambiance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", imageSrc: "https://img.b2bpic.net/free-photo/beautifully-decorated-venue-interior-wedding_181624-58530.jpg?_wi=2", imageAlt: "Main banquet hall with stage and fireplace"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", imageSrc: "https://img.b2bpic.net/free-photo/restaurant-hall-with-turquoise-chairs-french-windows-navy-coloured-ceiling_140725-8448.jpg?_wi=2", imageAlt: "Comfortable lounge area with traditional decor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-luxurious-wedding-ceremony-hall_181624-59290.jpg?_wi=2", imageAlt: "Elegant dining hall with Ukrainian elements"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", imageSrc: "https://img.b2bpic.net/free-photo/table-setting-with-floral-centerpiece-wedding-reception-venue_637285-5627.jpg?_wi=2", imageAlt: "Beautiful table setting for celebrations"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", imageSrc: "https://img.b2bpic.net/free-photo/view-from-ceiling-decorated-celebration-hall-with-round-tables_8353-10198.jpg?_wi=2", imageAlt: "Spacious banquet hall from above"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
autoPlay={true}
|
||||||
|
autoPlayInterval={4000}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="values" data-section="values">
|
||||||
|
<FeatureHoverPattern
|
||||||
|
title="Our Core Values"
|
||||||
|
description="What drives everything we do at Koliba Ukrainska"
|
||||||
|
tag="Principles"
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
icon: Heart,
|
||||||
|
title: "Family First", description: "We believe every celebration is sacred. Our spaces and services are designed to bring families together and create memories that last a lifetime.", button: { text: "Learn More", href: "#" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Award,
|
||||||
|
title: "Authenticity", description: "Every dish, every decoration, every detail reflects our commitment to preserving true Ukrainian traditions and cultural heritage.", button: { text: "Explore", href: "#" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Users,
|
||||||
|
title: "Hospitality", description: "Warmth, genuine care, and personalized attention define our approach. We treat every guest like family and remember every celebration.", button: { text: "Experience", href: "#" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Sparkles,
|
||||||
|
title: "Excellence", description: "From our culinary masterpieces to our impeccable service, we strive for perfection in every aspect of your experience.", button: { text: "Discover", href: "#" }
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
textboxLayout="default"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="team" data-section="team">
|
||||||
|
<TeamCardFive
|
||||||
|
team={[
|
||||||
|
{
|
||||||
|
id: "1", name: "Mariya Kovalenko", role: "Owner & Founder", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-girl-smiling-happy-outdoor_181624-57627.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "Ivan Petrenko", role: "Head Chef", imageSrc: "https://img.b2bpic.net/free-photo/portrait-man-with-big-smile_181624-25971.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "Olena Shevchenko", role: "Event Manager", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-woman-confident-smile_181624-24921.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", name: "Dmytro Rusnak", role: "sommelier & Beverage Director", imageSrc: "https://img.b2bpic.net/free-photo/man-with-smile-looking-camera_181624-18705.jpg"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
animationType="slide-up"
|
||||||
|
title="Meet Our Team"
|
||||||
|
description="Passionate professionals dedicated to creating unforgettable Ukrainian celebrations"
|
||||||
|
tag="Our People"
|
||||||
|
tagIcon={Users}
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="cta" data-section="cta">
|
||||||
|
<ContactCTA
|
||||||
|
tag="Ready to Celebrate?"
|
||||||
|
tagIcon={Heart}
|
||||||
|
title="Plan Your Perfect Ukrainian Celebration"
|
||||||
|
description="Whether it's a wedding, corporate event, family gathering, or intimate dinner, Koliba Ukrainska is the perfect place to create memories. Let our team help bring your vision to life with authentic tradition and heartfelt hospitality."
|
||||||
|
buttons={[
|
||||||
|
{ text: "Book Your Event", href: "#contact" },
|
||||||
|
{ text: "Explore Venues", href: "/" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "radial-gradient" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterBaseReveal
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Restaurant", items: [
|
||||||
|
{ label: "Philosophy", href: "/about" },
|
||||||
|
{ label: "Menu", href: "/#menu" },
|
||||||
|
{ label: "Banquets", href: "/#banquets" },
|
||||||
|
{ label: "Delivery", href: "/#delivery" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Contact Info", items: [
|
||||||
|
{ label: "Phone: +38 (050) 123-45-67", href: "tel:+380501234567" },
|
||||||
|
{ label: "Hours: Mon-Sun 12:00-23:00", href: "#" },
|
||||||
|
{ label: "Address: Kyiv, Ukraine", href: "#" },
|
||||||
|
{ label: "Email: info@koliba.ua", href: "mailto:info@koliba.ua" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Follow Us", items: [
|
||||||
|
{ label: "Facebook", href: "https://facebook.com" },
|
||||||
|
{ label: "Instagram", href: "https://instagram.com" },
|
||||||
|
{ label: "TikTok", href: "https://tiktok.com" },
|
||||||
|
{ label: "YouTube", href: "https://youtube.com" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
copyrightText="© 2025 Koliba Ukrainska | Family-Owned Ukrainian Restaurant"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -28,11 +28,12 @@ export default function BlogPage() {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Reserve Table", href: "#contact" }}
|
button={{ text: "Reserve Table", href: "#contact" }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -64,10 +65,10 @@ export default function BlogPage() {
|
|||||||
columns={[
|
columns={[
|
||||||
{
|
{
|
||||||
title: "Restaurant", items: [
|
title: "Restaurant", items: [
|
||||||
{ label: "Philosophy", href: "#about" },
|
{ label: "Philosophy", href: "/about" },
|
||||||
{ label: "Menu", href: "#menu" },
|
{ label: "Menu", href: "/#menu" },
|
||||||
{ label: "Banquets", href: "#banquets" },
|
{ label: "Banquets", href: "/#banquets" },
|
||||||
{ label: "Delivery", href: "#delivery" }
|
{ label: "Delivery", href: "/#delivery" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -93,4 +94,4 @@ export default function BlogPage() {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,9 @@ export default function RootLayout({
|
|||||||
' background-color: #4d96ff05 !important;' +
|
' background-color: #4d96ff05 !important;' +
|
||||||
'}' +
|
'}' +
|
||||||
'img.webild-hover,' +
|
'img.webild-hover,' +
|
||||||
'img.webild-selected {' +
|
'img.webild-selected,' +
|
||||||
|
'video.webild-hover,' +
|
||||||
|
'video.webild-selected {' +
|
||||||
' outline-offset: 2px !important;' +
|
' outline-offset: 2px !important;' +
|
||||||
'}' +
|
'}' +
|
||||||
'.webild-element-type-label {' +
|
'.webild-element-type-label {' +
|
||||||
@@ -149,6 +151,10 @@ export default function RootLayout({
|
|||||||
return 'Image';
|
return 'Image';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tagName === 'video') {
|
||||||
|
return 'Video';
|
||||||
|
}
|
||||||
|
|
||||||
const backgroundImage = computedStyle.backgroundImage;
|
const backgroundImage = computedStyle.backgroundImage;
|
||||||
if (backgroundImage && backgroundImage !== 'none') {
|
if (backgroundImage && backgroundImage !== 'none') {
|
||||||
const urlMatch = backgroundImage.match(/url(['"]?([^'")]+)['"]?)/);
|
const urlMatch = backgroundImage.match(/url(['"]?([^'")]+)['"]?)/);
|
||||||
@@ -231,6 +237,38 @@ export default function RootLayout({
|
|||||||
return url;
|
return url;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getMediaTypeFromUrl = (url) => {
|
||||||
|
const videoExts = ['.mp4', '.webm', '.ogg', '.mov', '.avi', '.mkv', '.m4v', '.wmv'];
|
||||||
|
const imageExts = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.bmp', '.ico', '.tiff', '.avif'];
|
||||||
|
try {
|
||||||
|
const pathname = new URL(url).pathname.toLowerCase();
|
||||||
|
if (videoExts.some(function(ext) { return pathname.endsWith(ext); })) return 'video';
|
||||||
|
if (imageExts.some(function(ext) { return pathname.endsWith(ext); })) return 'image';
|
||||||
|
} catch(e) {}
|
||||||
|
return 'unknown';
|
||||||
|
};
|
||||||
|
|
||||||
|
const swapMediaElement = (oldEl, newTag, newSrc) => {
|
||||||
|
const newEl = document.createElement(newTag);
|
||||||
|
Array.from(oldEl.attributes).forEach(function(attr) {
|
||||||
|
if (attr.name !== 'src' && attr.name !== 'alt' && attr.name !== 'srcset' && attr.name !== 'autoplay' && attr.name !== 'loop' && attr.name !== 'muted' && attr.name !== 'playsinline') {
|
||||||
|
try { newEl.setAttribute(attr.name, attr.value); } catch(e) {}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
newEl.style.cssText = oldEl.style.cssText;
|
||||||
|
if (newTag === 'video') {
|
||||||
|
newEl.setAttribute('autoplay', '');
|
||||||
|
newEl.setAttribute('loop', '');
|
||||||
|
newEl.setAttribute('muted', '');
|
||||||
|
newEl.setAttribute('playsinline', '');
|
||||||
|
}
|
||||||
|
newEl.src = newSrc;
|
||||||
|
if (oldEl.parentNode) {
|
||||||
|
oldEl.parentNode.replaceChild(newEl, oldEl);
|
||||||
|
}
|
||||||
|
return newEl;
|
||||||
|
};
|
||||||
|
|
||||||
const getElementInfo = (element, assignId = false) => {
|
const getElementInfo = (element, assignId = false) => {
|
||||||
const rect = element.getBoundingClientRect();
|
const rect = element.getBoundingClientRect();
|
||||||
const tagName = element.tagName.toLowerCase();
|
const tagName = element.tagName.toLowerCase();
|
||||||
@@ -273,7 +311,18 @@ export default function RootLayout({
|
|||||||
isBackground: false
|
isBackground: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tagName === 'video') {
|
||||||
|
const rawSrc = element.src || element.currentSrc || (element.querySelector('source') && element.querySelector('source').src) || '';
|
||||||
|
const resolvedSrc = extractOriginalUrl(rawSrc);
|
||||||
|
info.imageData = {
|
||||||
|
src: resolvedSrc,
|
||||||
|
alt: element.getAttribute('aria-label') || undefined,
|
||||||
|
isBackground: false,
|
||||||
|
isVideo: true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const computedStyle = window.getComputedStyle(element);
|
const computedStyle = window.getComputedStyle(element);
|
||||||
const backgroundImage = computedStyle.backgroundImage;
|
const backgroundImage = computedStyle.backgroundImage;
|
||||||
if (backgroundImage && backgroundImage !== 'none') {
|
if (backgroundImage && backgroundImage !== 'none') {
|
||||||
@@ -321,7 +370,8 @@ export default function RootLayout({
|
|||||||
const tagName = element.tagName?.toLowerCase();
|
const tagName = element.tagName?.toLowerCase();
|
||||||
if (invalidElements.includes(tagName)) return false;
|
if (invalidElements.includes(tagName)) return false;
|
||||||
const isImage = tagName === 'img';
|
const isImage = tagName === 'img';
|
||||||
if (isImage) return true;
|
const isVideo = tagName === 'video';
|
||||||
|
if (isImage || isVideo) return true;
|
||||||
const hasInnerHTML = element.innerHTML && element.innerHTML.trim().length > 0;
|
const hasInnerHTML = element.innerHTML && element.innerHTML.trim().length > 0;
|
||||||
const hasTextContent = element.textContent && element.textContent.trim().length > 0;
|
const hasTextContent = element.textContent && element.textContent.trim().length > 0;
|
||||||
const hasChildren = element.children && element.children.length > 0;
|
const hasChildren = element.children && element.children.length > 0;
|
||||||
@@ -361,7 +411,7 @@ export default function RootLayout({
|
|||||||
node.nodeType === Node.TEXT_NODE && node.textContent && node.textContent.trim().length > 0
|
node.nodeType === Node.TEXT_NODE && node.textContent && node.textContent.trim().length > 0
|
||||||
);
|
);
|
||||||
|
|
||||||
const hasImages = element.tagName === 'IMG' || computedStyle.backgroundImage !== 'none' || element.querySelector('img');
|
const hasImages = element.tagName === 'IMG' || element.tagName === 'VIDEO' || computedStyle.backgroundImage !== 'none' || element.querySelector('img') || element.querySelector('video');
|
||||||
const isInteractive = ['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(element.tagName);
|
const isInteractive = ['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(element.tagName);
|
||||||
const hasFewChildren = element.children.length <= 3;
|
const hasFewChildren = element.children.length <= 3;
|
||||||
const area = rect.width * rect.height;
|
const area = rect.width * rect.height;
|
||||||
@@ -1042,11 +1092,22 @@ export default function RootLayout({
|
|||||||
updateButtonText(element, change.oldValue);
|
updateButtonText(element, change.oldValue);
|
||||||
}
|
}
|
||||||
} else if (change.type === 'replaceImage') {
|
} else if (change.type === 'replaceImage') {
|
||||||
const isBackground = element.tagName.toLowerCase() !== 'img';
|
const revertTag = element.tagName.toLowerCase();
|
||||||
|
const isBackground = revertTag !== 'img' && revertTag !== 'video';
|
||||||
if (isBackground) {
|
if (isBackground) {
|
||||||
element.style.backgroundImage = change.oldValue ? 'url(' + change.oldValue + ')' : '';
|
element.style.backgroundImage = change.oldValue ? 'url(' + change.oldValue + ')' : '';
|
||||||
} else {
|
} else {
|
||||||
element.src = change.oldValue;
|
const oldMediaType = getMediaTypeFromUrl(change.oldValue);
|
||||||
|
if (revertTag === 'video' && oldMediaType === 'image') {
|
||||||
|
swapMediaElement(element, 'img', change.oldValue);
|
||||||
|
} else if (revertTag === 'img' && oldMediaType === 'video') {
|
||||||
|
swapMediaElement(element, 'video', change.oldValue);
|
||||||
|
} else if (revertTag === 'video') {
|
||||||
|
element.src = change.oldValue;
|
||||||
|
element.load();
|
||||||
|
} else {
|
||||||
|
element.src = change.oldValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -1146,7 +1207,7 @@ export default function RootLayout({
|
|||||||
if (!isActive) return;
|
if (!isActive) return;
|
||||||
|
|
||||||
if (e.data.type === 'webild-replace-image') {
|
if (e.data.type === 'webild-replace-image') {
|
||||||
const { selector, newSrc, isBackground } = e.data.data;
|
const { selector, newSrc, isBackground, allowMediaTypeSwap } = e.data.data;
|
||||||
let element = null;
|
let element = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -1177,7 +1238,32 @@ export default function RootLayout({
|
|||||||
replaced = true;
|
replaced = true;
|
||||||
} else if (element.tagName.toLowerCase() === 'img') {
|
} else if (element.tagName.toLowerCase() === 'img') {
|
||||||
oldValue = element.src;
|
oldValue = element.src;
|
||||||
element.src = newSrc;
|
const newMediaType = getMediaTypeFromUrl(newSrc);
|
||||||
|
if (newMediaType === 'video' && allowMediaTypeSwap) {
|
||||||
|
const swapped = swapMediaElement(element, 'video', newSrc);
|
||||||
|
if (selectedElement === element) selectedElement = swapped;
|
||||||
|
element = swapped;
|
||||||
|
} else {
|
||||||
|
element.src = newSrc;
|
||||||
|
}
|
||||||
|
replaced = true;
|
||||||
|
} else if (element.tagName.toLowerCase() === 'video') {
|
||||||
|
oldValue = element.src || element.currentSrc || '';
|
||||||
|
const newMediaType = getMediaTypeFromUrl(newSrc);
|
||||||
|
const sources = element.querySelectorAll('source');
|
||||||
|
if (newMediaType === 'image' && allowMediaTypeSwap) {
|
||||||
|
const swapped = swapMediaElement(element, 'img', newSrc);
|
||||||
|
if (selectedElement === element) selectedElement = swapped;
|
||||||
|
element = swapped;
|
||||||
|
} else {
|
||||||
|
if (sources.length > 0) {
|
||||||
|
sources.forEach(function(source) { source.src = newSrc; });
|
||||||
|
element.load();
|
||||||
|
} else {
|
||||||
|
element.src = newSrc;
|
||||||
|
element.load();
|
||||||
|
}
|
||||||
|
}
|
||||||
replaced = true;
|
replaced = true;
|
||||||
} else {
|
} else {
|
||||||
const hasBackgroundImage = window.getComputedStyle(element).backgroundImage !== 'none';
|
const hasBackgroundImage = window.getComputedStyle(element).backgroundImage !== 'none';
|
||||||
@@ -1315,4 +1401,4 @@ export default function RootLayout({
|
|||||||
</ServiceWrapper>
|
</ServiceWrapper>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"use client"
|
"use client";
|
||||||
|
|
||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
@@ -32,6 +32,7 @@ export default function LandingPage() {
|
|||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "delivery" },
|
||||||
|
{ name: "About Us", id: "/about" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "Contacts", id: "contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Reserve Table", href: "#contact" }}
|
button={{ text: "Reserve Table", href: "#contact" }}
|
||||||
@@ -62,7 +63,7 @@ export default function LandingPage() {
|
|||||||
title="Our Philosophy"
|
title="Our Philosophy"
|
||||||
description="Koliba Ukrainska celebrates Ukrainian traditions through authentic family hospitality. Every detail—from hand-crafted wooden interiors to traditional recipes—honors our cultural heritage. We believe dining is a family affair, and our custom-designed spaces welcome celebrations of all kinds."
|
description="Koliba Ukrainska celebrates Ukrainian traditions through authentic family hospitality. Every detail—from hand-crafted wooden interiors to traditional recipes—honors our cultural heritage. We believe dining is a family affair, and our custom-designed spaces welcome celebrations of all kinds."
|
||||||
tag="About Us"
|
tag="About Us"
|
||||||
imageSrc="https://img.b2bpic.net/free-photo/full-shot-woman-getting-warmer-by-fire_23-2149172517.jpg"
|
imageSrc="https://img.b2bpic.net/free-photo/full-shot-woman-getting-warmer-by-fire_23-2149172517.jpg?_wi=1"
|
||||||
imageAlt="Traditional Ukrainian restaurant interior"
|
imageAlt="Traditional Ukrainian restaurant interior"
|
||||||
buttons={[{ text: "Discover More", href: "#banquets" }]}
|
buttons={[{ text: "Discover More", href: "#banquets" }]}
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
@@ -110,23 +111,23 @@ export default function LandingPage() {
|
|||||||
products={[
|
products={[
|
||||||
{
|
{
|
||||||
id: "1", brand: "Main Complex", name: "Main Banquet Hall", price: "80+ guests", rating: 5,
|
id: "1", brand: "Main Complex", name: "Main Banquet Hall", price: "80+ guests", rating: 5,
|
||||||
reviewCount: "Stage & Fireplace", imageSrc: "https://img.b2bpic.net/free-photo/beautifully-decorated-venue-interior-wedding_181624-58530.jpg", imageAlt: "Main banquet hall with stage and fireplace"
|
reviewCount: "Stage & Fireplace", imageSrc: "https://img.b2bpic.net/free-photo/beautifully-decorated-venue-interior-wedding_181624-58530.jpg?_wi=1", imageAlt: "Main banquet hall with stage and fireplace"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "2", brand: "Relaxation Space", name: "Lounge Zone", price: "20-40 guests", rating: 5,
|
id: "2", brand: "Relaxation Space", name: "Lounge Zone", price: "20-40 guests", rating: 5,
|
||||||
reviewCount: "Hookah & Terrace", imageSrc: "https://img.b2bpic.net/free-photo/restaurant-hall-with-turquoise-chairs-french-windows-navy-coloured-ceiling_140725-8448.jpg", imageAlt: "Comfortable lounge area with hookah"
|
reviewCount: "Hookah & Terrace", imageSrc: "https://img.b2bpic.net/free-photo/restaurant-hall-with-turquoise-chairs-french-windows-navy-coloured-ceiling_140725-8448.jpg?_wi=1", imageAlt: "Comfortable lounge area with hookah"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "3", brand: "Private Dining", name: "VIP Room", price: "15-30 guests", rating: 5,
|
id: "3", brand: "Private Dining", name: "VIP Room", price: "15-30 guests", rating: 5,
|
||||||
reviewCount: "Exclusive & Elegant", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-luxurious-wedding-ceremony-hall_181624-59290.jpg", imageAlt: "VIP room with elegant Ukrainian decor"
|
reviewCount: "Exclusive & Elegant", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-luxurious-wedding-ceremony-hall_181624-59290.jpg?_wi=1", imageAlt: "VIP room with elegant Ukrainian decor"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "4", brand: "Family Friendly", name: "Kids' Room", price: "10-20 guests", rating: 5,
|
id: "4", brand: "Family Friendly", name: "Kids' Room", price: "10-20 guests", rating: 5,
|
||||||
reviewCount: "Fun & Safe", imageSrc: "https://img.b2bpic.net/free-photo/table-setting-with-floral-centerpiece-wedding-reception-venue_637285-5627.jpg", imageAlt: "Colorful kids' room with traditional elements"
|
reviewCount: "Fun & Safe", imageSrc: "https://img.b2bpic.net/free-photo/table-setting-with-floral-centerpiece-wedding-reception-venue_637285-5627.jpg?_wi=1", imageAlt: "Colorful kids' room with traditional elements"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "5", brand: "Large Events", name: "Second Floor Hall", price: "100+ guests", rating: 5,
|
id: "5", brand: "Large Events", name: "Second Floor Hall", price: "100+ guests", rating: 5,
|
||||||
reviewCount: "Spacious & Elegant", imageSrc: "https://img.b2bpic.net/free-photo/view-from-ceiling-decorated-celebration-hall-with-round-tables_8353-10198.jpg", imageAlt: "Spacious second floor banquet hall"
|
reviewCount: "Spacious & Elegant", imageSrc: "https://img.b2bpic.net/free-photo/view-from-ceiling-decorated-celebration-hall-with-round-tables_8353-10198.jpg?_wi=1", imageAlt: "Spacious second floor banquet hall"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "6", brand: "Outdoor Dining", name: "Seasonal Terrace", price: "30-50 guests", rating: 5,
|
id: "6", brand: "Outdoor Dining", name: "Seasonal Terrace", price: "30-50 guests", rating: 5,
|
||||||
@@ -134,27 +135,27 @@ export default function LandingPage() {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "7", brand: "Intimate Gatherings", name: "Cottage 1", price: "8-15 guests", rating: 5,
|
id: "7", brand: "Intimate Gatherings", name: "Cottage 1", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=1", imageAlt: "Traditional Ukrainian cottage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "8", brand: "Intimate Gatherings", name: "Cottage 2", price: "8-15 guests", rating: 5,
|
id: "8", brand: "Intimate Gatherings", name: "Cottage 2", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=2", imageAlt: "Traditional Ukrainian cottage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "9", brand: "Intimate Gatherings", name: "Cottage 3", price: "8-15 guests", rating: 5,
|
id: "9", brand: "Intimate Gatherings", name: "Cottage 3", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=3", imageAlt: "Traditional Ukrainian cottage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "10", brand: "Intimate Gatherings", name: "Cottage 4", price: "8-15 guests", rating: 5,
|
id: "10", brand: "Intimate Gatherings", name: "Cottage 4", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=4", imageAlt: "Traditional Ukrainian cottage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "11", brand: "Intimate Gatherings", name: "Cottage 5", price: "8-15 guests", rating: 5,
|
id: "11", brand: "Intimate Gatherings", name: "Cottage 5", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=5", imageAlt: "Traditional Ukrainian cottage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "12", brand: "Intimate Gatherings", name: "Cottage 6", price: "8-15 guests", rating: 5,
|
id: "12", brand: "Intimate Gatherings", name: "Cottage 6", price: "8-15 guests", rating: 5,
|
||||||
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg", imageAlt: "Traditional Ukrainian cottage"
|
reviewCount: "Rustic Charm", imageSrc: "https://img.b2bpic.net/free-photo/wedding-photography-southern-cross-guest-ranch-madison-ga_181624-10722.jpg?_wi=6", imageAlt: "Traditional Ukrainian cottage"
|
||||||
}
|
}
|
||||||
]}
|
]}
|
||||||
carouselMode="auto"
|
carouselMode="auto"
|
||||||
@@ -225,7 +226,8 @@ export default function LandingPage() {
|
|||||||
{ label: "Philosophy", href: "#about" },
|
{ label: "Philosophy", href: "#about" },
|
||||||
{ label: "Menu", href: "#menu" },
|
{ label: "Menu", href: "#menu" },
|
||||||
{ label: "Banquets", href: "#banquets" },
|
{ label: "Banquets", href: "#banquets" },
|
||||||
{ label: "Delivery", href: "#delivery" }
|
{ label: "Delivery", href: "#delivery" },
|
||||||
|
{ label: "About Us", href: "/about" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -250,4 +252,4 @@ export default function LandingPage() {
|
|||||||
</div>
|
</div>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,11 +85,12 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -102,7 +103,7 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseReveal
|
<FooterBaseReveal
|
||||||
columns={[
|
columns={[
|
||||||
{"title":"Restaurant","items":[{"label":"Philosophy","href":"#about"},{"label":"Menu","href":"#menu"},{"label":"Banquets","href":"#banquets"},{"label":"Delivery","href":"#delivery"}]},
|
{"title":"Restaurant","items":[{"label":"Philosophy","href":"/about"},{"label":"Menu","href":"/#menu"},{"label":"Banquets","href":"/#banquets"},{"label":"Delivery","href":"/#delivery"}]},
|
||||||
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
||||||
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
||||||
]}
|
]}
|
||||||
@@ -133,11 +134,12 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -158,7 +160,7 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseReveal
|
<FooterBaseReveal
|
||||||
columns={[
|
columns={[
|
||||||
{"title":"Restaurant","items":[{"label":"Philosophy","href":"#about"},{"label":"Menu","href":"#menu"},{"label":"Banquets","href":"#banquets"},{"label":"Delivery","href":"#delivery"}]},
|
{"title":"Restaurant","items":[{"label":"Philosophy","href":"/about"},{"label":"Menu","href":"/#menu"},{"label":"Banquets","href":"/#banquets"},{"label":"Delivery","href":"/#delivery"}]},
|
||||||
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
||||||
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
||||||
]}
|
]}
|
||||||
@@ -188,11 +190,12 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -238,7 +241,7 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseReveal
|
<FooterBaseReveal
|
||||||
columns={[
|
columns={[
|
||||||
{"title":"Restaurant","items":[{"label":"Philosophy","href":"#about"},{"label":"Menu","href":"#menu"},{"label":"Banquets","href":"#banquets"},{"label":"Delivery","href":"#delivery"}]},
|
{"title":"Restaurant","items":[{"label":"Philosophy","href":"/about"},{"label":"Menu","href":"/#menu"},{"label":"Banquets","href":"/#banquets"},{"label":"Delivery","href":"/#delivery"}]},
|
||||||
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
||||||
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
||||||
]}
|
]}
|
||||||
@@ -248,4 +251,4 @@ export default function ProductPage({ params }: ProductPageProps) {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,11 +38,12 @@ export default function ShopPage() {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -55,7 +56,7 @@ export default function ShopPage() {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseReveal
|
<FooterBaseReveal
|
||||||
columns={[
|
columns={[
|
||||||
{"title":"Restaurant","items":[{"label":"Philosophy","href":"#about"},{"label":"Menu","href":"#menu"},{"label":"Banquets","href":"#banquets"},{"label":"Delivery","href":"#delivery"}]},
|
{"title":"Restaurant","items":[{"label":"Philosophy","href":"/about"},{"label":"Menu","href":"/#menu"},{"label":"Banquets","href":"/#banquets"},{"label":"Delivery","href":"/#delivery"}]},
|
||||||
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
||||||
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
||||||
]}
|
]}
|
||||||
@@ -85,11 +86,12 @@ export default function ShopPage() {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Koliba Ukrainska"
|
brandName="Koliba Ukrainska"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Philosophy", id: "about" },
|
{ name: "Philosophy", id: "#about" },
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Banquets", id: "banquets" },
|
{ name: "Banquets", id: "#banquets" },
|
||||||
{ name: "Delivery", id: "delivery" },
|
{ name: "Delivery", id: "#delivery" },
|
||||||
{ name: "Contacts", id: "contact" }
|
{ name: "About Us", id: "/about" },
|
||||||
|
{ name: "Contacts", id: "#contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
|
||||||
buttonClassName="rounded-full px-6 py-2"
|
buttonClassName="rounded-full px-6 py-2"
|
||||||
@@ -110,7 +112,7 @@ export default function ShopPage() {
|
|||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseReveal
|
<FooterBaseReveal
|
||||||
columns={[
|
columns={[
|
||||||
{"title":"Restaurant","items":[{"label":"Philosophy","href":"#about"},{"label":"Menu","href":"#menu"},{"label":"Banquets","href":"#banquets"},{"label":"Delivery","href":"#delivery"}]},
|
{"title":"Restaurant","items":[{"label":"Philosophy","href":"/about"},{"label":"Menu","href":"/#menu"},{"label":"Banquets","href":"/#banquets"},{"label":"Delivery","href":"/#delivery"}]},
|
||||||
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
{"title":"Contact Info","items":[{"label":"Phone: +38 (050) 123-45-67","href":"tel:+380501234567"},{"label":"Hours: Mon-Sun 12:00-23:00","href":"#"},{"label":"Address: Kyiv, Ukraine","href":"#"},{"label":"Email: info@koliba.ua","href":"mailto:info@koliba.ua"}]},
|
||||||
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
{"title":"Follow Us","items":[{"label":"Facebook","href":"https://facebook.com"},{"label":"Instagram","href":"https://instagram.com"},{"label":"TikTok","href":"https://tiktok.com"},{"label":"YouTube","href":"https://youtube.com"}]}
|
||||||
]}
|
]}
|
||||||
@@ -120,4 +122,4 @@ export default function ShopPage() {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,21 @@
|
|||||||
/* Base units */
|
/* Base units */
|
||||||
/* --vw is set by ThemeProvider */
|
/* --vw is set by ThemeProvider */
|
||||||
|
|
||||||
/* --background: #e3deea;;
|
/* --background: #010912;;;
|
||||||
--card: #ffffff;;
|
--card: #152840;;;
|
||||||
--foreground: #27231f;;
|
--foreground: #e6f0ff;;;
|
||||||
--primary-cta: #27231f;;
|
--primary-cta: #cee7ff;;;
|
||||||
--secondary-cta: #ffffff;;
|
--secondary-cta: #0e1a29;;;
|
||||||
--accent: #c68a62;;
|
--accent: #3f5c79;;;
|
||||||
--background-accent: #c68a62;; */
|
--background-accent: #004a93;;; */
|
||||||
|
|
||||||
--background: #e3deea;;
|
--background: #010912;;;
|
||||||
--card: #ffffff;;
|
--card: #152840;;;
|
||||||
--foreground: #27231f;;
|
--foreground: #e6f0ff;;;
|
||||||
--primary-cta: #27231f;;
|
--primary-cta: #cee7ff;;;
|
||||||
--secondary-cta: #ffffff;;
|
--secondary-cta: #0e1a29;;;
|
||||||
--accent: #c68a62;;
|
--accent: #3f5c79;;;
|
||||||
--background-accent: #c68a62;;
|
--background-accent: #004a93;;;
|
||||||
|
|
||||||
/* text sizing - set by ThemeProvider */
|
/* text sizing - set by ThemeProvider */
|
||||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||||
|
|||||||
Reference in New Issue
Block a user