@8btc/whiteboard 0.0.20-alpha.36 → 0.0.20-alpha.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/maze.d.ts CHANGED
@@ -40,6 +40,9 @@ export declare function calculateBottomLeftOfCanvasContent(api: CanvasApi | null
40
40
  * 继承自 CanvasCore,只暴露必要的公开方法
41
41
  */
42
42
  declare class CanvasApi extends CanvasCore {
43
+ #private;
44
+ constructor(el: HTMLDivElement, options?: ConstructorParameters<typeof CanvasCore>[1]);
45
+ dispose(): void;
43
46
  /**
44
47
  * 获取所有可用的工具类型
45
48
  */
@@ -121,6 +124,33 @@ declare class CanvasApi extends CanvasCore {
121
124
  * 如果删除的是 image 节点,会同步删除所有关联的 image-marker
122
125
  */
123
126
  deleteSelectedNodes(): void;
127
+ /**
128
+ * 对指定图片节点(或当前选中节点)进入裁剪模式
129
+ * @param id - 图片节点 ID,不传则使用当前选中节点
130
+ */
131
+ startImageCrop(id?: string): void;
132
+ /**
133
+ * 确认裁剪并退出裁剪模式(保存结果)
134
+ * @param id - 图片节点 ID,不传则使用当前选中节点
135
+ */
136
+ confirmImageCrop(id?: string): void;
137
+ /**
138
+ * 重置指定图片节点(或当前选中节点)的裁剪,还原为完整图片
139
+ * @param id - 图片节点 ID,不传则使用当前选中节点
140
+ */
141
+ resetImageCrop(id?: string): void;
142
+ /**
143
+ * 设置裁剪模式下底图的缩放倍数(≥1,以裁剪框中心为锚点)
144
+ * @param id - 图片节点 ID
145
+ * @param scale - 缩放倍数
146
+ */
147
+ setCropOverlayScale(id: string, scale: number): void;
148
+ /**
149
+ * 设置裁剪模式下底图的透明度(0~1)
150
+ * @param id - 图片节点 ID
151
+ * @param opacity - 透明度值
152
+ */
153
+ setCropOverlayOpacity(id: string, opacity: number): void;
124
154
  /**
125
155
  * 选中指定节点
126
156
  * @param nodeIds - 要选中的节点 ID 数组,不传则取消所有选中
@@ -309,6 +339,7 @@ declare class CanvasApi extends CanvasCore {
309
339
  /* Excluded from this release type: _selectNodes */
310
340
  /* Excluded from this release type: deleteNodes */
311
341
  /* Excluded from this release type: deleteSelectedNodes */
342
+ /* Excluded from this release type: _getKeyboardEl */
312
343
  /**
313
344
  * 销毁 canvas
314
345
  */
@@ -360,6 +391,26 @@ declare class CanvasApi extends CanvasCore {
360
391
  "nodes:sorted": string[];
361
392
  "texteditor:register": any;
362
393
  "texteditor:unregister": void;
394
+ /** 进入裁剪模式:携带裁剪框在容器内的初始位置(px) */
395
+ "crop:start": {
396
+ nodeId: string;
397
+ x: number;
398
+ y: number;
399
+ width: number;
400
+ height: number;
401
+ };
402
+ /** 退出裁剪模式 */
403
+ "crop:end": {
404
+ nodeId: string;
405
+ };
406
+ /** 裁剪框位置/尺寸更新(用于同步工具栏位置) */
407
+ "crop:frameChange": {
408
+ nodeId: string;
409
+ x: number;
410
+ y: number;
411
+ width: number;
412
+ height: number;
413
+ };
363
414
  };
364
415
 
365
416
  declare interface CanvasNode {
@@ -410,9 +461,6 @@ declare class CanvasApi extends CanvasCore {
410
461
  * 重置光标样式
411
462
  */
412
463
  resetCursor(): void;
413
- /**
414
- * 销毁 Stage
415
- */
416
464
  destroy(): void;
417
465
  }
418
466
 
@@ -514,6 +562,20 @@ declare class CanvasApi extends CanvasCore {
514
562
  destroy(): void;
515
563
  }
516
564
 
565
+ /**
566
+ * 图片裁剪变换数据
567
+ * 描述图像位图在裁剪区域内的位置、缩放和旋转
568
+ */
569
+ declare type CropTransform = {
570
+ x: number;
571
+ y: number;
572
+ width: number;
573
+ height: number;
574
+ rotation: number;
575
+ scaleX: number;
576
+ scaleY: number;
577
+ };
578
+
517
579
  /**
518
580
  * 椭圆节点配置
519
581
  */
@@ -605,6 +667,7 @@ declare class CanvasApi extends CanvasCore {
605
667
  declare type ImageNodeConfig = BaseNodeConfig & Omit<default_2.ImageConfig, "image"> & Partial<NodeStyle> & {
606
668
  $_type: "image";
607
669
  $_imageUrl: string;
670
+ $_cropTransform?: CropTransform | null;
608
671
  image?: CanvasImageSource | undefined;
609
672
  };
610
673
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@8btc/whiteboard",
3
3
  "private": false,
4
- "version": "0.0.20-alpha.36",
4
+ "version": "0.0.20-alpha.38",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.js",
7
7
  "module": "./dist/index.js",
@@ -57,6 +57,7 @@
57
57
  "lucide-react": "^0.562.0",
58
58
  "mitt": "^3.0.1",
59
59
  "radix-ui": "^1.4.3",
60
+ "react-colorful": "^5.6.1",
60
61
  "react-hotkeys-hook": "^5.2.4",
61
62
  "tailwind-merge": "^3.4.0",
62
63
  "uuid": "^13.0.0",