Releases: Flowscape-UI/core-sdk
FlowScape 2.0.2
Improvements
- Improved initial Group support
- Added content-based hit testing for groups
- Stabilized group interaction and resize workflow
- Improved editor UX when working with grouped nodes
Notes
- Advanced rotated-child resize edge cases remain a known limitation
- Deeper transform system improvements are planned for future releases
v2.0.1 — Scene/Overlay/Input architecture update
v2.0.1 (2026-04-14)
This patch focuses on engine internals: scene lifecycle ownership, overlay handle architecture, shape-accurate interaction, and smoother input behavior.
Highlights
- Scene is now the single lifecycle owner for layer renderers and hosts.
- Overlay handles/renderers were split by domains:
shape,transform,free. - Shared base classes were introduced for handles and handle renderers.
- Hit/hover behavior is now shape-accurate across node types.
- Wheel/touchpad interaction became more responsive.
Added
LayerWorldquery/reorder APIs:hasNodefindAllNodesAt,findNodesInRect,findNodesFullyInRectfindAllNodesAtScreen,findNodesInScreenRect,findNodesFullyInScreenRectmoveNodesToTop,moveNodesToBottom,moveNodesTo- Path export API for shapes via
toPathCommands(). - New overlay managers for handle domains and corresponding renderer managers.
Changed
HandleBasenow provides unified behavior for:- node binding/clearing
- normalized positioning defaults
- hit area size API (
hitWidth,hitHeight) - debug style API (fill/stroke type, opacity, size, enable/disable)
- Overlay visual/hover stacking now follows registration order in
LayerOverlay. - Input coordinate conversion in controllers is centralized via
Input.clientToSurfacePoint(...). - Quick Start in
README.mdwas updated to current API (addLayer,bindLayerRenderer,addHost).
Fixed
- Shape-accurate hover/hit for
rect,ellipse,polygon,path,line,text. - Polygon/path renderer sync issues and NodePath resize behavior.
- Transform interaction flow: handle priority, click-vs-drag selection behavior, cursor consistency.
- Wheel handling now accumulates delta per frame.
preventDefaultfor wheel is now scoped toCtrl+wheel(or explicit global option).
Migration Notes
- Replace old setup style:
scene.layerManager.add(...)->scene.addLayer(...)+scene.bindLayerRenderer(...)scene.hostManager.add(host)->scene.addHost(host)
Full Diff
Release v2.0.0
⚠️ Breaking Change
v2.0.0 is not backward compatible with v1.x. This release is a full architectural rewrite of the core SDK. The public API, internal structure, and module boundaries have all changed. Migration from v1.x is not straightforward.
🏗️ Architecture
Before: monolithic structure where rendering, input, and logic were tightly coupled inside god objects. Hard to maintain, impossible to extend without touching internals.
After: clean separation of concerns — every system lives in its own module with explicit boundaries. A human can read and maintain this codebase without AI assistance.
CoreEngine→Sceneas the canonical entry point- Renderer is now modular and swappable
- No more god objects
🎨 Renderer
Before: renderer was baked directly into node classes, making it impossible to swap without rewriting nodes.
After: renderer is fully decoupled. Nodes describe what to render, renderers decide how. Canvas (Konva) remains the default backend but can now be replaced without touching node logic.
🧩 Nodes
Reduced from ~17 nodes to a focused, composable set. Removed nodes weren't deleted — they became parameters:
| Old | New |
|---|---|
ArcNode |
NodeEllipse with arc parameters |
RingNode |
NodeEllipse with inner radius |
ArrowNode |
NodeLine with arrowhead config |
RegularPolygonNode |
NodePolygon |
GifNode, VideoNode |
NodeVideo |
Less surface area, more power per node.
🔌 Plugin System Removed
The old plugin system had deeply entangled dependencies that were impossible to reason about without tracing the full call graph. It has been removed entirely. The new architecture achieves the same extensibility through explicit module composition instead of implicit plugin hooks.
📐 New Core Primitives
A proper foundational layer now ships as part of the SDK:
Camera— full 2D camera with pan, zoom, rotation, coordinate conversion, and lock systemTransform— affine matrix withVector2andMatrixtypesEventEmitter— typed event systemMathF32— float32-compatible math utilitiesInput— layered input system with modular controllers
📁 Structure
The new folder structure mirrors the architecture — each system is self-contained with its own index.ts, types.ts, and implementation files. No more hunting across the codebase to find where something lives.
Release v1.0.8
Published to npm: @flowscape-ui/core-sdk@1.0.8
Changes:
See CHANGELOG.md for details.
Release v1.0.7
Published to npm: @flowscape-ui/core-sdk@1.0.7
Changes:
See CHANGELOG.md for details.
Release v1.0.6
Published to npm: @flowscape-ui/core-sdk@1.0.6
Changes:
See CHANGELOG.md for details.
Release v1.0.5
Published to npm: @flowscape-ui/core-sdk@1.0.5
Changes:
See CHANGELOG.md for details.
Release v1.0.4
Published to npm: @flowscape-ui/core-sdk@1.0.4
Changes:
See CHANGELOG.md for details.
Release v1.0.3
Published to npm: @flowscape-ui/core-sdk@1.0.3
Changes:
See CHANGELOG.md for details.
Release v1.0.2
🚀 Release v1.0.2
Published to npm: @flowscape-ui/core-sdk@1.0.2
Changes
See CHANGELOG.md for details.