Merge version_2_1782575808535 into main
Merge version_2_1782575808535 into main
This commit was merged in pull request #5.
This commit is contained in:
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--background: #fdfbf7;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #f5faff;
|
||||
--foreground: #1a1a1a;
|
||||
--primary-cta: #d4af37;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--secondary-cta-text: #1a1a1a;
|
||||
--accent: #8c8c8c;
|
||||
--background-accent: #f5f0e6;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 0.5rem;
|
||||
|
||||
@@ -1,172 +1,33 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesBento from '@/components/sections/features/FeaturesBento';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
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 EventsSection from './HomePage/sections/Events';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import GallerySection from './HomePage/sections/Gallery';
|
||||
import ReviewsSection from './HomePage/sections/Reviews';
|
||||
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="Crystal Restaurant"
|
||||
title="Locul unde evenimentele devin memorabile"
|
||||
description="Restaurant elegant pentru nunți, botezuri, aniversări și cine speciale, cu mâncare gustoasă și ambianță rafinată."
|
||||
primaryButton={{
|
||||
text: "Rezervă acum", href: "#reservation"}}
|
||||
secondaryButton={{
|
||||
text: "Solicită ofertă", href: "#events-cta"}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=1"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=1"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=1"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=1"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=1"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=2"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Despre noi"
|
||||
quote="Crystal este creat pentru momente speciale: cine liniștite, zile de naștere, nunți și evenimente de familie. Atmosfera elegantă și mâncarea delicioasă transformă fiecare vizită într-o experiență memorabilă."
|
||||
author="Echipa Crystal"
|
||||
role="Restaurant & Festivități"
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=2"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="events" data-section="events">
|
||||
<SectionErrorBoundary name="events">
|
||||
<FeaturesBento
|
||||
tag="Evenimente"
|
||||
title="Organizate cu stil"
|
||||
description="Oferim cadrul ideal pentru orice tip de sărbătoare."
|
||||
features={[
|
||||
{
|
||||
title: "Nunți & Botezuri", description: "Momente unice într-un decor spectaculos.", bentoComponent: "info-card-marquee", infoCards: [
|
||||
{
|
||||
icon: "Sparkles", label: "Eleganță", value: "100%"},
|
||||
{
|
||||
icon: "Star", label: "Rating", value: "4.8"},
|
||||
{
|
||||
icon: "Heart", label: "Client", value: "Fericire"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Corporate & Petreceri", description: "Profesionalism și atenție la detalii.", bentoComponent: "media-stack", mediaItems: [
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=3"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=3"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=2"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<EventsSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Bucătărie"
|
||||
title="Meniul Crystal"
|
||||
description="Preparate gândite pentru gust, prospețime și o prezentare impecabilă."
|
||||
items={[
|
||||
{
|
||||
title: "Aperitive", description: "Gustări fine și variate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=3"},
|
||||
{
|
||||
title: "Feluri principale", description: "Bucate gătite cu pasiune", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=4"},
|
||||
{
|
||||
title: "Garnituri", description: "Completări rafinate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=4"},
|
||||
{
|
||||
title: "Deserturi", description: "Dulciuri delicioase", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=2"},
|
||||
{
|
||||
title: "Băuturi", description: "Selecții de vinuri și cocktailuri", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=2"},
|
||||
{
|
||||
title: "Meniuri festive", description: "Oferte personalizate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=4"},
|
||||
{
|
||||
title: "Evenimente", description: "Preparate pentru ocazii speciale", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=5"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesImageBento
|
||||
tag="Galerie"
|
||||
title="Atmosfera Crystal"
|
||||
description="Descoperă eleganța locației noastre."
|
||||
items={[
|
||||
{
|
||||
title: "Intrare", description: "Restaurant Crystal", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=3"},
|
||||
{
|
||||
title: "Sală", description: "Aranjament elegant", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=5"},
|
||||
{
|
||||
title: "Decor", description: "Detalii glamour", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=5"},
|
||||
{
|
||||
title: "Eveniment", description: "Masă festivă", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=3"},
|
||||
{
|
||||
title: "Bucate", description: "Preparate delicioase", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=6"},
|
||||
{
|
||||
title: "Crystal", description: "Atmosferă rafinată", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=6"},
|
||||
{
|
||||
title: "Crystal", description: "Momente memorabile", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=6"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<GallerySection />
|
||||
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialQuoteCards
|
||||
tag="Recenzii"
|
||||
title="Apreciat de clienți"
|
||||
description="4,8 ★★★★★ din 21 recenzii"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Diana Savin", role: "Client", quote: "Recomand acest restaurant pentru diferite festivități, cu mâncare gustoasă, aranjament frumos și personal amabil.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=7"},
|
||||
{
|
||||
name: "Bogdan Băetrau", role: "Client", quote: "Mâncare mai bună ca aici nu găsești nicăieri. Ar merita mai mult de 5 stele.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=7"},
|
||||
{
|
||||
name: "Elena S.", role: "Client", quote: "Un restaurant frumos, cu mâncare bună și servicii bune. Puteți sărbători o zi de naștere, nuntă, botez etc.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=4"},
|
||||
{
|
||||
name: "Clienți Crystal", role: "Comunitate", quote: "O experiență culinară de neuitat într-o ambianță extrem de elegantă și primitoare.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=7"},
|
||||
{
|
||||
name: "Feedback", role: "Grupuri", quote: "Potrivit pentru grupuri de orice dimensiune. Mâncarea este constant excelentă.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=4"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ReviewsSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contact"
|
||||
text="Planifică evenimentul tău la Crystal. Suntem gata să răspundem tuturor întrebărilor."
|
||||
primaryButton={{
|
||||
text: "Sună acum", href: "tel:+4000000000"}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp", href: "https://wa.me/4000000000"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
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="Despre noi"
|
||||
quote="Crystal este creat pentru momente speciale: cine liniștite, zile de naștere, nunți și evenimente de familie. Atmosfera elegantă și mâncarea delicioasă transformă fiecare vizită într-o experiență memorabilă."
|
||||
author="Echipa Crystal"
|
||||
role="Restaurant & Festivități"
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=2"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Contact.tsx
Normal file
23
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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="Contact"
|
||||
text="Planifică evenimentul tău la Crystal. Suntem gata să răspundem tuturor întrebărilor."
|
||||
primaryButton={{
|
||||
text: "Sună acum", href: "tel:+4000000000"}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp", href: "https://wa.me/4000000000"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Events.tsx
Normal file
42
src/pages/HomePage/sections/Events.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "events" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBento from '@/components/sections/features/FeaturesBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function EventsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="events" data-section="events">
|
||||
<SectionErrorBoundary name="events">
|
||||
<FeaturesBento
|
||||
tag="Evenimente"
|
||||
title="Organizate cu stil"
|
||||
description="Oferim cadrul ideal pentru orice tip de sărbătoare."
|
||||
features={[
|
||||
{
|
||||
title: "Nunți & Botezuri", description: "Momente unice într-un decor spectaculos.", bentoComponent: "info-card-marquee", infoCards: [
|
||||
{
|
||||
icon: "Sparkles", label: "Eleganță", value: "100%"},
|
||||
{
|
||||
icon: "Star", label: "Rating", value: "4.8"},
|
||||
{
|
||||
icon: "Heart", label: "Client", value: "Fericire"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Corporate & Petreceri", description: "Profesionalism și atenție la detalii.", bentoComponent: "media-stack", mediaItems: [
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=3"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=3"},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=2"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Gallery.tsx
Normal file
36
src/pages/HomePage/sections/Gallery.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "gallery" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function GallerySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesImageBento
|
||||
tag="Galerie"
|
||||
title="Atmosfera Crystal"
|
||||
description="Descoperă eleganța locației noastre."
|
||||
items={[
|
||||
{
|
||||
title: "Intrare", description: "Restaurant Crystal", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=3"},
|
||||
{
|
||||
title: "Sală", description: "Aranjament elegant", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=5"},
|
||||
{
|
||||
title: "Decor", description: "Detalii glamour", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=5"},
|
||||
{
|
||||
title: "Eveniment", description: "Masă festivă", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=3"},
|
||||
{
|
||||
title: "Bucate", description: "Preparate delicioase", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=6"},
|
||||
{
|
||||
title: "Crystal", description: "Atmosferă rafinată", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=6"},
|
||||
{
|
||||
title: "Crystal", description: "Momente memorabile", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=6"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
101
src/pages/HomePage/sections/Hero.tsx
Normal file
101
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,101 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
|
||||
const primaryButton = {
|
||||
text: "Rezervă acum",
|
||||
href: "#reservation"
|
||||
};
|
||||
const secondaryButton = {
|
||||
text: "Solicită ofertă",
|
||||
href: "#events-cta"
|
||||
};
|
||||
const items = [
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=1"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=1"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=1"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=1"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=1"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=2"
|
||||
}
|
||||
];
|
||||
|
||||
type HeroBillboardCarouselProps = {
|
||||
tag: string;
|
||||
title: string;
|
||||
description: string;
|
||||
primaryButton: { text: string; href: string };
|
||||
secondaryButton: { text: string; href: string };
|
||||
items: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[];
|
||||
};
|
||||
|
||||
const HeroInline = () => {
|
||||
const duplicated = [...items, ...items, ...items, ...items];
|
||||
|
||||
return (
|
||||
<section
|
||||
aria-label="Hero section"
|
||||
className="relative flex flex-col items-center justify-center gap-8 md:gap-10 w-full min-h-svh pt-25 pb-20 md:pt-30"
|
||||
>
|
||||
<div className="absolute inset-0 z-0">
|
||||
<ImageOrVideo
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1782574287001-ope9cg8q.png"
|
||||
className="w-full h-full object-cover opacity-30"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-b from-background/40 via-background/80 to-background" />
|
||||
</div>
|
||||
<div className="relative z-10 flex flex-col items-center gap-3 w-content-width mx-auto text-center">
|
||||
<div className="px-3 py-1 mb-1 text-sm card rounded w-fit flex items-center gap-1 text-accent">
|
||||
<p>4,8 ★★★★★ din 21 recenzii</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"Locul unde evenimentele devin memorabile"}
|
||||
variant="fade"
|
||||
gradientText={true}
|
||||
tag="h1"
|
||||
className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={"Restaurant elegant pentru nunți, botezuri, aniversări și cine speciale, cu mâncare gustoasă și ambianță rafinată."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance"
|
||||
/>
|
||||
|
||||
<div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3">
|
||||
<Button text="Rezervă acum" href="#contact" variant="primary"/>
|
||||
<Button text="Solicită ofertă" href="#contact" variant="secondary" animationDelay={0.1} />
|
||||
<Button text="Sună acum" href="tel:+37368448441" variant="secondary" animationDelay={0.2} />
|
||||
<Button text="WhatsApp" href="https://wa.me/37368448441" variant="secondary" animationDelay={0.3} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function HeroSection() {
|
||||
return (
|
||||
<div data-webild-section="hero" id="hero">
|
||||
<HeroInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Menu.tsx
Normal file
36
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// 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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Bucătărie"
|
||||
title="Meniul Crystal"
|
||||
description="Preparate gândite pentru gust, prospețime și o prezentare impecabilă."
|
||||
items={[
|
||||
{
|
||||
title: "Aperitive", description: "Gustări fine și variate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=3"},
|
||||
{
|
||||
title: "Feluri principale", description: "Bucate gătite cu pasiune", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=4"},
|
||||
{
|
||||
title: "Garnituri", description: "Completări rafinate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=4"},
|
||||
{
|
||||
title: "Deserturi", description: "Dulciuri delicioase", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=2"},
|
||||
{
|
||||
title: "Băuturi", description: "Selecții de vinuri și cocktailuri", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=2"},
|
||||
{
|
||||
title: "Meniuri festive", description: "Oferte personalizate", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=4"},
|
||||
{
|
||||
title: "Evenimente", description: "Preparate pentru ocazii speciale", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=5"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/Reviews.tsx
Normal file
32
src/pages/HomePage/sections/Reviews.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// 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 TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ReviewsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="reviews" data-section="reviews">
|
||||
<SectionErrorBoundary name="reviews">
|
||||
<TestimonialQuoteCards
|
||||
tag="Recenzii"
|
||||
title="Apreciat de clienți"
|
||||
description="4,8 ★★★★★ din 21 recenzii"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Diana Savin", role: "Client", quote: "Recomand acest restaurant pentru diferite festivități, cu mâncare gustoasă, aranjament frumos și personal amabil.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065036-37v80zd2.png?_wi=7"},
|
||||
{
|
||||
name: "Bogdan Băetrau", role: "Client", quote: "Mâncare mai bună ca aici nu găsești nicăieri. Ar merita mai mult de 5 stele.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065033-dhzbd34x.png?_wi=7"},
|
||||
{
|
||||
name: "Elena S.", role: "Client", quote: "Un restaurant frumos, cu mâncare bună și servicii bune. Puteți sărbători o zi de naștere, nuntă, botez etc.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065040-cru364xl.png?_wi=4"},
|
||||
{
|
||||
name: "Clienți Crystal", role: "Comunitate", quote: "O experiență culinară de neuitat într-o ambianță extrem de elegantă și primitoare.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065044-xo3maf1j.png?_wi=7"},
|
||||
{
|
||||
name: "Feedback", role: "Grupuri", quote: "Potrivit pentru grupuri de orice dimensiune. Mâncarea este constant excelentă.", imageSrc: "https://storage.googleapis.com/webild/users/user_3Cl6pIJsjdRN3HI60srnmWC3SrL/uploaded-1781549065030-0oj6sgbz.png?_wi=4"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user