// ===== RIVAMAR Group — Landing pública (v4: dinámica + editable) =====
function Hero({ go, cms, edit, onEdit }) {
const words = (cms.hero_titulo || '').split(' ');
const head = words.slice(0, -2).join(' ');
const tail = words.slice(-2).join(' ');
const pillars = cms.pillars || [];
return (
{/* Slider de fondo: 3 fotos en rotación con desenfoque */}
{[cms.hero_img, cms.hero_img2, cms.hero_img3].filter(Boolean).map((src, i) => (
))}
Antofagasta · Chile
{edit
?
: <>{head} {tail} >}
{/* Pilares de la revista */}
{pillars.map(([t, d], i) => (
))}
);
}
function StarG() { return ; }
function UsersG() { return ; }
function ChefG() { return ; }
function ExponorBanner({ go, cms }) {
return (
15%
EXPONOR CHILE 2026 — Descuento exclusivo
8–11 junio · Antofagasta
{cms.banner_exponor}
go('reservas', { exponor: true })} className="whitespace-nowrap animate-pulse-soft !text-base !font-bold">Reservar con descuento
go('exponor')} className="text-xs text-gold/80 hover:text-gold text-center">Ver campaña EXPONOR →
);
}
function ExperienciaCard({ local, go, i }) {
return (
go('local', { slug: local.slug })} className="relative text-left overflow-hidden">
{local.tagline}
{local.nombre}
{local.ubicacion}
{local.especialidad}
{local.destacados.map((d) => (
{d}
))}
{local.capacidadLabel}
go('reservas', { local: local.id })} className="text-sm font-semibold text-gray-100 hover:text-gold transition-colors flex items-center gap-1">
Reservar →
);
}
function TresExperiencias({ go }) {
return (
{LOCALES.map((l, i) => )}
);
}
function Stats({ stats }) {
return (
{(stats || []).map((s, i) => (
))}
);
}
function GaleriaPreview({ go }) {
const preview = GALERIA.filter((g) => g.destacada).slice(0, 4);
return (
go('galeria')} className="text-sm font-semibold text-gold hover:text-goldBright shrink-0 mb-10">Ver galería completa →
{preview.map((g, i) => (
go('galeria')} className={`relative group rounded-lg overflow-hidden reveal reveal-d${i + 1}`}>
★
))}
);
}
function ConveniosCTA({ go, convenios, edit, onEdit }) {
const beneficios = (convenios && convenios.beneficios) || [];
return (
Convenios empresariales · B2B
Alimentación masiva e industrial para la minería
{beneficios.map(([t, d]) => (
{t}
— {d}
))}
go('convenios')} className="!px-7 !text-base">
Cotización Rápida para Delegaciones Mineras
);
}
function CampaignCountdown({ target }) {
const calc = () => {
const diff = new Date(target).getTime() - Date.now();
const live = diff <= 0;
const ad = Math.abs(diff);
return {
live,
d: Math.floor(ad / 86400000),
h: Math.floor((ad % 86400000) / 3600000),
m: Math.floor((ad % 3600000) / 60000),
s: Math.floor((ad % 60000) / 1000),
};
};
const [t, setT] = React.useState(calc());
React.useEffect(() => {
const id = setInterval(() => setT(calc()), 1000);
return () => clearInterval(id);
}, [target]);
if (t.live) {
return (
¡EXPONOR está en marcha!
Reserva tu 15% de descuento — vigente todo junio.
);
}
const cell = (val, lbl) => (
{String(val).padStart(2, '0')}
{lbl}
);
return (
{cell(t.d, 'días')}
{cell(t.h, 'hrs')}
{cell(t.m, 'min')}
{cell(t.s, 'seg')}
);
}
function ExponorCampaign({ go }) {
return (
Campaña oficial · 8–11 de junio
Reserva en EXPONOR 2026 y ahorra un 15% todo junio
Presenta tu credencial de la feria —asistente, visitante, expositor, proveedor o trabajador— y obtén
15% de descuento en los tres locales de RIVAMAR Group durante todo el mes.
go('reservas', { exponor: true })} className="!px-7 !text-base animate-pulse-soft !font-bold">
Reservar con 15% Dcto.
go('exponor')} className="!text-base">Ver la campaña completa →
Comienza EXPONOR Chile 2026
Antofagasta · 8 al 11 de junio
15%
Beneficio válido todo junio presentando credencial EXPONOR.
);
}
function Marquee() {
const items = ['Alta cocina de autor', 'Carnes a la piedra volcánica', 'Cocina marina norteña', 'Catering industrial', 'Buffet corporativo', 'Coctelería premium', 'Servicio 360°', 'Banquetes mineros'];
const row = [...items, ...items];
return (
{row.map((t, i) => (
◆ {t}
))}
);
}
function Landing({ go, cms, convenios, stats, edit, onEdit }) {
return (
Las grandes mineras ya nos eligen. Conoce por qué en la prensa oficial.
);
}
Object.assign(window, { Landing });