# Changelog

All notable changes to this package will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.1.0] - Unreleased

### Added
- UI Toolkit integration via the new `ChartGuru.UIToolkit` namespace:
  - `ChartGuruElement` - `VisualElement` adapter with UXML/USS/UI Builder
    authoring. Drag it into UI Builder or author it declaratively in UXML.
  - UXML attributes for every common authoring knob (chart-type, animate-on-start,
    show-axis-labels, show-axis-titles, show-data-labels, legend-alignment,
    stacking-method, interpolation, line-width, corner-radius, inner-radius).
  - Data binding hooks on Unity 6.0+ via `[CreateProperty]` decorations.
  - `ChartDataSourceAsset` ScriptableObject for binding data to a
    `ChartGuruElement` from the Inspector.
  - Default stylesheet `ChartGuruElement.uss` auto-loaded from the runtime
    Resources; override via your own USS.
  - Eleven self-contained samples under `Examples/UIToolkit/` covering every
    supported data flow and feature path: multi-chart showcase, imperative,
    asset source, scene-MB source, reactive ViewModel, streaming, interaction,
    all chart types, theming, advanced axes, and external data sources.
- New backend-neutral drawing abstraction (`IChartDrawSink` +
  `GLDrawSink`/`UITKMeshDrawSink` + `LineTessellator`/`TopologyAdapter`) that
  prepares native UI Toolkit geometry emission while keeping the existing
  uGUI/Scene paths bit-identical. The shipping UI Toolkit element currently
  renders the chart through the shared renderer into a RenderTexture and blits it
  into UI Toolkit, with labels/swatches hosted as UI Toolkit elements.
- New text-host abstraction (`IChartTextHost` + `UGUITextHost`/`UITKTextHost` +
  `IUGuiTextRenderer`) so `ChartTextPool` and `ChartTextManager` can be reused
  with UI Toolkit without dragging in `RectTransform`.
- Shared authoring helpers — `ChartAuthoringState`/`ChartAuthoringBinder`,
  `ChartBackgroundBinder`, `ChartInteractionController`,
  `ChartTypeExtensions.IsTiny()`, and `IChartDataSource` — which flatten the
  duplication between `ChartComponent`, `ChartGraphic`, and the new
  `ChartGuruElement`.

### Changed
- `TMPTextRenderer` and `UnityTextRenderer` now implement the more specific
  `IUGuiTextRenderer`; consumers that needed `GameObject`/`RectTransform` should
  cast to that interface. `ITextRenderer` remains source-compatible.
- `ChartDataSourceBase` now implements `IChartDataSource`.

### Deprecated
- Stale backend prototypes `IChartRenderBackend`, `GLRenderBackend`, and
  `CanvasRenderBackend` have been removed; they were unused and are replaced by
  `IChartDrawSink` + `GLDrawSink`. The render-data POCOs that used to live in
  the same file (`GridRenderData`, `AxesRenderData`, `BarsRenderData`,
  `PointsRenderData`, `SectorsRenderData`, etc.) have been extracted to a
  standalone `ChartRenderData.cs` because they are still the shared currency
  between the layout engine and the new draw sinks.

## [1.0.0] - 2026-01-24

### Added
- Initial release of Chart Guru
- High-performance 2D chart rendering with GPU instancing
- Chart types: Bar, Line, Point/Scatter, Area, Pie, Donut, Radar
- Swift Charts-inspired declarative API with fluent builders
- Animated chart morphing between types at runtime
- Multi-series support with automatic grouping and stacking
- Stacking methods: Stacked, Grouped, Unstacked, Normalized, Centered
- Line interpolation: Linear, CatmullRom, Monotone, Step
- Annotation system with configurable positions
- Axis system with automatic scale inference
- Theme system with ScriptableObject-based themes
- Live data binding with observable collections
- Burst-compiled parallel data processing
- NativeCollection support for zero-allocation updates
- Cross-pipeline rendering (Built-in, URP, HDRP)
- SDF-based anti-aliased rendering
- Editor Gallery window with interactive chart catalog
- Editor Designer window with WYSIWYG chart building
- Mock Magic Generator with presets and patterns
- Custom Inspector with inline preview
