This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Vistral is a React streaming data visualization library built on AntV G2. It provides real-time chart components (line, area, bar, column, single value, data table) with TypeScript support, dark/light themes, and optimized streaming data handling.
npm run build # Build library (CommonJS + ESM + TypeScript declarations)
npm run dev # Watch mode - rebuilds library on changes
npm run dev:examples # Start Vite dev server at http://localhost:3000 to view examples
npm run test # Run tests with Vitest
npm run test:coverage # Run tests with coverage
npm run lint # ESLint check
npm run typecheck # TypeScript type checking only- StreamDataSource - Input format with
columns(schema) anddata(rows as arrays or objects) - useDataSource hook - Processes raw data via
processDataSource()utility - Chart components - Render using AntV G2 chart instances managed by
useCharthook
- StreamChart - Universal router that selects appropriate chart based on
config.chartType- Routes to:
TimeSeriesChart(line/area),BarColumnChart(bar/column),SingleValueChart,DataTable,GeoChart - Wraps all charts in
ChartErrorBoundary
- Routes to:
- useStreamingData hook - Manages streaming data with size limits. Note:
append()treats arrays as multiple items, so wrap single row arrays:append([[row]])notappend([row]) - useSparklineData hook - Internally accumulates value history for sparkline rendering
- Theme system - Dark/light themes defined in
src/themes/, applied viaapplyChartTheme() - Color palettes - 5 multi-color (Dawn, Morning, Midnight, Ocean, Sunset) and 9 single-color palettes
All chart configs extend ChartConfigBase. Key types in src/types/index.ts:
TimeSeriesConfig- line/area chartsBarColumnConfig- bar/column chartsSingleValueConfig- single metric displayTableConfig- data tableGeoChartConfig- geographic map with points
dist/index.js- CommonJSdist/index.esm.js- ES Moduledist/index.d.ts- TypeScript declarationsdist/styles.css- Extracted CSS