import { useState, useEffect, useRef } from "react";
// ─── SVG Icons ───────────────────────────────────────────
const WhatsAppIcon = ({ className = "w-6 h-6" }) => (
);
const ArchIcon = () => (
);
// ─── Data ────────────────────────────────────────────────
const products = [
{ id: 1, name: "Bajo 600 - 1 Puerta", ref: "MB-600-1P", price: 145000, ml: 0.6, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuD1Kugflo-WHqYnkT7vD4BCu0UeT5Bftfg1EOwVN4M265yRzHAiYBPjKcQJPZXoGVMZNTm4NpfS9TVV9s4FVRLD36x-uFG9cKJKkiybjUYjFx1_vLuKkDxpKJoQ4W37IlW55QNfC2RxcpXiyQtKmkcyZ0nBn4WMkTyh9S8fo2tfk_Yv9swb-NIBfAOyfDuQS6RyTMJ7gKT7ZtYbQFJ2ueNXDp7iwKU_Vr7xnHLb-2w0WE3KZyudr-pTA-vt7is4UKjPNOVVVDA_vJ4X" },
{ id: 2, name: "Cajonera 600 - 3C", ref: "MB-600-3C", price: 212500, ml: 0.6, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuC-60Jvdd64kIHb9gjG-nghaBFNilLB3U5hbuNgyPTo4qI1RBdZQT2virX5ZENpVcE0rKvdSmef5VDtV-ewduDmr7cTt_jPPNcR1zLOuBdILvsIgdOiny2cTGcJFLo_PRXjVUt2xGf3CfIe1-gGY9hjrXV4BrxZNGS6TrB-O1zU0YFt5Tb8qoBnRgd6RobZifWYWXD2tUSIwpXgFzx_5gQSczw_jIyzUnoBZNc0e1LxJP4yHKqEAcJKjb_c1jS7NNIYBDt1qTyyKfOr" },
{ id: 3, name: "Bajo 900 - 2 Puertas", ref: "MB-900-2P", price: 189900, ml: 0.9, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuCMVUQJ2XqWUPZAaw_X762uG1KkepS1Fqa08nDjlgLgVNH1dm4UXbX19E12TM4tJA3wkYz6YRX4bFlqleu3spLobpRZuizFx1H_CYn5GW-7EnNEIEptbl078HiFNdsD34zMG671_mRfpXkqsPAlh7Bi_zBSGxhExtbiP8jxMmnA1vdGy439CvOzjc2dVUqXgVJpFgVVhdMLjvfk-6fHy2VXUEdBlUb-S4DxmZAxs7wGDdNOmixFM7JE4O8kW8Gif8DTTgiOmQcRotAc" },
{ id: 4, name: "Módulo Fregadero 600", ref: "MB-F600", price: 132000, ml: 0.6, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuCDelMoJZWmfXJc4_vy1oyU-Hbt-BshYtD2IlNuJbYqEamdgzXVNIW7_w8KAuQtanYVm1waaqGwFhS4SzNNDX6kiZbvzpbc-otlrk1uO9_JVDykuzqYjHFApgYKSWjMyIHMCzOaJu6D2PIYzPRZtxdPjjpxHoxqUt7onl30vS9fo8E2NqnYTI_a2dQ-uNZ4EAmupFFi40K408zNgjbREb2qGowyYyJN5MQmFJOf1y_MoM63sKzSFkoGnbJepaxdrbgDxWVhYMTDHKSB" },
];
const heroImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuCE6tJHn-B2zq6mMtjWvOInlArQj0aNDeSj-DuXrTm6cM-iOocEGi44yy9foTHgQC2FGdwe1d0KtHFKNT5_zRVZenj7xwHSvj-0EJJjTQeC7KGtgZBdWQyAIRXs2oXDZ-FIqJKNgI0AFBVhDH67XcDBH0_rw9S1nH9yOTCKbz29DdVoAQT_iGBQkTECojn-DBdP3pYeHHVoNSAmCH88Wae9tlcWByXxWTyeZLbgcD3eUPCA2Icy3LC32zunlBsVXjYWGmduTt_oWFbz";
const lineaEcoImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuB1ScjFxVwo-zGUNcRYn3HvGqMshSyzaLzKpObvlnffNi504r0J2bWiuxL-X7TNNJZl9kro2_iWs1Kx2kvtFtb5hZEj2BGTvWoQh7QI0P-EwHeA-sFpWaz-ynHyOIqzdIIuUeZRHnfT3N5pmj9UnXwS7on2SZ5ti9qt41VIQqAUkEltVN93jH5oQqDG-7kRle-yiSXaUsPeAH4ZtSgG8pDUKNTua-yIXjPL9j0tdFTUVepB9AFCCAHO4TnyUry1-mKq9ZHCp5rdHeh8";
const lineaMediaImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuA_JUPtt9OVyMwYD4pDO3hzHBad4am_pPGNcZAbnHxmx4hZKB4SmQU5v_hPnw-qgXVsVucFh8No77MBZfKCZiUGd3_CUh01MMX6snajBiJMoXA-P6dSGXGClwXeL6xlL-n0dMKgcAHvEmCp2K2yCIAAhxuDFb1_oUMc97cmKmlBdo4is24jT6LjM8amQOLJydCCc0a2X0kSjGzqLYlkxz_0khY7h_QV-g5wcYGs7eqgss0U7Zs-nPkgrM4HXwjESTPyDVdA-xL5hyea";
const lineaPremiumImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuDaod8QMxkHufbxbMq2DOQ2jOlRIaSoYBv6MAIwgA_rIw3aVPCvuJEv6NIo8kwYpedWAp_hYE6UMorKrFhAAobgQgxIkCjRgibu0JuWPu-VFjW4NRVfp761MAi4bpSEQ667HYo9JzvX2-sRG2x6J-bQTLg9nhvC-AUnjtuie1lmHzg_RCf8dvdx-cdeBUyIOpJsnOypq7vlwrclCdbDLytrETk1kJdDqYX_J9gcJ0yvxFQam4qDiP0PGPHI9l7txs4zvSi1obXtlraK";
const bajosImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuDwxpysYVenLMwB-3afz8REJ_xCKA-NTLffdjZakeKvEx1yzOH1jp8CYaUWN9Zdch1PGRRk-wgbpN7CWT9o6WM2yRj1pEB82YC34Wenug887HjDSwbjLs3MjkpxgDhhH1ndAZTwqcfikabcz8ZNhcws-agEbEIyO_dpUrdSun-hZ7CrOzGsjA_4utAgldqRLKC6IUyohjC2_9z3ywmCD2qE7u837x_qs2TvPhbkI_pkV-Ju4JOrwEuqsiG0abrhLAeEJRIh8bv8vhLL";
const aereosImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuBcg97qBVjFnPg-Bt5dp4W9a8Lku0kYxG_jP7R9yiyWbxHvgPNRyHejD-w_37y6hzTo-IQLYJ6HHh39ezlOicaCPPtj996-M4x5ub9Dg0yHhdrPF50GuGgiVS_UGauyakdubJ6TuQ8Tykv6m13sknDTTrLOfbqv76uhMmiWp3T3mUU5TBuRpPaGlTmzgvdEn-fjxtbi0s8AMha7M9l6f_c5xDxBCPSqlu_PxbfIliF1rlXnOxJFnr_8TQubd0OU-rfTuXzkeHnl85sH";
const columnasImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuDenXt0z9ak5SZoA3fawbY6UQXSbyaMtkgAf4HXxAp7CHL8zq_uxv8_ss0MgwjcBihPbfipthRVXW2isiXQF8uk5MSjrEB2BJ7xP--iAwuDeHxnvgTTuVSXZB1HZ1xEYVCFZ6GndkGzN48n8nTjORv6KXiHMfu5zDeiEOQRQS18DVrDlZYUwM1Sa66HIPHDW0SLPVqXgLDsfFL6CBFeAYRO4zFol6hfjPdUAPTy8OAE20QxkvfhXRd0J4tsu5vOjhGMHdne6BzDjIsA";
const detailImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuAWdc_jz4-03IgZZPPzORAlVop5FpOGv_29yj16IC12plFjesGEFB3OZPkZSFfFSzIU12DJNSkxGi6iHzotfnVIYbP6QJrTwPJ0jRlrnNpgTH7amu309pBKUgqJvCLNpHWXGiNd3GXhcB3RlrXE1o_OV8Wsc0rDOgd7PSpJd0eNShfSfFkzV5K8YPYcYwacfgJbUIN-2ifZ_QFS_zKeREK_5eboXWAEuYFMGjLcbyhzRW9NbG9kPHMLEA2pFP2pgw3pBAGtRBvn_Yx-";
const calcImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuAx1L-rdvSYnCHR7bocAxANHtQhmGCgbV57y3oZ_mLp93zYHHe6zyA8nk7801r9TcWpljVSBbO2EtL9QO82YM70GxK-pD4br4sJUW2TAAs3aO6_elTMlQwcoiJNcam_Ihcrr26piOQIy5YcjBVdLw5m7X_cT_O3ShDcf8Uqw4BX6zOrYfYIC_t4FKtUPPnNsxE4RdWXj69oOaaSoBhwuGGftFxY1EQeuqwaVm_7P8rkb9SezvBll0vxqqrAA-i5JZbVxCuaD1epWXcD";
const quoteHeroImg = "https://lh3.googleusercontent.com/aida-public/AB6AXuAgI_IW588K6chIyCZ6EnIacUgcPVKBoJHtOM3TsRGN9OQzE-qEWKTuEy2j1Y4gk1cBgf50m4k8bQ9RqCr_0tasXe4DHs2x8VSVK5yfLIuvXSp-sq6rNyQpnH6cH60aEg7XN3Ng-Sraob0lME3iYSGwzrV3eLJ8Q7E9WgOn9kx63Xq6Ch0go0S3YkYoN5IaXKrwRlPSkJmesYjv6fqgMKp_xWm2kR0CJTvymeB5S4kJ8An6xzRfgOnNfgNddbjaFUp4Wy9vaD0UFfea";
const cartItems = [
{ id: 1, name: "Módulo Base Industrial 60cm", finish: "Roble / Tirador Negro", qty: 1, price: 980, oldPrice: 1200, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuCMfpuHCqIeVpB4UFIky-3F40EVgY91kXIg6r4vCzfFUd2_IQsUYT1SL-dcg-mCzXOOKh8dDY4O0i7Mr0AvfO9pM_hY1txqs4rHnb-XlW5qKcaFri98zOoYkmbzrT_C-H9Zu-ysdAThcRdNKueDxMzXnJHGf5tvI1O6OiMuYYZ2yjWj_TMbEv2zbhKHT7lgWdJIN840dX3l9FbZn6r8ZqiiwkB434-3zLtzqRYqifLoIPdqAvYWXAb0oZvjPQZxC9Od92-ueij8ch1s" },
{ id: 2, name: "Alacena Superior Doble 80cm", finish: "Blanco Mate / Push Open", qty: 2, price: 1450, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuB2Wk6h7F0CiOr_JEAGVolHv7G3aJdmdSKf3w_beAnf8CKBkHwACqAoKo_ltQiI_wD0UcFEJinoU4f74BZx18UtsU4IbEZieNEJkEIWhwgHAObENP5FdmU2pms9acQTi9sHEKiZceVvkfVutf20O52vWkSw2-cCfjxSmUDepVT9CjFqSjipjXOmFrmsKom7_K-hK0JoGpYt0WFJrZhIoYGLEGEl4uY80FHYmNl7l9rlFx0jEi6n8gEe-55sotDr0F31ZImZHDQZ3udc" },
{ id: 3, name: "Esquinero Magic Corner", finish: "Grafito / Soft Close", qty: 1, price: 2100, img: "https://lh3.googleusercontent.com/aida-public/AB6AXuAKD5hltAk-HA8NUDA5BEusL-M2NuRGV265yHP6IvbC-rDOo5gS2-F_60E0JTLKnyS9Q2JvXIlBOzF22bhZzc5XmK9ikTPJSlkePbNBGD8esWBg0-A3WwrDpvgABtArAf1HLeGdYpnvJyVYdPGVyaZmUGrmwc0h1Icnb1hgQ8MV-VTyksKTW6Jb6bbaw7pE-wsiyqO6C4KVy2eek1Z-EHllz0Ost8_XwCiKQBBJvxbo08Sh-RCGLmaJOHRAUtGYvD7msSoBU2UeFxvQ" },
];
const fmt = (n) => "$" + n.toLocaleString("es-AR");
// ─── PAGES ───────────────────────────────────────────────
// ── HOME PAGE ────────────────────────────────────────────
function HomePage({ navigate }) {
return (
{/* Hero */}
Fabricación Directa
Cocinas modulares desde USD 330 por metro lineal
Diseño industrial de alta precisión. Calidad premium a precio de fábrica.
Cotizar por WhatsApp
{/* Trust Badges */}
{[
{ icon: "⚙️", label: "Fabricación local" },
{ icon: "🚚", label: "Entrega rápida" },
{ icon: "✅", label: "10 Años Garantía" },
].map((b, i) => (
{b.icon}
{b.label}
))}
{/* Product Lines */}
Nuestras Líneas
Selecciona tu nivel
← →
{[
{ tag: "ESSENTIAL", name: "Línea Económica", desc: "Melaminas de alta densidad y herrajes reforzados. Funcionalidad total.", price: "USD 330/m", img: lineaEcoImg, border: "" },
{ tag: "BALANCED", name: "Línea Media", desc: "Herrajes soft-close y texturas amaderadas sincronizadas. Estilo puro.", price: "USD 450/m", img: lineaMediaImg, border: "border-2 border-blue-600 shadow-xl shadow-blue-600/5" },
{ tag: "LUXURY", name: "Línea Premium", desc: "Sistemas push-to-open, iluminación LED integrada y lacados mate.", price: "USD 680/m", img: lineaPremiumImg, border: "" },
].map((line, i) => (
{line.tag}
{line.name}
{line.desc}
Desde
{line.price}
))}
{/* How it works */}
¿Cómo funciona?
{[
{ n: "1", t: "Toma tus medidas", d: "Mide el largo de tus paredes donde quieres los módulos." },
{ n: "2", t: "Cotiza en línea", d: "Envíanos las medidas por WhatsApp y recibe un presupuesto en minutos." },
{ n: "3", t: "Instalación rápida", d: "Fabricamos y armamos en tu hogar en menos de 15 días." },
].map((s) => (
))}
{/* Components Grid */}
Componentes
navigate("catalog")} className="col-span-2 relative h-48 rounded-xl overflow-hidden group text-left">
Módulos Bajos
Cajoneras y bachas
Aéreos
Alacenas y campanas
{/* Footer */}
Industria Argentina | Calidad Internacional
© 2024 Modular Studio Systems. Todos los derechos reservados.
);
}
// ── CATALOG PAGE ─────────────────────────────────────────
function CatalogPage({ navigate }) {
const [activeWidth, setActiveWidth] = useState("600mm");
const [activeLine, setActiveLine] = useState("Todas");
return (
{/* Header */}
{/* Breadcrumbs */}
Cocina
›
Bajos
{/* Filters */}
Catálogo Industrial
Configura tus módulos de cocina con precisión profesional. Precios calculados por metro lineal (ML).
Línea de Acabado
{["Todas", "Eco (Melamina)", "Media (Laminado)"].map((l) => (
setActiveLine(l)}
className={`px-4 py-2 rounded-full text-xs font-medium whitespace-nowrap transition-all ${activeLine === l ? "bg-blue-600 text-white shadow-sm shadow-blue-600/20 font-semibold" : "bg-white border border-slate-200"}`}>
{l}
))}
Ancho (mm)
{["400mm", "600mm", "800mm", "900mm"].map((w) => (
setActiveWidth(w)}
className={`px-4 py-2 rounded-lg text-xs font-medium whitespace-nowrap transition-all ${activeWidth === w ? "bg-white border-2 border-blue-600 text-blue-600 font-bold" : "bg-white border border-slate-200"}`}>
{w}
))}
{/* Product Grid */}
{products.map((p) => (
navigate("detail")} className="bg-white rounded-xl overflow-hidden shadow-sm border border-slate-100 flex flex-col text-left">
{p.ml} ML
{p.name}
Ref: {p.ref}
Desde
{fmt(p.price)}
⊕ COTIZAR
))}
{/* Bottom Tab Bar */}
{[
{ icon: "🏠", label: "Inicio", active: false, page: "home" },
{ icon: "🍳", label: "Catálogo", active: true, page: "catalog" },
{ icon: "📐", label: "Planificador", active: false, page: "wizard" },
{ icon: "👤", label: "Cuenta", active: false, page: "faq" },
].map((t) => (
navigate(t.page)} className={`flex flex-col items-center gap-1 ${t.active ? "text-blue-600" : "text-slate-400"}`}>
{t.icon}
{t.label}
))}
);
}
// ── DETAIL PAGE ──────────────────────────────────────────
function DetailPage({ navigate }) {
const [tab, setTab] = useState("desc");
return (
{/* Nav */}
navigate("catalog")} className="p-2 text-slate-600">‹
Detalle de Módulo
↗
{/* Gallery */}
Premium Range
{/* Info */}
Bajo mesada 600
Cod: MOD-B600-P
📏
Equivalencia Lineal
Este módulo equivale a 0.60 ML
{/* Selectors */}
Línea de Diseño
Minimalist Industrial Classic Wood Ultra Gloss White
Ancho (mm)
600 mm 450 mm 900 mm
Acabado
Gris Antracita Blanco Soft Roble Natural
{/* Tabs */}
{["desc", "medidas", "ficha"].map((t) => (
setTab(t)}
className={`flex-1 py-3 text-xs font-bold uppercase tracking-wider border-b-2 transition-all ${tab === t ? "border-blue-600 text-blue-600" : "border-transparent text-slate-400"}`}>
{t === "desc" ? "Descripción" : t === "medidas" ? "Medidas" : "Ficha Técnica"}
))}
Módulo bajo de 600mm con un estante regulable. Diseñado para ofrecer máxima capacidad de guardado con herrajes de cierre suave (Soft Close) de última generación. Ideal para configuraciones lineales de cocina moderna.
{["Estructura en MDF 18mm alta densidad", "Cantos de PVC 2mm aplicados térmicamente", "Patas regulables de polímero técnico"].map((f) => (
✓ {f}
))}
{/* Technical Download */}
Diagrama Técnico
PDF • 1.2 MB
⬇
{/* Sticky Bottom */}
);
}
// ── WIZARD PAGE ──────────────────────────────────────────
function WizardPage({ navigate }) {
const [layout, setLayout] = useState("linear");
const [wallA, setWallA] = useState(3.5);
return (
{/* Header */}
Define Your Layout
Select the shape that best fits your kitchen space for an instant linear meter estimate.
{/* Shape Selection */}
Shape Selection
❓
{[
{ id: "linear", name: "Linear (Recta)", desc: "Single wall configuration", icon: "━━━" },
{ id: "l-shape", name: "L-Shape", desc: "Two perpendicular walls", icon: "┗━" },
{ id: "u-shape", name: "U-Shape", desc: "Three connected walls", icon: "┗━┛" },
].map((opt) => (
setLayout(opt.id)}
className={`flex items-center p-4 rounded-xl cursor-pointer transition-all ${layout === opt.id ? "border-2 border-blue-600 bg-blue-600/5" : "border border-slate-200 hover:border-blue-600/50"}`}>
{opt.icon}
{opt.name}
{opt.desc}
{layout === opt.id && "✓"}
))}
{/* Dimensions */}
Dimensions (Meters)
AUTO-CALCULATING
ℹ
For Linear (Recta) layouts, only one measurement is required. Our system automatically adds a 5% safety margin for industrial fitment.
{/* Sticky Footer */}
);
}
// ── CALCULATOR PAGE ──────────────────────────────────────
function CalculatorPage({ navigate }) {
const [selectedLine, setSelectedLine] = useState("eco");
const [meters, setMeters] = useState(3.5);
const priceRanges = { eco: [350, 480], media: [480, 650], premium: [650, 900] };
const range = priceRanges[selectedLine];
const low = Math.round(meters * range[0]);
const high = Math.round(meters * range[1]);
return (
{/* Header */}
navigate("home")} className="p-2 text-slate-600">‹
Presupuesto Estimado
{/* Step 1 */}
1
Elegí tu línea
{[
{ id: "eco", name: "Línea Eco", desc: "Estructura melamínica, herrajes estándar." },
{ id: "media", name: "Línea Media", desc: "Cierre suave, terminaciones premium." },
{ id: "premium", name: "Línea Industrial Premium", desc: "Aluminio, vidrio y herrajes europeos." },
].map((l) => (
setSelectedLine(l.id)} className="peer sr-only" />
{selectedLine === l.id &&
✓ }
))}
{/* Step 2 */}
2
¿Cuántos metros tenés?
Mida el largo total de la pared donde ubicará sus módulos.
{/* Result */}
Inversión Estimada
USD
{low.toLocaleString()} – {high.toLocaleString()}
ℹ
El precio final se ajustará según la configuración de módulos y accesorios seleccionados.
{/* Image */}
Inspiración: Línea Industrial Premium
{/* CTA */}
navigate("wizard")} className="w-full py-4 bg-blue-600 hover:bg-blue-700 text-white rounded-xl font-bold transition-all flex items-center justify-center space-x-2 shadow-lg shadow-blue-600/20">
Armar mi cocina ›
Hablar por WhatsApp
);
}
// ── CART PAGE ─────────────────────────────────────────────
function CartPage({ navigate }) {
const [items, setItems] = useState(cartItems.map((i) => ({ ...i })));
const updateQty = (id, delta) => {
setItems((prev) => prev.map((i) => i.id === id ? { ...i, qty: Math.max(1, i.qty + delta) } : i));
};
const removeItem = (id) => setItems((prev) => prev.filter((i) => i.id !== id));
const subtotal = items.reduce((s, i) => s + i.price * i.qty, 0);
const herrajes = 125;
const total = subtotal + herrajes;
const totalML = 3.2;
return (
navigate("catalog")} className="p-1 flex items-center text-blue-600">
‹ Volver
Tu Cotización
{/* Summary */}
Capacidad Total
{totalML} ML
Módulos
{items.length.toString().padStart(2, "0")}
{/* Items */}
Módulos Seleccionados
{items.map((item) => (
{item.name}
removeItem(item.id)} className="text-slate-400 text-sm">✕
Acabado: {item.finish}
updateQty(item.id, -1)} className="text-blue-600 font-bold px-1">−
{item.qty}
updateQty(item.id, 1)} className="text-blue-600 font-bold px-1">+
{item.oldPrice &&
${item.oldPrice.toLocaleString()}
}
${(item.price * item.qty).toLocaleString()}.00
))}
{/* Breakdown */}
Subtotal Módulos ${subtotal.toLocaleString()}.00
Herrajes y Accesorios ${herrajes}.00
Estimado ML ({totalML}m) Incluido
Total Estimado
${total.toLocaleString()}.00
IVA no incluido
ℹ
Este presupuesto es una estimación basada en módulos estándar. El precio final será confirmado tras la verificación técnica de medidas por nuestro equipo.
{/* Fixed CTA */}
Te enviaremos un mensaje pre-llenado con tus productos.
Solicitar presupuesto por WhatsApp
);
}
// ── FAQ PAGE ─────────────────────────────────────────────
function FaqPage({ navigate }) {
const [openFaq, setOpenFaq] = useState(0);
const faqs = [
{ icon: "🏗", q: "¿Qué materiales utilizan?", a: "Utilizamos acero inoxidable grado quirúrgico 304 y maderas certificadas con tratamiento hidrófugo. Nuestros acabados son de grado industrial resistentes a altas temperaturas." },
{ icon: "📏", q: "¿Cómo mido mi cocina?", a: "Mide la longitud total de las paredes donde planeas instalar. Nuestro precio por metro lineal facilita la estimación inicial. Un técnico validará las medidas antes de la producción." },
{ icon: "🚚", q: "Tiempos de entrega y envío", a: "El tiempo estándar es de 4 a 6 semanas desde la confirmación del diseño técnico. El envío incluye seguro total y descarga en domicilio." },
{ icon: "🛡", q: "Garantía Premium", a: "Ofrecemos 10 años de garantía estructural y de por vida en herrajes de movimiento (Blum). La calidad industrial está garantizada contra defectos de fabricación." },
];
return (
navigate("home")} className="p-1 flex items-center gap-1 text-blue-600">
‹ Tienda
Soporte
{/* Hero */}
{/* Transparency */}
ℹ
Transparencia en Precios
Calculamos basándonos en el precio por metro lineal . Esto incluye gabinetes base, superiores y herrajes premium.
{/* FAQ */}
Preguntas Frecuentes
{faqs.map((faq, i) => (
setOpenFaq(openFaq === i ? -1 : i)} className="flex items-center justify-between p-5 w-full text-left">
{faq.icon}
{faq.q}
▼
{openFaq === i && (
)}
))}
{/* Contact Form */}
Contáctanos
🏭
Showroom & Planta
Zona Industrial Norte, Bodega 42. CDMX
{/* WhatsApp CTA */}
Atención Directa
Hablar con un experto
Respuesta inmediata • 9am - 7pm
);
}
// ── QUOTE REQUEST PAGE ───────────────────────────────────
function QuotePage({ navigate }) {
const [meters, setMeters] = useState(0);
return (
navigate("home")} className="w-10 h-10 flex items-center justify-center rounded-full hover:bg-blue-600/10 transition-colors text-blue-600">‹
Presupuesto Formal
Línea Selección
Cocina Modular Industrial Pro
Completa los datos para recibir una cotización técnica detallada directamente en tu dispositivo.
ℹ
Transparencia: Precio base por metro lineal desde $24,500
Metros Lineales (Aprox)
Requerido
setMeters(parseFloat(e.target.value) || 0)} step="0.5" placeholder="0.0"
className="w-full bg-white border-slate-200 rounded-lg py-4 px-4 focus:ring-2 focus:ring-blue-600 text-xl font-bold text-center" />
m
Tip: Mide el largo total de tus paredes donde irá instalada la cocina.
Comentarios o Detalles
⚖
* El presupuesto final se ajusta según módulos reales, accesorios seleccionados y relevamiento técnico final en obra.
);
}
// ─── MAIN APP ────────────────────────────────────────────
export default function App() {
const [page, setPage] = useState("home");
const [menuOpen, setMenuOpen] = useState(false);
const mainRef = useRef(null);
const navigate = (p) => {
setPage(p);
setMenuOpen(false);
window.scrollTo(0, 0);
};
const pages = {
home: ,
catalog: ,
detail: ,
wizard: ,
calculator: ,
cart: ,
faq: ,
quote: ,
};
const menuItems = [
{ label: "Inicio", page: "home" },
{ label: "Catálogo", page: "catalog" },
{ label: "Planificador", page: "wizard" },
{ label: "Calculadora", page: "calculator" },
{ label: "Tu Cotización", page: "cart" },
{ label: "Presupuesto Formal", page: "quote" },
{ label: "Soporte / FAQ", page: "faq" },
];
return (
{/* Global Header (Home only) */}
{page === "home" && (
setMenuOpen(!menuOpen)} className="p-2 text-slate-600">
{menuOpen ? "✕" : "☰"}
)}
{/* Mobile Menu Overlay */}
{menuOpen && (
MODULARSTUDIO
setMenuOpen(false)} className="p-2 text-slate-600 text-xl">✕
{menuItems.map((m) => (
navigate(m.page)}
className={`block w-full text-left px-4 py-4 rounded-xl text-lg font-medium transition-all ${page === m.page ? "bg-blue-600/5 text-blue-600 font-bold" : "text-slate-700 hover:bg-slate-50"}`}>
{m.label}
))}
)}
{/* Page Content */}
{pages[page]}
{/* Global WhatsApp FAB (shown on Home) */}
{page === "home" && (
)}
);
}