Merge version_2_1781655240777 into main #1

Merged
bender merged 1 commits from version_2_1781655240777 into main 2026-06-17 00:15:35 +00:00
9 changed files with 327 additions and 238 deletions

View File

@@ -1,5 +1,5 @@
import FooterMinimal from '@/components/sections/footer/FooterMinimal';
import NavbarFloating from '@/components/ui/NavbarFloating';
import NavbarInline from '@/components/ui/NavbarInline';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
import { Facebook } from "lucide-react";
@@ -20,21 +20,21 @@ export default function Layout() {
"name": "Services",
"href": "#services"
},
{
"name": "Contact",
"href": "#contact"
},
{
"name": "Shop",
"href": "#shop"
},
{
"name": "Why",
"name": "Why Us",
"href": "#why"
},
{
"name": "Faq",
"name": "FAQ",
"href": "#faq"
},
{
"name": "Contact",
"href": "#contact"
}
];
@@ -42,7 +42,7 @@ export default function Layout() {
<StyleProvider buttonVariant="shift" siteBackground="gridDots" heroBackground="cornerGlow">
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
<NavbarInline
logo="Waste Not Mont Not Emporium"
ctaButton={{
text: "Get a Quote",

View File

@@ -1,241 +1,33 @@
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
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 ServicesSection from './HomePage/sections/Services';
import ShopSection from './HomePage/sections/Shop';
import WhySection from './HomePage/sections/Why';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Your Local Sustainable Partner"
title="Waste Not Mont Not Emporium"
description="Preloved Furniture • House Clearances • Zero Waste Solutions"
primaryButton={{
text: "Browse Our Shop",
href: "#shop",
}}
secondaryButton={{
text: "Get a Free Quote",
href: "#contact",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-looking-old-chair_23-2149640692.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-using-sandpaper_23-2149394461.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/realistic-scene-with-little-child-neighborhood-yard-sale_23-2151238230.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/many-kinds-garbage-were-collected-dark-floor_1150-27978.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-garage-sale_23-2150661483.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/empty-chair-business-stack-decoration_1203-5029.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Our Story"
title="One Person's Junk is Another Person's Treasure"
description="We are a community-focused preloved shop and clearance service in Trowbridge, Wiltshire. Our mission is to reduce waste, keep good items out of landfill, and help the local community thrive by giving furniture and household goods a second life."
imageSrc="http://img.b2bpic.net/free-photo/full-shot-people-garage-sale_23-2150577012.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesMediaCarousel
tag="What We Offer"
title="Sustainable Solutions"
description="Comprehensive services for your home, garden, and community."
items={[
{
title: "Preloved Shop",
description: "Furniture & household items.",
buttonIcon: "ShoppingBag",
imageSrc: "http://img.b2bpic.net/free-photo/woman-restoring-wooden-chair-side-view_23-2150062453.jpg",
},
{
title: "House Clearances",
description: "Professional and stress-free.",
buttonIcon: "Home",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-laptop_23-2149181657.jpg",
},
{
title: "Garden Waste",
description: "Collection and recycling.",
buttonIcon: "Trees",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-recycling_23-2148834468.jpg",
},
{
title: "Man with a Van",
description: "Efficient removal services.",
buttonIcon: "Truck",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-male-taxi-driving-standing-his-cab_23-2149204594.jpg",
},
{
title: "Recycling",
description: "Dedicated to reducing waste.",
buttonIcon: "Recycle",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-plastic-carton-waste_23-2148666828.jpg",
},
{
title: "Community Support",
description: "Proud to serve Trowbridge.",
buttonIcon: "Heart",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-people-garage-sale_23-2150577111.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="shop" data-section="shop">
<SectionErrorBoundary name="shop">
<FeaturesRevealCardsBento
tag="Shop Gallery"
title="Treasures Waiting for You"
description="Explore our latest selection of hand-picked preloved items."
items={[
{
title: "Classic Furniture",
description: "Timeless designs for your home.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/antiques-market-objects-assortment_23-2148950953.jpg",
},
{
title: "Vintage Decor",
description: "Unique pieces with character.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/living-brown-home-luxury-white_1203-5025.jpg",
},
{
title: "Homeware Essentials",
description: "Practical and beautiful goods.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/vintage-antique-ancient-kettle-marble-background_114579-46890.jpg",
},
{
title: "Retro Finds",
description: "Bring history into your space.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-antique-store_23-2149640719.jpg",
},
{
title: "Refurbished Goods",
description: "Quality restored items.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-vintage-objects-second-hand-market_23-2149338465.jpg",
},
{
title: "Garden Decor",
description: "Enhance your outdoor area.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-ecological-zero-waster-concept_23-2148591722.jpg",
},
{
title: "Unique Homeware",
description: "One-of-a-kind treasures.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/woman-assembling-diy-chair-from-scratch_53876-127260.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ShopSection />
<div id="why" data-section="why">
<SectionErrorBoundary name="why">
<MetricsMediaCards
tag="Why Choose Us"
title="Your Trusted Local Partner"
description="Making sustainable living simple and affordable in Wiltshire."
metrics={[
{
value: "100%",
title: "Local Focus",
description: "Serving Trowbridge and beyond.",
imageSrc: "http://img.b2bpic.net/free-photo/women-tasting-homemade-organic-product_482257-101771.jpg",
},
{
value: "Fast",
title: "Fast Service",
description: "Reliable and responsive help.",
imageSrc: "http://img.b2bpic.net/free-photo/man-looking-woman-sealing-boxes_23-2147782405.jpg",
},
{
value: "Eco",
title: "Eco-Friendly",
description: "Committed to zero waste.",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-recycling-concept_23-2148834487.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<WhySection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Questions?"
title="Need Help? Just Ask."
description="Common answers about our services and hours."
items={[
{
question: "What are your opening hours?",
answer: "We are open Wednesday, Friday & Saturday. Please check our Facebook page for current timings.",
},
{
question: "Do you offer free quotes?",
answer: "Yes! Contact us today for a free quote on any clearance or removal service.",
},
{
question: "Where are you located?",
answer: "We are located at Castle Place, Trowbridge, Wiltshire.",
},
{
question: "What areas do you serve?",
answer: "We proudly serve Trowbridge and surrounding areas.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/full-shot-boy-garage-sale_23-2150540721.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get In Touch"
text="Call us at 07885 993582 or email wastenotmontnot@gmail.com for your free quote today."
primaryButton={{
text: "Call Now",
href: "tel:07885993582",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:wastenotmontnot@gmail.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,21 @@
// 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 AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Our Story"
title="One Person's Junk is Another Person's Treasure"
description="We are a community-focused preloved shop and clearance service in Trowbridge, Wiltshire. Our mission is to reduce waste, keep good items out of landfill, and help the local community thrive by giving furniture and household goods a second life."
imageSrc="http://img.b2bpic.net/free-photo/full-shot-people-garage-sale_23-2150577012.jpg"
/>
</SectionErrorBoundary>
</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="Get In Touch"
text="Call us at 07885 993582 or email wastenotmontnot@gmail.com for your free quote today."
primaryButton={{
text: "Call Now",
href: "tel:07885993582",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:wastenotmontnot@gmail.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,39 @@
// 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="Questions?"
title="Need Help? Just Ask."
description="Common answers about our services and hours."
items={[
{
question: "What are your opening hours?",
answer: "We are open Wednesday, Friday & Saturday. Please check our Facebook page for current timings.",
},
{
question: "Do you offer free quotes?",
answer: "Yes! Contact us today for a free quote on any clearance or removal service.",
},
{
question: "Where are you located?",
answer: "We are located at Castle Place, Trowbridge, Wiltshire.",
},
{
question: "What areas do you serve?",
answer: "We proudly serve Trowbridge and surrounding areas.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/full-shot-boy-garage-sale_23-2150540721.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Your Local Sustainable Partner"
title="Waste Not Mont Not Emporium"
description="Preloved Furniture • House Clearances • Zero Waste Solutions"
primaryButton={{
text: "Browse Our Shop",
href: "#shop",
}}
secondaryButton={{
text: "Get a Free Quote",
href: "#contact",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-looking-old-chair_23-2149640692.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-using-sandpaper_23-2149394461.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/realistic-scene-with-little-child-neighborhood-yard-sale_23-2151238230.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/many-kinds-garbage-were-collected-dark-floor_1150-27978.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-garage-sale_23-2150661483.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/empty-chair-business-stack-decoration_1203-5029.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,58 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesMediaCarousel
tag="What We Offer"
title="Sustainable Solutions"
description="Comprehensive services for your home, garden, and community."
items={[
{
title: "Preloved Shop",
description: "Furniture & household items.",
buttonIcon: "ShoppingBag",
imageSrc: "http://img.b2bpic.net/free-photo/woman-restoring-wooden-chair-side-view_23-2150062453.jpg",
},
{
title: "House Clearances",
description: "Professional and stress-free.",
buttonIcon: "Home",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-laptop_23-2149181657.jpg",
},
{
title: "Garden Waste",
description: "Collection and recycling.",
buttonIcon: "Trees",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-recycling_23-2148834468.jpg",
},
{
title: "Man with a Van",
description: "Efficient removal services.",
buttonIcon: "Truck",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-male-taxi-driving-standing-his-cab_23-2149204594.jpg",
},
{
title: "Recycling",
description: "Dedicated to reducing waste.",
buttonIcon: "Recycle",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-plastic-carton-waste_23-2148666828.jpg",
},
{
title: "Community Support",
description: "Proud to serve Trowbridge.",
buttonIcon: "Heart",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-people-garage-sale_23-2150577111.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "shop" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ShopSection(): React.JSX.Element {
return (
<div id="shop" data-section="shop">
<SectionErrorBoundary name="shop">
<FeaturesRevealCardsBento
tag="Shop Gallery"
title="Treasures Waiting for You"
description="Explore our latest selection of hand-picked preloved items."
items={[
{
title: "Classic Furniture",
description: "Timeless designs for your home.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/antiques-market-objects-assortment_23-2148950953.jpg",
},
{
title: "Vintage Decor",
description: "Unique pieces with character.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/living-brown-home-luxury-white_1203-5025.jpg",
},
{
title: "Homeware Essentials",
description: "Practical and beautiful goods.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/vintage-antique-ancient-kettle-marble-background_114579-46890.jpg",
},
{
title: "Retro Finds",
description: "Bring history into your space.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-antique-store_23-2149640719.jpg",
},
{
title: "Refurbished Goods",
description: "Quality restored items.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-vintage-objects-second-hand-market_23-2149338465.jpg",
},
{
title: "Garden Decor",
description: "Enhance your outdoor area.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-ecological-zero-waster-concept_23-2148591722.jpg",
},
{
title: "Unique Homeware",
description: "One-of-a-kind treasures.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/woman-assembling-diy-chair-from-scratch_53876-127260.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "why" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function WhySection(): React.JSX.Element {
return (
<div id="why" data-section="why">
<SectionErrorBoundary name="why">
<MetricsMediaCards
tag="Why Choose Us"
title="Your Trusted Local Partner"
description="Making sustainable living simple and affordable in Wiltshire."
metrics={[
{
value: "100%",
title: "Local Focus",
description: "Serving Trowbridge and beyond.",
imageSrc: "http://img.b2bpic.net/free-photo/women-tasting-homemade-organic-product_482257-101771.jpg",
},
{
value: "Fast",
title: "Fast Service",
description: "Reliable and responsive help.",
imageSrc: "http://img.b2bpic.net/free-photo/man-looking-woman-sealing-boxes_23-2147782405.jpg",
},
{
value: "Eco",
title: "Eco-Friendly",
description: "Committed to zero waste.",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-recycling-concept_23-2148834487.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}