Merge version_2_1782494294238 into main #2
@@ -1,150 +1,38 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
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 MenuSection from './HomePage/sections/Menu';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import LocationSection from './HomePage/sections/Location';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Since 1998"
|
||||
title="Bridgeport's Favorite NY-Style Pizza"
|
||||
description="Authentic, thin-crust, and cooked to perfection. Taste the tradition that keeps the community coming back for more."
|
||||
primaryButton={{
|
||||
text: "Order Now", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "View Menu", href: "#menu"}}
|
||||
leftItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-italian-pizza-about-cheese-it-stick-selective-focus-generative-ai_1258-153039.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/homemade-sandwich-filled-with-chicken-vegetables-glass-cold-carbonated-juice_181624-56464.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-melted-cheese-pizza_23-2149286881.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/vertical-view-crispy-fried-chicken-with-mayonnaise-ketchup_140725-54247.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/grilled-meat-sandwich-with-fresh-vegetables-bread-generated-by-ai_188544-27615.jpg" }
|
||||
]}
|
||||
rightItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/grilled-beef-sandwich-ciabatta-with-salad-generated-by-ai_188544-21369.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-mushroom-pizza-with-cheese-olives-tomatoes-dark-surface-italy-meal-dough-pizza-food_140725-101410.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-with-three-different-sauces-nuggets_23-2148646582.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-salmon-sandwich-with-olives-onions_23-2148640243.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-indoors_23-2150873944.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-plate-with-sauce-fizzy-drink_23-2148646619.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Story"
|
||||
quote="We treat every customer like family. Sami's is Bridgeport, and we're proud to serve the best pizza around, just like we have for years."
|
||||
author="Sami"
|
||||
role="Owner & Head Pizza Maker"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/happy-woman-talking-waiter-who-is-wearing-protective-face-mask-while-choosing-something-from-menu-touchpad-cafe_637285-6595.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Menu"
|
||||
title="Classic Recipes, Real Ingredients"
|
||||
description="From our legendary thin-crust pies to crispy wings, everything is crafted with love and fresh spices."
|
||||
items={[
|
||||
{ title: "NY Style Cheese", description: "Classic thin crust with our secret sauce and premium mozzarella.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-traditional-italian-pizza_1328-3989.jpg" },
|
||||
{ title: "Garlic Knots", description: "Crispy on the outside, soft inside, tossed in garlic butter.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-roasted-young-potatoes-with-dill-chicken-top-view_114579-9508.jpg" },
|
||||
{ title: "Char-Grilled Wings", description: "Juicy, crispy, and the best wings you will find in town.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-legs-with-sauce-french-fries_23-2148646599.jpg" },
|
||||
{ title: "Chicken Wing Pizza", description: "A local favorite featuring actual pieces of our signature wings.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-food-presentation_23-2151914044.jpg" },
|
||||
{ title: "Meatball Sub", description: "Spicy, savory, and cooked to perfection on fresh rolls.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/beef-hamburger_74190-5907.jpg" },
|
||||
{ title: "Veggie Delight", description: "Loaded with fresh vegetables and our signature crispy crust.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/young-girls-having-pizza-floor_23-2147764737.jpg" },
|
||||
{ title: "Eggplant Parm Sub", description: "Hand-breaded eggplant that's worth the extra topping.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-hot-dog_23-2149235918.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingMediaCards
|
||||
tag="Specials"
|
||||
title="Value Packs"
|
||||
description="Great for families and gatherings, our combos offer the perfect taste of Sami's."
|
||||
plans={[
|
||||
{
|
||||
tag: "Popular", price: "$49.95", period: "Bundle", features: ["Large Pizza", "20 Wings", "Salad", "6 Garlic Knots", "2L Soda"],
|
||||
primaryButton: { text: "Order Pack", href: "#contact" },
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-hand-holding-sauce-bottle_23-2148773532.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="The Crew"
|
||||
title="Meet the Team"
|
||||
description="Hard-working locals dedicated to giving you the best pizza experience."
|
||||
members={[
|
||||
{ name: "Sami", role: "Owner", imageSrc: "http://img.b2bpic.net/free-photo/mid-shot-man-holding-cutting-board-with-pizza_23-2148785690.jpg" },
|
||||
{ name: "Chef Maria", role: "Pizza Maker", imageSrc: "http://img.b2bpic.net/free-photo/young-african-american-woman-eating-homemade-cheese-pizza-pointing-showing-with-thumb-up-side-with-happy-face-smiling_839833-29959.jpg" },
|
||||
{ name: "John", role: "Service Lead", imageSrc: "http://img.b2bpic.net/free-photo/friends-posing-with-pizza_23-2147640618.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Reviews"
|
||||
title="What Locals Say"
|
||||
description="Join our community of pizza lovers who have made us a Bridgeport staple."
|
||||
testimonials={[
|
||||
{ name: "Jacqui Smith", role: "Local Guide", quote: "Very good pizza. Good crust, good sauce. Worth the stop.", imageSrc: "http://img.b2bpic.net/free-photo/young-caucasian-man-holding-two-pizza-slices-indoors-handsome-male-wearing-casual-maroon-t-shirt-posing-against-yellow-wall_176532-10192.jpg" },
|
||||
{ name: "Billy Sotherden", role: "Local Guide", quote: "Best pepperoni and sausage pizza in the area! Wings are excellent.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-snacks-table-informal-meeting-best-friends-small-cozy-cafe-hot-spring-evening_8353-10408.jpg" },
|
||||
{ name: "Anna", role: "Local Guide", quote: "The pizza was hot and delicious. Garlic knots are crispy.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-happy-smiling-woman-enjoy-her-morning-french-breakfast-open-cafe-terrace-tasty-organic-food-holding-french-croissant-her-hand_291049-526.jpg" },
|
||||
{ name: "Hans Kraeger", role: "Local Guide", quote: "A must-stop pizzeria in Bridgeport! The crust is perfection.", imageSrc: "http://img.b2bpic.net/free-photo/choice_1388-662.jpg" },
|
||||
{ name: "Danice Cashin", role: "Local Guide", quote: "Great food, quality ingredients, friendly staff, affordable.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-asian-lady-eating-orange_1150-10403.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Common Questions"
|
||||
title="Helpful Info"
|
||||
description="We are here to answer your questions."
|
||||
categories={[
|
||||
{ name: "Orders", items: [{ question: "Do you deliver?", answer: "Yes, we offer delivery services within a limited radius." }, { question: "Can I order online?", answer: "Call us directly to place your order for pickup or delivery." }] },
|
||||
{ name: "Food", items: [{ question: "Is your crust thin?", answer: "Yes, we specialize in authentic, crispy thin-crust pizza." }, { question: "Do you have wings?", answer: "Absolutely, our char-grilled wings are a local favorite." }] }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Ready for the best pizza in Bridgeport? Call today and pick up something hot and fresh."
|
||||
primaryButton={{ text: "Call to Order", href: "tel:+13155555555" }}
|
||||
secondaryButton={{ text: "Get Directions", href: "#" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
<LocationSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// 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 AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Story"
|
||||
quote="We treat every customer like family. Sami's is Bridgeport, and we're proud to serve the best pizza around, just like we have for years."
|
||||
author="Sami"
|
||||
role="Owner & Head Pizza Maker"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/happy-woman-talking-waiter-who-is-wearing-protective-face-mask-while-choosing-something-from-menu-touchpad-cafe_637285-6595.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Contact.tsx
Normal file
21
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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="Visit Us"
|
||||
text="Ready for the best pizza in Bridgeport? Call today and pick up something hot and fresh."
|
||||
primaryButton={{ text: "Call to Order", href: "tel:+13155555555" }}
|
||||
secondaryButton={{ text: "Get Directions", href: "#" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/Faq.tsx
Normal file
24
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Common Questions"
|
||||
title="Helpful Info"
|
||||
description="We are here to answer your questions."
|
||||
categories={[
|
||||
{ name: "Orders", items: [{ question: "Do you deliver?", answer: "Yes, we offer delivery services within a limited radius." }, { question: "Can I order online?", answer: "Call us directly to place your order for pickup or delivery." }] },
|
||||
{ name: "Food", items: [{ question: "Is your crust thin?", answer: "Yes, we specialize in authentic, crispy thin-crust pizza." }, { question: "Do you have wings?", answer: "Absolutely, our char-grilled wings are a local favorite." }] }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
40
src/pages/HomePage/sections/Hero.tsx
Normal file
40
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
// 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 HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Since 1998"
|
||||
title="Bridgeport's Favorite NY-Style Pizza"
|
||||
description="Authentic, thin-crust, and cooked to perfection. Taste the tradition that keeps the community coming back for more."
|
||||
primaryButton={{
|
||||
text: "Order Now", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "View Menu", href: "#menu"}}
|
||||
leftItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-italian-pizza-about-cheese-it-stick-selective-focus-generative-ai_1258-153039.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/homemade-sandwich-filled-with-chicken-vegetables-glass-cold-carbonated-juice_181624-56464.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-melted-cheese-pizza_23-2149286881.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/vertical-view-crispy-fried-chicken-with-mayonnaise-ketchup_140725-54247.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/grilled-meat-sandwich-with-fresh-vegetables-bread-generated-by-ai_188544-27615.jpg" }
|
||||
]}
|
||||
rightItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/grilled-beef-sandwich-ciabatta-with-salad-generated-by-ai_188544-21369.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-mushroom-pizza-with-cheese-olives-tomatoes-dark-surface-italy-meal-dough-pizza-food_140725-101410.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-with-three-different-sauces-nuggets_23-2148646582.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-salmon-sandwich-with-olives-onions_23-2148640243.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-indoors_23-2150873944.jpg" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-plate-with-sauce-fizzy-drink_23-2148646619.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
77
src/pages/HomePage/sections/Location.tsx
Normal file
77
src/pages/HomePage/sections/Location.tsx
Normal file
@@ -0,0 +1,77 @@
|
||||
import React from "react";
|
||||
import { MapPin, Clock, Phone } from "lucide-react";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import Button from "@/components/ui/Button";
|
||||
|
||||
export default function LocationSection() {
|
||||
return (
|
||||
<section data-webild-section="location" id="location" className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
||||
<ScrollReveal variant="slide-up">
|
||||
<div className="space-y-8">
|
||||
<div>
|
||||
<TextAnimation variant="slide-up" tag="h2" gradientText={false} className="text-4xl md:text-5xl font-bold text-foreground mb-4" text="Come Visit Us" />
|
||||
<p className="text-lg text-accent">
|
||||
Stop by for a slice or pick up a whole pie. We're located right in the heart of Bridgeport.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-6">
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-lg card text-foreground">
|
||||
<MapPin className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Location</h3>
|
||||
<p className="text-accent">Bridgeport, NY<br/>(Serving the local community)</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-lg card text-foreground">
|
||||
<Clock className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Hours</h3>
|
||||
<p className="text-accent">Mon - Thu: 11:00 AM - 9:00 PM<br/>Fri - Sat: 11:00 AM - 10:00 PM<br/>Sun: 12:00 PM - 8:00 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-lg card text-foreground">
|
||||
<Phone className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Contact</h3>
|
||||
<p className="text-accent">Call us to order</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="pt-4">
|
||||
<Button text="Get Directions" variant="primary" href="https://maps.google.com" />
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="fade" delay={0.2}>
|
||||
<div className="w-full h-[400px] lg:h-[500px] rounded-lg overflow-hidden card">
|
||||
<iframe
|
||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2913.684497677943!2d-75.9890666!3d43.1531611!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89d98b0b0b0b0b0b%3A0x0!2sBridgeport%2C%20NY!5e0!3m2!1sen!2sus!4v1620000000000!5m2!1sen!2sus"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{ border: 0 }}
|
||||
allowFullScreen={true}
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer-when-downgrade"
|
||||
title="Sami's Pizza Location"
|
||||
></iframe>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Menu.tsx
Normal file
29
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "menu" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Menu"
|
||||
title="Classic Recipes, Real Ingredients"
|
||||
description="From our legendary thin-crust pies to crispy wings, everything is crafted with love and fresh spices."
|
||||
items={[
|
||||
{ title: "NY Style Cheese", description: "Classic thin crust with our secret sauce and premium mozzarella.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-traditional-italian-pizza_1328-3989.jpg" },
|
||||
{ title: "Garlic Knots", description: "Crispy on the outside, soft inside, tossed in garlic butter.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-roasted-young-potatoes-with-dill-chicken-top-view_114579-9508.jpg" },
|
||||
{ title: "Char-Grilled Wings", description: "Juicy, crispy, and the best wings you will find in town.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-legs-with-sauce-french-fries_23-2148646599.jpg" },
|
||||
{ title: "Chicken Wing Pizza", description: "A local favorite featuring actual pieces of our signature wings.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-food-presentation_23-2151914044.jpg" },
|
||||
{ title: "Meatball Sub", description: "Spicy, savory, and cooked to perfection on fresh rolls.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/beef-hamburger_74190-5907.jpg" },
|
||||
{ title: "Veggie Delight", description: "Loaded with fresh vegetables and our signature crispy crust.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/young-girls-having-pizza-floor_23-2147764737.jpg" },
|
||||
{ title: "Eggplant Parm Sub", description: "Hand-breaded eggplant that's worth the extra topping.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-hot-dog_23-2149235918.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Pricing.tsx
Normal file
27
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingMediaCards
|
||||
tag="Specials"
|
||||
title="Value Packs"
|
||||
description="Great for families and gatherings, our combos offer the perfect taste of Sami's."
|
||||
plans={[
|
||||
{
|
||||
tag: "Popular", price: "$49.95", period: "Bundle", features: ["Large Pizza", "20 Wings", "Salad", "6 Garlic Knots", "2L Soda"],
|
||||
primaryButton: { text: "Order Pack", href: "#contact" },
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-hand-holding-sauce-bottle_23-2148773532.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Team.tsx
Normal file
25
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="The Crew"
|
||||
title="Meet the Team"
|
||||
description="Hard-working locals dedicated to giving you the best pizza experience."
|
||||
members={[
|
||||
{ name: "Sami", role: "Owner", imageSrc: "http://img.b2bpic.net/free-photo/mid-shot-man-holding-cutting-board-with-pizza_23-2148785690.jpg" },
|
||||
{ name: "Chef Maria", role: "Pizza Maker", imageSrc: "http://img.b2bpic.net/free-photo/young-african-american-woman-eating-homemade-cheese-pizza-pointing-showing-with-thumb-up-side-with-happy-face-smiling_839833-29959.jpg" },
|
||||
{ name: "John", role: "Service Lead", imageSrc: "http://img.b2bpic.net/free-photo/friends-posing-with-pizza_23-2147640618.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Testimonials.tsx
Normal file
27
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Reviews"
|
||||
title="What Locals Say"
|
||||
description="Join our community of pizza lovers who have made us a Bridgeport staple."
|
||||
testimonials={[
|
||||
{ name: "Jacqui Smith", role: "Local Guide", quote: "Very good pizza. Good crust, good sauce. Worth the stop.", imageSrc: "http://img.b2bpic.net/free-photo/young-caucasian-man-holding-two-pizza-slices-indoors-handsome-male-wearing-casual-maroon-t-shirt-posing-against-yellow-wall_176532-10192.jpg" },
|
||||
{ name: "Billy Sotherden", role: "Local Guide", quote: "Best pepperoni and sausage pizza in the area! Wings are excellent.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-snacks-table-informal-meeting-best-friends-small-cozy-cafe-hot-spring-evening_8353-10408.jpg" },
|
||||
{ name: "Anna", role: "Local Guide", quote: "The pizza was hot and delicious. Garlic knots are crispy.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-happy-smiling-woman-enjoy-her-morning-french-breakfast-open-cafe-terrace-tasty-organic-food-holding-french-croissant-her-hand_291049-526.jpg" },
|
||||
{ name: "Hans Kraeger", role: "Local Guide", quote: "A must-stop pizzeria in Bridgeport! The crust is perfection.", imageSrc: "http://img.b2bpic.net/free-photo/choice_1388-662.jpg" },
|
||||
{ name: "Danice Cashin", role: "Local Guide", quote: "Great food, quality ingredients, friendly staff, affordable.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-asian-lady-eating-orange_1150-10403.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user