Compare commits

...

16 Commits

Author SHA1 Message Date
kudinDmitriyUp
4c5eccd24d Bob AI (approx): Expand on each beer's description with captivating tasting n 2026-06-02 14:41:40 +00:00
65d86351c8 Merge version_12_1780411041624 into main
Merge version_12_1780411041624 into main
2026-06-02 14:39:06 +00:00
kudinDmitriyUp
96bd96da91 Bob AI: Added different colors to badges in the hero section 2026-06-02 14:39:00 +00:00
6d11724ec5 Merge version_11_1780410770038 into main
Merge version_11_1780410770038 into main
2026-06-02 14:34:20 +00:00
kudinDmitriyUp
caf3807d41 Bob AI (stub): make badges in hero sections each on in different color 2026-06-02 14:34:16 +00:00
bb88c37cd4 Merge version_10_1780410417085 into main
Merge version_10_1780410417085 into main
2026-06-02 14:28:16 +00:00
kudinDmitriyUp
61e1311d23 Bob AI (stub): make badges in hero sections each on in different color 2026-06-02 14:28:12 +00:00
kudinDmitriyUp
1e14fd6e43 Bob AI: Split src/pages/HomePage.tsx into per-section files (7 sections) 2026-06-02 14:27:11 +00:00
8077861d43 Merge version_9_1780407462050 into main
Merge version_9_1780407462050 into main
2026-06-02 13:40:56 +00:00
kudinDmitriyUp
39aa18800d Bob AI: Add a primary or secondary call-to-action button to the 'sto 2026-06-02 13:40:20 +00:00
9d57261117 Merge version_8_1780407270523 into main
Merge version_8_1780407270523 into main
2026-06-02 13:36:10 +00:00
kudinDmitriyUp
8f228cf4b2 Bob AI: Replace one of the duplicate 'Leaf' icons in the hero's valu 2026-06-02 13:35:34 +00:00
809a1cd0c1 Merge version_6_1780406242438 into main
Merge version_6_1780406242438 into main
2026-06-02 13:21:16 +00:00
kudinDmitriyUp
c85f04a2a1 Bob AI: fix build errors (attempt 1) 2026-06-02 13:20:40 +00:00
kudinDmitriyUp
58d25ae19b Bob AI: Apply different background colors to each badge within the h 2026-06-02 13:19:41 +00:00
9fce7aa7e8 Merge version_5_1780405786010 into main
Merge version_5_1780405786010 into main
2026-06-02 13:13:47 +00:00
8 changed files with 358 additions and 253 deletions

View File

