# @esengine/node-editor

## 1.4.0

### Minor Changes

- [#438](https://github.com/esengine/esengine/pull/438) [`0d33cf0`](https://github.com/esengine/esengine/commit/0d33cf00977d16e6282931aba2cf771ec2c84c6b) Thanks [@esengine](https://github.com/esengine)! - feat(node-editor): add visual group box for organizing nodes
    - Add NodeGroup model with dynamic bounds calculation based on node pin counts
    - Add GroupNodeComponent for rendering group boxes behind nodes
    - Groups automatically resize to wrap contained nodes
    - Dragging group header moves all nodes inside together
    - Support group serialization/deserialization
    - Export `estimateNodeHeight` and `NodeBounds` for accurate size calculation

    feat(blueprint): add comprehensive math and logic nodes

    Math nodes:
    - Modulo, Abs, Min, Max, Power, Sqrt
    - Floor, Ceil, Round, Sign, Negate
    - Sin, Cos, Tan, Asin, Acos, Atan, Atan2
    - DegToRad, RadToDeg, Lerp, InverseLerp
    - Clamp, Wrap, RandomRange, RandomInt

    Logic nodes:
    - Equal, NotEqual, GreaterThan, GreaterThanOrEqual
    - LessThan, LessThanOrEqual, InRange
    - AND, OR, NOT, XOR, NAND
    - IsNull, Select (ternary)

## 1.3.0

### Minor Changes

- [`3bfb8a1`](https://github.com/esengine/esengine/commit/3bfb8a1c9baba18373717910d29f266a71c1f63e) Thanks [@esengine](https://github.com/esengine)! - feat(node-editor): add box selection and variable node error states
    - Add box selection: drag on empty canvas to select multiple nodes
    - Support Ctrl+drag for additive selection (add to existing selection)
    - Add error state styling for invalid variable references (red border, warning icon)
    - Support dynamic node title via `data.displayTitle`
    - Support hiding inputs via `data.hiddenInputs` array

## 1.2.2

### Patch Changes

- [#435](https://github.com/esengine/esengine/pull/435) [`c2acd14`](https://github.com/esengine/esengine/commit/c2acd14fce83af6cd116b3f2e40607229ccc3d6e) Thanks [@esengine](https://github.com/esengine)! - fix(node-editor): 修复节点收缩后连线不显示的问题
    - 节点收缩时，连线会连接到节点头部（输入引脚在左侧，输出引脚在右侧）
    - 展开后连线会自动恢复到正确位置

## 1.2.1

### Patch Changes

- [#433](https://github.com/esengine/esengine/pull/433) [`2e84942`](https://github.com/esengine/esengine/commit/2e84942ea14c5326620398add05840fa8bea16f8) Thanks [@esengine](https://github.com/esengine)! - fix(node-editor): 修复节点收缩后连线不显示的问题
    - 节点收缩时，连线会连接到节点头部（输入引脚在左侧，输出引脚在右侧）
    - 展开后连线会自动恢复到正确位置

## 1.2.0

### Minor Changes

- [#430](https://github.com/esengine/esengine/pull/430) [`caf3be7`](https://github.com/esengine/esengine/commit/caf3be72cdcc730492c63abe5f1715893f3579ac) Thanks [@esengine](https://github.com/esengine)! - feat(node-editor): 添加 Shadow DOM 样式注入支持 | Add Shadow DOM style injection support

    **@esengine/node-editor**
    - 新增 `nodeEditorCssText` 导出，包含所有编辑器样式的 CSS 文本 | Added `nodeEditorCssText` export containing all editor styles as CSS text
    - 新增 `injectNodeEditorStyles(root)` 函数，支持将样式注入到 Shadow DOM | Added `injectNodeEditorStyles(root)` function for injecting styles into Shadow DOM
    - 支持在 Cocos Creator 等使用 Shadow DOM 的环境中使用 | Support usage in Shadow DOM environments like Cocos Creator

## 1.1.0

### Minor Changes

- [#426](https://github.com/esengine/esengine/pull/426) [`6970394`](https://github.com/esengine/esengine/commit/6970394717ab8f743b0a41e248e3404a3b6fc7dc) Thanks [@esengine](https://github.com/esengine)! - feat: 独立发布节点编辑器 | Standalone node editor release
    - 移动到 packages/devtools 目录 | Move to packages/devtools directory
    - 清理依赖，使包可独立使用 | Clean dependencies for standalone use
    - 可用于 Cocos Creator / LayaAir 插件开发 | Available for Cocos/Laya plugin development
