Update dependency apexcharts to v5#281
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3c20f70 to
7ef4ba3
Compare
7ef4ba3 to
03dbc6e
Compare
03dbc6e to
b823757
Compare
b823757 to
684a93f
Compare
684a93f to
c64da9b
Compare
c64da9b to
71127b3
Compare
71127b3 to
fe7af9a
Compare
fe7af9a to
2c58123
Compare
2c58123 to
cc05f10
Compare
cc05f10 to
e03bd81
Compare
e03bd81 to
dcde8f5
Compare
dcde8f5 to
52a260a
Compare
52a260a to
9a4e797
Compare
9a4e797 to
88548e5
Compare
fd08913 to
840ff23
Compare
840ff23 to
5b6fecc
Compare
5b6fecc to
c197800
Compare
c197800 to
9c759ab
Compare
9c759ab to
3237c4d
Compare
3237c4d to
486693f
Compare
486693f to
6e9ec01
Compare
6e9ec01 to
c3f98e9
Compare
c3f98e9 to
3fae5d1
Compare
3fae5d1 to
d6263ed
Compare
d6263ed to
455ed1a
Compare
455ed1a to
638a1c0
Compare
638a1c0 to
9d3aba5
Compare
9d3aba5 to
d6bc03b
Compare
d6bc03b to
b3ca74b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.41.0→5.15.2Release Notes
apexcharts/apexcharts.js (apexcharts)
v5.15.2: 💎 Version 5.15.2Compare Source
Fixes
Draw-animation frame no longer touches a destroyed chart
An animated chart (e.g. an
areachart) schedules arequestAnimationFrameduringrender()to run its mask-reveal / draw animation. If the chart was destroyed before that frame fired, the stale callback ran against already-cleared DOM and threw:The classic trigger is React StrictMode, which mounts → unmounts → remounts a component in development: the first mount queues the animation frame, the unmount calls
destroy()(which nullsw.dom.elDefs), and the queued frame then fires against the torn-down chart. Any sufficiently rapid unmount hit the same race.The fix adds an internal
isDestroyedflag, set bydestroy()(but not by updates), that the deferred draw-animation callbacks - mask reveal, stroke draw, and bulk reveal - check and bail on before touching the DOM. The flag is cleared on the next render, so re-mounting re-arms animations normally.This complements the detached-chart
destroy()fix in 5.15.1; together they resolve the teardown crashes tracked in react-apexcharts#602.v5.15.1: 💎 Version 5.15.1Compare Source
A small patch release with a single stability fix: charts that are torn down before they ever mount no longer throw.
Fixes
destroy()no longer throws on an un-mounted / detached chartCalling
destroy()(or an internalclear()) on a chart that never finished rendering threw:This happened when a chart was constructed against an element that wasn't connected to the DOM - so
create()bailed out early before building the SVG, leavingw.dom.Paperundefined - and the chart was then destroyed. Common triggers:useEffectcleanup (or a Vueunmountedhook) tearing the chart down before the element was ever attached.update()firing after the host element had already been removed.The teardown path now guards on the SVG actually having been created, cancels any pending resize redraw, and tolerates a missing
Apex._chartInstancesregistry, so destroying a never-mounted chart is a safe no-op.Fixes react-apexcharts#602 and vue-apexcharts#256.
v5.15.0: 💎 Version 5.15.0Compare Source
New Features
Violin chart type
A new, tree-shakeable
chart.type: 'violin'that renders a kernel-density curve for each category, with an optional overlay of the individual observations ("jitter") that produced it.import ApexCharts from 'apexcharts/violin', or via the full bundle.Box-plot jitter overlay
Box plots can now overlay the raw observations behind each box, via
plotOptions.boxPlot.points. It's off by default and inert unless a data point supplies apoints: number[]array, so existing box-plot charts are unchanged.v5.14.0: 💎 Version 5.14.0Compare Source
✨ New Features
Heatmap gradient legend
An opt-in continuous gradient legend for heatmaps that replaces the categorical legend with a color strip and a hover-tracking arrow.
legend.position(top / right / bottom / left) and a newalignconfig (start/center/end).'70%').colorScale.rangesor sampled from the same shade function the cells use, rendered as a smooth midpoint-anchored gradient (green → blue → yellow → red) that matches the shaded cells.Value-proportional pyramid geometry
chart.type: 'pyramid'now matches the geometry users expect: a single continuous triangle whose stages each own a vertical share proportional to their value, with no gaps between segments.gridWidth) sized by cumulative-value share.Chart-type morph animations
A new, optional, tree-shakeable feature that tweens between chart types instead of the old destroy-and-recreate flicker.
Loaded on demand via
apexcharts/features/morph. It captures the old SVG paths from the DOM before destroy, maps each one onto the new chart-type's element identity, and seeds the new paths so the existing PathMorphing engine interpolates between them. When the source/target types or series shapes are incompatible it falls back to an instant snap.🐛 Fixes
M 0 0(invalid-path edge case).toolbar.menuto theApexLocaletype.v5.13.0: 💎 Version 5.13.0Compare Source
This release focuses on a major visual and behavioral overhaul of tooltips, gauges, and the toolbar, alongside a new zoom-aware LTTB downsampler for very large datasets, a new multi-axis zero-alignment option, and a tightening of the public TypeScript surface.
Features
feat(tooltip): modernized positioning, arrows, and a11y
Tooltip box and arrow now anchor off the bar's rendered DOM rect fixing column/datetime alignment in stacked and grouped charts. Adds a connector arrow (default on) and context-aware placement
tooltip.arrow: boolean(defaulttrue) — render a connector arrow pointing at the data point.feat(gauge): needle options and animation
Three new radial-gauge design knobs and a smoother needle update:
feat(yaxis):
alignZeroWhen multiple y-axes mix sign ranges (for example one spans
-10..15, another0..3), their zero lines no longer share a pixel position - so bars from different axes appear to have different baselines. SettingalignZero: trueon two or more axes now extends each opted-in axis soy=0lands at the same pixel.false(no behavior change unless opted in).feat(toolbar): modernized
Replaces the mixed icon set (filled circles, illustrated hand, heavy magnifier) with a coordinated stroke-only Lucide-style set, and wraps the toolbar in a soft glass pill container with hover and selected-button backgrounds.
Upgrade notes
tooltip.arrow: true). To restore the pre-5.13 look, settooltip.arrow: false. The arrow is auto-suppressed forfollowCursor,fixed.enabled,fillSeriesColor, non-axis charts, and most shared multi-series cases.tooltip.theme,states.filter.type,legend.clusterGroupedSeriesOrientation, andxaxis.axisTicks.borderType. Fix by using one of the documented string values. Reading offopts.wmay also surface, since[key: string]: anywas removed from formatter option types.v5.12.0: 💎 Version 5.12.0Compare Source
New Features
First-class funnel / pyramid / gauge types (8f038155)
chart.typenow accepts'funnel','pyramid', and'gauge'directly. They normalize to the underlying renderer (barwithisFunnelfor funnel/pyramid,radialBarfor gauge) at config time and preservechart.requestedTypefor default selection.Funnel additions:
plotOptions.funnel.shape: 'rectangle' | 'trapezoid'— trapezoid mode draws continuous sloped sides between consecutive stages.plotOptions.funnel.lastShape: 'flat' | 'taper'— controls whether the final stage tapers to a point.Gauge additions:
plotOptions.radialBar.shape: 'arc' | 'needle'.min/max).Samples added under
samples/source/funnel/andsamples/source/gauge/.Accessibility — WCAG 1.4.11 contrast compliance (258def38)
All colours across the 10 built-in theme palettes now pass WCAG 1.4.11 non-text contrast (≥ 3:1) against both the default light and dark backgrounds.
Improvements
TimeScale refactor (005c4f23)
The time-scale tick generator has been rewritten around a single-resolution stride algorithm. The previous mix-and-match label promotion logic has been removed.
src/modules/TimeScale.jsreduced from ~1,231 lines to a focused stride generator.src/utils/DateTime.jsfor tick generation.Bug Fixes
<title>fix (27bc253c) — The root SVG<title>element is removed again, restoring the original fix that had regressed.legend.showForNullSeries = falsecrash (57be77df, #5216) — Settinglegend.showForNullSeries: falseon pie/donut charts no longer throws a runtime error.yaxisarray entries from aresponsivebreakpoint now deep-merge into the matching base-config entries instead of replacing them wholesale.Upgrade Notes
type: 'bar'+plotOptions.bar.isFunnel: trueandtype: 'radialBar'configurations continue to work. Newtype: 'funnel' | 'pyramid' | 'gauge'is opt-in and recommended for new code — it enables the new shape options and gauge sub-features.v5.11.0: 💎 Version 5.11.0Compare Source
Highlights
WCAG 2.2 AA Accessibility Remediation
ApexCharts 5.11.0 ships a comprehensive accessibility overhaul targeting WCAG 2.2 Level AA conformance.
Keyboard & Focus
role="img"and a contextualaria-label(series name, formatted value, category).+/-/0andShift+Arrowas alternatives to drag gestures.ARIA & Semantics
<title>added alongside the existing<desc>; auto-generatedaria-labelincludes series names when no description is supplied.div[role=button]to native<button type="button">(first rule of ARIA)role="status" aria-live="polite"region announces zoom/pan/reset actions to screen readers.Visual & Motion
--apexcharts-focus-colorCSS custom property, themed for light (#​008FFB), dark (#FFD500), and high-contrast (#FFFF00) modes — fixes SC 1.4.11 / 2.4.7.Utils.getContrastRatio()WCAG luminance helper added; high-contrast palette validated ≥ 3:1 against#fffin automated tests — fixes SC 1.4.3 / 1.4.11.@media (prefers-reduced-motion: reduce)shrinks all chart animations to near-zero duration — fixes SC 2.2.2.Tests added:
contrast.spec.js,keyboard-trap.spec.js(Playwright),keyboard-zoom.spec.js(Playwright), extendedaccessibility.spec.jsandkeyboard-navigation.spec.js.Improved Tooltip Hit Detection for Line / Area Charts
closestInMultiArraynow projects the cursor onto each consecutive line segment rather than measuring distance to the nearest marker. This makes clicking between two markers on a line or area chart reliably pick the correct series — previously, whichever series's marker happened to be closest to the empty space was selected, often giving wrong results when many series clustered together. Bar, scatter, and other non-line chart types retain the existing marker-distance logic.Bug Fixes
Tooltip —
shared: falseon line charts (#4983):closestInMultiArraywas ignoring Y distance wheneverallSeriesHasEqualXwastrue, causing a tie across all series so the lowest-index series always won. The X-only fast path is now restricted toshared: true; full Euclidean distance is used otherwise, so the actually-hovered series is correctly identified.Tooltip —
shared: truemarkerClick: Line chart withshared: truenow correctly reports the clicked series index in themarkerClickevent callback.Focus outline on mouse click: Removed the focus outline that incorrectly appeared around the entire chart container on mouse click; focus styles are now shown only during keyboard navigation.
v5.10.6: 💎 Version 5.10.6Compare Source
Bug Fixes
v5.10.5: 💎 Version 5.10.5Compare Source
What's Changed
New Contributors
Full Changelog: apexcharts/apexcharts.js@v5.10.4...v5.10.5
v5.10.4: 💎 Version 5.10.4Compare Source
What's New
'var(--my-color)'directly as a chart color. Swap your entire palette at runtime with a single CSS attribute change. (#5185) Thanks to @codecalmbg) and Romanian (ro) added. Serbian, Swedish, and Ukrainian locale files were also renamed to their correct ISO codes (sr,sv,uk). (#5186) Thanks to @gabriele-vBug Fixes
Performance
updateOptions()andupdateSeries()no longer rebuild internal modulesfrom scratch on every call, reducing re-render overhead on dashboards with frequent data
refreshes. Large datasets also benefit from automatic LTTB downsampling.
Type Safety (JSDoc refactor)
All ~97 JavaScript source files in
src/have been hardened with a JSDoc-first type safety strategy: TypeScript validates the source viacheckJs: truewithout requiring a migration to.tsfiles.npm run typechecknow passes with zero errors under fullstrict: true.What changed:
v5.10.3: 💎 Version 5.10.3Compare Source
Bug Fixes
SSR: Bar/column charts rendered duplicate elements in
renderToString()(1b4bcb1f)SSRElement.appendChildandinsertBeforewere unconditionally pushing thechild onto the children array without checking whether the child already had a
parent. Because
Bar.jscreateselDataLabelsWrap,elGoalsMarkers, andelBarShadowsonce per series but callselSeries.add()on every data-pointiteration, the SSR virtual DOM accumulated N×N bar paths and datalabel groups
instead of N. The fix mirrors standard browser DOM move semantics: if a node
already has a parent it is detached from that parent before being appended.
This affects both
appendChildandinsertBefore.v5.10.2: 💎 Version 5.10.2Compare Source
Bug Fixes
Tree-shaking: ESM entry points were incorrectly eliminated by bundlers
dist/*.esm.jsanddist/features/*.esm.jswere missing from thesideEffectsfield inpackage.json. Bundlers such as Webpack and Rolluptreat files not listed as having side effects as safe to drop when they are
not explicitly imported, which caused chart type and feature registrations to
be silently tree-shaken away in production builds. Adding both glob patterns
ensures the self-registering ESM bundles are always retained.
v5.10.1: 💎 Version 5.10.1Compare Source
Bug Fixes
Chart Registry Survives Duplicate Module Instances
Problem: When a bundler (Vite, webpack, etc.) accidentally creates two separate copies of the ApexCharts module - for example when mixing CJS and ESM imports, or when
optimizeDepsis not configured -ApexCharts.use()would write to one module's registry while the chart renderer read from another. The chart type was effectively never registered, causing a runtime error.Fix: The chart type registry is now stored on
globalThis.__apexcharts_registry__instead of a module-local variable. All module instances share a single registry on the global object, so registration is never silently lost regardless of how many module copies the bundler created.v5.10.0: 💎 Version 5.10.0Compare Source
New Features
Per-Type Modular Entry Points
Every public chart type now has its own dedicated entry point matching the
chart.typestring you already use in config. Previously, users needed to know the internal grouping (e.g.apexcharts/heatmapfor treemap charts); now you import by the exact type name.New entry points:
apexcharts/linelineapexcharts/areaareaapexcharts/scatterscatterapexcharts/bubblebubbleapexcharts/rangeArearangeAreaapexcharts/barbarapexcharts/columnbar(column mode)apexcharts/rangeBarrangeBarapexcharts/candlestickcandlestickapexcharts/boxPlotboxPlotapexcharts/piepieapexcharts/donutdonutapexcharts/polarAreapolarAreaapexcharts/radialBarradialBarapexcharts/radarradarapexcharts/heatmapheatmapapexcharts/treemaptreemap(new standalone entry)Example:
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.includeinvite.config.dist/ File Structure
v5.9.0: 💎 Version 5.9.0Compare Source
New Features
Color-Blind Accessibility Mode (
theme.accessibility.colorBlindMode)A new
theme.accessibilityconfig object provides built-in support for color vision deficiencies.deuteranopiaprotanopiatritanopiahighContrastapexcharts-high-contrastCSS class on wrapper''(default)colorBlindModetakes full priority overtheme.paletteandtheme.monochrome— no conflict resolution needed.ApexTheme.accessibilitytype added toapexcharts.d.ts.highContrastmode adds theapexcharts-high-contrastCSS class to the chart wrapper for custom CSS targeting; it does not mutate any config options.Tree-Shaking: Sub-Entry Bundle Deduplication
Previously, each chart-type sub-entry (
bar.esm.js,line.esm.js, etc.) and feature sub-entry (features/legend.esm.js, etc.) bundled its own private copy of all shared ApexCharts utilities (Core, Fill, Graphics, Theme, etc.), resulting in significant duplication when multiple sub-entries were loaded together.v5.9.0 fixes this:
vite.config.mjs: acoreExternalPluginexternalizes ~60 shared modules from sub-entry builds — they are resolved fromapexcharts/coreat runtime instead of being re-bundled.src/entries/core.js: all shared utilities are re-exported under internal__apex_*names, making them available to sub-entries without additional network requests or parse overhead.src/modules/Core.js: removed a directLegendimport that was pulling the entire legend module into the core chunk unnecessarily; uses the already-initializedctx.legendinstance instead.Impact: When using the tree-shaking API with multiple chart types or features, total JS parse/execute size is significantly reduced. The
apexcharts/corebundle is loaded once; all sub-entries share it.Bug Fixes
Core.jsno longer constructs a throwawayLegendinstance just to measure legend dimensions — it reads from the already-initializedctx.legendinstance, avoiding a redundant import in the core chunk.dist/ File Structure
v5.8.1Compare Source
v5.8.0: 💎 Version 5.8.0Compare Source
Bug Fixes
dist/coreanddist/features/*build artifacts introduced in v5.7.0 (#5177)src/ssr/index.js(v5.7.1 patch)SVG is not a functioncrash inrenderToHTML/renderToString—global.SVGwas not registered in the Node.js SSR path (v5.7.1 patch)v5.7.1Compare Source
v5.7.0: 💎 Version 5.7.0Compare Source
Features
Feature-level tree-shaking
ApexCharts now ships modular entry points so you can import only the chart types
and features your application actually uses. This can cut bundle size substantially
for apps that don't need the full chart catalogue.
Chart-type entry points
apexcharts/lineapexcharts/barapexcharts/pieapexcharts/radialapexcharts/candlestickapexcharts/heatmapapexcharts/treemapapexcharts/rangeareaapexcharts/boxplotapexcharts/funnelapexcharts/radarFeature entry points
apexcharts/features/legendapexcharts/features/toolbarapexcharts/features/exportsapexcharts/features/annotationsapexcharts/features/keyboardThe standard
import ApexCharts from 'apexcharts'import continues to workunchanged — all chart types and features are included by default.
Keyboard navigation
Charts are now keyboard-accessible. After focusing a chart (tab or click), users
can navigate between data points using the arrow keys. The tooltip and active
marker update as focus moves between points. This meets WCAG 2.1 AA keyboard
interaction requirements.
Enable via the optional feature entry point:
Keyboard navigation is included automatically in the full bundle.
Server-side rendering (SSR)
SSRRenderer.renderToString(config)andSSRRenderer.renderToHTML(config)nowwork in Node.js without a browser DOM. Useful for generating static SVG images,
pre-rendering chart HTML for emails, or server-driven PDF pipelines.
Internal / Architecture
These changes are transparent to users but lay the groundwork for future
performance and bundle-size improvements.
ctx) pattern —required to make tree-shaking work correctly at the module level.
window/document/navigatoraccesses throughout thesource; all browser API calls now go through SSR-safe wrappers.
v5.6.0: 💎 Version 5.6.0Compare Source
Bug Fixes
Critical Fix: Tooltip and Chart Interactions Restored (#5168)
<foreignObject>element, which contains the legend wrapper, was incorrectly positioned as the last child in the SVG DOM, causing it to overlay and block all mouse events on the chart<foreignObject>is always the first child element (at the back of the z-order), allowing chart interactions to work properlyComprehensive DOM Ordering Tests
If you experienced tooltip or interaction issues in v5.5.0/v5.5.1, this release fully resolves those problems. Simply upgrade to v5.6.0 - no code changes required on your end.
v5.5.1Compare Source
v5.5.0: 💎 Version 5.5.0Compare Source
Major Features
Server-Side Rendering (SSR) Support
ApexCharts now fully supports SSR for Next.js, Nuxt, SvelteKit, Astro, and other modern meta-frameworks! This has been one of the most requested features. (#4288)
Server-side rendering:
Client-side hydration:
Package exports:
import ApexCharts from 'apexcharts'(orapexcharts/client)import ApexCharts from 'apexcharts/ssr'Accessibility Support
Added comprehensive accessibility features to make charts usable for everyone:
📦 Bundle Sizes
Browser bundles:
apexcharts.esm.js: 878 KB (unminified)apexcharts.common.js: 462 KB (minified CommonJS)apexcharts.min.js: 462 KB (minified UMD)SSR bundles (new!):
apexcharts.ssr.esm.js: 891 KB (unminified ESM for Node.js)apexcharts.ssr.common.js: 467 KB (minified CommonJS for Node.js)Breaking Changes
None! This release is fully backward compatible with v5.4.0.
v5.4.0: 💎 Version 5.4.0Compare Source
🚀 Major Changes
Build System Modernization
Performance Improvements
🐛 Bug Fixes
Refactoring & Code Quality
Testing Improvements
💝 Contributors
Thank you to all contributors:
v5.3.6: 💎 Version 5.3.6Compare Source
What's Changed
New Contributors
Full Changelog: apexcharts/apexcharts.js@v5.3.3...v5.3.6
v5.3.5Compare Source
v5.3.4Compare Source
v5.3.3: 💎 Version 5.3.3Compare Source
What's Changed
New Contributors
Full Changelog: apexcharts/apexcharts.js@v5.3.0...v5.3.3
v5.3.2Compare Source
v5.3.1Compare Source
v5.3.0: 💎 Version 5.3.0Compare Source
What's changed
ApexCharts now supports direct parsing and mapping of raw data objects, eliminating the need for manual data transformation. Complete documentation for this feature - https://apexcharts.com/docs/parsing-data/
These chart types now support XY series formats making it consistent with the rest of the chart types. Read the documentation for this change - https://apexcharts.com/docs/series/
v5.2.0Compare Source
v5.1.0Compare Source
v5.0.0Compare Source
v4.7.0: 💎 Version 4.7.0Compare Source
What's Changed
Cleaned up misplaced resolve() call in updateOptions()
v4.6.0: 💎 Version 4.6.0Compare Source
What's Changed
New Contributors
Full Changelog: apexcharts/apexcharts.js@v4.5.0...v4.6.0
v4.5.0: 💎 Version 4.5.0Compare Source
What's Changed
Configuration
📅 Schedule: (in timezone Asia/Jerusalem)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.