// ========== Shared UI Components ==========
const { useState, useEffect, useMemo } = React;
// ----- Logo -----
function LogoMark({ size = 32 }) {
return (
);
}
function LogoWordmark({ size = 22 }) {
return (
MatriLink
);
}
// ----- Buttons -----
function Button({ variant = "primary", size, onClick, children, href, type = "button", className = "" }) {
const cls = `btn btn--${variant}${size ? ` btn--${size}` : ""} ${className}`;
if (href) return {children};
return ;
}
// ----- Icons (simple inline svg) -----
const Icon = {
Arrow: () => (
),
Chat: () => (
),
Check: () => (
),
Heart: () => (
),
Sparkle: () => (
),
Camera: () => (
),
Calendar: () => (
),
Whatsapp: () => (
),
Ring: () => (
),
Game: () => (
),
};
// ----- Phone + Chat Mockup -----
function PhoneChat() {
const [selectedAnswer, setSelectedAnswer] = useState(null);
return (
M
MatriLink · Camila & Diego
en línea ahora
Hoy
Camila & Diego
Te invitamos a nuestro matrimonio
📅 Sábado 14 de diciembre
📍 Viña Santa Elena, Casablanca
🕒 17:30 hrs · ceremonia y fiesta
setSelectedAnswer('yes')}
>
{selectedAnswer === 'yes' ? '✓ ' : ''}Confirmo asistencia
setSelectedAnswer('no')}
>
No podré asistir
setSelectedAnswer('q')}
>
Tengo una pregunta
10:42
{selectedAnswer === 'yes' && (
¡Confirmado! ¿Cuál es tu preferencia de menú?
10:42 ✓✓
)}
{selectedAnswer === 'yes' && (
🍖 Tradicional
🥗 Vegetariano
🌱 Vegano · sin gluten
)}
{selectedAnswer === 'q' && (
Claro, escríbenos tu pregunta y te contestamos al toque.
10:42 ✓✓
)}
{!selectedAnswer && (
↑ Tócame
)}
);
}
// ----- Floating stat cards next to the phone -----
function HeroFloats() {
return (
<>
Confirmados
184 / 240
Menús vegetarianos
22
Fotos recibidas
312
Cápsulas video
74
>
);
}
// ----- Dashboard Mockup -----
function Dashboard() {
return (
Camila & Diego · 14 de diciembre, 2026
· 23 días restantes
Buenos días, Camila
Tienes 36 invitados pendientes de confirmar y 4 preguntas nuevas.
Confirmados
184
+12 esta semana
Pendientes
36
recordatorio enviado
Selección de menú 184 confirmados
Actividad reciente
Valentina P. confirmó asistencia
hace 4 min
2 invitados eligieron menú vegano
hace 18 min
Pregunta nueva: ¿hay traslado desde Santiago?
hace 1 h
Recordatorio enviado a 36 pendientes
hace 3 h
Mateo F. registró +1 acompañante
ayer
);
}
function MenuBar({ name, value, max, cls }) {
const pct = Math.round((value / max) * 100);
return (
);
}
Object.assign(window, {
LogoMark, LogoWordmark, Button, Icon,
PhoneChat, HeroFloats, Dashboard, MenuBar,
});