Vista previa#
Servicios, datos, colas y actores. Demo completa con datos realistas, renderizada en el servidor. Más abajo están las configuraciones, una por una.
Ejemplos#
Todas las configuraciones del componente, cada una viva y con datos propios. Cambia entre Preview y Code en cada tarjeta y copia lo que necesites.
Uso#
Ejemplo mínimo con las props requeridas. Copia, pega y cambia los datos:
import { ArchitectureDiagram, ChartTooltipPortal } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<ArchitectureDiagram
nodes={/* … */}
edges={/* … */}
ariaLabel="Architecture Diagram"
/>
</ChartTooltipPortal>La gráfica es función pura de props a SVG: el HTML llega renderizado y sin JS se ve completa.
Envuelve en ChartTooltipPortal solo si quieres tooltip rico; sin JS queda \<title\> nativo.
Lee la guía /docs/ssr-first una vez y listo.
Código de esta demo#
Ver fuente (src/demos/architecture-diagram.tsx)
/**
* Demo Arquitectura del site (no se publica en el bundle de la lib).
*/
import { ArchitectureDiagram, ChartTooltipPortal } from "@carlos-burelo/klin";
export default function ArchitectureDiagramDemo() {
return (
<ChartTooltipPortal>
<ArchitectureDiagram
ariaLabel="Diagrama de arquitectura de tienda en línea"
nodes={[
{
id: "cliente",
label: "Cliente",
sub: "Navegador web",
kind: "actor",
},
{ id: "tienda", label: "Tienda", sub: "Next.js", kind: "service" },
{ id: "pagos", label: "Pagos", sub: "API externa", kind: "external" },
{
id: "cola",
label: "Pedidos",
sub: "Cola de trabajos",
kind: "queue",
},
{
id: "bd",
label: "Base de datos",
sub: "Postgres",
kind: "database",
},
]}
edges={[
{ from: "cliente", to: "tienda", label: "HTTPS" },
{ from: "tienda", to: "pagos", label: "cobra" },
{ from: "tienda", to: "cola", label: "encola" },
{ from: "cola", to: "bd", label: "guarda" },
]}
/>
</ChartTooltipPortal>
);
}Props#
12 props · 3 requeridas
Tipo completo: ArchitectureDiagramProps en architecture-diagram.tsx.
Accesibilidad#
- Toda gráfica exige
ariaLabeldescriptivo; el SVG usarole="img"con\<title\>. - Cada forma lleva
\<title\>nativo (tooltip sin JS) ydata-chart-tippara el portal rico. - Sin datos se renderiza estado vacío homogéneo (
ChartEmpty), nunca SVG roto. - Detalle del contrato en /docs/accesibilidad.
Recursos#
- Fuente del componente:
architecture-diagram.tsx - Guías: SSR-first · Tema · Tooltip