Seatmap Canvas
// est. 2016 · licencia MIT · retirado con honores
seatmap-canvas, nuestro veterano
Publicado en 2016 y congelado en su sitio, y aun así sigue cumpliendo su función en producción por todo el mundo. Que siga así mucho tiempo.
- Licencia MIT
- @alisaitteke/seatmap-canvas
- D3.js · SVG
- TypeScript

Congelado, no olvidado
La v1 está terminada, deliberadamente. Esto es lo que significa para ti.
Sin nuevas funciones
No hay funciones nuevas ni versiones nuevas: lo que hay en npm es definitivo. Lo que integras hoy se comportará igual mañana.
MIT, para siempre
La licencia no cambia. Autoalójalo, inclúyelo en lo que construyas, sin debernos nada: sin tarifas por localidad, nunca.
Las mismas direcciones
La documentación, los ejemplos y la demo conservan sus URLs de siempre en seatmap.io, así que los enlaces citados y los marcadores siguen funcionando.
En marcha en minutos
Trae tu propio JSON del recinto y tu backend: la v1 es el renderizador y el widget de selección, no un sistema de venta de entradas.
Instalar
npm install @alisaitteke/seatmap-canvas añade el renderizador y los tipos de TypeScript.
Introduce tu recinto
Pasa bloques y localidades como JSON plano con replaceData(). El inventario, los precios y las retenciones permanecen en tu backend.
Captura los clics
SEAT.CLICK se dispara en cada pulsación; alterna la selección y luego lee getSelectedSeats() en el proceso de compra.
Wrappers oficiales
- Vanilla JS
- React
- Vue 3
- Next.js
- Angular
import { SeatmapCanvas } from "@alisaitteke/seatmap-canvas/react";import "@alisaitteke/seatmap-canvas/dist/seatmap.canvas.css";export function VenuePicker({ blocks }) {return (<SeatmapCanvasoptions={{legend: true,style: { seat: { hover: "#8fe100", selected: "#8fe100" } },}}data={blocks}onSeatClick={(seat) =>seat.isSelected() ? seat.unSelect() : seat.select()}/>);}
¿No quieres escribir JSON del recinto a mano? Seatmap Studio es el editor visual de planos de la plataforma mantenida.
La demo original, sigue activa
El mismo entorno de pruebas que la comunidad usa desde hace años: haz zoom desde el recinto hasta la butaca, prueba formas y selecciones.

Documentación y código fuente
Documentación
Introducción a la biblioteca y conceptos básicos.
Primeros pasos
Instala el paquete y renderiza tu primer plano.
Referencia de la API
Configuración, eventos y métodos públicos.
Ejemplos
Uso básico y muestras de recintos.
Demo en vivo
La demo interactiva original de la v1.
GitHub
Código fuente en github.com/alisaitteke/seatmap-canvas.
npm
Instala @alisaitteke/seatmap-canvas desde el registro público.
Comparar
| seatmap-canvas v1 | Seatmap Canvas Next | |
|---|---|---|
| Hasta dónde llega | Una sala de unos miles de localidades | Un estadio que sigue desplazándose y haciendo zoom |
| Arriba y abajo | Una sola planta | Nueve plantas — palco sobre patio, camarote sobre camarote |
| Lo que cabe en la noche | Localidades en bloques | Localidades, de pie, stands, mesas de banquete |
| El suelo donde puede vivir | Un plano interior | Un teatro, un recinto de festival, un circuito en un mapa |
| El camino hasta la localidad | Recinto, luego bloque, luego la localidad | Del mapa, por las plantas, hasta la localidad |
| Cómo nace el recinto | Lo escribes en JSON | Lo dibujas en Studio. El mapa lo reproduce. |
| Lo que puede decir una localidad | Un título y una nota | Precio, categoría, una foto — la oferta en la localidad |
| Cuando se llena la sala | Envías un JSON nuevo | Vendido y retenido llegan al mapa al momento |
| Sin puntero | — | Recorrer el mapa con el teclado |
Técnico
| seatmap-canvas v1 | Seatmap Canvas Next | |
|---|---|---|
| Renderizador | D3.js · SVG | WebGL2 |
| Formato del plano | blocks[] + seats[] | Studio ChartDocument (blocks, objects, floors, geo) |
| API de selección | SEAT.CLICK, select / unselect | Los mismos eventos host-toggle |
| Estado de localidad | El host reescribe el JSON | setSeatStatus, applyObjectAvailability |
| Tooltip | Título / nota | resolveTooltipOffer |
| Paquetes de framework | React, Vue 3, Next.js, Angular | Vanilla JS |
| Parser Pretix | Integrado | No se envía |
| Licencia | MIT | Comercial |
| Instalación | npm i @alisaitteke/seatmap-canvas | Bundle con licencia, no está en npm |