Releases: freegroup/draw2d
v6.6.4
v6.6.3
🎯 Connection Selection Feedback Examples
✨ New Features
- Added connection_selection_feedback_canvas example demonstrating canvas-level SelectionPolicy
- Added connection_selection_feedback_figure example demonstrating figure-level SelectionFeedbackPolicy via custom router
🔧 Improvements
- Made installEditPolicy() and uninstallEditPolicy() chainable in Canvas.js, Figure.js, and Line.js
- Added helpful console warning in Line.js when incorrect SelectionFeedbackPolicy type is used
- Improved code quality with ES6 spread operator for config merging
📚 Examples
Both examples show visual feedback for selected connections:
- Stroke width doubles
- Color becomes lighter (60%)
- Black outline appears (3px)
Canvas approach: Global policy affecting all connections
Figure approach: Per-connection policy for granular control
v6.6.2 - Connection Selection Feedback
New Features
Connection Selection Feedback Example
Added a new example demonstrating custom visual feedback for selected connections.
**New Example: **
- Custom implementation
- Visual feedback when connections are selected:
- Stroke width doubles
- Color becomes 60% lighter
- 3px black outline appears
- Interactive demo with markdown documentation
- Undo/Redo functionality included
Improvements
- Enhanced documentation with new example
- Updated JSDoc data for policy classes
- Refreshed build artifacts
Files Changed
- Added new example with complete implementation
- Updated documentation and build files
v6.6.1 - Fix Vertex Node Transparency
🔧 draw2d.js v6.6.1
Bug Fix Release
This patch release fixes an issue where vertex nodes (dots) in Circuit routers did not respect the connection's alpha/transparency setting.
🐛 Bug Fixes
- Circuit routers now apply connection opacity to vertex nodes: When a connection has
setAlpha()applied, the vertex nodes at shared port crossings will now display with the same transparency level
🔧 Affected Routers
CircuitConnectionRouterInteractiveCircuitConnectionRouter
📦 Installation
npm install [email protected]🔄 Migration
No breaking changes - drop-in replacement for v6.6.0
Full Changelog: v6.6.0...v6.6.1
v6.6.0 - Optimized Bridge Connection Routers
🎉 draw2d.js v6.6.0
Major Improvements to Bridge Connection Routers
This release brings significant optimizations and bug fixes to all bridge-based connection routers, making them more robust, performant, and visually consistent.
✨ New Features
- Tolerance-based duplicate filter: Prevents multiple bridges at overlapping connections (3px tolerance)
- Per-segment intersection sorting: Correct bridge ordering along horizontal/vertical segments
- Unified cache invalidation: All connections repaint after drag operations for accurate rendering
🚀 Performance Improvements
- Remove used intersections from pool to reduce comparisons
- Optimized intersection handling for complex diagrams
- Consistent coordinate rounding matching Line.intersection()
🐛 Bug Fixes
- Fixed bridges not redrawing after segment drag in interactive routers
- Fixed duplicate bridges when multiple connections overlap
- Fixed 'ghost bridges' appearing at stale positions during drag operations
- Fixed defaultRouter not updating in connection_router example
🔧 Routers Optimized
ManhattanBridgedConnectionRouterInteractiveManhattanBridgedConnectionRouterCircuitConnectionRouter(bridges + vertex dots)InteractiveCircuitConnectionRouter(bridges + vertex dots)
🧹 Code Cleanup
- Removed unused
PolyLine.inverseLerp()instance method - Simplified cache invalidation logic
- Better documentation and consistent patterns across routers
📦 Installation
npm install [email protected]🔄 Migration
No breaking changes - fully backward compatible with v6.5.x
Full Changelog: v6.5.3...v6.6.0
Release v6.5.0
🎉 Release v6.5.0
✨ New Features
- CollapsibleJailhouse Composite Shape: Added new collapsible composite shape to core library
- Modern Toolbar Layouts: Introduced toolbar components with Undo/Redo functionality to examples
🚀 Improvements
- composite_group: Modernized with toolbar and group/ungroup controls
- tooltip_diy: Modernized with toolbar and undo/redo buttons
- composite_raft: Modernized with toolbar and JSON preview panel
- Consistent Layouts: Implemented flex-based layouts across all modernized examples
- Responsive Design: Added 100vh/100vw responsive design
- Code Quality: Improved code formatting (let/const, proper indentation)
- Dependency Cleanup: Removed external CSS dependencies from examples
🐛 Bug Fixes
- Fixed layout consistency across examples
- Improved button state management in toolbars
📦 Distribution
- Built and updated draw2d.js (1.28 MiB minified)
- Updated all example files with new build
🔗 Links
📝 Commits in this Release
- feat(composite): add CollapsibleJailhouse to core library
- refactor(examples): modernize composite_group layout
- refactor(examples): modernize tooltip_diy with toolbar
- refactor(examples): modernize composite_raft with toolbar and JSON panel
- chore: bump version to 6.5.0
v6.3.0
What's Changed
New Features
- Box Layout Classes: Add Box, VBox, HBox, StackBox, GridBox shape classes for easier layout composition
- Jest Testing: Add Jest testing framework with optimized insetPoint function
Bug Fixes
- Fix default locator for StackBox.add() to fix 'locator required' error
- Rewrite StackBox to extend Layout directly (like StackLayout)
Refactoring
- StackBox extends Box instead of Layout directly
- Refactor documentation site styling:
- Modernize AppBar with Vuetify props
- Fix tab visibility (inactive tabs now visible)
- Add proper spacing between tabs and content/navigation
- Improve navigation sidebar styling for both API and Examples
Full Changelog: v6.2.0...v6.3.0
v6.2.0
What's Changed
- remove all connections from a port by @davec82 in #106
- Bump websocket-extensions from 0.1.3 to 0.1.4 in /jsdoc by @dependabot[bot] in #118
- Updated Oval.js so that ovals are rotatable. by @southernprogrammer in #133
- Adding script to build under Windows by @Omcsesz in #204
- fix(SplineConnectionRouter): 🐛 prevent script error by @kusigit in #229
- Add link support for Label by @kusigit in #231
- Added 'target' to connection 'dragend' event by @snakex64 in #236
New Contributors
- @davec82 made their first contribution in #106
- @dependabot[bot] made their first contribution in #118
- @southernprogrammer made their first contribution in #133
- @Omcsesz made their first contribution in #204
- @kusigit made their first contribution in #229
- @snakex64 made their first contribution in #236
Full Changelog: v1.0.37...v6.2.0