@@ -1,260 +1,32 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { Award, Droplet, Leaf, Users, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import TextAnimation from "@/components/ui/TextAnimation";
import ScrollReveal from "@/components/ui/ScrollReveal";
import GridOrCarousel from "@/components/ui/GridOrCarousel";
import FaqSimple from '@/components/sections/faq/FaqSimple';
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly; this shell only fixes render order.
import React from 'react';
import HomeSection from './HomePage/sections/Home';
import BeersSection from './HomePage/sections/Beers';
import StorySection from './HomePage/sections/Story';
import TaproomSection from './HomePage/sections/Taproom';
import TestimonialQuoteCardsSection from './HomePage/sections/TestimonialQuoteCards';
import FaqSimpleSection from './HomePage/sections/FaqSimple';
import ContactSection from './HomePage/sections/Contact';
{/* webild-stub @2026-06-02T13:06:08.765Z: make badges in hero sections each on in different color */}
export default function HomePage() {
{/* webild-stub @2026-06-02T14:34:15.285Z: make badges in hero sections each on in different color */}
{/* webild-stub @2026-06-02T14:28:11.483Z: make badges in hero sections each on in different color */}
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroOverlayMarquee
tag="Welcome to Vermont's Finest"
title="Crafting Exceptional Beer Since 1998"
description="Nestled in the picturesque Cedar Mountains, our brewery is dedicated to producing high-quality, artisanal beers that capture the spirit of Vermont. We combine traditional techniques with a passion for innovation, ensuring every sip is a taste of our unique heritage."
primaryButton={{
text: "Explore Our Beers",
href: "#beers",
}}
secondaryButton={{
text: "Our Story",
href: "#story",
}}
items={[
{
text: "Local Ingredients",
icon: Leaf,
},
{
text: "Sustainable Brewing",
icon: Leaf,
},
{
text: "Award-Winning",
icon: Award,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/morning-mountains-carpathian-ukraine-aerial-view_1153-6120.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="beers" data-section="beers">
<SectionErrorBoundary name="beers">
<FeaturesRevealCardsBentoSharp
tag="Our Signature Collection"
title="Taste the Craftsmanship"
description="From crisp lagers to robust stouts, each Cedar Mountain brew tells a story of Vermont's rich landscape and our dedication to the art of brewing. Discover our most popular and beloved beers."
items={[
{
title: "Maple Amber Ale",
description: "A rich, malty ale with subtle notes of Vermont maple syrup, balanced by a clean hop finish. Perfect for any season.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/composed-books-autumnal-goods_23-2147687094.jpg",
},
{
title: "Cascade IPA",
description: "Our flagship IPA, bursting with vibrant citrus and pine aromas from generous Cascade hop additions. Bold, refreshing, and truly iconic.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-psd/flat-design-oktoberfest-celebration-poster_23-2150683567.jpg",
},
{
title: "Stout Mountain Porter",
description: "A dark and brooding porter with deep roasted malt flavors, hints of chocolate and coffee, and a creamy texture. A comforting classic.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-bottles-bear-dark-background_140725-94854.jpg",
},
{
title: "Summertime Lager",
description: "Light, crisp, and incredibly refreshing. Our lager is brewed for sunny days and good company, with a clean finish that invites another sip.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/celebration-beer-cheers-concept-close-up-hand-holding-up-glasses-beer-man_1150-6458.jpg",
},
{
title: "Harvest Wheat Beer",
description: "A hazy, unfiltered wheat beer brewed with local Vermont wheat, offering subtle fruit and spice notes. A true taste of the harvest.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/composition-with-tasty-american-beer_23-2148907632.jpg",
},
{
title: "Barrel-Aged Scotch Ale",
description: "A robust Scotch Ale aged in oak barrels, developing complex vanilla, caramel, and smoky characteristics. A beer for sipping and savoring.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/pints-draught-beer-macro-photography_53876-101409.jpg",
},
{
title: "Raspberry Sour",
description: "A delightfully tart and fruity sour ale, brewed with real Vermont raspberries for a vibrant color and juicy, refreshing flavor.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-friends-beach-with-beer_23-2147827103.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="story" data-section="story">
<SectionErrorBoundary name="story">
<AboutFeaturesSplit
tag="Our Journey"
title="The Heart of Cedar Mountain Brewing"
description="For over two decades, Cedar Mountain Brewery has been more than just a place to make beer; it's a testament to passion, community, and the pristine environment of Vermont. Our story began with a simple idea: to craft beers that reflect the purity of our mountain springs and the richness of local harvests. Every batch is a labor of love, a blend of traditional techniques, and innovative spirit."
items={[
{
icon: Droplet,
title: "Traditional Craft",
description: "Honoring age-old brewing methods passed down through generations, ensuring authenticity in every batch.",
},
{
icon: Leaf,
title: "Local Sourcing",
description: "Utilizing the finest Vermont-grown hops, grains, and pure mountain water to create unique flavors.",
},
{
icon: Users,
title: "Community Focused",
description: "A gathering place for locals and visitors, fostering connection over great beer and shared experiences.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/smiling-man-breaking-egg-white-big-bowl_23-2148164492.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="taproom" data-section="taproom">
<SectionErrorBoundary name="taproom">
<FeaturesMediaCards
tag="Experience Our Home"
title="The Cedar Mountain Taproom"
description="Join us at our cozy taproom, nestled at the base of Cedar Mountain. Enjoy fresh brews straight from the source, delicious local bites, and a welcoming atmosphere. It's more than a bar; it's where our community comes together to celebrate good beer and good company."
items={[
{
title: "Fresh Taps Daily",
description: "Always a rotating selection of our latest and greatest brews on tap, featuring seasonal specialties and classic favorites.",
imageSrc: "http://img.b2bpic.net/free-photo/still-life-beer-brewing-elements_23-2150321509.jpg",
},
{
title: "Local Food Pairings",
description: "Savor delicious appetizers and meals, thoughtfully crafted to complement our beers, made with ingredients from Vermont farms.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg",
},
{
title: "Live Music & Events",
description: "Check our calendar for regular live performances, engaging trivia nights, and exciting new beer releases.",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-men-standing-bar-counter-talking-each-other_23-2147861997.jpg",
},
{
title: "Scenic Outdoor Seating",
description: "Relax on our spacious patio with stunning panoramic views of the surrounding Cedar Mountains and lush Vermont landscape.",
imageSrc: "http://img.b2bpic.net/free-photo/wooden-chair-table-outdoor-terrace_74190-3968.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials" data-webild-section="TestimonialQuoteCards">
<SectionErrorBoundary name="testimonials">
<section aria-label="Testimonials section" className="">
<div className="flex flex-col gap-8">
<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>What Our Guests Say</p>
</div>
<TextAnimation
text="Cheers from the Community"
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="Don't just take our word for it. Here's what craft beer lovers have to say about their experiences at Cedar Mountain Brewery."
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>
<ScrollReveal variant="fade-blur">
<GridOrCarousel>
{[
{
name: "Sarah Jenkins",
role: "Local Enthusiast",
quote: "The Cascade IPA is hands down the best I've had in Vermont. The taproom atmosphere is so welcoming, and the staff really knows their stuff!",
},
{
name: "Mike & Emily",
role: "Weekend Visitors",
quote: "We stopped by during our road trip and ended up staying for hours. The Maple Amber Ale and the live music made for a perfect afternoon.",
},
{
name: "David Chen",
role: "Homebrewer",
quote: "You can taste the dedication to traditional craft in every sip of the Stout Mountain Porter. It's inspiring to see a brewery so committed to quality.",
}
].map((testimonial, i) => (
<div key={i} className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded">
<div className="flex gap-1">
{[...Array(5)].map((_, j) => (
<Star key={j} className="size-5 text-accent fill-accent" />
))}
</div>
<p className="text-lg md:text-xl leading-snug flex-grow">"{testimonial.quote}"</p>
<div className="flex flex-col gap-1 mt-4">
<span className="text-base font-semibold">{testimonial.name}</span>
<span className="text-sm opacity-70">{testimonial.role}</span>
</div>
</div>
))}
</GridOrCarousel>
</ScrollReveal>
</div>
</section>
</SectionErrorBoundary>
</div>
<div id="faq" data-section="faq" data-webild-section="FaqSimple">
<FaqSimple
tag="Your Questions Answered"
title="Frequently Asked Questions"
description="Find answers to common questions about Cedar Mountain Brewery, our beers, taproom, and special events. We're here to help you plan your visit."
primaryButton={{"text":"Visit Our Taproom","href":"/taproom"}}
secondaryButton={{"text":"Explore Our Beers","href":"/beers"}}
items={[{"question":"What types of beer does Cedar Mountain Brewery offer?","answer":"We brew a diverse range of craft beers, including crisp lagers, hoppy IPAs, rich stouts, and seasonal ales. Our selection is constantly evolving, often featuring unique Vermont-inspired ingredients. Please check our 'Beers' page for our current tap list and availability."},{"question":"What are your taproom hours and location?","answer":"Our taproom is located in the heart of Vermont. We are open Wednesday to Friday from 3 PM - 9 PM, Saturday from 12 PM - 10 PM, and Sunday from 12 PM - 7 PM. We are closed on Monday and Tuesday. You can find our full address and directions on our 'Contact Us' page."},{"question":"Do you host special events or private parties?","answer":"Yes, we regularly host live music, trivia nights, and seasonal festivals. Our taproom is also available for private event bookings. Visit our 'Events' page for an up-to-date schedule or contact us directly to inquire about hosting your private gathering."},{"question":"Can I take a tour of the Cedar Mountain brewery?","answer":"We offer guided brewery tours on Saturdays at 2 PM and 4 PM. These tours provide a behind-the-scenes look at our brewing process and include a tasting flight. Reservations are highly recommended due to limited space."},{"question":"Where can I purchase Cedar Mountain beers to take home?","answer":"Our beers are available for purchase directly from our taproom in growlers, cans, and bottles. You can also find select Cedar Mountain brews at various local Vermont retailers and restaurants. Check our website for a list of distributors."}]}
/>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Plan Your Visit"
text="Ready to taste the best of Vermont craft beer? Visit our taproom, explore our events, or get in touch with us today!"
primaryButton={{
text: "Get Directions",
href: "https://maps.google.com/?q=Cedar+Mountain+Brewery+Vermont",
}}
secondaryButton={{
text: "Contact Us",
href: "mailto:info@cedarmountainbrewery.com",
}}
/>
</SectionErrorBoundary>
</div>
<HomeSection />
<BeersSection />
<StorySection />
<TaproomSection />
<TestimonialQuoteCardsSection />
<FaqSimpleSection />
<ContactSection />
</>
);
}
}

View File

@@ -0,0 +1,76 @@
"use client";
import { ImageOrVideo, ScrollReveal, TextAnimation } from '@/components/ui';
const beers = [
{
name: "Mountain IPA",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/mountain-ipa.jpg",
abv: "6.5%",
ibu: "60",
description: "A vibrant, hop-forward IPA bursting with notes of pine, citrus, and a hint of tropical fruit. Its crisp bitterness is balanced by a smooth malt backbone, leading to a refreshing finish. Pairs perfectly with spicy tacos, grilled burgers, or sharp cheddar cheese."
},
{
name: "Riverbend Lager",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/riverbend-lager.jpg",
abv: "5.0%",
ibu: "20",
description: "A clean, crisp, and exceptionally smooth lager with subtle notes of toasted grain and a delicate floral hop aroma. Its light body and refreshing character make it incredibly drinkable. Excellent with light salads, seafood, or classic pub fare like fish and chips."
},
{
name: "Forest Stout",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/forest-stout.jpg",
abv: "7.2%",
ibu: "35",
description: "A rich and robust stout with deep flavors of roasted coffee, dark chocolate, and a hint of caramel. Its creamy texture and warming finish make it a perfect companion for cooler evenings. Ideal with hearty stews, barbecued ribs, or decadent chocolate desserts."
},
{
name: "Sunset Wheat Ale",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/sunset-wheat-ale.jpg",
abv: "5.2%",
ibu: "15",
description: "A refreshing and hazy wheat ale with bright notes of orange peel and coriander. Its smooth, effervescent body and subtle sweetness make it perfect for a warm afternoon. Pairs wonderfully with grilled chicken, fruit tarts, or goat cheese salads."
},
{
name: "Trailblazer Pale Ale",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/trailblazer-pale-ale.jpg",
abv: "5.8%",
ibu: "40",
description: "A classic American Pale Ale with a balanced hop profile, offering aromas of grapefruit and floral notes. Its medium body and crisp finish make it a versatile choice for any occasion. Great with pizza, burgers, or a variety of cheeses."
}
];
export default function BeersSection() {
return (
<div data-webild-section="beers-section" id="beers" className="relative w-full bg-background">
<div className="max-w-content-width mx-auto px-6">
<ScrollReveal variant="slide-up" delay={0.1}>
<TextAnimation
text="Our Craft Beers"
tag="h2"
variant="slide-up"
gradientText
className="text-4xl md:text-5xl font-bold text-center"
/>
</ScrollReveal>
<ScrollReveal variant="slide-up" delay={0.2}>
<p className="mt-4 text-lg text-muted-foreground text-center max-w-content-width mx-auto">
Explore our diverse selection of handcrafted beers, brewed with passion and the finest ingredients.
</p>
</ScrollReveal>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{beers.map((beer, index) => (
<ScrollReveal key={beer.name} variant="slide-up" delay={0.3 + index * 0.1}>
<div className="bg-card p-6 rounded-lg shadow-lg flex flex-col items-center text-center">
<ImageOrVideo imageSrc={beer.imageSrc} className="w-32 h-32 object-cover rounded-full mb-4" />
<h3 className="text-2xl font-semibold text-foreground">{beer.name}</h3>
<p className="text-muted-foreground mt-2">ABV: {beer.abv} | IBU: {beer.ibu}</p>
<p className="text-sm text-muted-foreground mt-4 max-w-prose">{beer.description}</p>
</div>
</ScrollReveal>
))}
</div>
</div>
</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 "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="Plan Your Visit"
text="Ready to taste the best of Vermont craft beer? Visit our taproom, explore our events, or get in touch with us today!"
primaryButton={{
text: "Get Directions",
href: "https://maps.google.com/?q=Cedar+Mountain+Brewery+Vermont",
}}
secondaryButton={{
text: "Contact Us",
href: "mailto:info@cedarmountainbrewery.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,20 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "FaqSimple" section.
import React from 'react';
import FaqSimple from '@/components/sections/faq/FaqSimple';
export default function FaqSimpleSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq" data-webild-section="FaqSimple">
<FaqSimple
tag="Your Questions Answered"
title="Frequently Asked Questions"
description="Find answers to common questions about Cedar Mountain Brewery, our beers, taproom, and special events. We're here to help you plan your visit."
primaryButton={{"text":"Visit Our Taproom","href":"/taproom"}}
secondaryButton={{"text":"Explore Our Beers","href":"/beers"}}
items={[{"question":"What types of beer does Cedar Mountain Brewery offer?","answer":"We brew a diverse range of craft beers, including crisp lagers, hoppy IPAs, rich stouts, and seasonal ales. Our selection is constantly evolving, often featuring unique Vermont-inspired ingredients. Please check our 'Beers' page for our current tap list and availability."},{"question":"What are your taproom hours and location?","answer":"Our taproom is located in the heart of Vermont. We are open Wednesday to Friday from 3 PM - 9 PM, Saturday from 12 PM - 10 PM, and Sunday from 12 PM - 7 PM. We are closed on Monday and Tuesday. You can find our full address and directions on our 'Contact Us' page."},{"question":"Do you host special events or private parties?","answer":"Yes, we regularly host live music, trivia nights, and seasonal festivals. Our taproom is also available for private event bookings. Visit our 'Events' page for an up-to-date schedule or contact us directly to inquire about hosting your private gathering."},{"question":"Can I take a tour of the Cedar Mountain brewery?","answer":"We offer guided brewery tours on Saturdays at 2 PM and 4 PM. These tours provide a behind-the-scenes look at our brewing process and include a tasting flight. Reservations are highly recommended due to limited space."},{"question":"Where can I purchase Cedar Mountain beers to take home?","answer":"Our beers are available for purchase directly from our taproom in growlers, cans, and bottles. You can also find select Cedar Mountain brews at various local Vermont retailers and restaurants. Check our website for a list of distributors."}]}
/>
</div>
);
}

View File

@@ -0,0 +1,47 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "home" section.
import React from 'react';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { Award, Droplet, Leaf, Users, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HomeSection(): React.JSX.Element {
return (
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroOverlayMarquee
tag="Welcome to Vermont's Finest"
title="Crafting Exceptional Beer Since 1998"
description="Nestled in the picturesque Cedar Mountains, our brewery is dedicated to producing high-quality, artisanal beers that capture the spirit of Vermont. We combine traditional techniques with a passion for innovation, ensuring every sip is a taste of our unique heritage."
primaryButton={{
text: "Explore Our Beers",
href: "#beers",
}}
secondaryButton={{
text: "Our Story",
href: "#story",
}}
items={[
{
text: "Local Ingredients",
icon: Leaf,
className: "bg-green-100 text-green-800 border-green-200",
},
{
text: "Sustainable Brewing",
icon: Droplet,
className: "bg-blue-100 text-blue-800 border-blue-200",
},
{
text: "Award-Winning",
icon: Award,
className: "bg-yellow-100 text-yellow-800 border-yellow-200",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/morning-mountains-carpathian-ukraine-aerial-view_1153-6120.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,43 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "story" section.
import React from 'react';
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import { Award, Droplet, Leaf, Users, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function StorySection(): React.JSX.Element {
return (
<div id="story" data-section="story">
<SectionErrorBoundary name="story">
<AboutFeaturesSplit
tag="Our Journey"
title="The Heart of Cedar Mountain Brewing"
description="For over two decades, Cedar Mountain Brewery has been more than just a place to make beer; it's a testament to passion, community, and the pristine environment of Vermont. Our story began with a simple idea: to craft beers that reflect the purity of our mountain springs and the richness of local harvests. Every batch is a labor of love, a blend of traditional techniques, and innovative spirit."
primaryButton={{
text: "Meet Our Brewers",
href: "#",
}}
items={[
{
icon: Droplet,
title: "Traditional Craft",
description: "Honoring age-old brewing methods passed down through generations, ensuring authenticity in every batch.",
},
{
icon: Leaf,
title: "Local Sourcing",
description: "Utilizing the finest Vermont-grown hops, grains, and pure mountain water to create unique flavors.",
},
{
icon: Users,
title: "Community Focused",
description: "A gathering place for locals and visitors, fostering connection over great beer and shared experiences.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/smiling-man-breaking-egg-white-big-bowl_23-2148164492.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,42 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "taproom" section.
import React from 'react';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TaproomSection(): React.JSX.Element {
return (
<div id="taproom" data-section="taproom">
<SectionErrorBoundary name="taproom">
<FeaturesMediaCards
tag="Experience Our Home"
title="The Cedar Mountain Taproom"
description="Join us at our cozy taproom, nestled at the base of Cedar Mountain. Enjoy fresh brews straight from the source, delicious local bites, and a welcoming atmosphere. It's more than a bar; it's where our community comes together to celebrate good beer and good company."
items={[
{
title: "Fresh Taps Daily",
description: "Always a rotating selection of our latest and greatest brews on tap, featuring seasonal specialties and classic favorites.",
imageSrc: "http://img.b2bpic.net/free-photo/still-life-beer-brewing-elements_23-2150321509.jpg",
},
{
title: "Local Food Pairings",
description: "Savor delicious appetizers and meals, thoughtfully crafted to complement our beers, made with ingredients from Vermont farms.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg",
},
{
title: "Live Music & Events",
description: "Check our calendar for regular live performances, engaging trivia nights, and exciting new beer releases.",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-men-standing-bar-counter-talking-each-other_23-2147861997.jpg",
},
{
title: "Scenic Outdoor Seating",
description: "Relax on our spacious patio with stunning panoramic views of the surrounding Cedar Mountains and lush Vermont landscape.",
imageSrc: "http://img.b2bpic.net/free-photo/wooden-chair-table-outdoor-terrace_74190-3968.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,78 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "TestimonialQuoteCards" section.
import React from 'react';
import { Award, Droplet, Leaf, Users, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import TextAnimation from "@/components/ui/TextAnimation";
import ScrollReveal from "@/components/ui/ScrollReveal";
import GridOrCarousel from "@/components/ui/GridOrCarousel";
export default function TestimonialQuoteCardsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials" data-webild-section="TestimonialQuoteCards">
<SectionErrorBoundary name="testimonials">
<section aria-label="Testimonials section" className="">
<div className="flex flex-col gap-8">
<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>What Our Guests Say</p>
</div>
<TextAnimation
text="Cheers from the Community"
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="Don't just take our word for it. Here's what craft beer lovers have to say about their experiences at Cedar Mountain Brewery."
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>
<ScrollReveal variant="fade-blur">
<GridOrCarousel>
{[
{
name: "Sarah Jenkins",
role: "Local Enthusiast",
quote: "The Cascade IPA is hands down the best I've had in Vermont. The taproom atmosphere is so welcoming, and the staff really knows their stuff!",
},
{
name: "Mike & Emily",
role: "Weekend Visitors",
quote: "We stopped by during our road trip and ended up staying for hours. The Maple Amber Ale and the live music made for a perfect afternoon.",
},
{
name: "David Chen",
role: "Homebrewer",
quote: "You can taste the dedication to traditional craft in every sip of the Stout Mountain Porter. It's inspiring to see a brewery so committed to quality.",
}
].map((testimonial, i) => (
<div key={i} className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded">
<div className="flex gap-1">
{[...Array(5)].map((_, j) => (
<Star key={j} className="size-5 text-accent fill-accent" />
))}
</div>
<p className="text-lg md:text-xl leading-snug flex-grow">"{testimonial.quote}"</p>
<div className="flex flex-col gap-1 mt-4">
<span className="text-base font-semibold">{testimonial.name}</span>
<span className="text-sm opacity-70">{testimonial.role}</span>
</div>
</div>
))}
</GridOrCarousel>
</ScrollReveal>
</div>
</section>
</SectionErrorBoundary>
</div>
);
}