Merge version_2_1782105156709 into main #2

Merged
bender merged 1 commits from version_2_1782105156709 into main 2026-06-22 05:13:51 +00:00
10 changed files with 325 additions and 224 deletions

View File

@@ -31,7 +31,7 @@ export default function Layout() {
];
return (
<StyleProvider buttonVariant="bubble" siteBackground="noise" heroBackground="cornerGlow">
<StyleProvider buttonVariant="flip" siteBackground="noise" heroBackground="cornerGlow">
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloatingLogo

View File

@@ -1,235 +1,36 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import HeroSplit from '@/components/sections/hero/HeroSplit';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import { Award, Calendar, Crown } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import GallerySection from './HomePage/sections/Gallery';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialSection from './HomePage/sections/Testimonial';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Imperial Culinary Excellence"
title="A Royal Feast for the Senses"
description="Indulge in a meticulously curated menu prepared with the finest ingredients in an atmosphere of regal splendor and unmatched elegance."
primaryButton={{
text: "Reserve Your Table",
href: "#contact",
}}
secondaryButton={{
text: "Explore Menu",
href: "#gallery",
}}
imageSrc="http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Our story begins with a commitment to culinary perfection. Every dish is a tribute to tradition, infused with a modern imperial touch that guarantees an unforgettable dining experience."
primaryButton={{
text: "Learn More",
href: "#about",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCards
tag="Signature Experiences"
title="Defined by Perfection"
description="Explore the cornerstones of our legendary service."
items={[
{
title: "Artisan Ingredients",
description: "Sourced from the finest local markets.",
imageSrc: "http://img.b2bpic.net/free-photo/artistic-food-presentation_23-2151942426.jpg",
},
{
title: "World-Class Cellar",
description: "Curated wines from global estates.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-with-wine-glasses_23-2149428794.jpg",
},
{
title: "Imperial Ambiance",
description: "Luxury redefined in every detail.",
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-table-with-two-couches-near-window_140725-8459.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Chef's Selection"
title="Signature Culinary Masterpieces"
description="A visual feast of our most coveted signature dishes."
items={[
{
title: "Lobster Medallion",
description: "Fresh catch prepared in rich cream.",
imageSrc: "http://img.b2bpic.net/free-photo/elegant-dessert-presentation-with-edible-flowers_23-2151973720.jpg",
},
{
title: "Dark Chocolate Ganache",
description: "Rich and velvety indulgence.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-chocolate-cookies-inside-white-plate-dark-surface_140725-20234.jpg",
},
{
title: "Wagyu Prime Cut",
description: "Perfectly seared to perfection.",
imageSrc: "http://img.b2bpic.net/free-photo/gourmet-steak-dinner-with-mashed-potatoes-vegetables_84443-82580.jpg",
},
{
title: "Roasted Onion Velouté",
description: "Balanced, earthy flavors.",
imageSrc: "http://img.b2bpic.net/free-photo/frozen-raspberry_23-2148176349.jpg",
},
{
title: "Seared Sea Bass",
description: "Fresh herbs, lemon zest.",
imageSrc: "http://img.b2bpic.net/free-photo/seafood-plate-with-fried-salmon-mussels-shrimps-calamari-lemon_140725-1613.jpg",
},
{
title: "Petite Tartlette",
description: "Handmade pastry crust.",
imageSrc: "http://img.b2bpic.net/free-photo/roasted-potato-various-pickles-white-plate_114579-24111.jpg",
},
{
title: "Truffle Linguine",
description: "Hand-rolled pasta with black truffle.",
imageSrc: "http://img.b2bpic.net/free-photo/pilav-with-chicken-vegetables_140725-2824.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<GallerySection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Legacy"
title="Imperial Milestones"
description="Decades of culinary passion."
metrics={[
{
icon: Crown,
title: "Executive Chefs",
value: "12",
},
{
icon: Award,
title: "Michelin Stars",
value: "3",
},
{
icon: Calendar,
title: "Years Served",
value: "25+",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="A truly imperial experience. Every course was a symphony of flavors that danced on the palate. Absolutely breathtaking atmosphere."
rating={5}
author="Victoria Sterling"
avatars={[
{
name: "Customer 1",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517403.jpg",
},
{
name: "Customer 2",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-person-enjoying-food_23-2149304422.jpg",
},
{
name: "Customer 3",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-with-piercing-ears-nose-holding-slice-orange-front-his-eyes-against-grey-background_23-2148121841.jpg",
},
{
name: "Customer 4",
imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-table-holding-mobile-phone-indoors_171337-17097.jpg",
},
{
name: "Customer 5",
imageSrc: "http://img.b2bpic.net/free-photo/pretty-lady-velvet-dress-holds-martini-glass_197531-15681.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Common Questions"
title="Planning Your Visit"
description="Answers to commonly asked questions about our fine dining experience."
categories={[
{
name: "Reservations",
items: [
{
question: "How do I book?",
answer: "Use our reservation portal or call concierge.",
},
{
question: "Do you accept large groups?",
answer: "Private chambers are available.",
},
],
},
{
name: "Dining",
items: [
{
question: "Is there a dress code?",
answer: "Formal attire is recommended.",
},
{
question: "Do you offer vegan?",
answer: "Custom seasonal menus available.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Inquire Today"
text="Secure your imperial dining experience at our prestigious establishment."
primaryButton={{
text: "Reserve Now",
href: "#",
}}
secondaryButton={{
text: "Call Concierge",
href: "tel:000000000",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutText from '@/components/sections/about/AboutText';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Our story begins with a commitment to culinary perfection. Every dish is a tribute to tradition, infused with a modern imperial touch that guarantees an unforgettable dining experience."
primaryButton={{
text: "Learn More",
href: "#about",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Inquire Today"
text="Secure your imperial dining experience at our prestigious establishment."
primaryButton={{
text: "Reserve Now",
href: "#",
}}
secondaryButton={{
text: "Call Concierge",
href: "tel:000000000",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Common Questions"
title="Planning Your Visit"
description="Answers to commonly asked questions about our fine dining experience."
categories={[
{
name: "Reservations",
items: [
{
question: "How do I book?",
answer: "Use our reservation portal or call concierge.",
},
{
question: "Do you accept large groups?",
answer: "Private chambers are available.",
},
],
},
{
name: "Dining",
items: [
{
question: "Is there a dress code?",
answer: "Formal attire is recommended.",
},
{
question: "Do you offer vegan?",
answer: "Custom seasonal menus available.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCards
tag="Signature Experiences"
title="Defined by Perfection"
description="Explore the cornerstones of our legendary service."
items={[
{
title: "Artisan Ingredients",
description: "Sourced from the finest local markets.",
imageSrc: "http://img.b2bpic.net/free-photo/artistic-food-presentation_23-2151942426.jpg",
},
{
title: "World-Class Cellar",
description: "Curated wines from global estates.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-with-wine-glasses_23-2149428794.jpg",
},
{
title: "Imperial Ambiance",
description: "Luxury redefined in every detail.",
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-table-with-two-couches-near-window_140725-8459.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "gallery" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function GallerySection(): React.JSX.Element {
return (
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Chef's Selection"
title="Signature Culinary Masterpieces"
description="A visual feast of our most coveted signature dishes."
items={[
{
title: "Lobster Medallion",
description: "Fresh catch prepared in rich cream.",
imageSrc: "http://img.b2bpic.net/free-photo/elegant-dessert-presentation-with-edible-flowers_23-2151973720.jpg",
},
{
title: "Dark Chocolate Ganache",
description: "Rich and velvety indulgence.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-chocolate-cookies-inside-white-plate-dark-surface_140725-20234.jpg",
},
{
title: "Wagyu Prime Cut",
description: "Perfectly seared to perfection.",
imageSrc: "http://img.b2bpic.net/free-photo/gourmet-steak-dinner-with-mashed-potatoes-vegetables_84443-82580.jpg",
},
{
title: "Roasted Onion Velouté",
description: "Balanced, earthy flavors.",
imageSrc: "http://img.b2bpic.net/free-photo/frozen-raspberry_23-2148176349.jpg",
},
{
title: "Seared Sea Bass",
description: "Fresh herbs, lemon zest.",
imageSrc: "http://img.b2bpic.net/free-photo/seafood-plate-with-fried-salmon-mussels-shrimps-calamari-lemon_140725-1613.jpg",
},
{
title: "Petite Tartlette",
description: "Handmade pastry crust.",
imageSrc: "http://img.b2bpic.net/free-photo/roasted-potato-various-pickles-white-plate_114579-24111.jpg",
},
{
title: "Truffle Linguine",
description: "Hand-rolled pasta with black truffle.",
imageSrc: "http://img.b2bpic.net/free-photo/pilav-with-chicken-vegetables_140725-2824.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroSplit from '@/components/sections/hero/HeroSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Imperial Culinary Excellence"
title="A Royal Feast for the Senses"
description="Indulge in a meticulously curated menu prepared with the finest ingredients in an atmosphere of regal splendor and unmatched elegance."
primaryButton={{
text: "Reserve Your Table",
href: "#contact",
}}
secondaryButton={{
text: "Explore Menu",
href: "#gallery",
}}
imageSrc="http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { Award, Calendar, Crown } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Legacy"
title="Imperial Milestones"
description="Decades of culinary passion."
metrics={[
{
icon: Crown,
title: "Executive Chefs",
value: "12",
},
{
icon: Award,
title: "Michelin Stars",
value: "3",
},
{
icon: Calendar,
title: "Years Served",
value: "25+",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,42 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonial" section.
import React from 'react';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialSection(): React.JSX.Element {
return (
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="A truly imperial experience. Every course was a symphony of flavors that danced on the palate. Absolutely breathtaking atmosphere."
rating={5}
author="Victoria Sterling"
avatars={[
{
name: "Customer 1",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517403.jpg",
},
{
name: "Customer 2",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-person-enjoying-food_23-2149304422.jpg",
},
{
name: "Customer 3",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-with-piercing-ears-nose-holding-slice-orange-front-his-eyes-against-grey-background_23-2148121841.jpg",
},
{
name: "Customer 4",
imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-table-holding-mobile-phone-indoors_171337-17097.jpg",
},
{
name: "Customer 5",
imageSrc: "http://img.b2bpic.net/free-photo/pretty-lady-velvet-dress-holds-martini-glass_197531-15681.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}