12 Commits

Author SHA1 Message Date
fe915489ab Update src/app/menu/page.tsx 2026-02-28 06:49:10 +00:00
87acfa593e Merge version_3 into main
Merge version_3 into main
2026-02-28 06:46:58 +00:00
3d28f7a71c Update src/app/page.tsx 2026-02-28 06:46:54 +00:00
99a799e740 Update src/app/menu/page.tsx 2026-02-28 06:46:53 +00:00
1dd170b2ac Merge version_3 into main
Merge version_3 into main
2026-02-28 06:46:13 +00:00
44fb889f9e Update src/app/shop/page.tsx 2026-02-28 06:46:09 +00:00
51db06e73a Update src/app/shop/[id]/page.tsx 2026-02-28 06:46:08 +00:00
f47f445871 Update src/app/page.tsx 2026-02-28 06:46:07 +00:00
88a061fccb Add src/app/menu/page.tsx 2026-02-28 06:46:07 +00:00
ba73b942f4 Update src/app/layout.tsx 2026-02-28 06:46:06 +00:00
9e8349bd55 Update src/app/blog/page.tsx 2026-02-28 06:46:05 +00:00
b71344c38a Merge version_2 into main
Merge version_2 into main
2026-02-28 06:38:33 +00:00
6 changed files with 113 additions and 53 deletions

View File

