@hy-bricks/canvas
Advanced tools
+24
-0
| # @hy-bricks/canvas | ||
| ## [0.5.0] - 2026-06-03 · free-split 自由分割布局 | ||
| 新增第 6 种容器布局 `free-split`(递归分割树)+ 渲染/编辑 gate 解耦。@hy-bricks 4 包同步升 0.5.0。 | ||
| ### ✨ 新特性 — free-split | ||
| - `containerLayout.mode = 'free-split'`:容器内一棵递归分割树(`SplitBranch` row/col + `SplitLeaf`),每格一个组件。 | ||
| - 设计器可视化编辑(`:free-split-enabled="true"` 开):切分(`⬌` 左右 / `⬍` 上下)、拖分隔条 resize、合并(双击 / hover 合并按钮)、删除分区(`✕`)、移动/交换(`⠿` 拖)、拖组件填格。 | ||
| - handle 出口:`handle.freeSplit.{fill,clear,swap,resize,split,merge}` + `handle.getFreeSplitDropTarget(point)` + leaf/divider 并行选区。 | ||
| - 不可伪造 undo、每操作一次 undo、结构锁(`structureLocked` / `leaf.locked`)。 | ||
| ### ⚠️ BREAKING | ||
| - **`HyperCardPageRenderer` 移除 `freeSplitEnabled` prop** —— 渲染改为 **data-driven**:页面文档里有合法 free-split 就自动按树渲染(任意宿主**零 opt-in**;非法树 fallback 平铺)。若之前给 **Renderer** 传过该 prop,删掉即可,渲染照常。`HyperCardCanvasDesigner` 的 `freeSplitEnabled` prop **保留**(它控编辑)。 | ||
| ### 升级 | ||
| - **不用 free-split 的页面/宿主**:零行为变化(非 free-split 页渲染完全不变)。 | ||
| - **要用 free-split**:① 设计器传 `:free-split-enabled="true"` ② 宿主**后端放行** `mode='free-split'` 校验(id 唯一 / NodeSize ratio>0·min≤max / 深度≤8;参考 `reference-backend`)③ drop 走 `handle.freeSplit.fill`。详见文档「指南 → 自由分割布局(free-split)」。 | ||
| ### 依赖 | ||
| - `@hy-bricks/core@0.5.0`(fixed 组同步)。 | ||
| ## 0.4.3 | ||
@@ -4,0 +28,0 @@ |
+2
-2
| { | ||
| "name": "@hy-bricks/canvas", | ||
| "version": "0.4.3", | ||
| "version": "0.5.0", | ||
| "description": "HyperCard 画布 — 多组件实例编排 / 自由布局 / 拖拽 / 连线 / 属性面板。受控组件,SDK 边界守住:不 fetch / 不知后端 / 不开 Drawer。", | ||
@@ -37,3 +37,3 @@ "keywords": [ | ||
| "vue": "^3.5.0", | ||
| "@hy-bricks/core": "^0.4.3" | ||
| "@hy-bricks/core": "^0.5.0" | ||
| }, | ||
@@ -40,0 +40,0 @@ "devDependencies": { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
509721
23.39%3619
18.35%3
200%