Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 23 May 05:46
· 15 commits to main since this release
Immutable release. Only release title and notes can be modified.

This release adds edge routing - parallel edges, reverse edges, and self-loops now render as separate, visually distinguishable curves instead of overlapping on a single line.

Added

  • Edge routing for parallel edges, reverse edges, and self-loops — Multiple arrows between the same components now render as separate, visually distinguishable curves. Reverse arrows render on opposite sides, and self-referencing relations render as visible loops. (#104)

Changed

  • BREAKING: Default ArrowStyle changed to Curved — The default arrow style is now Curved (was Straight). Curved renders a straight line when no control points are provided, and follows bezier control points when they are. (#106)
  • BREAKING: Arrow rendering API accepts control pointsArrowDrawer::draw_arrow, ArrowWithText::render_to_layers, and ArrowWithTextDrawer::draw_arrow_with_text now require an additional control_points: &[Point] parameter. Pass &[] to preserve previous behavior. (#106)
  • BREAKING: Arrow rendering API accepts an optional label positionArrowWithText::render_to_layers and ArrowWithTextDrawer::draw_arrow_with_text now require an additional text_position_override: Option<Point> parameter, and PositionedArrowWithText exposes a with_text_position builder. (#117)

Fixed

  • Removed redundant normalize_offset on embedded diagram containers — Container positions were double-shifted: once during component layout and again during layer composition. The redundant first shift displaced containers from their layout-assigned positions, causing overlap with siblings and cascading misalignment in multi-level nesting. (#111)