4.1.0
4.1.0 (2026-09-16)
The detailed new feature description can be found at:
billboard.js 4.1.0: Live resizing, configurable subchart, React subpath & CSP-safe worker (dev.to link)
- bar: prevent invalid SVG arc flags on load() with bar.radius (f195b91), closes #4166
- boost: harden worker fallback paths (b4fe41a)
- grid: guard optional grid focus handlers (ce448fb), closes #4205
- plugin-tableview: validate constructor options and warn on invalid input (b98bb3f), closes #4140 by @Loksly
- selection: honor multiple=false and point.focus.only in select API (0b7255c)
- util: Correctly detect empty objects with polluted prototype (78d47ff), closes #4193 by @piotrp
- boost: pre-bundle the worker source and add workerUrl (79aa7ec)
- canvas: support grid line class selectors (61cb9b7), closes #4164
- react: add react subpath export (e801ccf)
- resize: add resize.live to follow the container while resizing (e0309c8), closes #4219
- subchart: add focus grid toggle (2762d02), closes #4176
- subchart: support configurable subchart rendering (37ec4b7), closes #4175
4.1.0-next.3
4.1.0-next.3 (2026-09-14)
4.1.0-next.2
4.1.0-next.2 (2026-09-02)
4.1.0-next.1
4.1.0-next.1 (2026-08-10)
- bar: prevent invalid SVG arc flags on load() with bar.radius (f195b91), closes #4166
- boost: harden worker fallback paths (b4fe41a)
- plugin-tableview: validate constructor options and warn on invalid input (b98bb3f), closes #4140
- selection: honor multiple=false and point.focus.only in select API (0b7255c)
4.0.0
4.0.0 (2026-06-16)
The detailed new feature description can be found at:
billboard.js 4.0 release: Canvas rendering mode, 94.3% faster overall in benchmark! (dev.to link)
- background: Correct background image position in canvas (34009de)
- boost: Correct rootSelector typo in CSS scope initialization (a0673ee), closes #4123
- boost: Reuse Worker and Object URL to prevent memory leak (fc812fb), closes #3720
- canvas: address canvas render review issues (70df3f6)
- canvas: align candlestick labels with wick endpoints (b328da4)
- canvas: align rendering and touch interaction parity (5944cab)
- data: Add type check before 'in' operator in JSON dot-notation path resolver (67c00b9), closes #4116
- data: Handle non-array value for data.json (dc5d04c), closes #4103
- types: Add file extensions to types (02c7bf6), closes #4097
- types: Export shape option types from main entry point (#4109) (f4a236a), closes #4104
- util: camelCase SVG tag/attribute matching in sanitizer (631ddc5), closes #4078 #4106
- util: update sanitization function (#4105) (d492644)
- zoom: fix drag zoom boundary release and circle transition desync (00f6859), closes #4131 #4131
- canvas: add canvas rendering mode (200c99e)
- esm: tree-shakable grid, regions, category modules (678e761)
- funnel: Rotate and spline option (7a7bf25), closes #4024
- plugin-tableview: add numberFormat configuration option (2abe355), closes #4140 #4141 by @Loksly
- esm: chart.export() and chart.flow() are no longer included automatically in the ESM build. Explicit import required:
import bb, { bar, exportApi, flow } from "billboard.js";
bb.generate({ ...bar(), ...exportApi(), ...flow(), data: { ... } });
UMD bundle users are not affected.
- refactor(esm): remove prototype stubs for export and flow modules
Remove the stub implementations and delete calls that were added as fallbacks — they are unnecessary now that the resolver pattern handles lazy loading directly without stub cleanup.
- feat(esm): make grid, regions, category APIs tree-shakable
- Introduce grid(), regions(), category() resolver modules for opt-in ESM import
- Remove apiGrid, apiRegion, apiCategory from axis resolver
- Remove internal grid/region renderers from axis resolver
- Extend Chart/api/stubs with xgrids/ygrids/regions/category/categories stubs
- Add optional chaining in redraw/eventrect/flow/ChartInternal for grid/region methods
- Update UMD entry to auto-invoke new resolvers
- Update ESM entry to export new resolvers
- Point runtime error docs to new MODULE_IMPORTS.md guide
- Add tests for new optional modules
Add CHANGELOG-v4.md for release notes and MODULE_IMPORTS.md as the canonical module import guide referenced from runtime error messages.
- esm: In ESM builds, chart.xgrids()/ygrids(), chart.regions(), chart.category()/categories() now require explicit import:
import bb, {bar, grid, regions, category} from "billboard.js";
grid(); regions(); category(); // run once per app
UMD bundle users are not affected — the UMD entry auto-invokes all resolvers.
4.0.0-next.4
4.0.0-next.4 (2026-06-15)
- canvas: align candlestick labels with wick endpoints (b328da4)