apexcharts-skill 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +57 -19
- package/README.md +14 -10
- package/SKILL.md +139 -57
- package/index.js +1 -1
- package/package.json +1 -1
- package/references/bar-charts.md +124 -4
- package/references/cartesian-charts.md +77 -1
- package/references/circular-charts.md +48 -1
- package/references/{v6-features.md → feature-platform.md} +121 -23
- package/references/financial-charts.md +68 -0
- package/references/tree-shaking.md +116 -28
package/.cursorrules
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
# ApexCharts.js — AI Coding Rules
|
|
2
2
|
|
|
3
|
-
You are working with ApexCharts.js (
|
|
3
|
+
You are working with ApexCharts.js (v7), a JavaScript charting library.
|
|
4
4
|
Documentation: https://apexcharts.com/docs/
|
|
5
5
|
NPM: apexcharts
|
|
6
6
|
GitHub: https://github.com/apexcharts/apexcharts.js
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
v5 and v6 configs keep working in v7, with two exceptions: `plotOptions.bar.borderRadiusWhenStacked` was REMOVED (corner ownership now follows the stack's outer edge), and `dataLabels.animate.enabled` now defaults to true on bar/column.
|
|
9
|
+
|
|
10
|
+
## !! v7.0: the default bundle no longer ships every feature
|
|
11
|
+
|
|
12
|
+
Nine features are Tier 2: in the package, in NO bundle, reachable only through an explicit import. This applies to `import ApexCharts from 'apexcharts'` too, not just tree-shaken builds, and it is the most common v6 -> v7 failure.
|
|
13
|
+
|
|
14
|
+
import ApexCharts from 'apexcharts'
|
|
15
|
+
import 'apexcharts/features/trellis' // required even here
|
|
16
|
+
|
|
17
|
+
Tier 2: trellis, storyboard, perspectives, ink, renderer-canvas, link, measure, history, context-menu, plus the `raincloud` chart type.
|
|
18
|
+
`apexcharts/features/all` is the Tier 1 set and pulls in none of them.
|
|
19
|
+
Each Tier 2 module warns in the console when its config is present but the module is not, and degrades where it can (a trellis renders as one chart; renderer: 'canvas' falls back to SVG).
|
|
20
|
+
|
|
21
|
+
Premium (watermarked until an entitled premium/enterprise license): trellis, storyboard, link, ink, measure, context-menu, perspectives, history, and the unit/waffle and raincloud chart types. Premium and Tier 2 are independent: renderer-canvas is Tier 2 and free; unit/waffle is premium and Tier 1.
|
|
22
|
+
|
|
23
|
+
Two behaviors are on by default (both respect prefers-reduced-motion): coherent add/remove data-transition animations, and mobile pinch-zoom / two-finger pan.
|
|
9
24
|
|
|
10
25
|
## Framework wrapper detection — check `package.json` first
|
|
11
26
|
|
|
@@ -29,9 +44,9 @@ Wrappers handle `destroy()` automatically on unmount, accept reactive props, and
|
|
|
29
44
|
10. **RadialBar values must be 0–100** (percentages).
|
|
30
45
|
11. **Color hex values must include `#`** (e.g., `'#FF5733'`).
|
|
31
46
|
12. **Tree-shaking**: `apexcharts/core` requires separate chart-type + feature imports.
|
|
32
|
-
13. **
|
|
47
|
+
13. **Aliases**: `funnel`/`pyramid` render through bar, `gauge` through radialBar. Use them as `chart.type` directly (no `plotOptions.bar.isFunnel`); covered by `apexcharts/bar` and `apexcharts/radialBar`.
|
|
33
48
|
14. **`violin`** points use a density profile: `data: [{ x, y: { density: [[value, weight], ...], points?: [num] } }]`.
|
|
34
|
-
15. **`render()` is idempotent
|
|
49
|
+
15. **`render()` is idempotent**: a repeated `render()` returns the same promise; still `destroy()` before a new instance on the same element.
|
|
35
50
|
|
|
36
51
|
---
|
|
37
52
|
|
|
@@ -56,6 +71,10 @@ Wrappers handle `destroy()` automatically on unmount, accept reactive props, and
|
|
|
56
71
|
| Radar | `'radar'` | `[{ name, data: [num] }]` + `xaxis.categories` | `[{ data: [80, 50, 30] }]` |
|
|
57
72
|
| Funnel *(v6)* | `'funnel'` | `[{ name, data: [num] }]` + `xaxis.categories`; order largest→smallest | `[{ data: [1380, 990, 548, 200] }]` |
|
|
58
73
|
| Pyramid *(v6)* | `'pyramid'` | Same as funnel; order smallest→largest | `[{ data: [200, 548, 990, 1380] }]` |
|
|
74
|
+
| Waterfall *(v7.1)* | `'waterfall'` | `[{ name, data: [{ x, y }] }]` where y is the signed DELTA; a running-total row carries `isSubtotal` or `isTotal` and NO y | `[{ data: [{ x: 'Rev', y: 8786 }, { x: 'Cost', y: -2786 }, { x: 'Gross', isSubtotal: true }] }]` |
|
|
75
|
+
| Dumbbell *(v7.1)* | `'dumbbell'` | ONE SERIES PER MEASURE sharing x categories; not [low, high] pairs | `[{ name: '2020', data: [{ x: 'BE', y: 92 }] }, { name: '2025', data: [{ x: 'BE', y: 118 }] }]` |
|
|
76
|
+
| Streamgraph *(v7.1)* | `'streamgraph'` | Same as area; do NOT set chart.stacked (the chart owns baseline + order) | `[{ name: 'Drama', data: [{ x: '2024-01-01', y: 32 }] }]` |
|
|
77
|
+
| Raincloud *(v7.1, premium, TIER 2)* | `'raincloud'` | `[{ name, data: [{ x, points: [num] }] }]`: raw sample; configured via `plotOptions.violin` | `[{ data: [{ x: 'Control', points: [3.1, 4.7, 2.9] }] }]` |
|
|
59
78
|
|
|
60
79
|
### Non-Axis Charts (flat number array — NOT object format)
|
|
61
80
|
|
|
@@ -94,43 +113,62 @@ chart.destroy() // cleanup
|
|
|
94
113
|
## Import Paths
|
|
95
114
|
|
|
96
115
|
```
|
|
97
|
-
apexcharts #
|
|
116
|
+
apexcharts # Default bundle: every type except raincloud + the Tier 1 features
|
|
98
117
|
apexcharts/core # Bare core (must register types + features manually)
|
|
99
118
|
apexcharts/line # line, area, scatter, bubble, rangeArea
|
|
100
|
-
apexcharts/bar # bar, column, rangeBar, funnel, pyramid (
|
|
119
|
+
apexcharts/bar # bar, column, rangeBar, funnel, pyramid (aliases)
|
|
120
|
+
apexcharts/waterfall # waterfall (v7.1) = bar + features/waterfall
|
|
121
|
+
apexcharts/dumbbell # dumbbell (v7.1) = bar + features/dumbbell
|
|
122
|
+
apexcharts/streamgraph # streamgraph (v7.1) = rangeArea + features/streamgraph
|
|
101
123
|
apexcharts/candlestick # candlestick, boxPlot
|
|
102
|
-
apexcharts/violin # violin
|
|
124
|
+
apexcharts/violin # violin
|
|
125
|
+
apexcharts/raincloud # raincloud (v7.1, premium, TIER 2) = violin + features/raincloud
|
|
126
|
+
apexcharts/histogram # histogram (v6.9) = bar + features/stats
|
|
103
127
|
apexcharts/pie # pie, donut, polarArea
|
|
104
|
-
apexcharts/radialBar # radialBar, gauge (
|
|
128
|
+
apexcharts/radialBar # radialBar, gauge (alias)
|
|
105
129
|
apexcharts/radar # radar
|
|
106
130
|
apexcharts/heatmap # heatmap
|
|
107
131
|
apexcharts/treemap # treemap
|
|
132
|
+
apexcharts/sunburst # sunburst (v6.7)
|
|
133
|
+
apexcharts/unit # unit, waffle (v6.6, premium)
|
|
134
|
+
apexcharts/unit-shapes # unit-chart shape kit (v6.10), named exports
|
|
135
|
+
apexcharts/pictograms # pictogram glyphs (v7.0), named exports
|
|
108
136
|
apexcharts/ssr # Server-side rendering (Node.js)
|
|
109
137
|
apexcharts/client # Explicit browser import
|
|
110
138
|
|
|
111
|
-
#
|
|
139
|
+
# TIER 1 features: already in the default `apexcharts` bundle.
|
|
140
|
+
# Import only if you started from /core or a per-type entry.
|
|
112
141
|
apexcharts/features/exports # dataURI(), exportToCSV()
|
|
113
142
|
apexcharts/features/legend # Legend component
|
|
114
143
|
apexcharts/features/toolbar # Zoom, pan, download
|
|
115
144
|
apexcharts/features/annotations # X/Y/point annotations
|
|
116
145
|
apexcharts/features/keyboard # Keyboard navigation
|
|
117
|
-
#
|
|
146
|
+
apexcharts/features/stats # histogram binning, raw-sample summaries, rowSeries()
|
|
118
147
|
apexcharts/features/morph # animated chart-type morphs
|
|
119
148
|
apexcharts/features/drilldown # hierarchical drill-down
|
|
120
|
-
apexcharts/features/history # undo/redo (Rewind)
|
|
121
|
-
apexcharts/features/perspectives # shareable view state
|
|
122
|
-
apexcharts/features/storyboard # scrollytelling
|
|
123
149
|
apexcharts/features/facet # design tokens + OS themes
|
|
124
150
|
apexcharts/features/weave # plugin platform
|
|
125
|
-
apexcharts/features/renderer-canvas # hybrid SVG + canvas renderer (Strata)
|
|
126
151
|
apexcharts/features/marks # custom series types (registerSeriesType)
|
|
127
|
-
apexcharts/features/
|
|
128
|
-
apexcharts/features/
|
|
129
|
-
apexcharts/features/
|
|
130
|
-
apexcharts/features/
|
|
131
|
-
|
|
152
|
+
apexcharts/features/waterfall # (v7.1) waterfall type
|
|
153
|
+
apexcharts/features/dumbbell # (v7.1) dumbbell type
|
|
154
|
+
apexcharts/features/streamgraph # (v7.1) streamgraph type
|
|
155
|
+
apexcharts/features/all # Tier 1 only: NOT a shortcut past Tier 2
|
|
156
|
+
|
|
157
|
+
# TIER 2 features: in NO bundle. Required whatever entry point you used.
|
|
158
|
+
apexcharts/features/trellis # (v7.0) small multiples (premium)
|
|
159
|
+
apexcharts/features/storyboard # scrollytelling (premium; registers perspectives)
|
|
160
|
+
apexcharts/features/perspectives # shareable view state (premium)
|
|
161
|
+
apexcharts/features/ink # on-chart annotation authoring (premium)
|
|
162
|
+
apexcharts/features/renderer-canvas # hybrid SVG + canvas renderer (Strata)
|
|
163
|
+
apexcharts/features/link # crossfilter / linked views (premium)
|
|
164
|
+
apexcharts/features/measure # measure / delta ruler (premium)
|
|
165
|
+
apexcharts/features/history # undo/redo (Rewind, premium)
|
|
166
|
+
apexcharts/features/context-menu # right-click context menu (premium)
|
|
167
|
+
apexcharts/features/raincloud # (v7.1) raincloud type (premium)
|
|
132
168
|
```
|
|
133
169
|
(Cadence easing and real-time streaming are core: no feature import needed.)
|
|
170
|
+
Script tags: every Tier 2 module has a `dist/features/<name>.js`, and a full-bundle page still needs it.
|
|
171
|
+
Lean core channel (v7.0): `dist/apexcharts.core.js` + `dist/line.js` + `dist/features/legend.js`, 136,921 B gzipped vs 252,005 for the full bundle.
|
|
134
172
|
|
|
135
173
|
---
|
|
136
174
|
|
package/README.md
CHANGED
|
@@ -11,20 +11,24 @@ AI coding skill for building [ApexCharts.js](https://apexcharts.com/) charts and
|
|
|
11
11
|
> | **ApexTree** — hierarchy / org charts | `apextree` | [`apextree-skill`](https://github.com/apexcharts/apextree-skill) |
|
|
12
12
|
> | **ApexSankey** — flow / Sankey | `apexsankey` | [`apexsankey-skill`](https://github.com/apexcharts/apexsankey-skill) |
|
|
13
13
|
> | **Apex Grid** — data grid | `apex-grid` | [`apexgrid-skill`](https://github.com/apexcharts/apexgrid-skill) |
|
|
14
|
+
| **ApexStock**: financial / OHLC | `apexstock` | [`apexstock-skill`](https://github.com/apexcharts/apexstock-skill) |
|
|
15
|
+
| **ApexMaps**: maps / geo | `apexmaps` | [`apexmaps-skill`](https://github.com/apexcharts/apexmaps-skill) |
|
|
14
16
|
|
|
15
17
|
## What This Does
|
|
16
18
|
|
|
17
19
|
AI models frequently generate incorrect ApexCharts code — wrong series data formats, missing `render()` calls, broken formatter signatures, etc. This skill provides structured reference files that help AI assistants generate correct ApexCharts code on the first try.
|
|
18
20
|
|
|
19
|
-
This skill targets **ApexCharts
|
|
21
|
+
This skill targets **ApexCharts v7** (v5 and v6 configs keep working, apart from two v7.0 breaking changes the skill documents).
|
|
22
|
+
|
|
23
|
+
> **The v7.0 change to know about:** the default bundle no longer ships every feature. Nine features (trellis, storyboard, perspectives, ink, canvas renderer, link, measure, history, context menu) plus the `raincloud` chart type now need an explicit `import 'apexcharts/features/<name>'` **even on the full bundle**. This is the most common v6 → v7 upgrade failure, so the skill leads with it.
|
|
20
24
|
|
|
21
25
|
### Coverage
|
|
22
26
|
|
|
23
|
-
- **
|
|
27
|
+
- **28 chart types**: line, area, bar, pie, donut, radialBar, scatter, bubble, heatmap, candlestick, boxPlot, violin, histogram, radar, polarArea, rangeBar, rangeArea, treemap, funnel, pyramid, gauge, sunburst, unit, waffle, waterfall, dumbbell, streamgraph, raincloud
|
|
24
28
|
- **Correct data formats** for every chart type
|
|
25
29
|
- **Common pitfalls** with wrong/correct code examples
|
|
26
|
-
- **
|
|
27
|
-
- **
|
|
30
|
+
- **Feature platform**: small multiples (Trellis), plugins (Weave), canvas renderer (Strata), custom series (Marks), undo/redo (Rewind), shareable views (Perspectives), themes (Facet), easing (Cadence), crossfilter (Link), annotation authoring (Ink), measure ruler, context menu, storyboard, streaming, drilldown, raw-sample statistics (Stats), unit-chart shape kit (`apexcharts/unit-shapes`), pictogram glyphs (`apexcharts/pictograms`)
|
|
31
|
+
- **Bundle tiers** (which features are in the default v7 bundle and which are not), tree-shaking, and the lean-core script-tag channel
|
|
28
32
|
- **SSR** (server-side rendering) and hydration
|
|
29
33
|
- **Framework integration**: React, Vue 3, Angular
|
|
30
34
|
|
|
@@ -78,14 +82,14 @@ const barCharts = await readFile(referencePath('bar-charts.md'), 'utf8');
|
|
|
78
82
|
├── SKILL.md # Main entry point — read this first
|
|
79
83
|
├── .cursorrules # Self-contained version for Cursor/Windsurf
|
|
80
84
|
├── references/
|
|
81
|
-
│ ├── cartesian-charts.md # line, area, scatter, bubble, rangeArea
|
|
82
|
-
│ ├── bar-charts.md # bar, column, rangeBar, timeline/Gantt, funnel, pyramid
|
|
83
|
-
│ ├── financial-charts.md # candlestick, boxPlot, violin, histogram
|
|
84
|
-
│ ├── circular-charts.md # pie, donut, polarArea, radialBar, gauge, sunburst, unit, waffle
|
|
85
|
+
│ ├── cartesian-charts.md # line, area, scatter, bubble, rangeArea, streamgraph
|
|
86
|
+
│ ├── bar-charts.md # bar, column, rangeBar, timeline/Gantt, funnel, pyramid, waterfall, dumbbell
|
|
87
|
+
│ ├── financial-charts.md # candlestick, boxPlot, violin, histogram, raincloud
|
|
88
|
+
│ ├── circular-charts.md # pie, donut, polarArea, radialBar, gauge, sunburst, unit, waffle, pictograms
|
|
85
89
|
│ ├── grid-charts.md # heatmap, treemap
|
|
86
90
|
│ ├── radar-charts.md # radar
|
|
87
|
-
│ ├──
|
|
88
|
-
│ ├── tree-shaking.md # bundle optimization
|
|
91
|
+
│ ├── feature-platform.md # feature platform + bundle tiers (trellis, plugins, canvas, undo/redo, ...)
|
|
92
|
+
│ ├── tree-shaking.md # bundle tiers and optimization
|
|
89
93
|
│ ├── ssr.md # server-side rendering
|
|
90
94
|
│ └── framework-wrappers.md # React, Vue, Angular
|
|
91
95
|
└── install/
|
package/SKILL.md
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: apexcharts
|
|
3
3
|
description: >
|
|
4
|
-
AI skill for building ApexCharts.js charts and data visualizations (targets
|
|
4
|
+
AI skill for building ApexCharts.js charts and data visualizations (targets v7).
|
|
5
5
|
Use when the user asks to create, configure, or troubleshoot any chart using ApexCharts
|
|
6
6
|
(line, area, bar, pie, donut, radialBar, scatter, bubble, heatmap, candlestick, boxPlot,
|
|
7
7
|
violin, histogram, radar, polarArea, rangeBar, rangeArea, treemap, funnel, pyramid, gauge,
|
|
8
|
-
sunburst, unit, waffle). Covers
|
|
9
|
-
correct data formats, lifecycle, formatters, tree-shaking, SSR, and the
|
|
10
|
-
platform (plugins, canvas renderer, custom series, undo/redo,
|
|
11
|
-
crossfilter, annotation authoring, storyboard, streaming,
|
|
8
|
+
sunburst, unit, waffle, waterfall, dumbbell, streamgraph, raincloud). Covers
|
|
9
|
+
correct data formats, lifecycle, formatters, tree-shaking, SSR, and the feature
|
|
10
|
+
platform (plugins, canvas renderer, custom series, small multiples, undo/redo,
|
|
11
|
+
shareable views, themes, crossfilter, annotation authoring, storyboard, streaming,
|
|
12
|
+
drilldown). Knows which features ship in the default v7 bundle and which are an
|
|
13
|
+
explicit import. In React /
|
|
12
14
|
Vue / Angular projects, prefer the framework wrapper packages
|
|
13
15
|
(`react-apexcharts`, `vue3-apexcharts`, `ng-apexcharts`) over the core API.
|
|
14
16
|
metadata:
|
|
15
17
|
author: ApexCharts
|
|
16
|
-
version: "
|
|
17
|
-
library_version: "
|
|
18
|
+
version: "3.0.0"
|
|
19
|
+
library_version: "7.1.0"
|
|
18
20
|
category: data-visualization
|
|
19
21
|
tags: [charts, visualization, javascript, typescript, svg, apexcharts]
|
|
20
22
|
docs: https://apexcharts.com/docs/
|
|
@@ -31,9 +33,40 @@ metadata:
|
|
|
31
33
|
>
|
|
32
34
|
> Wrappers handle `destroy()` automatically on unmount, accept reactive props, and forward events as idiomatic framework events. Use the core API directly only when no framework is detected, or when the user explicitly asks for vanilla. See `references/framework-wrappers.md`.
|
|
33
35
|
|
|
34
|
-
> **Targets ApexCharts
|
|
36
|
+
> **Targets ApexCharts v7.** Read the next box before writing any feature code: v7's headline change is that the default bundle no longer contains every feature.
|
|
35
37
|
>
|
|
36
|
-
>
|
|
38
|
+
> **⚠️ v7.0 breaking change: nine features left the default bundle.** In v6, `import ApexCharts from 'apexcharts'` gave you every feature. In v7 it does not. These nine are **Tier 2**: present in the package, absent from the default bundle, and reachable only through an explicit import.
|
|
39
|
+
>
|
|
40
|
+
> ```js
|
|
41
|
+
> import ApexCharts from 'apexcharts'
|
|
42
|
+
> import 'apexcharts/features/trellis' // ESM
|
|
43
|
+
> ```
|
|
44
|
+
> ```html
|
|
45
|
+
> <script src=".../dist/apexcharts.js"></script>
|
|
46
|
+
> <script src=".../dist/features/trellis.js"></script> <!-- script tag -->
|
|
47
|
+
> ```
|
|
48
|
+
>
|
|
49
|
+
> | Tier 2 feature | Import | gzip |
|
|
50
|
+
> |---|---|---|
|
|
51
|
+
> | Trellis (small multiples) | `apexcharts/features/trellis` | 25.7 KB |
|
|
52
|
+
> | Storyboard (scrollytelling) | `apexcharts/features/storyboard` | 8.0 KB |
|
|
53
|
+
> | Perspectives (shareable views) | `apexcharts/features/perspectives` | 6.7 KB |
|
|
54
|
+
> | Ink (annotation authoring) | `apexcharts/features/ink` | 6.2 KB |
|
|
55
|
+
> | Canvas renderer (Strata) | `apexcharts/features/renderer-canvas` | 6.0 KB |
|
|
56
|
+
> | Linked views & crossfilter | `apexcharts/features/link` | 5.3 KB |
|
|
57
|
+
> | Measure ruler | `apexcharts/features/measure` | 4.6 KB |
|
|
58
|
+
> | Rewind (undo / redo) | `apexcharts/features/history` | 3.2 KB |
|
|
59
|
+
> | Context menu | `apexcharts/features/context-menu` | 2.3 KB |
|
|
60
|
+
>
|
|
61
|
+
> The `raincloud` chart type (7.1) is Tier 2 on the same terms: `import 'apexcharts/raincloud'`. Storyboard registers Perspectives, so importing both costs no more than Storyboard alone. **Nothing fails silently**: each warns in the console when its config is present but the module is not, and degrades where it can (a trellis renders as one chart; `renderer: 'canvas'` falls back to SVG). Default bundle: 291,654 B gzipped in 6.10, 252,005 B in 7.0, 264,326 B in 7.1.
|
|
62
|
+
>
|
|
63
|
+
> Everything else stays in the default bundle: **all chart types except raincloud**, axes, tooltips, legend, toolbar, exports, annotations, keyboard navigation, stats, morph, drilldown, themes (Facet), plugins (Weave) and custom series (Marks). See `references/tree-shaking.md` for the full tier table and `references/feature-platform.md` for each feature's API.
|
|
64
|
+
>
|
|
65
|
+
> **Other v7.0 breaking changes.** (1) `plotOptions.bar.borderRadiusWhenStacked` is **removed**; corner ownership now follows the stack's outer edge automatically. An unknown option is ignored, so leaving it in a config is harmless but does nothing. (2) `dataLabels.animate.enabled` now defaults to `true` (bar/column only): labels ride to their new position on a data update instead of snapping. Set `dataLabels: { animate: { enabled: false } }` for the old behavior. Everything else from v5 and v6 keeps working unchanged.
|
|
66
|
+
>
|
|
67
|
+
> **Behaviors that are on by default** (both respect `prefers-reduced-motion`): data updates that add/remove points animate coherently, and mobile pinch-zoom / two-finger pan gestures are enabled.
|
|
68
|
+
>
|
|
69
|
+
> **Premium features and licensing.** Eight features are premium: `trellis` (small multiples, 7.0), `storyboard`, `link` (crossfilter / linked views), `ink` (annotation authoring), `measure`, `context-menu`, `perspectives` (shareable views), and `history` (undo/redo). Two chart types are premium: `unit` / `waffle`, and `raincloud` (7.1). These still function fully, but render an `APEXCHARTS` trial watermark until an entitled license is set via `ApexCharts.setLicense(key)` (static) or per-chart `chart.license`. They require a `premium` or `enterprise` plan; a `pro` key or the free tier keeps the watermark. Every other chart type and free module is never gated. Note that premium and Tier 2 are independent axes: `waterfall`, `dumbbell` and `streamgraph` are free *and* in the default bundle, while `trellis` is both premium *and* an explicit import. See the Licensing section in `references/feature-platform.md`.
|
|
37
70
|
|
|
38
71
|
## 1. Critical Rules
|
|
39
72
|
|
|
@@ -48,11 +81,15 @@ metadata:
|
|
|
48
81
|
9. **For mixed/combo charts**, set `type` on each individual series object, not just on `chart.type`.
|
|
49
82
|
10. **RadialBar values must be 0–100** (they represent percentages).
|
|
50
83
|
11. **Color hex values must include the `#` prefix** (e.g., `'#FF5733'`, not `'FF5733'`).
|
|
51
|
-
12. **
|
|
52
|
-
13. **
|
|
53
|
-
14.
|
|
54
|
-
15. **`
|
|
55
|
-
16. **`
|
|
84
|
+
12. **Nine features are NOT in the v7 default bundle.** Before writing config for `trellis`, `storyboard`, `perspectives`, `ink`, `renderer: 'canvas'`, `link`, `measure`, `history` or the context menu, add its `apexcharts/features/*` import. Same for the `raincloud` chart type. Full-bundle users need this too, not just tree-shakers. See the box above.
|
|
85
|
+
13. **Tree-shaking**: importing `apexcharts/core` gives you a bare class, and you must also import chart-type entries and feature entries separately.
|
|
86
|
+
14. **First-class aliases**: `funnel` and `pyramid` render through the bar engine; `gauge` renders through radialBar. Use them as `chart.type` directly (no `plotOptions.bar.isFunnel` needed). They are covered by the `apexcharts/bar` and `apexcharts/radialBar` tree-shaking entries respectively.
|
|
87
|
+
15. **`violin` (statistical)** uses a per-point density profile: `data: [{ x, y: { density: [[value, weight], ...], points?: [number] } }]`, not a plain number. Since v6.9 a datum may instead supply only raw observations (`points: [number]`, no `y`) and the library derives the density via KDE (needs `apexcharts/features/stats` when tree-shaking).
|
|
88
|
+
16. **`render()` is idempotent**: calling `render()` twice on the same instance returns the same promise instead of building a duplicate chart. You still must `destroy()` before creating a *new* instance on the same element.
|
|
89
|
+
17. **`histogram` (v6.9)** series carry **raw observations** (one number per event), not pre-aggregated counts; the chart chooses bin edges and counts them. Binning ships behind the stats feature: use the `apexcharts/histogram` entry, or `import 'apexcharts/features/stats'` alongside `apexcharts/bar` (the full `apexcharts` bundle already includes it).
|
|
90
|
+
18. **`waterfall` (v7.1) accumulates for you.** The series carries the **deltas**, not the running total. A row that should show the running total carries `isSubtotal` or `isTotal` and **no `y`**; the library measures it. Do not pre-compute cumulative values.
|
|
91
|
+
19. **`dumbbell` (v7.1) takes one series per measure**, each with the same `x` categories: `[{ name: '2020', data: [{ x, y }] }, { name: '2025', data: [{ x, y }] }]`. Do **not** zip the values into `y: [low, high]` pairs; that is the older `plotOptions.bar.isDumbbell` range-bar form, which still works but is a different chart.
|
|
92
|
+
20. **`raincloud` (v7.1) takes the raw sample**, one datum per category: `data: [{ x, points: [number] }]`. It is a premium Tier 2 type, so it needs `import 'apexcharts/raincloud'` on top of the default bundle.
|
|
56
93
|
|
|
57
94
|
---
|
|
58
95
|
|
|
@@ -80,6 +117,10 @@ This is the most critical reference. Using the wrong data format is the #1 cause
|
|
|
80
117
|
| Radar | `'radar'` | `[{ name, data: [number] }]` + `xaxis: { categories: [...] }` | `series: [{ name: 'Skill', data: [80, 50, 30, 40, 100] }]` |
|
|
81
118
|
| Funnel *(v6)* | `'funnel'` | `[{ name, data: [number] }]` + `xaxis: { categories: [...] }`. Order values **largest→smallest**. | `series: [{ data: [1380, 990, 548, 200] }]` |
|
|
82
119
|
| Pyramid *(v6)* | `'pyramid'` | Same as funnel; order values **smallest→largest** (wide base at bottom). | `series: [{ data: [200, 548, 990, 1380] }]` |
|
|
120
|
+
| Waterfall *(v7.1)* | `'waterfall'` | `[{ name, data: [{ x, y }] }]` where **`y` is the signed delta**, not a running total. A running-total row carries `isSubtotal` (sum since the last cut) or `isTotal` (sum from zero) and **omits `y`**. | `series: [{ data: [{ x: 'Revenue', y: 8786 }, { x: 'Costs', y: -2786 }, { x: 'Gross', isSubtotal: true }] }]` |
|
|
121
|
+
| Dumbbell *(v7.1)* | `'dumbbell'` | **One series per measure**, sharing x categories: `[{ name, data: [{ x, y }] }, ...]`. Not `[low, high]` pairs. | `series: [{ name: '2020', data: [{ x: 'Backend', y: 92 }] }, { name: '2025', data: [{ x: 'Backend', y: 118 }] }]` |
|
|
122
|
+
| Streamgraph *(v7.1)* | `'streamgraph'` | Same as area: `[{ name, data: [{ x, y }] }]`. Stacking, baseline and band order are the chart's job, so do **not** set `chart.stacked`. | `series: [{ name: 'Drama', data: [{ x: '2024-01-01', y: 32 }] }]` |
|
|
123
|
+
| Raincloud *(v7.1, premium, Tier 2)* | `'raincloud'` | `[{ name, data: [{ x, points: [number] }] }]`: the **raw sample** per category; the density, box and rain are derived. Needs `import 'apexcharts/raincloud'`. | `series: [{ name: 'Weight gain', data: [{ x: 'Control', points: [3.1, 4.7, 2.9] }] }]` |
|
|
83
124
|
|
|
84
125
|
### Non-Axis Charts (pie, donut, radialBar, polarArea, gauge, unit, waffle)
|
|
85
126
|
|
|
@@ -124,7 +165,7 @@ Configure the centre hole, corner rounding, and inter-arc gap through `plotOptio
|
|
|
124
165
|
## 3. Package / Module Map
|
|
125
166
|
|
|
126
167
|
```
|
|
127
|
-
#
|
|
168
|
+
# Default bundle (every chart type except raincloud, plus the Tier 1 features)
|
|
128
169
|
import ApexCharts from 'apexcharts'
|
|
129
170
|
|
|
130
171
|
# Bare core (no chart types, no optional features — must register manually)
|
|
@@ -139,53 +180,68 @@ import ApexCharts from 'apexcharts/rangeArea' # same as /line
|
|
|
139
180
|
import ApexCharts from 'apexcharts/bar' # bar, column, rangeBar
|
|
140
181
|
import ApexCharts from 'apexcharts/column' # same as /bar
|
|
141
182
|
import ApexCharts from 'apexcharts/rangeBar' # same as /bar
|
|
183
|
+
import ApexCharts from 'apexcharts/waterfall' # waterfall (v7.1): bar engine + the waterfall feature
|
|
184
|
+
import ApexCharts from 'apexcharts/dumbbell' # dumbbell (v7.1): bar engine + the dumbbell feature
|
|
185
|
+
import ApexCharts from 'apexcharts/streamgraph' # streamgraph (v7.1): rangeArea engine + the streamgraph feature
|
|
142
186
|
import ApexCharts from 'apexcharts/candlestick' # candlestick, boxPlot
|
|
143
187
|
import ApexCharts from 'apexcharts/boxPlot' # same as /candlestick
|
|
144
|
-
import ApexCharts from 'apexcharts/violin' # violin
|
|
188
|
+
import ApexCharts from 'apexcharts/violin' # violin
|
|
189
|
+
import ApexCharts from 'apexcharts/raincloud' # raincloud (v7.1, premium): violin engine + the raincloud feature
|
|
145
190
|
import ApexCharts from 'apexcharts/histogram' # histogram (v6.9): bar engine + the stats feature
|
|
146
191
|
import ApexCharts from 'apexcharts/pie' # pie, donut, polarArea
|
|
147
192
|
import ApexCharts from 'apexcharts/donut' # same as /pie
|
|
148
193
|
import ApexCharts from 'apexcharts/polarArea' # same as /pie
|
|
149
|
-
import ApexCharts from 'apexcharts/radialBar' # radialBar + gauge
|
|
194
|
+
import ApexCharts from 'apexcharts/radialBar' # radialBar + gauge
|
|
150
195
|
import ApexCharts from 'apexcharts/radar' # radar only
|
|
151
196
|
import ApexCharts from 'apexcharts/heatmap' # heatmap only
|
|
152
197
|
import ApexCharts from 'apexcharts/treemap' # treemap only
|
|
153
198
|
import ApexCharts from 'apexcharts/sunburst' # sunburst (v6.7, hierarchical)
|
|
154
199
|
import ApexCharts from 'apexcharts/unit' # unit + waffle (v6.6, premium)
|
|
155
|
-
# funnel + pyramid
|
|
200
|
+
# funnel + pyramid render through the bar engine; use apexcharts/bar
|
|
156
201
|
|
|
157
202
|
# Unit-chart shape kit (v6.10): named exports, tree-shaken per shape (~4 KB gzipped each)
|
|
158
203
|
import { heart, outlined, glyphs, preview } from 'apexcharts/unit-shapes'
|
|
159
204
|
|
|
160
|
-
#
|
|
205
|
+
# Pictogram glyphs (v7.0): one drawn mark per unit, independent of the layout
|
|
206
|
+
import { person, registerMarks } from 'apexcharts/pictograms'
|
|
207
|
+
|
|
208
|
+
# TIER 1 features: already in the default `apexcharts` bundle.
|
|
209
|
+
# Import these only when you started from /core or a per-type entry.
|
|
161
210
|
import 'apexcharts/features/exports' # PNG/SVG/CSV export methods
|
|
162
211
|
import 'apexcharts/features/legend' # Interactive legend component
|
|
163
212
|
import 'apexcharts/features/toolbar' # Toolbar (zoom, pan, download buttons)
|
|
164
213
|
import 'apexcharts/features/annotations' # X/Y/point/text/image annotations
|
|
165
214
|
import 'apexcharts/features/keyboard' # Keyboard navigation (accessibility)
|
|
166
215
|
import 'apexcharts/features/stats' # Statistics (v6.9): histogram binning, boxPlot/violin raw samples, rowSeries()
|
|
167
|
-
# v6 feature platform (all opt-in, all tree-shakeable)
|
|
168
216
|
import 'apexcharts/features/morph' # Animated chart-type morphs
|
|
169
217
|
import 'apexcharts/features/drilldown' # Hierarchical drill-down
|
|
170
|
-
import 'apexcharts/features/history' # Undo/redo (Rewind)
|
|
171
|
-
import 'apexcharts/features/perspectives' # Shareable view state
|
|
172
|
-
import 'apexcharts/features/storyboard' # Scrollytelling (includes perspectives)
|
|
173
218
|
import 'apexcharts/features/facet' # Design tokens + OS-aware themes
|
|
174
219
|
import 'apexcharts/features/weave' # Public plugin platform
|
|
175
|
-
import 'apexcharts/features/renderer-canvas' # Hybrid SVG + canvas renderer (Strata)
|
|
176
220
|
import 'apexcharts/features/marks' # Custom series types (registerSeriesType)
|
|
177
|
-
import 'apexcharts/features/
|
|
178
|
-
import 'apexcharts/features/
|
|
179
|
-
import 'apexcharts/features/
|
|
180
|
-
|
|
181
|
-
|
|
221
|
+
import 'apexcharts/features/waterfall' # (v7.1) waterfall chart type
|
|
222
|
+
import 'apexcharts/features/dumbbell' # (v7.1) dumbbell chart type
|
|
223
|
+
import 'apexcharts/features/streamgraph' # (v7.1) streamgraph chart type
|
|
224
|
+
|
|
225
|
+
# TIER 2 features: NOT in the default bundle. Required even on the full bundle.
|
|
226
|
+
import 'apexcharts/features/trellis' # (v7.0) Small multiples (premium)
|
|
227
|
+
import 'apexcharts/features/storyboard' # Scrollytelling (premium; registers perspectives)
|
|
228
|
+
import 'apexcharts/features/perspectives' # Shareable view state (premium)
|
|
229
|
+
import 'apexcharts/features/ink' # On-chart annotation authoring (premium)
|
|
230
|
+
import 'apexcharts/features/renderer-canvas' # Hybrid SVG + canvas renderer (Strata)
|
|
231
|
+
import 'apexcharts/features/link' # Crossfilter / linked views (premium)
|
|
232
|
+
import 'apexcharts/features/measure' # Measure / delta ruler (premium)
|
|
233
|
+
import 'apexcharts/features/history' # Undo/redo (Rewind, premium)
|
|
234
|
+
import 'apexcharts/features/context-menu' # Right-click / long-press context menu (premium)
|
|
235
|
+
import 'apexcharts/features/raincloud' # (v7.1) raincloud chart type (premium)
|
|
236
|
+
|
|
237
|
+
import 'apexcharts/features/all' # Tier 1 only. Does NOT pull in Tier 2.
|
|
182
238
|
|
|
183
239
|
# SSR (server-side rendering)
|
|
184
240
|
import ApexCharts from 'apexcharts/ssr' # Node.js: renderToString, renderToHTML
|
|
185
241
|
import ApexCharts from 'apexcharts/client' # Browser: explicit client import for hydration
|
|
186
242
|
```
|
|
187
243
|
|
|
188
|
-
**Note:**
|
|
244
|
+
**Note (v7):** `apexcharts` gives you every chart type except `raincloud`, plus the Tier 1 features. The nine Tier 2 features and `raincloud` need their own import **whatever entry point you started from**. `apexcharts/features/all` is the Tier 1 set, so it is not a shortcut past this. Tree-shaking entries (`/core`, `/line`, etc.) are for reducing bundle size below the default.
|
|
189
245
|
|
|
190
246
|
**Note (v6.9):** ApexCharts is no longer dependency-free: it depends on `apex-commons` at runtime. npm resolves it automatically and the browser (script-tag) bundles inline it, so no action is needed; it only matters for tooling that assumed zero dependencies.
|
|
191
247
|
|
|
@@ -463,7 +519,9 @@ Also: do NOT use `xaxis.categories` when your data already has `{ x, y }` format
|
|
|
463
519
|
{ responsive: [{ breakpoint: 480, options: {...} }, { breakpoint: 1024, options: {...} }] }
|
|
464
520
|
```
|
|
465
521
|
|
|
466
|
-
### Pitfall 14:
|
|
522
|
+
### Pitfall 14: Missing feature imports
|
|
523
|
+
|
|
524
|
+
Two distinct versions of this. **(a) Per-type entries carry no features:**
|
|
467
525
|
|
|
468
526
|
❌ **WRONG** — toolbar/legend/annotations silently missing:
|
|
469
527
|
```js
|
|
@@ -479,6 +537,22 @@ import 'apexcharts/features/toolbar'
|
|
|
479
537
|
import 'apexcharts/features/annotations'
|
|
480
538
|
```
|
|
481
539
|
|
|
540
|
+
**(b) *(v7)* The full bundle no longer carries the nine Tier 2 features.** This one catches people who never tree-shook anything, and it is the most common v6 → v7 upgrade failure.
|
|
541
|
+
|
|
542
|
+
❌ **WRONG**: the config is right, the module is absent, so the chart renders as one plain chart and logs a warning:
|
|
543
|
+
```js
|
|
544
|
+
import ApexCharts from 'apexcharts'
|
|
545
|
+
new ApexCharts(el, { chart: { type: 'line' }, series, trellis: { by: 'region' } })
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
✅ **CORRECT**:
|
|
549
|
+
```js
|
|
550
|
+
import ApexCharts from 'apexcharts'
|
|
551
|
+
import 'apexcharts/features/trellis'
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
Same for `storyboard`, `perspectives`, `ink`, `renderer: 'canvas'`, `link`, `measure`, `history`, `contextMenu`, and the `raincloud` chart type. Check the console: each one names both import routes when its config is present without it.
|
|
555
|
+
|
|
482
556
|
### Pitfall 15: SSR — wrong import path
|
|
483
557
|
|
|
484
558
|
❌ **WRONG** — using browser bundle in Node.js:
|
|
@@ -552,10 +626,12 @@ await chart.updateOptions({ title: { text: 'New Title' } })
|
|
|
552
626
|
| `addEventListener(name, handler)` | Subscribe to chart event. |
|
|
553
627
|
| `removeEventListener(name, handler)` | Unsubscribe from chart event. |
|
|
554
628
|
|
|
555
|
-
###
|
|
629
|
+
### Feature Instance Methods (require the matching feature import)
|
|
556
630
|
|
|
557
631
|
| Method | Feature | Description |
|
|
558
632
|
|---|---|---|
|
|
633
|
+
| `chart.getPanels() / getPanel(key)` | trellis | *(v7.0)* The grid's panels, and one panel's own ApexCharts instance by facet key. Empty / `null` on a chart that is not a trellis host. |
|
|
634
|
+
| `chart.promotePanel(key) / restorePanels()` | trellis | *(v7.0)* Expand one panel to the grid's full width, and go back. |
|
|
559
635
|
| `chart.history.undo() / redo() / jump(id) / transaction(fn)` | history | Undo/redo over the command journal. |
|
|
560
636
|
| `chart.perspectives.capture() / toURL() / apply(token)` | perspectives | Serialize / restore the exact view. |
|
|
561
637
|
| `chart.getActiveRenderer()` | renderer-canvas | Returns `'svg' \| 'canvas'` currently in use. |
|
|
@@ -582,6 +658,8 @@ await chart.updateOptions({ title: { text: 'New Title' } })
|
|
|
582
658
|
| `ApexCharts.registerUnitLayout(name, fn) / unregisterUnitLayout(name)` | *(v6.9)* Register a named unit-chart layout, referenceable via `plotOptions.unit.positions: '<name>'` with `layout: 'custom'`. |
|
|
583
659
|
| `ApexCharts.crossfilter({ id, records }) / getCrossfilter(id)` | *(v6, Link)* Create / fetch a crossfilter engine. |
|
|
584
660
|
| `ApexCharts.perspectives.fromURL(href)` | *(v6)* Decode a perspective token from a URL. |
|
|
661
|
+
| `ApexCharts.trellis(el, options)` | *(v7.0, Trellis)* Imperative entry point: creates a trellis host (options must carry `trellis.by`). Throws if the trellis feature is not imported. |
|
|
662
|
+
| `registerMarks(defs) / definePictogram(meta)` from `apexcharts/pictograms` | *(v7.0)* Register glyphs so `plotOptions.unit.pictogram.mark: 'person'` resolves. |
|
|
585
663
|
|
|
586
664
|
### SSR Static Methods (available with `apexcharts/ssr`)
|
|
587
665
|
|
|
@@ -645,27 +723,31 @@ await chart.updateOptions({ title: { text: 'New Title' } })
|
|
|
645
723
|
|
|
646
724
|
---
|
|
647
725
|
|
|
648
|
-
## 9.
|
|
726
|
+
## 9. Feature Platform
|
|
649
727
|
|
|
650
|
-
|
|
728
|
+
Every feature below is off by default in config terms. The **Tier** column is about the *bundle*: Tier 1 is already in `import ApexCharts from 'apexcharts'` and needs a `features/*` import only if you started from `/core` or a per-type entry; **Tier 2 needs its import no matter which entry point you used**. Full config shapes, APIs, and examples are in `references/feature-platform.md`.
|
|
651
729
|
|
|
652
|
-
| Feature |
|
|
653
|
-
|
|
654
|
-
| **Weave** (plugins) | `apexcharts/features/weave` | Publish reusable chart plugins against a stable `ApexCharts.registerPlugin({ name, setup })` API; activate per chart with `plugins: [{ name }]`. |
|
|
655
|
-
| **
|
|
656
|
-
| **
|
|
657
|
-
| **
|
|
658
|
-
| **
|
|
659
|
-
| **
|
|
660
|
-
| **Cadence** (easing) | core | `chart.animations.easing` accepts a named curve, cubic-bezier array, or function; `ApexCharts.registerEasing`. |
|
|
661
|
-
| **
|
|
662
|
-
| **
|
|
663
|
-
| **
|
|
664
|
-
| **
|
|
665
|
-
| **
|
|
666
|
-
| **
|
|
667
|
-
| **
|
|
668
|
-
| **
|
|
730
|
+
| Feature | Tier | Import | One-liner |
|
|
731
|
+
|---|---|---|---|
|
|
732
|
+
| **Weave** (plugins) | 1 | `apexcharts/features/weave` | Publish reusable chart plugins against a stable `ApexCharts.registerPlugin({ name, setup })` API; activate per chart with `plugins: [{ name }]`. |
|
|
733
|
+
| **Marks** (custom series) | 1 | `apexcharts/features/marks` | `ApexCharts.registerSeriesType(name, { renderItem })` for first-class custom marks (lollipop, bullet). Baseline is `scales.y(0)`, **not** `api.zeroY`. |
|
|
734
|
+
| **Facet** (themes/tokens) | 1 | `apexcharts/features/facet` | `theme: { follow: 'os', name }`, `--apx-*` CSS custom props, `ApexCharts.registerTheme`. |
|
|
735
|
+
| **Drilldown** | 1 | `apexcharts/features/drilldown` | `drilldown: { enabled, series }` + a `drilldown` id on data points; `chart.drillDown()/drillUp()`. v6.9 adds line/area support, async levels (`onDrillDown` may return a Promise), a loading overlay, and the `drillDownError` event. |
|
|
736
|
+
| **Morph** | 1 | `apexcharts/features/morph` | Animated transitions between chart types. |
|
|
737
|
+
| **Stats** | 1 | `apexcharts/features/stats` | *(v6.9)* Statistics behind histogram binning, boxPlot/violin raw-sample summaries (R type 7 quartiles, KDE), and `chart.rowSeries()`. The `apexcharts/histogram` entry includes it. |
|
|
738
|
+
| **Cadence** (easing) | core | none | `chart.animations.easing` accepts a named curve, cubic-bezier array, or function; `ApexCharts.registerEasing`. |
|
|
739
|
+
| **Streaming** | core | none | `chart: { streaming: { enabled, maxPoints } }` for constant-velocity rolling-window scroll. |
|
|
740
|
+
| **Print layout** | core | none | *(v7.1)* `chart: { print: { enabled, width } }`. The paper box cannot be measured from JS (`clientWidth` and `matchMedia` both report the screen during `beforeprint`), so the chart is re-laid out at a known width for the sheet and restored after. **On by default** at `width: 700` (suits A4 / Letter portrait); a chart already narrower is left alone. `print: false` restores the pre-7.1 behavior. |
|
|
741
|
+
| **Marker batching** | core | none | *(v7.0)* `markers: { largeDatasetThreshold: n }`. Above `n` points, a series' markers are drawn as one path per marker size instead of one element per point. **Opt-in, default `0` (off)**, because merged marker paths are not pixel-identical: overlapping markers lose their individual outlines and dense clusters read flatter. Also covers the markers `showNullDataPoints` adds, which is what makes a null-heavy series slow even at `size: 0`. |
|
|
742
|
+
| **Trellis** (small multiples) | **2** | `apexcharts/features/trellis` | *(v7.0, premium)* `trellis: { by: 'region', minPanelWidth }` splits the series into a grid of real charts sharing one scale, legend, toolbar and crosshair. Also `row` × `column` for 2-D grids. |
|
|
743
|
+
| **Strata** (canvas) | **2** | `apexcharts/features/renderer-canvas` | `chart: { renderer: 'auto', rendererThreshold }` paints the dense series layer to canvas while axes/tooltips/exports stay SVG. Falls back to SVG if the module is missing. |
|
|
744
|
+
| **Rewind** (undo/redo) | **2** | `apexcharts/features/history` | *(premium)* `chart: { history: { enabled: true } }`, then `chart.history.undo()/redo()/jump()/transaction()`. |
|
|
745
|
+
| **Perspectives** (view state) | **2** | `apexcharts/features/perspectives` | *(premium)* `chart.perspectives.capture()/toURL()/apply()` to serialize and restore the exact view. |
|
|
746
|
+
| **Link** (crossfilter) | **2** | `apexcharts/features/link` | *(premium)* `chart: { group, link: { enabled, mode } }` for highlight linking; `ApexCharts.crossfilter({ id, records })` for a filter engine. |
|
|
747
|
+
| **Ink** (annotation authoring) | **2** | `apexcharts/features/ink` | *(premium)* `chart: { ink: { enabled: true } }` makes annotations draggable/resizable with a floating editor. |
|
|
748
|
+
| **Measure** (ruler) | **2** | `apexcharts/features/measure` | *(premium)* `chart: { measure: { enabled, mode } }`; hold a key and drag to read change/percent/slope. v6.1 adds a toolbar tool (`toolbar.tools.measure`, `toolbar.autoSelected: 'measure'`). |
|
|
749
|
+
| **Context menu** | **2** | `apexcharts/features/context-menu` | *(premium)* `chart: { contextMenu: { enabled, items } }` for point-specific right-click actions. |
|
|
750
|
+
| **Storyboard** (scrollytelling) | **2** | `apexcharts/features/storyboard` | *(premium)* `chart.storyboard.bind({ beats })` pairs prose sections with saved views. Registers Perspectives too. |
|
|
669
751
|
|
|
670
752
|
## 10. Reference Routing Table
|
|
671
753
|
|
|
@@ -673,13 +755,13 @@ For detailed chart-family-specific options, data format variants, and full worki
|
|
|
673
755
|
|
|
674
756
|
| Topic | Reference File |
|
|
675
757
|
|---|---|
|
|
676
|
-
| Line, Area, Scatter, Bubble, Range Area | `references/cartesian-charts.md` |
|
|
677
|
-
| Bar, Column, Range Bar, Timeline/Gantt, Funnel, Pyramid | `references/bar-charts.md` |
|
|
678
|
-
| Candlestick, Box Plot, Violin, Histogram | `references/financial-charts.md` |
|
|
679
|
-
| Pie, Donut, Polar Area, Radial Bar, Gauge, Sunburst, Unit, Waffle | `references/circular-charts.md` |
|
|
758
|
+
| Line, Area, Scatter, Bubble, Range Area, Streamgraph | `references/cartesian-charts.md` |
|
|
759
|
+
| Bar, Column, Range Bar, Timeline/Gantt, Funnel, Pyramid, Waterfall, Dumbbell | `references/bar-charts.md` |
|
|
760
|
+
| Candlestick, Box Plot, Violin, Histogram, Raincloud | `references/financial-charts.md` |
|
|
761
|
+
| Pie, Donut, Polar Area, Radial Bar, Gauge, Sunburst, Unit, Waffle, Pictograms | `references/circular-charts.md` |
|
|
680
762
|
| Heatmap, Treemap | `references/grid-charts.md` |
|
|
681
763
|
| Radar | `references/radar-charts.md` |
|
|
682
|
-
|
|
|
683
|
-
| Tree-shaking, Bundle optimization | `references/tree-shaking.md` |
|
|
764
|
+
| Feature platform (small multiples, plugins, canvas, undo/redo, themes, crossfilter, storyboard, ...) | `references/feature-platform.md` |
|
|
765
|
+
| Bundle tiers, Tree-shaking, Bundle optimization | `references/tree-shaking.md` |
|
|
684
766
|
| Server-side rendering, Hydration | `references/ssr.md` |
|
|
685
767
|
| React, Vue, Angular integration | `references/framework-wrappers.md` |
|
package/index.js
CHANGED
|
@@ -20,13 +20,13 @@ export const referenceFiles = [
|
|
|
20
20
|
'bar-charts.md',
|
|
21
21
|
'cartesian-charts.md',
|
|
22
22
|
'circular-charts.md',
|
|
23
|
+
'feature-platform.md',
|
|
23
24
|
'financial-charts.md',
|
|
24
25
|
'framework-wrappers.md',
|
|
25
26
|
'grid-charts.md',
|
|
26
27
|
'radar-charts.md',
|
|
27
28
|
'ssr.md',
|
|
28
29
|
'tree-shaking.md',
|
|
29
|
-
'v6-features.md',
|
|
30
30
|
];
|
|
31
31
|
|
|
32
32
|
/** Resolve a reference file by its filename. Throws if not in the known list. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apexcharts-skill",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "AI coding skill for ApexCharts.js — structured reference docs that help AI assistants (Claude, Cursor, Copilot, etc.) generate correct ApexCharts code.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apexcharts",
|