Vista previa#
Máquina de estados. 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 { ChartTooltipPortal, StateDiagram } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<StateDiagram
nodes={/* … */}
edges={/* … */}
ariaLabel="State 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/state-diagram.tsx)
import { ChartTooltipPortal, StateDiagram } from "@carlos-burelo/klin";
/** Ciclo de vida de un pedido en una tienda en línea. */
export default function StateDiagramDemo() {
return (
<ChartTooltipPortal>
<StateDiagram
ariaLabel="Diagrama de estados del ciclo de vida de un pedido"
direction="LR"
nodes={[
{ id: "inicio", label: "Inicio", kind: "initial" },
{ id: "creado", label: "Creado" },
{ id: "pagado", label: "Pagado" },
{ id: "enviado", label: "Enviado" },
{ id: "entregado", label: "Entregado" },
{ id: "fin", label: "Fin", kind: "final" },
]}
edges={[
{ from: "inicio", to: "creado", label: "crear" },
{ from: "creado", to: "pagado", label: "pagar" },
{ from: "pagado", to: "enviado", label: "enviar" },
{ from: "enviado", to: "entregado", label: "recibir" },
{ from: "entregado", to: "fin" },
]}
/>
</ChartTooltipPortal>
);
}Props#
10 props · 3 requeridas
Tipo completo: StateDiagramProps en state-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:
state-diagram.tsx - Guías: SSR-first · Tema · Tooltip