// El Mirador — Editorial Map canvas + layer toggles // A stylized, minimal cartography — printed-plate aesthetic, not Google Maps. // Globals: EMMapCanvas, EMLayerToggles const { useState: useMapState } = React; const MAP_LAYERS = [ { id: "cafe", glyph: "☕", label: "Cafés tranquilos", color: "#5C3D2E" }, { id: "work", glyph: "✎", label: "Trabajo", color: "#5B5E3C" }, { id: "walk", glyph: "⌇", label: "Caminar", color: "#A37A4A" }, { id: "night", glyph: "❍", label: "Noche", color: "#2A2724" }, { id: "classic",glyph: "▢", label: "Clásicos", color: "#5C3D2E" }, { id: "new", glyph: "✦", label: "Nuevas aperturas", color: "#5B5E3C" } ]; // A small dataset of pins, positioned on a normalized 0–100 grid. const MAP_PINS = [ { id: "p1", x: 28, y: 32, layer: "cafe", label: "Don Rafael · café" }, { id: "p2", x: 52, y: 24, layer: "work", label: "Estudio Norte" }, { id: "p3", x: 70, y: 42, layer: "new", label: "Almacén 27" }, { id: "p4", x: 38, y: 58, layer: "classic", label: "Mercado de la 23" }, { id: "p5", x: 60, y: 70, layer: "night", label: "Bar Atrio" }, { id: "p6", x: 22, y: 76, layer: "cafe", label: "Tostadora Luz" }, { id: "p7", x: 80, y: 60, layer: "walk", label: "Andador de jacarandas" }, { id: "p8", x: 46, y: 44, layer: "new", label: "Librería Ínsula" }, { id: "p9", x: 64, y: 50, layer: "classic", label: "Sastrería Núñez" } ]; function EMMapCanvas({ activeLayers, onSelect }) { // Pueblo street grid — Puebla famously has a regular grid laid down in 1531. const cols = 8; const rows = 6; const layerColor = (id) => (MAP_LAYERS.find(l => l.id === id) || {}).color || "#5C3D2E"; const layerGlyph = (id) => (MAP_LAYERS.find(l => l.id === id) || {}).glyph || "•"; return (