Chart Builder 3.4.0 – This release brings powerful new drawing tools, interactive popover-based customization, improved copy/paste functionality, and critical fixes for synced charts in tabs.
Drawing Tools
Interactive annotation drawing layer for charts with full support across all chart types.
New Drawing Capabilities
- Line Tool: Draw straight lines with customizable stroke color and width
- Arrow Tool: Lines with arrowhead markers for callouts and emphasis
- Circle Tool: Add circular highlights or indicators
- Rectangle Tool: Draw rectangles for highlighting regions
- Freehand Pen Tool: Removed from this release pending further development
Technical Features
- Responsive coordinate system that scales drawings proportionally with chart resizing
- Selection layer with drag handles for repositioning existing drawings
- Delete functionality for removing drawings
- DrawingsLayer component integrated into all chart types (bar, line, pie, scatter, dot plot, maps, etc.)
- Coordinates stored at reference layout dimensions for consistent rendering across viewports
Popover-Based Data Point Customization
Click directly on chart elements to open contextual popovers for fine-grained customization. This replaces the previous approach of editing data points through the sidebar.
Label Panel
Click on any data label to customize:
- Custom Text Override: Change "8" to "8% of Americans" or any custom label
- Visibility Toggle: Hide specific labels (hidden labels show at reduced opacity in editor)
- Color Picker: Override label color per data point
- Font Controls: Font family, weight, and style (normal/italic)
Shape Panel
Click on bars, circles, pie slices, and other shapes to customize:
- Fill Color: Override the fill color for individual shapes
- Stroke Color: Add or change outline color
- Opacity Slider: Adjust transparency (0-1)
- Stroke Width: Control outline thickness
Supported across: bar charts (horizontal, vertical, stacked, diverging, exploded), pie charts, line chart data points, scatter plots, and dot plots.
Line Segment Panel
Click on line segments between data points to customize individual segments:
- Stroke Color: Change the line color for specific segments
- Stroke Width: Adjust line thickness
- Opacity Slider: Set segment transparency
- Line Style Selector: Solid, dashed, dotted, long dash, or dash-dot patterns
Features 16px invisible hit areas for easy clicking of thin lines, with hover feedback highlighting segments in editor mode.
Architecture
- Key generation uses
{x}::{category}format for shapes/labels and{startX}::{endX}::{category}for segments - Date objects are normalized to ISO strings for consistent keys between editor and frontend
- Full viewport awareness – customizations support desktop, tablet, and mobile overrides
- Documentation added at
plugins/prc-chart-builder/src/chart/edit/popover/panels/README.md
Chart Style Copy/Paste
Re-enabled and enhanced copy/paste functionality for chart styles with cross-window support.
Features
- Cross-Window Persistence: Copy in one browser tab, paste in another via localStorage
- Automatic Refresh: Window focus triggers style refresh detection
- 24-Hour Expiration: Copied styles expire after 24 hours for freshness
- Viewport-Aware: Mobile and tablet style overrides are included in copy/paste
- Style-Only Attributes: Only visual styling is copied, data is excluded
What Gets Copied
- Colors (palette and custom color assignments)
- Layout dimensions (width, height, padding)
- Axis styling (tick labels, axis labels, grid, stroke)
- Legend configuration (orientation, alignment, marker style)
- Tooltip styles
- Label formatting and positioning
- Chart-type-specific options (bar, line, pie, nodes, map, etc.)
What's Excluded
- Chart type and orientation
- Data and categories
- Annotation content
- Custom per-data-point customizations (these are tied to specific data)
Critical Bug Fixes
Synced Charts in Tabs (#2106)
Fixed a critical issue where synced charts inside core/tabs blocks would not render correctly or would cause entity re-parsing errors. The fix addresses:
- TabsList Deep Comparison: Added
prevTabsListReffor proper deep comparison of tabs state, preventing unnecessary re-renders that could cause synced chart context issues - Entity Context Preservation: Improved handling of synced chart table data in nested entity contexts
- Parent ID Resolution: Updated method to correctly get parent block ID when synced charts are nested
Other Fixes
- Freeform Chart ClassName: Changed className check for freeform charts to use
str_contains()instead of exact equality, allowing for additional classes - Map Labels: Fixed map label rendering and popup close behavior
- Exploded Pie Section: Fixed rendering issues with exploded pie chart sections
- Diverging Bar Template: Fixed default template for diverging bar charts
- Diverging Bar Render: Fixed rendering issues with diverging bar charts
- Freeform Data Pollution: Resolved issue where freeform chart data could pollute other chart configurations
- ISO Code Normalization: Normalized ISO codes for line node styles in map charts
Enhancements
Chart Controls
- Added axis stroke and grid stroke properties to dependent and independent axes
- Updated tooltip styles and default values
- Extended label onClick behavior to all chart types
- Added custom shape components for all chart types
- Fixed overflow-x for all chart types
Freeform Charts
- Added freeform inserter filter to allow chart controllers to be added to freeform charts
- Improved freeform chart metadata handling
ID Hardening
- Strengthened block ID generation and handling for improved stability
Migration Notes
This release is fully backward compatible. Existing charts will continue to work without changes. New features (drawing tools, popover customization) are opt-in and won't affect existing content.
Charts using the old label positioning system will continue to function, and new per-data-point customizations can be layered on top.
Full Changelog: v1.4.3…v1.4.4