Skip to content

Add a support for Highcharts rendering backend #141

Open

Description

@learningsam20

Motivation

Flint compiles one semantic chart input to multiple render targets (Vega-Lite, ECharts, Chart.js, Plotly, Excel, Image-Charts). Highcharts is widely deployed and exposes a serializable option object, so it's a natural additional target for hosts already using Highcharts. Adding it lets the same Flint input drive a Highcharts render without a separate authoring model.

Proposal

Add a highcharts backend to flint-js:

  • assembleHighcharts(input) compiles the shared core semantic layer into a Highcharts option, exported from the package root and from a new flint-chart/highcharts subpath.
  • Follow docs/adding-a-backend.md and mirror the existing backend structure (assemble → templates → instantiate-spec).
  • Reuse Phase 0 semantic resolution and banded-axis overflow filtering.
  • Register with validateChart; wire the MCP server and site editor.
  • Add an interactive renderer so interaction_spec presets mount.

Scope (chart types)

Scatter, Bar, Grouped Bar, Stacked Bar, Histogram, Line, Area, Pie, Doughnut, Sunburst, Radar, Heatmap, Waterfall (13). Unsupported types are out of scope by design; the reference documents exactly what is ported.

Acceptance criteria

  • Bar, line, area, scatter render on the standard gallery matrices
  • tests/smoke.test.ts passes for the new assembler
  • npm run typecheck and npm run test pass at repo root
  • A dedicated test-data generator exercises backend-specific options

Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions