New Features
Per-Type Modular Entry Points
Every public chart type now has its own dedicated entry point matching the chart.type string you already use in config. Previously, users needed to know the internal grouping (e.g. apexcharts/heatmap for treemap charts); now you import by the exact type name.
New entry points:
| Import | Chart type(s) registered |
|---|---|
apexcharts/line
| line
|
apexcharts/area
| area
|
apexcharts/scatter
| scatter
|
apexcharts/bubble
| bubble
|
apexcharts/rangeArea
| rangeArea
|
apexcharts/bar
| bar
|
apexcharts/column
| bar (column mode)
|
apexcharts/rangeBar
| rangeBar
|
apexcharts/candlestick
| candlestick
|
apexcharts/boxPlot
| boxPlot
|
apexcharts/pie
| pie
|
apexcharts/donut
| donut
|
apexcharts/polarArea
| polarArea
|
apexcharts/radialBar
| radialBar
|
apexcharts/radar
| radar
|
apexcharts/heatmap
| heatmap
|
apexcharts/treemap
| treemap (new standalone entry)
|
Example:
import ApexCharts from 'apexcharts/core'
import 'apexcharts/scatter' // instead of 'apexcharts/line'
import 'apexcharts/donut' // instead of 'apexcharts/pie'
import 'apexcharts/treemap' // instead of 'apexcharts/heatmap'
import 'apexcharts/features/legend'The old grouped entry points (apexcharts/pie, apexcharts/heatmap, apexcharts/radial, etc.) continue to work and register all their previous types — no breaking changes.
Improvements
Better Error Message for Unregistered Chart Types
When a chart type is not registered (common with tree-shaken builds), the error message now includes a specific hint about Vite's module deduplication as the most likely root cause, and how to fix it via optimizeDeps.include in vite.config.
dist/ File Structure
dist/
├── apexcharts.js # UMD bundle (development)
├── apexcharts.min.js # UMD bundle (minified)
├── apexcharts.esm.js # ES module — full bundle (all chart types + features)
├── apexcharts.common.js # CommonJS — full bundle
├── apexcharts.css # Default styles
├── apexcharts-legend.css # Legend styles
│
├── core.esm.js # ES module — bare core (no chart types, no features)
├── core.common.js # CommonJS — bare core
│
├── line.esm.js / line.common.js
├── area.esm.js / area.common.js
├── scatter.esm.js / scatter.common.js
├── bubble.esm.js / bubble.common.js
├── rangeArea.esm.js / rangeArea.common.js
├── bar.esm.js / bar.common.js
├── column.esm.js / column.common.js
├── rangeBar.esm.js / rangeBar.common.js
├── candlestick.esm.js / candlestick.common.js
├── boxPlot.esm.js / boxPlot.common.js
├── pie.esm.js / pie.common.js
├── donut.esm.js / donut.common.js
├── polarArea.esm.js / polarArea.common.js
├── radialBar.esm.js / radialBar.common.js
├── radar.esm.js / radar.common.js
├── heatmap.esm.js / heatmap.common.js
├── treemap.esm.js / treemap.common.js # new in v5.10.0
│
├── features/
│ ├── all.esm.js / all.common.js
│ ├── annotations.esm.js / annotations.common.js
│ ├── exports.esm.js / exports.common.js
│ ├── toolbar.esm.js / toolbar.common.js
│ ├── legend.esm.js / legend.common.js
│ └── keyboard.esm.js / keyboard.common.js
│
└── locales/ # i18n locale JSON files (ar, de, es, fr, ja, zh-cn, ...)