Vista previa#
Tabla con barras inline. 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, TableChart } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<TableChart
columns={/* … */}
rows={/* … */}
ariaLabel="Table Chart"
/>
</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/table-chart.tsx)
import { ChartTooltipPortal, TableChart } from "@carlos-burelo/klin";
export default function TableChartDemo() {
return (
<ChartTooltipPortal>
<TableChart
ariaLabel="Producción de maíz por estado en superficie y cosecha, Sinaloa lidera la cosecha con 5,800 miles de toneladas"
columns={[
{ key: "superficie", label: "Superficie (miles ha)" },
{ key: "cosecha", label: "Cosecha (miles t)" },
]}
rows={[
{ label: "Sinaloa", values: { superficie: 520, cosecha: 5800 } },
{ label: "Jalisco", values: { superficie: 610, cosecha: 3900 } },
{ label: "Michoacán", values: { superficie: 480, cosecha: 2600 } },
{ label: "Guanajuato", values: { superficie: 420, cosecha: 2100 } },
{ label: "Chiapas", values: { superficie: 690, cosecha: 1800 } },
]}
bars={[{ key: "cosecha", label: "Cosecha" }]}
format={(v: number) => new Intl.NumberFormat("es-MX").format(v)}
/>
</ChartTooltipPortal>
);
}Props#
16 props · 3 requeridas
Tipo completo: TableChartProps en table-chart.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:
table-chart.tsx - Guías: SSR-first · Tema · Tooltip