Ports the applicable parts of f5#896 to GroupedBar:
Fixes lingering groups on rapid data updates. GroupedBar's group exit transition had no interrupt handler: when a re-render arrived mid exit fade, the group was never removed — its class had already been swapped to barGroupExit, so no later data join could re-adopt or clean it up, leaving a semi-transparent ghost group (with its bars frozen mid-squash) in the DOM forever. Fixed by removing the node on interrupt, mirroring StackedBar's group-level handling.
New barStyle accessor. Same feature as StackedBar's in f5#896: (datum, indexWithinGroup) => StyleDeclaration applies custom inline styles per bar. Keys the component manages itself (fill, cursor, mask) are merged into the render transitions as target values, so they win over defaults like the color accessor while staying animated; other keys are applied instantly and clean up when no longer returned. Unlike StackedBar, opacity is not in the managed set — GroupedBar never animates bar-level opacity.
Depends on f5#896 — the two Core commits (applyInlineStyles, StyleDeclaration export) are cherry-picked from it and will dedupe once it merges.
Dev examples (Per-Bar Styles: actual-vs-projected chart with a movable boundary demonstrating barStyle application and cleanup)
Wrappers (Angular regenerated via autogen; others regenerate to no diff)
Docs (new "Custom Bar Styles" section with a live example; barStyle appears in the auto-generated props table)
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
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.
f5#899
Ports the applicable parts of f5#896 to GroupedBar:
Fixes lingering groups on rapid data updates. GroupedBar's group exit transition had no interrupt handler: when a re-render arrived mid exit fade, the group was never removed — its class had already been swapped to barGroupExit, so no later data join could re-adopt or clean it up, leaving a semi-transparent ghost group (with its bars frozen mid-squash) in the DOM forever. Fixed by removing the node on interrupt, mirroring StackedBar's group-level handling.
New barStyle accessor. Same feature as StackedBar's in f5#896: (datum, indexWithinGroup) => StyleDeclaration applies custom inline styles per bar. Keys the component manages itself (fill, cursor, mask) are merged into the render transitions as target values, so they win over defaults like the color accessor while staying animated; other keys are applied instantly and clean up when no longer returned. Unlike StackedBar, opacity is not in the managed set — GroupedBar never animates bar-level opacity.
🤖 Generated with Claude Code