Para desarrolladores · powered by visx
Xarts SDK
Un spec, dos salidas. Las 354 piezas de la galería son componentes React construidos sobre visx. El motor compone un SVG para el documento; tu aplicación monta el componente cuando necesita interacción.
Entrega privada · ESM y TypeScript
El paquete, fuera del repositorio.
1.0.0npm install ./visx-render-1.0.0.tgz react@18.3.1 react-dom@18.3.1El fichero se entrega de forma privada; este comando no descarga Xarts de un registro público. Compatibilidad declarada: Node ^22.12.0 || ^24.0.0 y React >=18.3.1 <20. Integración comprobada con Node 22 y React 18, y con Node 24 y React 19, en Chromium, Firefox y WebKit.
Para TypeScript: npm install --save-dev typescript @types/react@18 @types/react-dom@18. Tu aplicación mantiene una sola versión de React y sus tipos.
Comprobaciones e identidad de esta entrega
SVG para un documento
import { getPreset, renderComposition } from 'visx-render/node';
import { writeFile } from 'node:fs/promises';
const spec = await getPreset('bar');
spec.document.header.title = 'A supera a B';
spec.document.header.subtitle = 'Comparación de dos categorías';
spec.document.footer = { source: 'Datos del proyecto' };
delete spec.orthogonal.referenceAxisGlyph; // Eje completo para estos valores.
spec.data.rows = [
{ Company: 'A', Value: 90, Budget: 85 },
{ Company: 'B', Value: 80, Budget: 85 },
];
spec.presentation.fonts = 'embed';
spec.output.filename = 'comparacion';
const { svg, warnings } = await renderComposition(spec);
await writeFile('comparacion.svg', svg);
console.log(warnings);Ejecuta este ejemplo como fichero .mjs o dentro de un paquete con "type": "module". La API devuelve el SVG en memoria y sus avisos; tu aplicación decide dónde guardarlo. No necesita Vite ni un DOM para renderizar en Node.
React para un producto
import { useEffect, useState } from 'react';
import { getPreset } from 'visx-render/catalog';
import { Chart, prepareComposition, type PreparedCompositionResult } from 'visx-render/react';
export function Comparison() {
const [result, setResult] = useState<PreparedCompositionResult | null>(null);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
let active = true;
getPreset('bar').then(prepareComposition)
.then(value => { if (active) setResult(value); })
.catch(error => { if (active) setError(error instanceof Error ? error : new Error(String(error))); });
return () => { active = false; };
}, []);
if (error) return <p role="alert">{error.message}</p>;
if (!result) return <p role="status">Cargando gráfico…</p>;
return <Chart prepared={result.interactive} />;
}El componente dibuja el gráfico. Ajusta presentation.dimensions antes de preparar la spec y sirve las fuentes de visx-render/fonts en /fonts; la interactividad disponible depende de la pieza.
También desde la terminal
npx visx-render spec.json --out ./outputPara varios estados, prepara y renderiza cada spec nativa desde tu aplicación. El paquete no incluye el servidor HTTP, el MCP ni los comandos de desarrollo del repositorio.
Geografía incluida
El territorio también se declara.
18 composiciones geográficas con datos explícitos. Las geometrías y medidas forman parte de la spec; se renderizan en tu entorno.
Una capacidad de cada pieza
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
- geographic-marksDatos geográficos explícitos
Cada familia define su estructura de datos. Descarga la spec de la ficha para consultar sus coordenadas, regiones y medidas.
Una tasa, no un total disfrazado
Ejemplo independiente de la muestra de la galería: tres porcentajes sintéticos de España. El sufijo etiqueta 12 como 12 %, sin convertirlo. Las demás regiones quedan sin dato.
import { getPreset, renderComposition } from 'visx-render/node';
import { writeFile } from 'node:fs/promises';
const spec = await getPreset('choropleth');
spec.document.header.title = 'Comparación territorial';
// data contiene las regiones y medidas del mapa.
// Sustituye sus geometrías y valores con el mismo contrato.
spec.presentation.fonts = 'embed';
const { svg } = await renderComposition(spec);
await writeFile('mapa.svg', svg);En React, prepareComposition prepara los datos y la geometría antes de montar Chart. La misma spec sirve para producir el SVG del documento.
Entrega verificable
El paquete detrás de las muestras.
SDK nativo 1.0
Esta web está vinculada a una entrega concreta del SDK. Las comprobaciones siguientes corresponden a ese archivo, no solo al código de desarrollo.
- Instalación independiente
- El tarball se instala en un proyecto limpio, con dependencias de producción y sin aliases al repositorio.
- Tipos públicos
- Los ejemplos compilan con TypeScript estricto contra las declaraciones del paquete instalado.
- Node y navegador
- Se ejecutan el render SVG y los casos de integración React del consumidor de prueba.
- Muestras del catálogo
- Las 354 specs canónicas reproducen sus SVG publicados con este SDK, tanto en salida normal como de inspección.
Entorno comprobado: Node 22.22.1. Son casos de integración y reproducción de muestras, no una certificación de cualquier dato, tamaño de pantalla o interacción. Las capacidades declaradas de cada pieza se consultan en su ficha.
Versión e identidad de la entrega
- Paquete
visx-render-1.0.0.tgz- SHA-256
886f4783748a8d755e2270d6235fcb2b0d42e80af5dbf34ce5e83ac9f9bf8c1a- Compatibilidad declarada
- Node
^22.12.0 || ^24.0.0; React>=18.3.1 <20.
El checksum identifica el archivo; no es una firma digital. El paquete se entrega de forma privada. Este registro no incluye el motor ni publica el tarball.
Registro de la entrega · JSONEl contrato
La spec nativa: las claves del contrato
version · family | Contrato versionado de la familia nativa; getPreset(id) devuelve una spec completa. |
|---|---|
data | Filas, nodos, enlaces o geometrías explícitos según la familia. |
encoding · calculation | Correspondencia de campos y reglas del cálculo cuando las declara la familia. |
layout · marks · labels | Disposición, marcas y tipografía propias de cada contrato. |
document.header · document.footer | Título, contexto, fuente, notas y descripción alternativa. |
presentation | theme, locale, dimensions y fonts: reference, embed u outline. |
annotations · interaction | Anotaciones e interacción admitidas por la familia elegida. |
output | filename, embedSpec y precisión de la geometría SVG. |
provenance | Identidad del preset de referencia; el render se selecciona por version. |
Errores accionables: una columna que no existe, un id de pieza que no está en el catálogo o una regla de cálculo incompatible se rechazan con el motivo. La referencia completa va con la licencia.
Historias
Un exhibit, varios estados
La aplicación prepara varias specs y elige cuál mostrar. En esta muestra, cuatro SVG nativos comparten una escala explícita para conservar la referencia visual. El selector de estados pertenece a la web.
Fuentes
reference declara las fuentes relativas y una pila de respaldo; embed las incrusta; outline traza el texto convertible y avisa sobre el que queda como texto. Incluye document.footer.alt con el significado del gráfico, especialmente al trazarlo.
Reproducibilidad
Conserva spec, versión, fuentes y entorno. El paquete identifica sus fuentes y dependencias; la galería comprueba cada pareja de spec y SVG. Un hash identifica los bytes de un artefacto, no garantiza por sí solo la igualdad entre entornos.
Badge
un desarrollo de anlak · powered by visx
Licencia OEM: 1.500 € al año, hasta cinco desarrolladores
Entrega privada y un año de versiones; si no renuevas conservas la última versión recibida. El formato de entrega se concreta antes de contratar. La exportación a PowerPoint no entra: es un servicio del studio.