@@ -29,7 +29,7 @@ export default function BlogPage() {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "/" },
{ name: "Menu", id: "products" }, { name: "Menu", id: "/menu" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Reviews", id: "testimonial" }, { name: "Reviews", id: "testimonial" },
{ name: "Contact", id: "contact" } { name: "Contact", id: "contact" }

View File

@@ -1,53 +1,24 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Montserrat } from "next/font/google";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import "./styles/variables.css";
import Tag from "@/tag/Tag"; import "./styles/base.css";
const montserrat = Montserrat({
variable: "--font-montserrat", subsets: ["latin"],
});
const inter = Inter({ const inter = Inter({
variable: "--font-inter", subsets: ["latin"], variable: "--font-inter", subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Baan Mu - Authentic Thai Restaurant in San Francisco", description: "Discover authentic Thai cuisine at Baan Mu in San Francisco. Fresh ingredients, traditional recipes, and warm hospitality. Reserve your table today.", keywords: "thai restaurant San Francisco, authentic thai food, pad thai, green curry, thai cuisine, fine dining", metadataBase: new URL("https://baanmu.com"), title: "Baan Mu - Authentic Thai Cuisine", description: "Experience authentic Thai cuisine at Baan Mu in San Francisco"};
alternates: {
canonical: "https://baanmu.com"
},
openGraph: {
title: "Baan Mu - Authentic Thai Restaurant in San Francisco", description: "Experience bold flavors and warm hospitality at Baan Mu. The best Thai restaurant in San Francisco with traditional recipes and fresh ingredients.", url: "https://baanmu.com", siteName: "Baan Mu", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg", alt: "Baan Mu Restaurant"
}
]
},
twitter: {
card: "summary_large_image", title: "Baan Mu - Authentic Thai Restaurant in San Francisco", description: "Experience authentic Thai cuisine in the heart of San Francisco. Discover our signature dishes and warm hospitality.", images: ["http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg"]
},
robots: {
index: true,
follow: true
}
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={inter.variable}>{children}
<body
className={`${montserrat.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1415,7 +1386,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

84
src/app/menu/page.tsx Normal file
View File

@@ -0,0 +1,84 @@
"use client"
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { ChefHat } from "lucide-react";
export default function MenuPage() {
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="floatingGradient"
cardStyle="glass-elevated"
primaryButtonStyle="shadow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="Baan Mu"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "Contact", id: "contact" }
]}
button={{
text: "Reserve Now", href: "https://www.opentable.com"
}}
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
title="Our Complete Menu"
description="Explore the full range of authentic Thai dishes we offer. Each item is carefully crafted using traditional recipes and the finest ingredients."
tag="Chef's Selection"
tagIcon={ChefHat}
tagAnimation="slide-up"
textboxLayout="default"
useInvertedBackground={false}
products={[
{
id: "1", name: "Pad Thai", price: "$16.95", imageSrc: "http://img.b2bpic.net/free-photo/stir-noodles-fry-green-chinese_1203-5877.jpg?_wi=2", imageAlt: "Pad Thai - Stir-fried noodles"
},
{
id: "2", name: "Green Curry", price: "$18.95", imageSrc: "http://img.b2bpic.net/free-photo/curry-pork-spicy_1388-222.jpg?_wi=2", imageAlt: "Green Curry with chicken"
},
{
id: "3", name: "Tom Yum Soup", price: "$14.95", imageSrc: "http://img.b2bpic.net/free-photo/tom-yum-kung-thai-hot-spicy-soup-shrimp-with-lemon-grass-lemon-galangal-chilli-wooden-table-thailand-food_1150-21062.jpg?_wi=2", imageAlt: "Tom Yum - Hot and sour soup"
},
{
id: "4", name: "Massaman Curry", price: "$17.95", imageSrc: "http://img.b2bpic.net/free-photo/curry-pork-spicy_1388-222.jpg?_wi=2", imageAlt: "Massaman Curry with beef"
},
{
id: "5", name: "Pad Krapow Moo", price: "$15.95", imageSrc: "http://img.b2bpic.net/free-photo/stir-noodles-fry-green-chinese_1203-5877.jpg?_wi=2", imageAlt: "Pad Krapow Moo - Stir-fried pork with basil"
},
{
id: "6", name: "Red Curry", price: "$18.95", imageSrc: "http://img.b2bpic.net/free-photo/curry-pork-spicy_1388-222.jpg?_wi=2", imageAlt: "Red Curry with vegetables"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
buttons={[
{ text: "Reserve a Table", href: "https://www.opentable.com" }
]}
buttonAnimation="slide-up"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Baan Mu"
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Contact Us", href: "mailto:hello@baanmu.com" }}
/>
</div>
</ThemeProvider>
);
}

View File

@@ -34,7 +34,8 @@ export default function LandingPage() {
{ name: "Menu", id: "products" }, { name: "Menu", id: "products" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Reviews", id: "testimonial" }, { name: "Reviews", id: "testimonial" },
{ name: "Contact", id: "contact" } { name: "Contact", id: "contact" },
{ name: "Menu Page", id: "/menu" }
]} ]}
button={{ button={{
text: "Reserve Now", href: "https://www.opentable.com" text: "Reserve Now", href: "https://www.opentable.com"
@@ -50,7 +51,7 @@ export default function LandingPage() {
tag="Since 2019" tag="Since 2019"
tagIcon={Sparkles} tagIcon={Sparkles}
tagAnimation="slide-up" tagAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg" imageSrc="http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg?_wi=1"
imageAlt="Baan Mu Restaurant Interior" imageAlt="Baan Mu Restaurant Interior"
mediaAnimation="blur-reveal" mediaAnimation="blur-reveal"
buttons={[ buttons={[
@@ -86,19 +87,19 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
products={[ products={[
{ {
id: "1", name: "Pad Thai", price: "$16.95", imageSrc: "http://img.b2bpic.net/free-photo/stir-noodles-fry-green-chinese_1203-5877.jpg", imageAlt: "Pad Thai - Stir-fried noodles" id: "1", name: "Pad Thai", price: "$16.95", imageSrc: "http://img.b2bpic.net/free-photo/stir-noodles-fry-green-chinese_1203-5877.jpg?_wi=1", imageAlt: "Pad Thai - Stir-fried noodles"
}, },
{ {
id: "2", name: "Green Curry", price: "$18.95", imageSrc: "http://img.b2bpic.net/free-photo/curry-pork-spicy_1388-222.jpg", imageAlt: "Green Curry with chicken" id: "2", name: "Green Curry", price: "$18.95", imageSrc: "http://img.b2bpic.net/free-photo/curry-pork-spicy_1388-222.jpg?_wi=1", imageAlt: "Green Curry with chicken"
}, },
{ {
id: "3", name: "Tom Yum Soup", price: "$14.95", imageSrc: "http://img.b2bpic.net/free-photo/tom-yum-kung-thai-hot-spicy-soup-shrimp-with-lemon-grass-lemon-galangal-chilli-wooden-table-thailand-food_1150-21062.jpg", imageAlt: "Tom Yum - Hot and sour soup" id: "3", name: "Tom Yum Soup", price: "$14.95", imageSrc: "http://img.b2bpic.net/free-photo/tom-yum-kung-thai-hot-spicy-soup-shrimp-with-lemon-grass-lemon-galangal-chilli-wooden-table-thailand-food_1150-21062.jpg?_wi=1", imageAlt: "Tom Yum - Hot and sour soup"
} }
]} ]}
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
animationType="slide-up" animationType="slide-up"
buttons={[ buttons={[
{ text: "View Full Menu", href: "#" } { text: "View Full Menu", href: "/menu" }
]} ]}
buttonAnimation="slide-up" buttonAnimation="slide-up"
/> />
@@ -144,16 +145,16 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ {
id: "1", title: "Authentic Thai in San Francisco", quote: "The flavors are incredible and transport you straight to Bangkok. Every dish is prepared with such care and authenticity. This is now our favorite Thai restaurant in the city.", name: "Sarah Chen", role: "Food Blogger", imageSrc: "http://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Sarah Chen" id: "1", title: "Authentic Thai in San Francisco", quote: "The flavors are incredible and transport you straight to Bangkok. Every dish is prepared with such care and authenticity. This is now our favorite Thai restaurant in the city.", name: "Sarah Chen", role: "Food Blogger", imageSrc: "http://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg?_wi=1", imageAlt: "Sarah Chen"
}, },
{ {
id: "2", title: "Outstanding Service & Atmosphere", quote: "From the warm welcome at the door to the final dessert course, everything about Baan Mu is exceptional. The staff really knows their dishes and makes great recommendations.", name: "Michael Torres", role: "Restaurant Critic", imageSrc: "http://img.b2bpic.net/free-photo/pensive-person-alone-corridor-serious_1262-1042.jpg", imageAlt: "Michael Torres" id: "2", title: "Outstanding Service & Atmosphere", quote: "From the warm welcome at the door to the final dessert course, everything about Baan Mu is exceptional. The staff really knows their dishes and makes great recommendations.", name: "Michael Torres", role: "Restaurant Critic", imageSrc: "http://img.b2bpic.net/free-photo/pensive-person-alone-corridor-serious_1262-1042.jpg?_wi=1", imageAlt: "Michael Torres"
}, },
{ {
id: "3", title: "Perfect for Special Occasions", quote: "We celebrated our anniversary at Baan Mu and it was absolutely perfect. The intimate setting, incredible food, and attentive service made it a night we'll never forget.", name: "Emma Rodriguez", role: "Event Planner", imageSrc: "http://img.b2bpic.net/free-photo/headshot-charismatic-pleasant-friendly-european-woman-short-chestnut-haircut-smiling-positive-feeling-happy-upbeat-enjoying-lifes-casually-talking-friends-amused-cheerful-standing-white-background_176420-34680.jpg", imageAlt: "Emma Rodriguez" id: "3", title: "Perfect for Special Occasions", quote: "We celebrated our anniversary at Baan Mu and it was absolutely perfect. The intimate setting, incredible food, and attentive service made it a night we'll never forget.", name: "Emma Rodriguez", role: "Event Planner", imageSrc: "http://img.b2bpic.net/free-photo/headshot-charismatic-pleasant-friendly-european-woman-short-chestnut-haircut-smiling-positive-feeling-happy-upbeat-enjoying-lifes-casually-talking-friends-amused-cheerful-standing-white-background_176420-34680.jpg?_wi=1", imageAlt: "Emma Rodriguez"
}, },
{ {
id: "4", title: "Best Curry in the Bay Area", quote: "The curries here are genuinely some of the best I've had anywhere. The balance of flavors, the heat level, the creamy coconut base - everything is perfectly executed.", name: "James Park", role: "Culinary Chef", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-handsome-guy-wearing-green-shirt_141793-122624.jpg", imageAlt: "James Park" id: "4", title: "Best Curry in the Bay Area", quote: "The curries here are genuinely some of the best I've had anywhere. The balance of flavors, the heat level, the creamy coconut base - everything is perfectly executed.", name: "James Park", role: "Culinary Chef", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-handsome-guy-wearing-green-shirt_141793-122624.jpg?_wi=1", imageAlt: "James Park"
} }
]} ]}
/> />

View File

@@ -94,6 +94,7 @@ function ProductPageContent({ params }: ProductPageProps) {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{"name":"Home","id":"/"}, {"name":"Home","id":"/"},
{"name":"Menu","id":"/menu"},
{"name":"Shop","id":"/shop"} {"name":"Shop","id":"/shop"}
]} ]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }} button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -134,6 +135,7 @@ function ProductPageContent({ params }: ProductPageProps) {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{"name":"Home","id":"/"}, {"name":"Home","id":"/"},
{"name":"Menu","id":"/menu"},
{"name":"Shop","id":"/shop"} {"name":"Shop","id":"/shop"}
]} ]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }} button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -181,6 +183,7 @@ function ProductPageContent({ params }: ProductPageProps) {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{"name":"Home","id":"/"}, {"name":"Home","id":"/"},
{"name":"Menu","id":"/menu"},
{"name":"Shop","id":"/shop"} {"name":"Shop","id":"/shop"}
]} ]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }} button={{ text: "Cart", onClick: () => setCartOpen(true) }}

View File

@@ -37,6 +37,7 @@ function ShopPageContent() {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{"name":"Home","id":"/"}, {"name":"Home","id":"/"},
{"name":"Menu","id":"/menu"},
{"name":"Shop","id":"/shop"} {"name":"Shop","id":"/shop"}
]} ]}
button={{ text: "Cart", onClick: () => console.log("cart") }} button={{ text: "Cart", onClick: () => console.log("cart") }}
@@ -76,6 +77,7 @@ function ShopPageContent() {
brandName="Baan Mu" brandName="Baan Mu"
navItems={[ navItems={[
{"name":"Home","id":"/"}, {"name":"Home","id":"/"},
{"name":"Menu","id":"/menu"},
{"name":"Shop","id":"/shop"} {"name":"Shop","id":"/shop"}
]} ]}
button={{ text: "Cart", onClick: () => console.log("cart") }} button={{ text: "Cart", onClick: () => console.log("cart") }}