Bob AI: Populate src/pages/MenuPage.tsx (snippet builder, 6 sections)
This commit is contained in:
@@ -1,98 +1,29 @@
|
||||
import { routes } from "@/routes";
|
||||
import NavbarCentered from "@/components/ui/NavbarCentered";
|
||||
import HeroSplit from "@/components/sections/hero/HeroSplit";
|
||||
import ProductMediaCards from "@/components/sections/product/ProductMediaCards";
|
||||
import FeaturesTaggedCards from "@/components/sections/features/FeaturesTaggedCards";
|
||||
import ContactCta from "@/components/sections/contact/ContactCta";
|
||||
import FooterMinimal from "@/components/sections/footer/FooterMinimal";
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import AvatarGroup from "@/components/ui/AvatarGroup";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import { cls } from "@/lib/utils";
|
||||
import { ArrowUpRight, Loader2 } from "lucide-react";
|
||||
import GridOrCarousel from "@/components/ui/GridOrCarousel";
|
||||
import useProducts from "@/hooks/useProducts";
|
||||
|
||||
export default function MenuPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-background text-foreground">
|
||||
<NavbarCentered
|
||||
logo="Al Shams"
|
||||
navItems={routes.map((r) => ({ name: r.label, href: r.path }))}
|
||||
ctaButton={{ text: "Reservations", href: "/reservations" }}
|
||||
/>
|
||||
|
||||
<HeroSplit
|
||||
tag="Since 1975"
|
||||
title="A Legacy of Culinary Excellence"
|
||||
description="Explore our extensive menu featuring authentic Lebanese cuisine, fresh seafood, and international favorites, crafted with passion and tradition."
|
||||
primaryButton={{ text: "View Full Menu", href: "#menu" }}
|
||||
secondaryButton={{ text: "Call Now", href: "tel:+123456789" }}
|
||||
imageSrc="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&q=80"
|
||||
/>
|
||||
|
||||
<ProductMediaCards
|
||||
tag="Highlights"
|
||||
title="Signature Dishes"
|
||||
description="Experience the flavors that have made Al Shams a dining destination for decades."
|
||||
products={[
|
||||
{
|
||||
name: "Soufflé Potatoes Chips",
|
||||
price: "$12",
|
||||
imageSrc: "https://images.unsplash.com/photo-1585109649139-366815a0d713?auto=format&fit=crop&q=80",
|
||||
onClick: () => {}
|
||||
},
|
||||
{
|
||||
name: "Kibbeh Intention",
|
||||
price: "$18",
|
||||
imageSrc: "https://images.unsplash.com/photo-1604908176997-125f25cc6f3d?auto=format&fit=crop&q=80",
|
||||
onClick: () => {}
|
||||
},
|
||||
{
|
||||
name: "Mixed Grill",
|
||||
price: "$35",
|
||||
imageSrc: "https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&q=80",
|
||||
onClick: () => {}
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
<FeaturesTaggedCards
|
||||
tag="Categories"
|
||||
title="Explore the Menu"
|
||||
description="From traditional mezze to decadent desserts, discover our diverse offerings."
|
||||
items={[
|
||||
{
|
||||
tag: "Starters",
|
||||
title: "Appetizers & Salads",
|
||||
description: "Hot and cold mezze, fresh tabbouleh, fattoush, and our famous hummus.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Mains",
|
||||
title: "Raw Meat & Hot Plates",
|
||||
description: "Premium cuts, traditional raw dishes, and hearty hot plates prepared to perfection.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Specialties",
|
||||
title: "Seafood & Italian",
|
||||
description: "Fresh daily catch, classic Italian pastas, and rich risottos.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
},
|
||||
{
|
||||
tag: "Sweets",
|
||||
title: "Desserts",
|
||||
description: "End your meal with our selection of traditional and international sweets.",
|
||||
primaryButton: { text: "View Category", href: "#" }
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Ready to experience Al Shams?"
|
||||
primaryButton={{ text: "Make a Reservation", href: "/reservations" }}
|
||||
secondaryButton={{ text: "Get Directions", href: "/directions" }}
|
||||
/>
|
||||
|
||||
<FooterMinimal
|
||||
brand="Al Shams Restaurant"
|
||||
copyright="© 2024 Al Shams. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
<>
|
||||
<div data-webild-section="HeroOverlay"><section aria-label="Hero section" className="relative w-full h-svh overflow-hidden flex flex-col justify-end mb-20"><HeroBackgroundSlot /><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/top-view-arab-food-assortment_23-2148739179.jpg" className="absolute inset-0 w-full h-full object-cover rounded-none" /><div className="absolute z-10 w-[150vw] h-[150vw] left-0 bottom-0 -translate-x-1/2 translate-y-1/2 backdrop-blur mask-[radial-gradient(circle,black_20%,transparent_70%)]" aria-hidden="true" /><div className="relative z-10 w-content-width mx-auto pb-10 md:pb-25"><div className="flex flex-col gap-3 w-full md:w-6/10 lg:w-1/2 xl:w-45/100 2xl:w-4/10"><div className="w-fit px-3 py-1 mb-1 text-sm card rounded"><p>Established 1975</p></div><TextAnimation text="The Al Shams Menu" variant="fade-blur" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-white text-balance" /><TextAnimation text="From authentic Lebanese mezze to exquisite international plates, explore a culinary journey crafted with passion and the finest ingredients." variant="fade-blur" gradientText={false} tag="p" className="text-lg md:text-xl text-white leading-snug text-balance" /><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="Reserve Now" href="/reservations" variant="primary" /><Button text="Call Us" href="tel:+1234567890" variant="secondary" animationDelay={0.1} /></div></div></div></section></div>
|
||||
<div data-webild-section="FeaturesImageBento"><section aria-label="Features image bento section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Culinary Excellence</p></div><TextAnimation text="A Legacy of Flavor Since 1975" variant="slide-up" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Explore our extensive menu featuring signature Lebanese dishes, premium meats, and international classics. Crafted with passion and the finest ingredients." variant="slide-up" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book a Table" href="/reservations" variant="primary" /><Button text="Call Now" href="tel:+1234567890" variant="secondary" animationDelay={0.1} /></div></div><div className="w-content-width mx-auto grid grid-cols-1 md:grid-cols-6 gap-3"><ScrollReveal key={0} variant="slide-up" delay={0} className="col-span-1 group md:col-span-2"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={1} variant="slide-up" delay={0.1} className="col-span-1 group md:col-span-4"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={2} variant="slide-up" delay={0} className="col-span-1 group md:col-span-3"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={3} variant="slide-up" delay={0.1} className="col-span-1 group md:col-span-3"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={4} variant="slide-up" delay={0} className="col-span-1 group md:col-span-2"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={5} variant="slide-up" delay={0.1} className="col-span-1 group md:col-span-2"><div className="overflow-hidden rounded"></div></ScrollReveal>
|
||||
<ScrollReveal key={6} variant="slide-up" delay={0.2} className="col-span-1 group md:col-span-2"><div className="overflow-hidden rounded"></div></ScrollReveal></div></div></section></div>
|
||||
<div data-webild-section="ProductMediaCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
|
||||
<div data-webild-section="ProductMediaCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
|
||||
<div data-webild-section="ProductMediaCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
|
||||
<div data-webild-section="ContactCta"><section aria-label="Contact section" className="py-20"><div className="w-content-width mx-auto"><ScrollReveal variant="slide-up"><div className="flex flex-col items-center gap-8 md:gap-10 py-20 px-8 rounded card"><div className="flex flex-col items-center gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Dine With Us</p></div><TextAnimation text="Experience a culinary legacy since 1975. Reserve your table or contact us for special arrangements." variant="fade-blur" gradientText={true} tag="h2" className="md:max-w-8/10 text-5xl 2xl:text-6xl leading-[1.15] font-semibold text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book a Table" href="/reservations" variant="primary" /><Button text="Call Now" href="tel:+1234567890" variant="secondary" animationDelay={0.1} /></div></div></div></ScrollReveal></div></section></div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user