Merge version_1 into main

Merge version_1 into main
This commit was merged in pull request #2.
This commit is contained in:
2026-03-12 22:02:14 +00:00
2 changed files with 63 additions and 185 deletions

View File

@@ -23,8 +23,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Restaurant",
items: [
title: "Restaurant", items: [
{ label: "Menu", href: "/menu" },
{ label: "Hours & Location", href: "#contact" },
{ label: "About Us", href: "#about" },
@@ -32,8 +31,7 @@ export default function HomePage() {
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "Phone", href: "tel:+15596831120" },
{ label: "Email", href: "mailto:info@mountainoakscafe.com" },
{ label: "Directions", href: "https://maps.google.com/?q=Mountain+Oaks+Cafe+Oakhurst" },
@@ -41,8 +39,7 @@ export default function HomePage() {
],
},
{
title: "Follow Us",
items: [
title: "Follow Us", items: [
{ label: "Google Reviews", href: "https://google.com" },
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
@@ -54,7 +51,7 @@ export default function HomePage() {
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
defaultTextAnimation="reveal-blur"
borderRadius="pill"
contentWidth="small"
sizing="mediumLargeSizeMediumTitles"
@@ -69,9 +66,7 @@ export default function HomePage() {
brandName="Mountain Oaks Cafe"
navItems={navItems}
button={{
text: "Reserve Now",
href: "#contact",
}}
text: "Reserve Now", href: "#contact"}}
/>
</div>
@@ -87,20 +82,14 @@ export default function HomePage() {
]}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-pancakes-with-various-ingredients_140725-114390.jpg?_wi=1",
imageAlt: "Fluffy pancakes",
},
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-pancakes-with-various-ingredients_140725-114390.jpg", imageAlt: "Fluffy pancakes"},
{
imageSrc: "http://img.b2bpic.net/free-photo/thin-chicken-nuggets-with-french-fries-vegan-salad_114579-2448.jpg",
imageAlt: "Fish and chips",
},
imageSrc: "http://img.b2bpic.net/free-photo/thin-chicken-nuggets-with-french-fries-vegan-salad_114579-2448.jpg", imageAlt: "Fish and chips"},
{
imageSrc: "http://img.b2bpic.net/free-photo/sweet-pork-white-plate-with-chopped-scallions-chili-lime-gourd-tomato-garlic_1150-25951.jpg",
imageAlt: "Tri tip steak",
},
imageSrc: "http://img.b2bpic.net/free-photo/sweet-pork-white-plate-with-chopped-scallions-chili-lime-gourd-tomato-garlic_1150-25951.jpg", imageAlt: "Tri tip steak"},
]}
mediaAnimation="slide-up"
buttonAnimation="entrance-slide"
buttonAnimation="slide-up"
/>
</div>
@@ -125,79 +114,43 @@ export default function HomePage() {
tag="Customer Favorites"
features={[
{
title: "Fluffy Pancakes",
description: "Stacked high with butter and maple syrup perfection",
bentoComponent: "media-stack",
items: [
title: "Fluffy Pancakes", description: "Stacked high with butter and maple syrup perfection", bentoComponent: "media-stack", items: [
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-pancakes-with-strawberries-honey-light_140725-121125.jpg?_wi=1",
imageAlt: "Pancakes plate 1",
},
imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-pancakes-with-strawberries-honey-light_140725-121125.jpg", imageAlt: "Pancakes plate 1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-pancakes-with-fruits-top_181624-27677.jpg?_wi=1",
imageAlt: "Pancakes plate 2",
},
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-pancakes-with-fruits-top_181624-27677.jpg", imageAlt: "Pancakes plate 2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-pancakes-with-copy-space_23-2148454959.jpg?_wi=1",
imageAlt: "Pancakes plate 3",
},
imageSrc: "http://img.b2bpic.net/free-photo/top-view-pancakes-with-copy-space_23-2148454959.jpg", imageAlt: "Pancakes plate 3"},
],
},
{
title: "Fish & Chips",
description: "Crispy battered fish with golden fries and tangy tartar sauce",
bentoComponent: "media-stack",
items: [
title: "Fish & Chips", description: "Crispy battered fish with golden fries and tangy tartar sauce", bentoComponent: "media-stack", items: [
{
imageSrc: "http://img.b2bpic.net/free-photo/fried-chicken-with-fried-potatoes_140725-113374.jpg?_wi=1",
imageAlt: "Fish and chips 1",
},
imageSrc: "http://img.b2bpic.net/free-photo/fried-chicken-with-fried-potatoes_140725-113374.jpg", imageAlt: "Fish and chips 1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-corn-dog_23-2149388045.jpg?_wi=1",
imageAlt: "Fish and chips 2",
},
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-corn-dog_23-2149388045.jpg", imageAlt: "Fish and chips 2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-french-fries-bowls-with-salt-copy-space_23-2148701505.jpg?_wi=1",
imageAlt: "Fish and chips 3",
},
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-french-fries-bowls-with-salt-copy-space_23-2148701505.jpg", imageAlt: "Fish and chips 3"},
],
},
{
title: "Tri Tip Steak",
description: "Tender, perfectly seasoned tri tip with sides",
bentoComponent: "media-stack",
items: [
title: "Tri Tip Steak", description: "Tender, perfectly seasoned tri tip with sides", bentoComponent: "media-stack", items: [
{
imageSrc: "http://img.b2bpic.net/free-photo/fried-meat-with-arugula-grilled-eggplants_141793-744.jpg?_wi=1",
imageAlt: "Tri tip 1",
},
imageSrc: "http://img.b2bpic.net/free-photo/fried-meat-with-arugula-grilled-eggplants_141793-744.jpg", imageAlt: "Tri tip 1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/two-raw-pork-fillets-bone-white-marble-table_127032-3585.jpg?_wi=1",
imageAlt: "Tri tip 2",
},
imageSrc: "http://img.b2bpic.net/free-photo/two-raw-pork-fillets-bone-white-marble-table_127032-3585.jpg", imageAlt: "Tri tip 2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/rare-cooked-steak-slices-served-with-mashed-avocado-walnut-lettuce-spinach-red-wine_141793-2268.jpg?_wi=1",
imageAlt: "Tri tip 3",
},
imageSrc: "http://img.b2bpic.net/free-photo/rare-cooked-steak-slices-served-with-mashed-avocado-walnut-lettuce-spinach-red-wine_141793-2268.jpg", imageAlt: "Tri tip 3"},
],
},
{
title: "Clam Chowder",
description: "Creamy, hearty clam chowder in fresh sourdough bread",
bentoComponent: "media-stack",
items: [
title: "Clam Chowder", description: "Creamy, hearty clam chowder in fresh sourdough bread", bentoComponent: "media-stack", items: [
{
imageSrc: "http://img.b2bpic.net/free-photo/view-food-frame-with-copy-space_23-2148725086.jpg?_wi=1",
imageAlt: "Clam chowder 1",
},
imageSrc: "http://img.b2bpic.net/free-photo/view-food-frame-with-copy-space_23-2148725086.jpg", imageAlt: "Clam chowder 1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-closeup-shot-soup-with-seafood-vegetables-with-baguette-slices-blue-bench_181624-43301.jpg?_wi=1",
imageAlt: "Clam chowder 2",
},
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-closeup-shot-soup-with-seafood-vegetables-with-baguette-slices-blue-bench_181624-43301.jpg", imageAlt: "Clam chowder 2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/mushroom-soup-bread-white-ceramic-cup_1339-5111.jpg?_wi=1",
imageAlt: "Clam chowder 3",
},
imageSrc: "http://img.b2bpic.net/free-photo/mushroom-soup-bread-white-ceramic-cup_1339-5111.jpg", imageAlt: "Clam chowder 3"},
],
},
]}
@@ -231,53 +184,23 @@ export default function HomePage() {
tag="Customer Reviews"
testimonials={[
{
id: "1",
name: "Sarah Johnson",
role: "Local Resident",
testimonial: "Great location, great service, large portions, and tons of options. I've been coming here for years!",
icon: Heart,
imageAlt: "Sarah Johnson",
},
id: "1", name: "Sarah Johnson", role: "Local Resident", testimonial: "Great location, great service, large portions, and tons of options. I've been coming here for years!", icon: Heart,
imageAlt: "Sarah Johnson"},
{
id: "2",
name: "Michael Chen",
role: "Yosemite Visitor",
testimonial: "Friendly staff and delicious food every time. The perfect stop before heading to Yosemite!",
icon: Star,
imageAlt: "Michael Chen",
},
id: "2", name: "Michael Chen", role: "Yosemite Visitor", testimonial: "Friendly staff and delicious food every time. The perfect stop before heading to Yosemite!", icon: Star,
imageAlt: "Michael Chen"},
{
id: "3",
name: "Emily Rodriguez",
role: "Regular Customer",
testimonial: "Food came out quickly and coffee cups stayed full. Best breakfast in Oakhurst!",
icon: ThumbsUp,
imageAlt: "Emily Rodriguez",
},
id: "3", name: "Emily Rodriguez", role: "Regular Customer", testimonial: "Food came out quickly and coffee cups stayed full. Best breakfast in Oakhurst!", icon: ThumbsUp,
imageAlt: "Emily Rodriguez"},
{
id: "4",
name: "David Kim",
role: "Traveler",
testimonial: "Excellent service and amazing comfort food. This is now our go-to spot whenever we visit the area.",
icon: Award,
imageAlt: "David Kim",
},
id: "4", name: "David Kim", role: "Traveler", testimonial: "Excellent service and amazing comfort food. This is now our go-to spot whenever we visit the area.", icon: Award,
imageAlt: "David Kim"},
{
id: "5",
name: "Jessica Martinez",
role: "Local Family",
testimonial: "Family-friendly atmosphere with something for everyone. The kids love it, and so do we!",
icon: Users,
imageAlt: "Jessica Martinez",
},
id: "5", name: "Jessica Martinez", role: "Local Family", testimonial: "Family-friendly atmosphere with something for everyone. The kids love it, and so do we!", icon: Users,
imageAlt: "Jessica Martinez"},
{
id: "6",
name: "Robert Thompson",
role: "Frequent Visitor",
testimonial: "Consistent quality, generous portions, and authentic homestyle cooking. Mountain Oaks is a gem!",
icon: Gem,
imageAlt: "Robert Thompson",
},
id: "6", name: "Robert Thompson", role: "Frequent Visitor", testimonial: "Consistent quality, generous portions, and authentic homestyle cooking. Mountain Oaks is a gem!", icon: Gem,
imageAlt: "Robert Thompson"},
]}
textboxLayout="default"
animationType="slide-up"
@@ -292,47 +215,17 @@ export default function HomePage() {
tag="Photo Gallery"
products={[
{
id: "1",
name: "Dining Interior",
price: "Cozy Vibes",
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-wooden-chairs-tables-modern-living-room_181624-41970.jpg?_wi=1",
imageAlt: "Restaurant interior",
},
id: "1", name: "Dining Interior", price: "Cozy Vibes", imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-wooden-chairs-tables-modern-living-room_181624-41970.jpg", imageAlt: "Restaurant interior"},
{
id: "2",
name: "Happy Diners",
price: "Community",
imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-having-fun-while-eating-dessert-taking-selfie-cafe_637285-9092.jpg?_wi=1",
imageAlt: "Happy customers",
},
id: "2", name: "Happy Diners", price: "Community", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-having-fun-while-eating-dessert-taking-selfie-cafe_637285-9092.jpg", imageAlt: "Happy customers"},
{
id: "3",
name: "Large Portions",
price: "Generous",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-family-having-nice-thanksgiving-dinner-together_23-2149082333.jpg?_wi=1",
imageAlt: "Large plate portions",
},
id: "3", name: "Large Portions", price: "Generous", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-family-having-nice-thanksgiving-dinner-together_23-2149082333.jpg", imageAlt: "Large plate portions"},
{
id: "4",
name: "Fresh Food",
price: "Quality",
imageSrc: "http://img.b2bpic.net/free-photo/mid-shot-chef-cutting-salad_23-2148794092.jpg?_wi=1",
imageAlt: "Fresh prepared food",
},
id: "4", name: "Fresh Food", price: "Quality", imageSrc: "http://img.b2bpic.net/free-photo/mid-shot-chef-cutting-salad_23-2148794092.jpg", imageAlt: "Fresh prepared food"},
{
id: "5",
name: "Breakfast Setup",
price: "Morning Magic",
imageSrc: "http://img.b2bpic.net/free-photo/pancake-fruit-juice-cake-slice-coffee-cup-breakfast-table_23-2147942214.jpg?_wi=1",
imageAlt: "Breakfast service",
},
id: "5", name: "Breakfast Setup", price: "Morning Magic", imageSrc: "http://img.b2bpic.net/free-photo/pancake-fruit-juice-cake-slice-coffee-cup-breakfast-table_23-2147942214.jpg", imageAlt: "Breakfast service"},
{
id: "6",
name: "Warm Lighting",
price: "Ambiance",
imageSrc: "http://img.b2bpic.net/free-photo/guy-whirling-cheerful-lady-restaurant_23-2148016861.jpg?_wi=1",
imageAlt: "Cozy restaurant lighting",
},
id: "6", name: "Warm Lighting", price: "Ambiance", imageSrc: "http://img.b2bpic.net/free-photo/guy-whirling-cheerful-lady-restaurant_23-2148016861.jpg", imageAlt: "Cozy restaurant lighting"},
]}
gridVariant="three-columns-all-equal-width"
textboxLayout="default"

View File

@@ -1,51 +1,36 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from "react";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
className?: string;
logoText?: string;
animate?: boolean;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
className = "", logoText = "Text Logo", animate = false,
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
className={className}
viewBox="0 0 300 100"
xmlns="http://www.w3.org/2000/svg"
role="img"
aria-label={`${logoText} logo`}
aria-label={logoText}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline="central"
className={`text-2xl font-bold ${
animate ? "animate-pulse" : ""
}`}
fill="currentColor"
>
{logoText}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;