Compare commits
7 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a2e09ac13 | |||
|
|
dca92cac31 | ||
| 503c5096a3 | |||
|
|
2ed84891c4 | ||
| ce646bddb0 | |||
|
|
637c2a84ae | ||
| f4809a9594 |
@@ -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;
|
||||
|
||||
|
||||
@@ -1,148 +1,38 @@
|
||||
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';
|
||||
|
||||
|
||||
import GallerySection from './HomePage/sections/Gallery';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 />
|
||||
<GallerySection />
|
||||
|
||||
<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 />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
18
src/pages/HomePage/sections/About.tsx
Normal file
18
src/pages/HomePage/sections/About.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Contact.tsx
Normal file
21
src/pages/HomePage/sections/Contact.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Faq.tsx
Normal file
28
src/pages/HomePage/sections/Faq.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Gallery.tsx
Normal file
58
src/pages/HomePage/sections/Gallery.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
import Tag from '@/components/ui/Tag';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import ImageOrVideo from '@/components/ui/ImageOrVideo';
|
||||
|
||||
export default function GallerySection() {
|
||||
const items = [
|
||||
{ title: 'Lounge', description: 'Atmosphere', imageSrc: 'https://picsum.photos/seed/941768599/1200/800' },
|
||||
{ title: 'Cocktails', description: 'Crafted Drinks', imageSrc: 'https://picsum.photos/seed/811986076/1200/800' },
|
||||
{ title: 'Sashimi', description: 'Premium Cuts', imageSrc: 'https://picsum.photos/seed/1414489418/1200/800' },
|
||||
{ title: 'Culinary Art', description: 'Signature Dishes', imageSrc: 'https://picsum.photos/seed/2023772028/1200/800' },
|
||||
{ title: 'Nightlife', description: 'Vibrant Energy', imageSrc: 'https://picsum.photos/seed/1022554545/1200/800' },
|
||||
{ title: 'VIP Experience', description: 'Exclusive Events', imageSrc: 'https://picsum.photos/seed/1483343788/1200/800' },
|
||||
{ title: 'Music', description: 'Live Entertainment', imageSrc: 'https://picsum.photos/seed/46738565/1200/800' },
|
||||
{ title: 'Memories', description: 'Unforgettable Nights', imageSrc: 'https://picsum.photos/seed/1712717507/1200/800' },
|
||||
];
|
||||
|
||||
return (
|
||||
<div data-webild-section="gallery" id="gallery">
|
||||
<section className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="flex flex-col items-center text-center mb-16">
|
||||
<ScrollReveal variant="fade">
|
||||
<Tag text="GALLERY" className="mb-4" />
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="Instagram Highlights"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
gradientText={false}
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.1}>
|
||||
<p className="text-lg text-accent max-w-2xl mx-auto">
|
||||
A glimpse into the Samurai Lounge experience.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
{items.map((item, index) => (
|
||||
<ScrollReveal variant="fade" key={index} delay={index * 0.1} className="group relative aspect-square overflow-hidden rounded-lg card">
|
||||
<ImageOrVideo
|
||||
imageSrc={item.imageSrc}
|
||||
className="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex flex-col justify-end p-6">
|
||||
<h3 className="text-xl font-bold text-white mb-1">{item.title}</h3>
|
||||
<p className="text-sm text-white/80">{item.description}</p>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
19
src/pages/HomePage/sections/Hero.tsx
Normal file
19
src/pages/HomePage/sections/Hero.tsx
Normal 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://storage.googleapis.com/webild/users/user_3F5PItF8mVUPJEz4dJLJUNjFXrw/uploaded-1782057042336-ay41qzja.jpg"
|
||||
primaryButton={{"href":"#menu","text":"Explore Menu"}}
|
||||
tag="JAPANESE FUSION & LOUNGE"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Menu.tsx
Normal file
21
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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={[{"description":"Freshly sourced, premium grade fish.","title":"Sashimi Deluxe","href":"#","imageSrc":"https://images.unsplash.com/photo-1579871494447-9811cf80d66c?q=80&w=2000&auto=format&fit=crop"},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?q=80&w=2000&auto=format&fit=crop","description":"Expertly mixed by master bartenders.","title":"Handcrafted Cocktails"},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1560624052-449f5ddf0c31?q=80&w=2000&auto=format&fit=crop","description":"A refined space for every occasion.","title":"Lounge Atmosphere"},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1615361200141-f45040f367be?q=80&w=2000&auto=format&fit=crop","title":"Tempura Selection","description":"Light, airy, and perfectly fried."},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1557872943-16a5ac26437e?q=80&w=2000&auto=format&fit=crop","title":"Authentic Ramen","description":"Slow-cooked broth and handmade noodles."},{"title":"Charcoal Yakitori","description":"Traditional fire-grilled delicacies.","href":"#","imageSrc":"https://images.unsplash.com/photo-1555939594-58d7cb561ad1?q=80&w=2000&auto=format&fit=crop"},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1553621042-f6e147245754?q=80&w=2000&auto=format&fit=crop","description":"A bespoke seasonal journey.","title":"Omakase Experience"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Metrics.tsx
Normal file
25
src/pages/HomePage/sections/Metrics.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Team.tsx
Normal file
21
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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={[{"imageSrc":"https://images.unsplash.com/photo-1583394838336-acd977736f90?q=80&w=2000&auto=format&fit=crop","name":"Hiroshi Tanaka","role":"Head Chef"},{"imageSrc":"https://images.unsplash.com/photo-1536935338788-846bb9981813?q=80&w=2000&auto=format&fit=crop","name":"Elena Varma","role":"Lead Mixologist"},{"imageSrc":"https://images.unsplash.com/photo-1560250097-0b93528c311a?q=80&w=2000&auto=format&fit=crop","name":"Kenji Sato","role":"General Manager"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Testimonials.tsx
Normal file
27
src/pages/HomePage/sections/Testimonials.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user