Merge version_2 into main #2

Merged
bender merged 5 commits from version_2 into main 2026-02-17 14:32:26 +00:00
5 changed files with 97 additions and 97 deletions

View File

@@ -26,16 +26,16 @@ export default function BlogPage() {
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Bandura's Hearth & Hall"
brandName="Бандура: Серце і Зала"
navItems={[
{ name: "Home", id: "/" },
{ name: "Philosophy", id: "/#philosophy" },
{ name: "Menu", id: "/#menu" },
{ name: "Banquets", id: "/#banquets" },
{ name: "Delivery", id: "/#delivery" },
{ name: "Contacts", id: "/#contacts" },
{ name: "Головна", id: "/" },
{ name: "Філософія", id: "/#philosophy" },
{ name: "Меню", id: "/#menu" },
{ name: "Банкети", id: "/#banquets" },
{ name: "Доставка", id: "/#delivery" },
{ name: "Контакти", id: "/#contacts" }
]}
button={{ text: "Book a Table", href: "/#contacts" }}
button={{ text: "Забронювати Столик", href: "/#contacts" }}
className="py-4 px-6 md:px-8"
buttonClassName="bg-primary-cta text-primary-cta-foreground hover:bg-primary-cta/90 transition-colors duration-300"
buttonTextClassName="font-semibold text-lg"
@@ -45,14 +45,14 @@ export default function BlogPage() {
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
<p className="text-foreground">Завантаження дописів...</p>
</div>
) : (
<div id="blog" data-section="blog">
<BlogCardTwo
blogs={posts}
title="Latest Articles"
description="Insights and updates from our team"
title="Останні Статті"
description="Огляди та новини від нашої команди"
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
@@ -63,20 +63,20 @@ export default function BlogPage() {
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="Bandura's Hearth & Hall"
logoText="Бандура: Серце і Зала"
columns={[
{ items: [
{ label: "Philosophy", href: "/#philosophy" },
{ label: "Menu", href: "/#menu" },
{ label: "Banquets", href: "/#banquets" },
{ label: "Філософія", href: "/#philosophy" },
{ label: "Меню", href: "/#menu" },
{ label: "Банкети", href: "/#banquets" }
]},
{ items: [
{ label: "Delivery", href: "/#delivery" },
{ label: "Contacts", href: "/#contacts" },
{ label: "Book a Table", href: "/#contacts" },
]},
{ label: "Доставка", href: "/#delivery" },
{ label: "Контакти", href: "/#contacts" },
{ label: "Забронювати Столик", href: "/#contacts" }
]}
]}
ariaLabel="Site footer"
ariaLabel="Нижній колонтитул сайту"
containerClassName="py-16 md:py-24"
/>
</div>

View File

@@ -9,7 +9,7 @@ const figtree = Figtree({
});
export const metadata: Metadata = {
title: "Webild components 2", description: "Generated by create next app"};
title: "Бандура: Серце і Зала - Автентична Українська Кухня", description: "Відчуйте справжні українські банкети та смаки"};
export default function RootLayout({
children,
@@ -17,7 +17,7 @@ export default function RootLayout({
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<html lang="uk" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${figtree.variable} antialiased`}

View File

@@ -26,15 +26,15 @@ export default function LandingPage() {
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Bandura's Hearth & Hall"
brandName="Бандура: Серце і Зала"
navItems={[
{ name: "Philosophy", id: "#philosophy" },
{ name: "Menu", id: "#menu" },
{ name: "Banquets", id: "#banquets" },
{ name: "Delivery", id: "#delivery" },
{ name: "Contacts", id: "#contacts" }
{ name: "Філософія", id: "#philosophy" },
{ name: "Меню", id: "#menu" },
{ name: "Банкети", id: "#banquets" },
{ name: "Доставка", id: "#delivery" },
{ name: "Контакти", id: "#contacts" }
]}
button={{ text: "Book a Table", href: "#contacts" }}
button={{ text: "Забронювати Столик", href: "#contacts" }}
className="py-4 px-6 md:px-8"
buttonClassName="bg-primary-cta text-primary-cta-foreground hover:bg-primary-cta/90 transition-colors duration-300"
buttonTextClassName="font-semibold text-lg"
@@ -44,18 +44,18 @@ export default function LandingPage() {
<div id="hero" data-section="hero">
<HeroLogoBillboard
logoText="Bandura's Hearth & Hall"
description="Where Ukrainian Soul Meets Culinary Art Experience Authentic Banquets & Flavors."
logoText="Бандура: Серце і Зала"
description="Де українська душа зустрічається з кулінарним мистецтвом відчуйте справжні банкети та смаки."
buttons={[
{ text: "Book a Table", href: "#contacts" },
{ text: "View Menu", href: "#menu" }
{ text: "Забронювати Столик", href: "#contacts" },
{ text: "Переглянути Меню", href: "#menu" }
]}
background={{ variant: "plain" }}
imageSrc="https://img.b2bpic.net/free-photo/cafe-with-burning-candles-tables_140725-7784.jpg"
imageAlt="Cozy restaurant interior with fireplace"
imageAlt="Затишний інтер'єр ресторану з каміном"
mediaAnimation="opacity"
frameStyle="card"
ariaLabel="Hero section for Bandura's Hearth & Hall"
ariaLabel="Героїчна секція для Бандура: Серце і Зала"
logoClassName="font-extrabold text-7xl md:text-8xl lg:text-9xl tracking-tight leading-none"
descriptionClassName="max-w-xl mx-auto text-center text-lg md:text-xl"
/>
@@ -64,13 +64,13 @@ export default function LandingPage() {
<div id="philosophy" data-section="philosophy">
<InlineImageSplitTextAbout
heading={[
{ type: "text", content: "Our Philosophy: " },
{ type: "image", src: "https://img.b2bpic.net/free-photo/beautiful-vibe-christmas-beautiful-home-happy-cozy_482257-17978.jpg", alt: "Ukrainian ethno interior detail" },
{ type: "text", content: "Authenticity & Warmth" }
{ type: "text", content: "Наша Філософія: " },
{ type: "image", src: "https://img.b2bpic.net/free-photo/beautiful-vibe-christmas-beautiful-home-happy-cozy_482257-17978.jpg", alt: "Деталь українського етно-інтер'єру" },
{ type: "text", content: "Автентичність та Тепло" }
]}
buttons={[]}
useInvertedBackground={false}
ariaLabel="About Us: Our Philosophy"
ariaLabel="Про нас: Наша Філософія"
className="py-20 md:py-32"
headingClassName="text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"
imageWrapperClassName="inline-block mx-2 align-middle w-12 h-12 md:w-16 md:h-16 rounded-full overflow-hidden"
@@ -80,15 +80,15 @@ export default function LandingPage() {
<div id="menu" data-section="menu">
<FeatureCardSix
title="Our Menu: A Culinary Journey"
description="Savor the flavors of Ukraine and beyond, crafted with passion and served with warmth. Explore our diverse offerings, from hearty traditional dishes to exquisite bar selections. Don't forget our cozy lounge zone and terrace where hookahs are available."
title="Наше Меню: Кулінарна Подорож"
description="Насолоджуйтеся смаками України та світу, приготованими з пристрастю та поданими з теплотою. Дослідіть наші різноманітні пропозиції, від ситних традиційних страв до вишуканих барних добірок. Не забудьте про нашу затишну лаунж-зону та терасу, де доступні кальяни."
textboxLayout="default"
useInvertedBackground={true}
features={[
{ id: 1, title: "Kitchen Delights", description: "Experience authentic Ukrainian cuisine with our handcrafted dishes. From rich borscht to savory varenyky, each plate is a celebration of tradition and taste. Our menu also features seasonal specialties and contemporary interpretations.", imageSrc: "https://img.b2bpic.net/free-photo/dumplings-served-with-sour-cream-eggplant-rolls-pickles_141793-599.jpg", imageAlt: "Traditional Ukrainian food spread" },
{ id: 2, title: "Bar & Cocktails", description: "Our bar offers a curated selection of beverages, from classic cocktails with an ethno twist to refreshing non-alcoholic options. Complement your meal or enjoy a drink in our cozy lounge zone or on the seasonal terrace.", imageSrc: "https://img.b2bpic.net/free-photo/restaurant-with-leather-sofa-paintings-wall_140725-9715.jpg", imageAlt: "Artfully crafted cocktail at a rustic bar" },
{ id: 3, title: "Exquisite Wine List", description: "Discover our extensive wine list, carefully selected to perfectly pair with our menu. Featuring local Ukrainian wines and international favorites, there's a perfect bottle for every palate and occasion.", imageSrc: "https://img.b2bpic.net/free-photo/glasses-flowers-arrangement_23-2149617131.jpg", imageAlt: "Wine bottles in an ethno-style cellar" },
{ id: 4, title: "Takeaway & Delivery", description: "Enjoy the taste of Bandura's Hearth & Hall in the comfort of your home. Our takeaway menu offers a selection of popular dishes, prepared fresh for your convenience. Perfect for family gatherings or a cozy night in.", imageSrc: "https://img.b2bpic.net/free-photo/smoked-vegetable-slices-aubergine-tomato-bell-pepper-onion_140725-5933.jpg", imageAlt: "Elegantly packed takeaway food" }
{ id: 1, title: "Кухонні Делікатеси", description: "Відчуйте справжню українську кухню з нашими стравами ручної роботи. Від наваристого борщу до смачних вареників, кожна страва — це свято традицій та смаку. Наше меню також містить сезонні страви та сучасні інтерпретації.", imageSrc: "https://img.b2bpic.net/free-photo/dumplings-served-with-sour-cream-eggplant-rolls-pickles_141793-599.jpg", imageAlt: "Традиційний український стіл з їжею" },
{ id: 2, title: "Бар та Коктейлі", description: "Наш бар пропонує вишуканий вибір напоїв, від класичних коктейлів з етно-нотками до освіжаючих безалкогольних варіантів. Доповніть свій обід або насолодіться напоєм у нашій затишній лаунж-зоні або на сезонній терасі.", imageSrc: "https://img.b2bpic.net/free-photo/restaurant-with-leather-sofa-paintings-wall_140725-9715.jpg", imageAlt: "Витончено приготований коктейль у рустикальному барі" },
{ id: 3, title: "Вишукана Винна Карта", description: "Відкрийте для себе нашу велику винну карту, ретельно підібрану для ідеального поєднання з нашим меню. Представляючи місцеві українські вина та міжнародні фаворити, у нас є ідеальна пляшка для кожного смаку та випадку.", imageSrc: "https://img.b2bpic.net/free-photo/glasses-flowers-arrangement_23-2149617131.jpg", imageAlt: "Винні пляшки в етно-стилізованому льоху" },
{ id: 4, title: "Навинос та Доставка", description: "Насолоджуйтесь смаком Бандура: Серце і Зала в затишку вашого дому. Наше меню навинос пропонує вибір популярних страв, свіжо приготованих для вашої зручності. Ідеально для сімейних зустрічей або затишного вечора.", imageSrc: "https://img.b2bpic.net/free-photo/smoked-vegetable-slices-aubergine-tomato-bell-pepper-onion_140725-5933.jpg", imageAlt: "Елегантно упакована їжа навинос" }
]}
textBoxClassName="max-w-3xl mx-auto text-center"
textBoxTitleClassName="text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"
@@ -100,39 +100,39 @@ export default function LandingPage() {
<div id="banquets" data-section="banquets">
<ProductCardTwo
title="Banquets & Event Spaces"
description="Discover the perfect setting for your celebration. From intimate gatherings to grand feasts, our versatile halls and charming cottages offer an unforgettable experience in authentic Ukrainian style."
title="Банкети та Івент-Простори"
description="Відкрийте для себе ідеальне місце для вашого свята. Від затишних зустрічей до грандіозних бенкетів, наші універсальні зали та чарівні котеджі пропонують незабутні враження в автентичному українському стилі."
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
gridVariant="two-columns-alternating-heights"
products={[
{ id: "main-hall", brand: "Halls", name: "Main Hall", price: "Capacity: 80+ guests", rating: 5, reviewCount: "Stage & Fireplace", imageSrc: "https://img.b2bpic.net/free-photo/view-from-ceiling-decorated-celebration-hall-with-round-tables_8353-10198.jpg", imageAlt: "Main banquet hall with stage and fireplace" },
{ id: "lounge-zone", brand: "Halls", name: "Lounge Zone", price: "Capacity: 20-30 guests", rating: 5, reviewCount: "Cozy & Relaxed", imageSrc: "https://img.b2bpic.net/free-photo/traditional-house-interior-design_23-2151050931.jpg", imageAlt: "Lounge zone with comfortable seating" },
{ id: "vip-room", brand: "Halls", name: "VIP Room", price: "Capacity: 10-15 guests", rating: 5, reviewCount: "Private & Exclusive", imageSrc: "https://img.b2bpic.net/free-photo/concept-table-setting-christmas-holidays-beautiful-stylish-decorated-table-is-waiting-guests-holiday_132075-14171.jpg", imageAlt: "Exclusive VIP dining room" },
{ id: "kids-room", brand: "Rooms", name: "Kids' Room", price: "Capacity: Up to 20 children", rating: 5, reviewCount: "Fun & Playful", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-summer-modern-home-interior-design_181624-60483.jpg", imageAlt: "Children's play room" },
{ id: "second-floor", brand: "Halls", name: "Second Floor", price: "Capacity: 50-70 guests", rating: 5, reviewCount: "Spacious for Events", imageSrc: "https://img.b2bpic.net/free-photo/wedding-reception-hall-with-elegant-table-setting-with-candles_181624-16776.jpg", imageAlt: "Spacious second floor banquet hall" },
{ id: "terrace", brand: "Seasonal", name: "Terrace", price: "Capacity: 40-50 guests", rating: 5, reviewCount: "Open-Air Events", imageSrc: "https://img.b2bpic.net/free-photo/young-man-getting-ready-new-year-s-party_23-2149144036.jpg", imageAlt: "Outdoor dining terrace" },
{ id: "cottage-1", brand: "Cottages", name: "Banquet Cottage 1", price: "Capacity: 10-12 guests", rating: 5, reviewCount: "Intimate Gatherings", imageSrc: "https://img.b2bpic.net/free-photo/interior-old-residential-building-village-museum-bucharest-romania_1268-21642.jpg", imageAlt: "Private banquet cottage" },
{ id: "cottage-2", brand: "Cottages", name: "Banquet Cottage 2", price: "Capacity: 10-12 guests", rating: 5, reviewCount: "Intimate Gatherings", imageSrc: "https://img.b2bpic.net/free-photo/close-view-baked-bread-embroidery-towel-placed-wooden-table-near-glass-box-which-prepared-wedding-ceremony-outdoor_8353-12389.jpg", imageAlt: "Private banquet cottage" },
{ id: "cottage-3", brand: "Cottages", name: "Banquet Cottage 3", price: "Capacity: 10-12 guests", rating: 5, reviewCount: "Intimate Gatherings", imageSrc: "https://img.b2bpic.net/free-photo/white-vases-with-greenery-stand-wooden-boxes_1304-5606.jpg", imageAlt: "Private banquet cottage" },
{ id: "cottage-4", brand: "Cottages", name: "Banquet Cottage 4", price: "Capacity: 10-12 guests", rating: 5, reviewCount: "Intimate Gatherings", imageSrc: "https://img.b2bpic.net/free-photo/home-celebration-friends-family-festive-table-with-pear-cake-top-view-celebration-concept_169016-4836.jpg", imageAlt: "Private banquet cottage" }
{ id: "main-hall", brand: "Зали", name: "Головна Зала", price: "Місткість: 80+ гостей", rating: 5, reviewCount: "Сцена та Камін", imageSrc: "https://img.b2bpic.net/free-photo/view-from-ceiling-decorated-celebration-hall-with-round-tables_8353-10198.jpg", imageAlt: "Головна банкетна зала зі сценою та каміном" },
{ id: "lounge-zone", brand: "Зали", name: "Лаунж Зона", price: "Місткість: 20-30 гостей", rating: 5, reviewCount: "Затишно та Розслаблено", imageSrc: "https://img.b2bpic.net/free-photo/traditional-house-interior-design_23-2151050931.jpg", imageAlt: "Лаунж-зона з комфортними сидіннями" },
{ id: "vip-room", brand: "Зали", name: "VIP Кімната", price: "Місткість: 10-15 гостей", rating: 5, reviewCount: "Приватно та Ексклюзивно", imageSrc: "https://img.b2bpic.net/free-photo/concept-table-setting-christmas-holidays-beautiful-stylish-decorated-table-is-waiting-guests-holiday_132075-14171.jpg", imageAlt: "Ексклюзивна VIP обідня кімната" },
{ id: "kids-room", brand: "Кімнати", name: "Дитяча Кімната", price: "Місткість: до 20 дітей", rating: 5, reviewCount: "Весело та Грайливо", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-summer-modern-home-interior-design_181624-60483.jpg", imageAlt: "Дитяча ігрова кімната" },
{ id: "second-floor", brand: "Зали", name: "Другий Поверх", price: "Місткість: 50-70 гостей", rating: 5, reviewCount: "Просторий для Заходів", imageSrc: "https://img.b2bpic.net/free-photo/wedding-reception-hall-with-elegant-table-setting-with-candles_181624-16776.jpg", imageAlt: "Простора банкетна зала на другому поверсі" },
{ id: "terrace", brand: "Сезонне", name: "Тераса", price: "Місткість: 40-50 гостей", rating: 5, reviewCount: "Заходи на Свіжому Повітрі", imageSrc: "https://img.b2bpic.net/free-photo/young-man-getting-ready-new-year-s-party_23-2149144036.jpg", imageAlt: "Відкрита обідня тераса" },
{ id: "cottage-1", brand: "Котеджі", name: "Банкетний Котедж 1", price: "Місткість: 10-12 гостей", rating: 5, reviewCount: "Затишні Зустрічі", imageSrc: "https://img.b2bpic.net/free-photo/interior-old-residential-building-village-museum-bucharest-romania_1268-21642.jpg", imageAlt: "Приватний банкетний котедж" },
{ id: "cottage-2", brand: "Котеджі", name: "Банкетний Котедж 2", price: "Місткість: 10-12 гостей", rating: 5, reviewCount: "Затишні Зустрічі", imageSrc: "https://img.b2bpic.net/free-photo/close-view-baked-bread-embroidery-towel-placed-wooden-table-near-glass-box-which-prepared-wedding-ceremony-outdoor_8353-12389.jpg", imageAlt: "Приватний банкетний котедж" },
{ id: "cottage-3", brand: "Котеджі", name: "Банкетний Котедж 3", price: "Місткість: 10-12 гостей", rating: 5, reviewCount: "Затишні Зустрічі", imageSrc: "https://img.b2bpic.net/free-photo/white-vases-with-greenery-stand-wooden-boxes_1304-5606.jpg", imageAlt: "Приватний банкетний котедж" },
{ id: "cottage-4", brand: "Котеджі", name: "Банкетний Котедж 4", price: "Місткість: 10-12 гостей", rating: 5, reviewCount: "Затишні Зустрічі", imageSrc: "https://img.b2bpic.net/free-photo/home-celebration-friends-family-festive-table-with-pear-cake-top-view-celebration-concept_169016-4836.jpg", imageAlt: "Приватний банкетний котедж" }
]}
/>
</div>
<div id="delivery" data-section="delivery">
<ProductCardTwo
title="Delivery: From the Fire to Your Table"
description="Indulge in our succulent, fire-cooked meat dishes, delivered fresh to your door. Experience the rich flavors of our kitchen in the comfort of your home."
title="Доставка: Від Вогню до Вашого Столу"
description="Насолоджуйтесь нашими соковитими м'ясними стравами, приготованими на вогні та доставленими свіжими до вашого порогу. Відчуйте багаті смаки нашої кухні в затишку вашого дому."
textboxLayout="default"
useInvertedBackground={true}
animationType="slide-up"
gridVariant="three-columns-all-equal-width"
products={[
{ id: "meat-platter", brand: "Meat Delivery", name: "Signature Fire-Roasted Platter", price: "Order Now", rating: 5, reviewCount: "Popular Choice", imageSrc: "https://img.b2bpic.net/free-photo/appetizer-set-with-salads-olives-pickles-chopped-beetroot-tomatoes-cheese-yogurt_140725-8341.jpg", imageAlt: "Fire-roasted meat platter" },
{ id: "ukrainian-ribs", brand: "Meat Delivery", name: "Traditional Ukrainian Ribs", price: "Order Now", rating: 5, reviewCount: "Hearty Favorite", imageSrc: "https://img.b2bpic.net/free-photo/adjarian-khachapuri-khinkali-served-with-sauce-salad_141793-512.jpg", imageAlt: "Traditional Ukrainian ribs" },
{ id: "gourmet-chicken", brand: "Meat Delivery", name: "Gourmet Fire-Grilled Chicken", price: "Order Now", rating: 5, reviewCount: "Delicate & Flavorful", imageSrc: "https://img.b2bpic.net/free-photo/man-pouring-crackers-into-soyutma-bouillon-side-view_141793-3235.jpg", imageAlt: "Gourmet fire-grilled chicken" }
{ id: "meat-platter", brand: "Доставка М'яса", name: "Фірмова Страва на Вогні", price: "Замовити Зараз", rating: 5, reviewCount: "Популярний Вибір", imageSrc: "https://img.b2bpic.net/free-photo/appetizer-set-with-salads-olives-pickles-chopped-beetroot-tomatoes-cheese-yogurt_140725-8341.jpg", imageAlt: "М'ясне асорті, запечене на вогні" },
{ id: "ukrainian-ribs", brand: "Доставка М'яса", name: "Традиційні Українські Реберця", price: "Замовити Зараз", rating: 5, reviewCount: "Ситий Фаворит", imageSrc: "https://img.b2bpic.net/free-photo/adjarian-khachapuri-khinkali-served-with-sauce-salad_141793-512.jpg", imageAlt: "Традиційні українські реберця" },
{ id: "gourmet-chicken", brand: "Доставка М'яса", name: "Вишукана Курятина на Грилі", price: "Замовити Зараз", rating: 5, reviewCount: "Ніжний та Ароматний", imageSrc: "https://img.b2bpic.net/free-photo/man-pouring-crackers-into-soyutma-bouillon-side-view_141793-3235.jpg", imageAlt: "Вишукана курятина на грилі" }
]}
textBoxClassName="max-w-3xl mx-auto text-center"
textBoxTitleClassName="text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"
@@ -146,17 +146,17 @@ export default function LandingPage() {
<div id="contacts" data-section="contacts">
<ContactCTA
tag="Get in Touch"
tag="Зв'яжіться з Нами"
tagIcon={Mail}
title="Reserve Your Authentic Ukrainian Experience"
description="Contact us to book a table, plan your banquet, or inquire about our delivery services. We look forward to welcoming you to Bandura's Hearth & Hall."
title="Забронюйте Свій Автентичний Український Досвід"
description="Зв'яжіться з нами, щоб забронювати столик, спланувати свій банкет або дізнатися про наші послуги доставки. Ми з нетерпінням чекаємо на вас у Бандура: Серце і Зала."
buttons={[
{ text: "Call Us: +380 12 345 6789", href: "tel:+380123456789" },
{ text: "Email Us", href: "mailto:info@banduras.ua" }
{ text: "Зателефонуйте Нам: +380 12 345 6789", href: "tel:+380123456789" },
{ text: "Напишіть Нам", href: "mailto:info@banduras.ua" }
]}
background={{ variant: "plain" }}
useInvertedBackground={false}
ariaLabel="Contact section"
ariaLabel="Розділ контактів"
className="py-20 md:py-32"
contentClassName="max-w-4xl mx-auto text-center"
titleClassName="text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"
@@ -167,20 +167,20 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="Bandura's Hearth & Hall"
logoText="Бандура: Серце і Зала"
columns={[
{ items: [
{ label: "Philosophy", href: "#philosophy" },
{ label: "Menu", href: "#menu" },
{ label: "Banquets", href: "#banquets" }
{ label: "Філософія", href: "#philosophy" },
{ label: "Меню", href: "#menu" },
{ label: "Банкети", href: "#banquets" }
]},
{ items: [
{ label: "Delivery", href: "#delivery" },
{ label: "Contacts", href: "#contacts" },
{ label: "Book a Table", href: "#contacts" }
{ label: "Доставка", href: "#delivery" },
{ label: "Контакти", href: "#contacts" },
{ label: "Забронювати Столик", href: "#contacts" }
]}
]}
ariaLabel="Site footer"
ariaLabel="Нижній колонтитул сайту"
containerClassName="py-16 md:py-24"
/>
</div>

View File

@@ -67,17 +67,17 @@ export default function ProductPage({ params }: ProductPageProps) {
}, [cartItems, checkout, getCheckoutItems]);
const navbarProps = {
brandName: "Bandura's Hearth & Hall", navItems: [{ name: "Home", id: "/" }],
button: { text: "Cart", onClick: () => setCartOpen(true) },
brandName: "Бандура: Серце і Зала", navItems: [{ name: "Головна", id: "/" }],
button: { text: "Кошик", onClick: () => setCartOpen(true) },
className: "py-4 px-6 md:px-8", buttonClassName: "bg-primary-cta text-primary-cta-foreground hover:bg-primary-cta/90 transition-colors duration-300", buttonTextClassName: "font-semibold text-lg", logoOnClick: () => console.log('Logo clicked')
};
const footerProps = {
logoText: "Bandura's Hearth & Hall", columns: [
{ items: [{ label: "Philosophy", href: "/#philosophy" }, { label: "Menu", href: "/#menu" }, { label: "Banquets", href: "/#banquets" }] },
{ items: [{ label: "Delivery", href: "/#delivery" }, { label: "Contacts", href: "/#contacts" }, { label: "Book a Table", href: "/#contacts" }] }
logoText: "Бандура: Серце і Зала", columns: [
{ items: [{ label: "Філософія", href: "/#philosophy" }, { label: "Меню", href: "/#menu" }, { label: "Банкети", href: "/#banquets" }] },
{ items: [{ label: "Доставка", href: "/#delivery" }, { label: "Контакти", href: "/#contacts" }, { label: "Забронювати Столик", href: "/#contacts" }] }
],
ariaLabel: "Site footer", containerClassName: "py-16 md:py-24"
ariaLabel: "Нижній колонтитул сайту", containerClassName: "py-16 md:py-24"
};
if (isLoading) {
@@ -100,7 +100,7 @@ export default function ProductPage({ params }: ProductPageProps) {
</div>
<div id="loading-indicator" data-section="loading-indicator">
<main className="min-h-screen flex items-center justify-center pt-20">
<p className="text-foreground">Loading product...</p>
<p className="text-foreground">Завантаження товару...</p>
</main>
</div>
<div id="footer" data-section="footer">
@@ -132,12 +132,12 @@ export default function ProductPage({ params }: ProductPageProps) {
<div id="not-found" data-section="not-found">
<main className="min-h-screen flex items-center justify-center pt-20">
<div className="text-center">
<p className="text-foreground mb-4">Product not found</p>
<p className="text-foreground mb-4">Товар не знайдено</p>
<button
onClick={() => router.push("/shop")}
className="primary-button px-6 py-2 rounded-theme"
>
Back to Shop
Повернутись до Магазину
</button>
</div>
</main>
@@ -183,8 +183,8 @@ export default function ProductPage({ params }: ProductPageProps) {
inventoryQuantity={meta.inventoryQuantity}
sku={meta.sku}
buttons={[
{ text: "Add To Cart", onClick: handleAddToCart },
{ text: "Buy Now", onClick: handleBuyNow },
{ text: "Додати до Кошика", onClick: handleAddToCart },
{ text: "Купити Зараз", onClick: handleBuyNow }
]}
/>
</div>
@@ -198,7 +198,7 @@ export default function ProductPage({ params }: ProductPageProps) {
total={`$${cartTotal}`}
buttons={[
{
text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout,
text: isCheckoutLoading ? "Обробка..." : "Оформити Замовлення", onClick: handleCheckout,
},
]}
/>

View File

@@ -17,17 +17,17 @@ export default function ShopPage() {
} = useProductCatalog({ basePath: "/shop" });
const navbarProps = {
brandName: "Bandura's Hearth & Hall", navItems: [{ name: "Home", id: "/" }],
button: { text: "Cart", onClick: () => console.log('Cart button clicked on catalog page') },
brandName: "Бандура: Серце і Зала", navItems: [{ name: "Головна", id: "/" }],
button: { text: "Кошик", onClick: () => console.log('Cart button clicked on catalog page') },
className: "py-4 px-6 md:px-8", buttonClassName: "bg-primary-cta text-primary-cta-foreground hover:bg-primary-cta/90 transition-colors duration-300", buttonTextClassName: "font-semibold text-lg", logoOnClick: () => console.log('Logo clicked')
};
const footerProps = {
logoText: "Bandura's Hearth & Hall", columns: [
{ items: [{ label: "Philosophy", href: "/#philosophy" }, { label: "Menu", href: "/#menu" }, { label: "Banquets", href: "/#banquets" }] },
{ items: [{ label: "Delivery", href: "/#delivery" }, { label: "Contacts", href: "/#contacts" }, { label: "Book a Table", href: "/#contacts" }] }
logoText: "Бандура: Серце і Зала", columns: [
{ items: [{ label: "Філософія", href: "/#philosophy" }, { label: "Меню", href: "/#menu" }, { label: "Банкети", href: "/#banquets" }] },
{ items: [{ label: "Доставка", href: "/#delivery" }, { label: "Контакти", href: "/#contacts" }, { label: "Забронювати Столик", href: "/#contacts" }] }
],
ariaLabel: "Site footer", containerClassName: "py-16 md:py-24"
ariaLabel: "Нижній колонтитул сайту", containerClassName: "py-16 md:py-24"
};
if (isLoading) {
@@ -50,7 +50,7 @@ export default function ShopPage() {
</div>
<div id="loading-indicator" data-section="loading-indicator">
<main className="min-h-screen flex items-center justify-center pt-20">
<p className="text-foreground">Loading products...</p>
<p className="text-foreground">Завантаження товарів...</p>
</main>
</div>
<div id="footer" data-section="footer">
@@ -84,9 +84,9 @@ export default function ShopPage() {
products={products}
searchValue={search}
onSearchChange={setSearch}
searchPlaceholder="Search products..."
searchPlaceholder="Пошук товарів..."
filters={filters}
emptyMessage="No products found"
emptyMessage="Товарів не знайдено"
/>
</div>
<div id="footer" data-section="footer">