1 Commits

Author SHA1 Message Date
kudinDmitriyUp
8b2fdf2943 Bob AI: Update hero section with opening hours and CTAs 2026-06-14 14:22:59 +00:00
8 changed files with 288 additions and 220 deletions

View File

@@ -1,231 +1,33 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
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 FeaturesSection from './HomePage/sections/Features';
import SpecialtiesSection from './HomePage/sections/Specialties';
import ReviewsSection from './HomePage/sections/Reviews';
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">
<HeroCenteredLogos
avatarsSrc={[
"http://img.b2bpic.net/free-photo/happy-couple-talking-each-other-lunch-time-restaurant-focus-is-woman-eating-sandwich_637285-1962.jpg",
"http://img.b2bpic.net/free-photo/close-up-portrait-dreamy-happy-inspired-girl-smiling-joyfully-look-camera-through-finger-frames-as-if-picturing-moment-imagine-scene-trying-capture-great-shot-standing-white-wall_176420-37403.jpg",
"http://img.b2bpic.net/free-photo/beautiful-brunette-woman-taking-pleasure-while-enjoying-landmarks-standing-front-old-building-with-broad-smile_171337-3469.jpg",
"http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-holding-glass_23-2148965393.jpg",
]}
avatarText="1200+ clienti soddisfatti"
title="La vera tradizione romana nel cuore di Roma"
description="Scopri l'autentico sapore di Roma presso Osteria Pocci. Atmosfera accogliente, ingredienti genuini e ricette classiche preparate con passione nel quartiere Re di Roma."
primaryButton={{
text: "Prenota un tavolo",
href: "#contact",
}}
secondaryButton={{
text: "Visualizza il menu",
href: "#specialties",
}}
names={[
"Carbonara",
"Amatriciana",
"Gnocchi alla Coda",
"Vini Locali",
]}
imageSrc="http://img.b2bpic.net/free-photo/spaghetti-carbonara_74190-34.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="La nostra storia"
descriptions={[
"Osteria Pocci nasce dalla passione per la cucina romana tradizionale. Situati in zona San Giovanni, offriamo un rifugio tranquillo per chiunque desideri gustare piatti stagionali preparati secondo le ricette delle nostre nonne.",
"La nostra missione è offrire un rapporto qualità-prezzo eccellente, unendo la cortesia di uno staff giovane e dinamico alla qualità certificata di materie prime locali, garantendo un'esperienza memorabile in ogni occasione.",
]}
primaryButton={{
text: "Scopri di più",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesArrowCards
tag="Il nostro servizio"
title="Perché sceglierci"
description="Ogni dettaglio è curato per farvi sentire come a casa di amici."
items={[
{
title: "Cucina Tipica Romana",
tags: [
"Stagionale",
"Autentico",
],
imageSrc: "http://img.b2bpic.net/free-photo/fresh-vegetables-pasta-desk_23-2148567110.jpg",
},
{
title: "Ottima Carta Vini",
tags: [
"Locale",
"Selezionato",
],
imageSrc: "http://img.b2bpic.net/free-photo/wine-glass_1203-6631.jpg",
},
{
title: "Accoglienza Cordiale",
tags: [
"Simpatia",
"Servizio",
],
imageSrc: "http://img.b2bpic.net/free-photo/group-happy-friends-talking-while-making-order-cafe_637285-7854.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="specialties" data-section="specialties">
<SectionErrorBoundary name="specialties">
<FeaturesImageBento
tag="Il nostro Menu"
title="Specialità dello Chef"
description="Assapora i nostri piatti più amati, preparati al momento ogni giorno."
items={[
{
title: "Carbonara Romana",
description: "L'equilibrio perfetto tra crema e guanciale croccante.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-italian-greek-mediterranean-food-ingredients-top-view-green-old-rustic-table_1220-1678.jpg",
},
{
title: "Gnocchi alla Coda",
description: "Guancia cotta morbida e succosa.",
imageSrc: "http://img.b2bpic.net/free-photo/hand-pouring-wine-transparent-glass-wooden-table_23-2147891231.jpg",
},
{
title: "Parmigiana di Melanzane",
description: "Un antipasto semplice ma dal sapore indimenticabile.",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-working-service-industry_23-2150722794.jpg",
},
{
title: "Rigatoni Amatriciana",
description: "Sapore deciso della tradizione romana.",
imageSrc: "http://img.b2bpic.net/free-photo/assortment-different-delicious-ingredients_23-2149028676.jpg",
},
{
title: "Dessert della Casa",
description: "Dolci deliziosi per concludere in bellezza.",
imageSrc: "http://img.b2bpic.net/free-photo/tasting-wine_1098-15006.jpg",
},
{
title: "Selezione di Formaggi",
description: "Prodotti locali scelti con cura.",
imageSrc: "http://img.b2bpic.net/free-photo/blonde-woman-sitting-cafe_273609-5102.jpg",
},
{
title: "Caffè Espresso",
description: "La chiusura perfetta di ogni pranzo.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-goat-cheese-with-smoked-cheese-green-onion-pickled-olives-rustic-wood_141793-6603.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<SpecialtiesSection />
<div id="reviews" data-section="reviews">
<SectionErrorBoundary name="reviews">
<TestimonialTrustCard
quote="LA MIGLIOR CARBONARA MAI MANGIATA! Il personale è gentilissimo, trattano le persone come amici e sono veramente cortesi."
rating={5}
author="Edoardo Stara"
avatars={[
{
name: "Simona",
imageSrc: "http://img.b2bpic.net/free-photo/happy-asian-woman-eating-burger-outdoors_23-2148952829.jpg",
},
{
name: "Michele",
imageSrc: "http://img.b2bpic.net/free-photo/people-technology-leisure-concept_273609-6599.jpg",
},
{
name: "Edoardo",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-people-table_23-2149213367.jpg",
},
{
name: "Emanuele",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-woman-with-charming-smile-feeling-happy-free-after-graduating-university-relaxing-cafe-waiting-food-making-plans-future-ginger-woman-having-rest-indoors_273609-481.jpg",
},
{
name: "Lea",
imageSrc: "http://img.b2bpic.net/free-photo/young-hispanic-girl-smiling-happy-walking-city_839833-21293.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ReviewsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Info utili"
title="Domande frequenti"
description="Tutto ciò che serve sapere per la tua visita."
categories={[
{
name: "Prenotazioni",
items: [
{
question: "È necessaria la prenotazione?",
answer: "Il locale non è molto grande, quindi consigliamo caldamente la prenotazione.",
},
{
question: "Accettate gruppi?",
answer: "Certamente, siamo attrezzati per ospitare gruppi, meglio prenotare in anticipo.",
},
],
},
{
name: "Servizi",
items: [
{
question: "Avete tavoli all'aperto?",
answer: "Sì, offriamo posti a sedere all'aperto durante la bella stagione.",
},
{
question: "È accessibile ai disabili?",
answer: "Sì, il nostro locale è accessibile in sedia a rotelle.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Prenota ora"
text="Pronto a gustare la vera cucina romana? Contattaci subito o passa a trovarci in Via Cesena."
primaryButton={{
text: "Chiama: 06 4368 8108",
href: "tel:+390643688108",
}}
secondaryButton={{
text: "Indicazioni stradali",
href: "https://maps.google.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,26 @@
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="La nostra storia"
descriptions={[
"Osteria Pocci nasce dalla passione per la cucina romana tradizionale. Situati in zona San Giovanni, offriamo un rifugio tranquillo per chiunque desideri gustare piatti stagionali preparati secondo le ricette delle nostre nonne.",
"La nostra missione è offrire un rapporto qualità-prezzo eccellente, unendo la cortesia di uno staff giovane e dinamico alla qualità certificata di materie prime locali, garantendo un'esperienza memorabile in ogni occasione.",
]}
primaryButton={{
text: "Scopri di più",
href: "#",
}}
/>
</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="Prenota ora"
text="Pronto a gustare la vera cucina romana? Contattaci subito o passa a trovarci in Via Cesena."
primaryButton={{
text: "Chiama: 06 4368 8108",
href: "tel:+390643688108",
}}
secondaryButton={{
text: "Indicazioni stradali",
href: "https://maps.google.com",
}}
/>
</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 "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="Info utili"
title="Domande frequenti"
description="Tutto ciò che serve sapere per la tua visita."
categories={[
{
name: "Prenotazioni",
items: [
{
question: "È necessaria la prenotazione?",
answer: "Il locale non è molto grande, quindi consigliamo caldamente la prenotazione.",
},
{
question: "Accettate gruppi?",
answer: "Certamente, siamo attrezzati per ospitare gruppi, meglio prenotare in anticipo.",
},
],
},
{
name: "Servizi",
items: [
{
question: "Avete tavoli all'aperto?",
answer: "Sì, offriamo posti a sedere all'aperto durante la bella stagione.",
},
{
question: "È accessibile ai disabili?",
answer: "Sì, il nostro locale è accessibile in sedia a rotelle.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,46 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesArrowCards
tag="Il nostro servizio"
title="Perché sceglierci"
description="Ogni dettaglio è curato per farvi sentire come a casa di amici."
items={[
{
title: "Cucina Tipica Romana",
tags: [
"Stagionale",
"Autentico",
],
imageSrc: "http://img.b2bpic.net/free-photo/fresh-vegetables-pasta-desk_23-2148567110.jpg",
},
{
title: "Ottima Carta Vini",
tags: [
"Locale",
"Selezionato",
],
imageSrc: "http://img.b2bpic.net/free-photo/wine-glass_1203-6631.jpg",
},
{
title: "Accoglienza Cordiale",
tags: [
"Simpatia",
"Servizio",
],
imageSrc: "http://img.b2bpic.net/free-photo/group-happy-friends-talking-while-making-order-cafe_637285-7854.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,20 @@
// Created by add_section_from_catalog (HeroBillboardFeatures).
import React from 'react';
import HeroBillboardFeatures from '@/components/sections/hero/HeroBillboardFeatures';
export default function HeroSection(): React.JSX.Element {
return (
<div data-webild-section="hero" id="hero">
<HeroBillboardFeatures
imageSrc="http://img.b2bpic.net/free-photo/spaghetti-carbonara_74190-34.jpg"
secondaryButton={{"href":"/menu","text":"Visualizza il menu"}}
primaryButton={{"href":"/prenotazioni","text":"Prenota un tavolo"}}
title="La vera tradizione romana"
badge="Osteria Pocci"
description="Scopri l'autentico sapore di Roma. Atmosfera accogliente, ingredienti genuini e ricette classiche preparate con passione."
features={[{"icon":"Clock","description":"Lun-Sab: 12:00-15:30 e 20:00-23:30","title":"Orari di Apertura"},{"title":"Giorno di Chiusura","icon":"CalendarX","description":"Domenica chiuso"}]}
/>
</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 "reviews" section.
import React from 'react';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ReviewsSection(): React.JSX.Element {
return (
<div id="reviews" data-section="reviews">
<SectionErrorBoundary name="reviews">
<TestimonialTrustCard
quote="LA MIGLIOR CARBONARA MAI MANGIATA! Il personale è gentilissimo, trattano le persone come amici e sono veramente cortesi."
rating={5}
author="Edoardo Stara"
avatars={[
{
name: "Simona",
imageSrc: "http://img.b2bpic.net/free-photo/happy-asian-woman-eating-burger-outdoors_23-2148952829.jpg",
},
{
name: "Michele",
imageSrc: "http://img.b2bpic.net/free-photo/people-technology-leisure-concept_273609-6599.jpg",
},
{
name: "Edoardo",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-people-table_23-2149213367.jpg",
},
{
name: "Emanuele",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-woman-with-charming-smile-feeling-happy-free-after-graduating-university-relaxing-cafe-waiting-food-making-plans-future-ginger-woman-having-rest-indoors_273609-481.jpg",
},
{
name: "Lea",
imageSrc: "http://img.b2bpic.net/free-photo/young-hispanic-girl-smiling-happy-walking-city_839833-21293.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "specialties" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SpecialtiesSection(): React.JSX.Element {
return (
<div id="specialties" data-section="specialties">
<SectionErrorBoundary name="specialties">
<FeaturesImageBento
tag="Il nostro Menu"
title="Specialità dello Chef"
description="Assapora i nostri piatti più amati, preparati al momento ogni giorno."
items={[
{
title: "Carbonara Romana",
description: "L'equilibrio perfetto tra crema e guanciale croccante.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-italian-greek-mediterranean-food-ingredients-top-view-green-old-rustic-table_1220-1678.jpg",
},
{
title: "Gnocchi alla Coda",
description: "Guancia cotta morbida e succosa.",
imageSrc: "http://img.b2bpic.net/free-photo/hand-pouring-wine-transparent-glass-wooden-table_23-2147891231.jpg",
},
{
title: "Parmigiana di Melanzane",
description: "Un antipasto semplice ma dal sapore indimenticabile.",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-working-service-industry_23-2150722794.jpg",
},
{
title: "Rigatoni Amatriciana",
description: "Sapore deciso della tradizione romana.",
imageSrc: "http://img.b2bpic.net/free-photo/assortment-different-delicious-ingredients_23-2149028676.jpg",
},
{
title: "Dessert della Casa",
description: "Dolci deliziosi per concludere in bellezza.",
imageSrc: "http://img.b2bpic.net/free-photo/tasting-wine_1098-15006.jpg",
},
{
title: "Selezione di Formaggi",
description: "Prodotti locali scelti con cura.",
imageSrc: "http://img.b2bpic.net/free-photo/blonde-woman-sitting-cafe_273609-5102.jpg",
},
{
title: "Caffè Espresso",
description: "La chiusura perfetta di ogni pranzo.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-goat-cheese-with-smoked-cheese-green-onion-pickled-olives-rustic-wood_141793-6603.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}