Merge version_2_1782002873612 into main #1
@@ -1,4 +1,4 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600;700&display=swap');
|
||||
@import "tailwindcss";
|
||||
@import "./styles/masks.css";
|
||||
@import "./styles/animations.css";
|
||||
@@ -88,8 +88,8 @@
|
||||
--color-background-accent: var(--background-accent);
|
||||
|
||||
/* Fonts */
|
||||
--font-sans: 'Inter', sans-serif;
|
||||
--font-tight: "Inter Tight", sans-serif;
|
||||
--font-sans: 'Cormorant Garamond', serif;
|
||||
--font-tight: "Inter", sans-serif;
|
||||
--font-mono: monospace;
|
||||
|
||||
/* Border Radius */
|
||||
|
||||
@@ -1,253 +1,38 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
import { Car, Clock, MapPin } from "lucide-react";
|
||||
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 FeaturesSection from './HomePage/sections/Features';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import StorySection from './HomePage/sections/Story';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import ClassesSection from './HomePage/sections/Classes';
|
||||
import LocationSection from './HomePage/sections/Location';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import GallerySection from './HomePage/sections/Gallery';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Sabores de Panamá, servidos como en casa."
|
||||
description="Recetas familiares, ingredientes locales y hospitalidad que ha conquistado a miles de viajeros en Casco Viejo. ★★★★★ 4.8 (1,700+ reseñas)"
|
||||
primaryButton={{
|
||||
text: "Reservar Mesa",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Nuestro Menú",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/spaghetti-cooked-with-seafoods-fresh-vegetables-served-grey-granite-plate_114579-1833.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Por qué elegirnos"
|
||||
title="El alma de Panamá en tu mesa"
|
||||
description="Cada detalle cuenta la historia de nuestras tradiciones."
|
||||
steps={[
|
||||
{
|
||||
tag: "Auténtico",
|
||||
title: "Recetas Familiares",
|
||||
subtitle: "Generacional",
|
||||
description: "Tradiciones transmitidas con amor.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/asian-food-chicken-fried-with-sauce-rice-served-plate_1220-7076.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Origen",
|
||||
title: "Ingredientes Locales",
|
||||
subtitle: "Fresco",
|
||||
description: "Productos frescos de nuestras tierras.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pitahaya-dragon-fruit-still-life-cinematic-dark-style_23-2151566199.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Hospitalidad",
|
||||
title: "Como en Casa",
|
||||
subtitle: "Bienvenida",
|
||||
description: "Te recibimos con el calor de Panamá.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/grilled-fish_1387-968.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Educación",
|
||||
title: "Clases de Cocina",
|
||||
subtitle: "Aprendizaje",
|
||||
description: "Descubre los secretos de nuestra cocina.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-with-son-making-dough-together_23-2147749315.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Ubicación",
|
||||
title: "Casco Viejo",
|
||||
subtitle: "Historia",
|
||||
description: "En el corazón del Panamá histórico.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/there-are-glasses-wine-water-table-with-white-cloth-are-ready-dining_613910-3428.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Nuestros Favoritos"
|
||||
title="Los sabores que definen El Nacional"
|
||||
description="Una selección de nuestros platos más icónicos."
|
||||
items={[
|
||||
{
|
||||
title: "Arroz con Pollo",
|
||||
description: "El clásico que nos une.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-protein-meal-meat-close-up-detail_23-2149098890.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ropa Vieja",
|
||||
description: "Sabor auténtico panameño.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beef-dish-restaurant_7939-1754.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pescado a lo Macho",
|
||||
description: "Directo del mar a tu mesa.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smoked-salmon-with-cucumber-onion-herbs-blue-plate_141793-6111.jpg",
|
||||
},
|
||||
{
|
||||
title: "Langostinos al Maracuyá",
|
||||
description: "Una explosión de frescura.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-spaghetti-pasta-with-tomatoes-parsley-white-table_1253-953.jpg",
|
||||
},
|
||||
{
|
||||
title: "Entradas",
|
||||
description: "El inicio perfecto.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-recipe-with-plantain_23-2151062795.jpg",
|
||||
},
|
||||
{
|
||||
title: "Postres",
|
||||
description: "Un dulce final.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/caramelized-onion-pieces-colorful-plate_114579-54109.jpg",
|
||||
},
|
||||
{
|
||||
title: "Menú Completo",
|
||||
description: "Explora toda la carta.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/raw-fish-placed-plate-with-lime-onion-cherry-tomato-ice_140725-5950.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
<GallerySection />
|
||||
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutTestimonial
|
||||
tag="Nuestra Historia"
|
||||
quote="Every recipe tells a story. Since 2020 we have shared the best of our land through authentic flavors, family traditions and unforgettable hospitality."
|
||||
author="Familia El Nacional"
|
||||
role="Fundadores"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/stone-walled-restaurant-top-lighting_140725-9731.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<StorySection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Reseñas"
|
||||
title="Lo que dicen de nosotros"
|
||||
description="Voces de viajeros de todo el mundo."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Turista",
|
||||
quote: "The best Panamanian food we tried.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-white-plain-rice-meal-with-chicken_140725-148893.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Turista",
|
||||
quote: "Authentic flavors and incredible hospitality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-spicy-grilled-pork-salad-with-berry-rice_1339-6326.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Turista",
|
||||
quote: "One of the best dining experiences in Casco Viejo.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fried-fish-table_140725-1351.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Turista",
|
||||
quote: "Absolutely unforgettable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/potato-cutlets-served-with-sprouts-sauce_7502-7399.jpg",
|
||||
},
|
||||
{
|
||||
name: "Maria L.",
|
||||
role: "Turista",
|
||||
quote: "A taste of home.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-working-as-professional-chef_23-2151864172.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="classes" data-section="classes">
|
||||
<SectionErrorBoundary name="classes">
|
||||
<PricingMediaCards
|
||||
tag="Talleres"
|
||||
title="Learn to Cook Panama"
|
||||
description="Descubre las tradiciones detrás de nuestras recetas."
|
||||
plans={[
|
||||
{
|
||||
tag: "Clase",
|
||||
price: "$80",
|
||||
period: "por persona",
|
||||
features: [
|
||||
"Incluye ingredientes",
|
||||
"Degustación incluida",
|
||||
"Duración: 3 horas",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Reservar",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/diverse-women-cooking-kitchen_53876-26162.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ClassesSection />
|
||||
|
||||
<div id="location" data-section="location">
|
||||
<SectionErrorBoundary name="location">
|
||||
<MetricsIconCards
|
||||
tag="Ubicación"
|
||||
title="Encuéntranos en Casco Viejo"
|
||||
description="Visítanos y vive una experiencia inolvidable."
|
||||
metrics={[
|
||||
{
|
||||
icon: MapPin,
|
||||
title: "Dirección",
|
||||
value: "Casco Viejo, Panamá",
|
||||
},
|
||||
{
|
||||
icon: Clock,
|
||||
title: "Abierto",
|
||||
value: "12pm - 10pm",
|
||||
},
|
||||
{
|
||||
icon: Car,
|
||||
title: "Parking",
|
||||
value: "Valet Disponible",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<LocationSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Reservaciones"
|
||||
text="La misma esencia de siempre. Presentada con el nivel que nuestra cocina merece."
|
||||
primaryButton={{
|
||||
text: "Reservar Ahora",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Menú",
|
||||
href: "#menu",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
37
src/pages/HomePage/sections/Classes.tsx
Normal file
37
src/pages/HomePage/sections/Classes.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "classes" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ClassesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="classes" data-section="classes">
|
||||
<SectionErrorBoundary name="classes">
|
||||
<PricingMediaCards
|
||||
tag="Talleres"
|
||||
title="Learn to Cook Panama"
|
||||
description="Descubre las tradiciones detrás de nuestras recetas."
|
||||
plans={[
|
||||
{
|
||||
tag: "Clase",
|
||||
price: "$80",
|
||||
period: "por persona",
|
||||
features: [
|
||||
"Incluye ingredientes",
|
||||
"Degustación incluida",
|
||||
"Duración: 3 horas",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Reservar",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/diverse-women-cooking-kitchen_53876-26162.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.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 "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="Reservaciones"
|
||||
text="La misma esencia de siempre. Presentada con el nivel que nuestra cocina merece."
|
||||
primaryButton={{
|
||||
text: "Reservar Ahora",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Menú",
|
||||
href: "#menu",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Features.tsx
Normal file
57
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// 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 FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Por qué elegirnos"
|
||||
title="El alma de Panamá en tu mesa"
|
||||
description="Cada detalle cuenta la historia de nuestras tradiciones."
|
||||
steps={[
|
||||
{
|
||||
tag: "Auténtico",
|
||||
title: "Recetas Familiares",
|
||||
subtitle: "Generacional",
|
||||
description: "Tradiciones transmitidas con amor.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/asian-food-chicken-fried-with-sauce-rice-served-plate_1220-7076.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Origen",
|
||||
title: "Ingredientes Locales",
|
||||
subtitle: "Fresco",
|
||||
description: "Productos frescos de nuestras tierras.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pitahaya-dragon-fruit-still-life-cinematic-dark-style_23-2151566199.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Hospitalidad",
|
||||
title: "Como en Casa",
|
||||
subtitle: "Bienvenida",
|
||||
description: "Te recibimos con el calor de Panamá.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/grilled-fish_1387-968.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Educación",
|
||||
title: "Clases de Cocina",
|
||||
subtitle: "Aprendizaje",
|
||||
description: "Descubre los secretos de nuestra cocina.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-with-son-making-dough-together_23-2147749315.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Ubicación",
|
||||
title: "Casco Viejo",
|
||||
subtitle: "Historia",
|
||||
description: "En el corazón del Panamá histórico.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/there-are-glasses-wine-water-table-with-white-cloth-are-ready-dining_613910-3428.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
50
src/pages/HomePage/sections/Gallery.tsx
Normal file
50
src/pages/HomePage/sections/Gallery.tsx
Normal file
@@ -0,0 +1,50 @@
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
import ImageOrVideo from '@/components/ui/ImageOrVideo';
|
||||
|
||||
export default function GallerySection() {
|
||||
return (
|
||||
<div data-webild-section="gallery" id="gallery">
|
||||
<section className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<ScrollReveal variant="fade">
|
||||
<div className="flex flex-col items-center text-center mb-16">
|
||||
<Tag text="Galería" className="mb-6" />
|
||||
<TextAnimation
|
||||
text="Nuestra Esencia"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
/>
|
||||
<p className="text-lg text-accent max-w-2xl">
|
||||
Una mirada a la experiencia El Nacional.
|
||||
</p>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<div className="columns-1 md:columns-2 lg:columns-3 gap-4 space-y-4">
|
||||
{[
|
||||
"http://img.b2bpic.net/free-photo/spaghetti-cooked-with-seafoods-fresh-vegetables-served-grey-granite-plate_114579-1833.jpg",
|
||||
"http://img.b2bpic.net/free-photo/asian-food-chicken-fried-with-sauce-rice-served-plate_1220-7076.jpg",
|
||||
"http://img.b2bpic.net/free-photo/stone-walled-restaurant-top-lighting_140725-9731.jpg",
|
||||
"http://img.b2bpic.net/free-photo/diverse-women-cooking-kitchen_53876-26162.jpg",
|
||||
"http://img.b2bpic.net/free-photo/there-are-glasses-wine-water-table-with-white-cloth-are-ready-dining_613910-3428.jpg",
|
||||
"http://img.b2bpic.net/free-photo/high-protein-meal-meat-close-up-detail_23-2149098890.jpg"
|
||||
].map((src, i) => (
|
||||
<ScrollReveal variant="fade" key={i} delay={i * 0.1}>
|
||||
<div className="break-inside-avoid rounded-lg overflow-hidden">
|
||||
<ImageOrVideo
|
||||
imageSrc={src}
|
||||
className="w-full h-auto object-cover hover:scale-105 transition-transform duration-500"
|
||||
/>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Hero.tsx
Normal file
28
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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 HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Sabores de Panamá, servidos como en casa."
|
||||
description="Recetas familiares, ingredientes locales y hospitalidad que ha conquistado a miles de viajeros en Casco Viejo. ★★★★★ 4.8 (1,700+ reseñas)"
|
||||
primaryButton={{
|
||||
text: "Reservar Mesa",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Nuestro Menú",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/spaghetti-cooked-with-seafoods-fresh-vegetables-served-grey-granite-plate_114579-1833.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Location.tsx
Normal file
38
src/pages/HomePage/sections/Location.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "location" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import { Car, Clock, MapPin } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function LocationSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="location" data-section="location">
|
||||
<SectionErrorBoundary name="location">
|
||||
<MetricsIconCards
|
||||
tag="Ubicación"
|
||||
title="Encuéntranos en Casco Viejo"
|
||||
description="Visítanos y vive una experiencia inolvidable."
|
||||
metrics={[
|
||||
{
|
||||
icon: MapPin,
|
||||
title: "Dirección",
|
||||
value: "Casco Viejo, Panamá",
|
||||
},
|
||||
{
|
||||
icon: Clock,
|
||||
title: "Abierto",
|
||||
value: "12pm - 10pm",
|
||||
},
|
||||
{
|
||||
icon: Car,
|
||||
title: "Parking",
|
||||
value: "Valet Disponible",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Menu.tsx
Normal file
57
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// 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="Nuestros Favoritos"
|
||||
title="Los sabores que definen El Nacional"
|
||||
description="Una selección de nuestros platos más icónicos."
|
||||
items={[
|
||||
{
|
||||
title: "Arroz con Pollo",
|
||||
description: "El clásico que nos une.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-protein-meal-meat-close-up-detail_23-2149098890.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ropa Vieja",
|
||||
description: "Sabor auténtico panameño.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beef-dish-restaurant_7939-1754.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pescado a lo Macho",
|
||||
description: "Directo del mar a tu mesa.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smoked-salmon-with-cucumber-onion-herbs-blue-plate_141793-6111.jpg",
|
||||
},
|
||||
{
|
||||
title: "Langostinos al Maracuyá",
|
||||
description: "Una explosión de frescura.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-spaghetti-pasta-with-tomatoes-parsley-white-table_1253-953.jpg",
|
||||
},
|
||||
{
|
||||
title: "Entradas",
|
||||
description: "El inicio perfecto.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-recipe-with-plantain_23-2151062795.jpg",
|
||||
},
|
||||
{
|
||||
title: "Postres",
|
||||
description: "Un dulce final.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/caramelized-onion-pieces-colorful-plate_114579-54109.jpg",
|
||||
},
|
||||
{
|
||||
title: "Menú Completo",
|
||||
description: "Explora toda la carta.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/raw-fish-placed-plate-with-lime-onion-cherry-tomato-ice_140725-5950.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Story.tsx
Normal file
22
src/pages/HomePage/sections/Story.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 "story" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function StorySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutTestimonial
|
||||
tag="Nuestra Historia"
|
||||
quote="Every recipe tells a story. Since 2020 we have shared the best of our land through authentic flavors, family traditions and unforgettable hospitality."
|
||||
author="Familia El Nacional"
|
||||
role="Fundadores"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/stone-walled-restaurant-top-lighting_140725-9731.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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="Reseñas"
|
||||
title="Lo que dicen de nosotros"
|
||||
description="Voces de viajeros de todo el mundo."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Turista",
|
||||
quote: "The best Panamanian food we tried.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-white-plain-rice-meal-with-chicken_140725-148893.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Turista",
|
||||
quote: "Authentic flavors and incredible hospitality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-spicy-grilled-pork-salad-with-berry-rice_1339-6326.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Turista",
|
||||
quote: "One of the best dining experiences in Casco Viejo.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fried-fish-table_140725-1351.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Turista",
|
||||
quote: "Absolutely unforgettable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/potato-cutlets-served-with-sprouts-sauce_7502-7399.jpg",
|
||||
},
|
||||
{
|
||||
name: "Maria L.",
|
||||
role: "Turista",
|
||||
quote: "A taste of home.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-working-as-professional-chef_23-2151864172.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user