Merge version_2_1782055338055 into main #2

Merged
bender merged 1 commits from version_2_1782055338055 into main 2026-06-21 15:26:49 +00:00
10 changed files with 219 additions and 139 deletions

View File

@@ -9,9 +9,9 @@
--card: #481f1f;
--foreground: #ffffff;
--primary-cta: #ffffff;
--primary-cta-text: #280101;
--secondary-cta: #361311;
--secondary-cta-text: #f6d4d4;
--primary-cta-text: #000000;
--secondary-cta: #ff2231;
--secondary-cta-text: #ffffff;
--accent: #51000b;
--background-accent: #ff2231;

View File

@@ -1,148 +1,36 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
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 MenuSection from './HomePage/sections/Menu';
import MetricsSection from './HomePage/sections/Metrics';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
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">
<HeroSplitVerticalMarquee
tag="AUTHENTIC DINING"
title="Samurai Lounge: A Culinary Sanctuary"
description="Experience the delicate balance of traditional Japanese craftsmanship and modern luxury."
primaryButton={{
text: "View Menu", href: "#menu"}}
secondaryButton={{
text: "Reserve Table", href: "#contact"}}
leftItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-street-food-neon-light_23-2151571701.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-tapas-food-assortment_23-2148960513.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/beautiful-ikebana-arrangement-with-sakura_23-2149483980.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/essential-kitchen-items-moody-backdrop_58702-17814.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-dining-table-arrangement_23-2150312216.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/view-salmon-dish-bowl_23-2150461461.jpg" }
]}
rightItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/black-plate-with-pasta-dark-background_23-2148340396.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-green-garlic-black-plate_23-2148425577.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/arrangement-chinese-elements-with-ink_23-2148826216.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/modern-styled-small-entryway_23-2150712923.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/side-view-hands-holding-tray_23-2149706164.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/shadows-made-from-glasses-pink-table_23-2147992784.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Where Tradition Meets the Avant-Garde"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesRevealCardsBento
tag="SIGNATURE OFFERINGS"
title="Our Culinary Journey"
description="Explore curated dishes designed to tantalize the senses."
items={[
{ title: "Sashimi Deluxe", description: "Freshly sourced, premium grade fish.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-seaweed-dish_23-2150912658.jpg" },
{ title: "Handcrafted Cocktails", description: "Expertly mixed by master bartenders.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/whisky-glass-fresh-apple-juice-garnished-with-apple-pieces-straw_140725-496.jpg" },
{ title: "Lounge Atmosphere", description: "A refined space for every occasion.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/view-modern-futuristic-work-space-with-furniture_23-2151797720.jpg" },
{ title: "Tempura Selection", description: "Light, airy, and perfectly fried.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/salmon-sushi-top-view_140725-1007.jpg" },
{ title: "Authentic Ramen", description: "Slow-cooked broth and handmade noodles.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-ramen-bowl_23-2148678741.jpg" },
{ title: "Charcoal Yakitori", description: "Traditional fire-grilled delicacies.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-juicy-steak-flaming-with-fire-smoke-grill-hand-professional-chef-turning-steak-concept-culinary-restaurant-food-kitchen_651396-3912.jpg" },
{ title: "Omakase Experience", description: "A bespoke seasonal journey.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/crop-hand-decorating-fish_23-2147753654.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<MenuSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="BY THE NUMBERS"
title="Our Commitment"
description="Excellence defined in every detail."
metrics={[
{ value: "15+", description: "Years of Culinary Art" },
{ value: "500+", description: "Exquisite Sake Varieties" },
{ value: "100%", description: "Premium Local Ingredients" }
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="THE ARTISANS"
title="Meet Our Visionaries"
description="A team dedicated to culinary excellence."
members={[
{ name: "Hiroshi Tanaka", role: "Head Chef", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-elderly-man-recording-recipe-step-by-step-hoe-kitchen-retired-blogger-chef-influencer-using-internet-technology-communicating-shooting-blogging-social-media-with-digital-equipment_482257-14457.jpg" },
{ name: "Elena Varma", role: "Lead Mixologist", imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-with-cocktail-shaker_23-2147775858.jpg" },
{ name: "Kenji Sato", role: "General Manager", imageSrc: "http://img.b2bpic.net/free-photo/man-with-notebook-using-smartphone_23-2147793066.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="GUEST STORIES"
title="What Guests Are Saying"
description="Real feedback from our cherished diners."
testimonials={[
{ name: "Sarah J.", role: "Food Critic", quote: "The absolute peak of dining in the city.", imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-enjoying-dining-table-while-communicating-with-her-husband_637285-3516.jpg" },
{ name: "Michael R.", role: "Local Patron", quote: "An atmosphere like no other. Truly refined.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-cheerful-woman-near-plates-glasses-table_23-2148024478.jpg" },
{ name: "Jessica L.", role: "Traveler", quote: "I come every time I am in town. Flawless.", imageSrc: "http://img.b2bpic.net/free-photo/mature-man-eating-sushi-restaurant_23-2148465242.jpg" },
{ name: "David K.", role: "Frequent Diner", quote: "The omakase is beyond incredible.", imageSrc: "http://img.b2bpic.net/free-photo/young-gardener-woman-with-short-hair-apron-hat-holding-fresh-tomatoes_141793-46934.jpg" },
{ name: "Emily P.", role: "Local Business Owner", quote: "Perfect for client meetings and dates.", imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081868.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="COMMONLY ASKED"
title="Helpful Details"
items={[
{ question: "Do I need a reservation?", answer: "Reservations are highly recommended for our Omakase service." },
{ question: "Are private events possible?", answer: "Yes, we offer private lounge bookings for special events." },
{ question: "What is the dress code?", answer: "Smart casual attire is encouraged." },
{ question: "Is valet parking available?", answer: "Yes, we provide complimentary valet for our guests." },
{ question: "Are children allowed?", answer: "The lounge is reserved for guests 18 and older." }
]}
imageSrc="http://img.b2bpic.net/free-photo/smiley-waiter-presenting-tray_23-2148244972.jpg"
description="Everything you need to know about your visit."
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="GET IN TOUCH"
text="Join us for an unforgettable evening at Samurai Lounge."
primaryButton={{ text: "Reserve Now", href: "#" }}
secondaryButton={{ text: "Contact Us", href: "#" }}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,18 @@
// 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="Where Tradition Meets the Avant-Garde"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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="GET IN TOUCH"
text="Join us for an unforgettable evening at Samurai Lounge."
primaryButton={{ text: "Reserve Now", href: "#" }}
secondaryButton={{ text: "Contact Us", href: "#" }}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="COMMONLY ASKED"
title="Helpful Details"
items={[
{ question: "Do I need a reservation?", answer: "Reservations are highly recommended for our Omakase service." },
{ question: "Are private events possible?", answer: "Yes, we offer private lounge bookings for special events." },
{ question: "What is the dress code?", answer: "Smart casual attire is encouraged." },
{ question: "Is valet parking available?", answer: "Yes, we provide complimentary valet for our guests." },
{ question: "Are children allowed?", answer: "The lounge is reserved for guests 18 and older." }
]}
imageSrc="http://img.b2bpic.net/free-photo/smiley-waiter-presenting-tray_23-2148244972.jpg"
description="Everything you need to know about your visit."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,19 @@
// Created by add_section_from_catalog (HeroOverlay).
import React from 'react';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
export default function HeroSection(): React.JSX.Element {
return (
<div data-webild-section="hero" id="hero">
<HeroOverlay
secondaryButton={{"text":"Book a Table","href":"#contact"}}
title="Samurai Lounge"
description="A premium dining experience blending authentic Japanese flavors with a dramatic, sophisticated lounge atmosphere."
imageSrc="https://images.unsplash.com/photo-1579871494447-9811cf80d66c?auto=format&fit=crop&q=80"
primaryButton={{"href":"#menu","text":"Explore Menu"}}
tag="JAPANESE FUSION & LOUNGE"
/>
</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 "menu" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MenuSection(): React.JSX.Element {
return (
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesRevealCardsBento
tag="SIGNATURE OFFERINGS"
title="Our Culinary Journey"
description="Explore curated dishes designed to tantalize the senses."
items={[
{ title: "Sashimi Deluxe", description: "Freshly sourced, premium grade fish.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-seaweed-dish_23-2150912658.jpg" },
{ title: "Handcrafted Cocktails", description: "Expertly mixed by master bartenders.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/whisky-glass-fresh-apple-juice-garnished-with-apple-pieces-straw_140725-496.jpg" },
{ title: "Lounge Atmosphere", description: "A refined space for every occasion.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/view-modern-futuristic-work-space-with-furniture_23-2151797720.jpg" },
{ title: "Tempura Selection", description: "Light, airy, and perfectly fried.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/salmon-sushi-top-view_140725-1007.jpg" },
{ title: "Authentic Ramen", description: "Slow-cooked broth and handmade noodles.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-ramen-bowl_23-2148678741.jpg" },
{ title: "Charcoal Yakitori", description: "Traditional fire-grilled delicacies.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-juicy-steak-flaming-with-fire-smoke-grill-hand-professional-chef-turning-steak-concept-culinary-restaurant-food-kitchen_651396-3912.jpg" },
{ title: "Omakase Experience", description: "A bespoke seasonal journey.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/crop-hand-decorating-fish_23-2147753654.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// 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 MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="BY THE NUMBERS"
title="Our Commitment"
description="Excellence defined in every detail."
metrics={[
{ value: "15+", description: "Years of Culinary Art" },
{ value: "500+", description: "Exquisite Sake Varieties" },
{ value: "100%", description: "Premium Local Ingredients" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "team" section.
import React from 'react';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="THE ARTISANS"
title="Meet Our Visionaries"
description="A team dedicated to culinary excellence."
members={[
{ name: "Hiroshi Tanaka", role: "Head Chef", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-elderly-man-recording-recipe-step-by-step-hoe-kitchen-retired-blogger-chef-influencer-using-internet-technology-communicating-shooting-blogging-social-media-with-digital-equipment_482257-14457.jpg" },
{ name: "Elena Varma", role: "Lead Mixologist", imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-with-cocktail-shaker_23-2147775858.jpg" },
{ name: "Kenji Sato", role: "General Manager", imageSrc: "http://img.b2bpic.net/free-photo/man-with-notebook-using-smartphone_23-2147793066.jpg" }
]}
/>
</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 "testimonials" section.
import React from 'react';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="GUEST STORIES"
title="What Guests Are Saying"
description="Real feedback from our cherished diners."
testimonials={[
{ name: "Sarah J.", role: "Food Critic", quote: "The absolute peak of dining in the city.", imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-enjoying-dining-table-while-communicating-with-her-husband_637285-3516.jpg" },
{ name: "Michael R.", role: "Local Patron", quote: "An atmosphere like no other. Truly refined.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-cheerful-woman-near-plates-glasses-table_23-2148024478.jpg" },
{ name: "Jessica L.", role: "Traveler", quote: "I come every time I am in town. Flawless.", imageSrc: "http://img.b2bpic.net/free-photo/mature-man-eating-sushi-restaurant_23-2148465242.jpg" },
{ name: "David K.", role: "Frequent Diner", quote: "The omakase is beyond incredible.", imageSrc: "http://img.b2bpic.net/free-photo/young-gardener-woman-with-short-hair-apron-hat-holding-fresh-tomatoes_141793-46934.jpg" },
{ name: "Emily P.", role: "Local Business Owner", quote: "Perfect for client meetings and dates.", imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081868.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}