@node-edit-utils/core 2.3.1 → 2.3.3

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.
Files changed (63) hide show
  1. package/dist/lib/canvas/helpers/getCanvasContainerOrBody.d.ts +1 -0
  2. package/dist/lib/canvas/helpers/getCanvasWindowValue.d.ts +1 -1
  3. package/dist/lib/helpers/adjustForZoom.d.ts +1 -0
  4. package/dist/lib/helpers/createDragHandler.d.ts +69 -0
  5. package/dist/lib/helpers/getNodeProvider.d.ts +1 -0
  6. package/dist/lib/helpers/getNodeTools.d.ts +2 -0
  7. package/dist/lib/helpers/getViewportDimensions.d.ts +4 -0
  8. package/dist/lib/helpers/index.d.ts +9 -1
  9. package/dist/lib/helpers/parseTransform.d.ts +8 -0
  10. package/dist/lib/helpers/toggleClass.d.ts +1 -0
  11. package/dist/lib/node-tools/select/helpers/isInsideViewport.d.ts +1 -0
  12. package/dist/lib/viewport/constants.d.ts +2 -2
  13. package/dist/lib/viewport/label/getViewportLabelsOverlay.d.ts +1 -0
  14. package/dist/lib/viewport/label/helpers/getLabelPosition.d.ts +4 -0
  15. package/dist/lib/viewport/label/helpers/getTransformValues.d.ts +4 -0
  16. package/dist/lib/viewport/label/helpers/getZoomValue.d.ts +1 -0
  17. package/dist/lib/viewport/label/helpers/selectFirstViewportNode.d.ts +5 -0
  18. package/dist/lib/viewport/label/index.d.ts +4 -0
  19. package/dist/lib/viewport/label/isViewportLabelDragging.d.ts +2 -0
  20. package/dist/lib/viewport/label/refreshViewportLabels.d.ts +1 -0
  21. package/dist/lib/viewport/label/setupViewportLabelDrag.d.ts +1 -0
  22. package/dist/node-edit-utils.cjs.js +437 -172
  23. package/dist/node-edit-utils.esm.js +437 -172
  24. package/dist/node-edit-utils.umd.js +437 -172
  25. package/dist/node-edit-utils.umd.min.js +1 -1
  26. package/dist/styles.css +1 -1
  27. package/package.json +1 -1
  28. package/src/lib/canvas/createCanvasObserver.ts +16 -2
  29. package/src/lib/canvas/helpers/getCanvasContainerOrBody.ts +6 -0
  30. package/src/lib/canvas/helpers/getCanvasWindowValue.ts +2 -3
  31. package/src/lib/helpers/adjustForZoom.ts +4 -0
  32. package/src/lib/helpers/createDragHandler.ts +171 -0
  33. package/src/lib/helpers/getNodeProvider.ts +4 -0
  34. package/src/lib/helpers/getNodeTools.ts +6 -0
  35. package/src/lib/helpers/getViewportDimensions.ts +7 -0
  36. package/src/lib/helpers/index.ts +9 -1
  37. package/src/lib/helpers/parseTransform.ts +9 -0
  38. package/src/lib/helpers/toggleClass.ts +9 -0
  39. package/src/lib/node-tools/createNodeTools.ts +11 -5
  40. package/src/lib/node-tools/highlight/clearHighlightFrame.ts +2 -3
  41. package/src/lib/node-tools/highlight/createHighlightFrame.ts +5 -9
  42. package/src/lib/node-tools/highlight/createToolsContainer.ts +3 -6
  43. package/src/lib/node-tools/highlight/helpers/getElementBounds.ts +6 -5
  44. package/src/lib/node-tools/highlight/helpers/getHighlightFrameElement.ts +2 -3
  45. package/src/lib/node-tools/highlight/highlightNode.ts +7 -15
  46. package/src/lib/node-tools/highlight/refreshHighlightFrame.ts +12 -42
  47. package/src/lib/node-tools/highlight/updateHighlightFrameVisibility.ts +2 -3
  48. package/src/lib/node-tools/select/helpers/isInsideViewport.ts +19 -0
  49. package/src/lib/node-tools/select/selectNode.ts +13 -1
  50. package/src/lib/node-tools/text/events/setupMutationObserver.ts +1 -0
  51. package/src/lib/styles/styles.css +48 -1
  52. package/src/lib/viewport/constants.ts +2 -2
  53. package/src/lib/viewport/createViewport.ts +56 -41
  54. package/src/lib/viewport/label/getViewportLabelsOverlay.ts +32 -0
  55. package/src/lib/viewport/label/helpers/getLabelPosition.ts +6 -0
  56. package/src/lib/viewport/label/helpers/getTransformValues.ts +6 -0
  57. package/src/lib/viewport/label/helpers/getZoomValue.ts +4 -0
  58. package/src/lib/viewport/label/helpers/selectFirstViewportNode.ts +18 -0
  59. package/src/lib/viewport/label/index.ts +4 -0
  60. package/src/lib/viewport/label/isViewportLabelDragging.ts +9 -0
  61. package/src/lib/viewport/label/refreshViewportLabels.ts +69 -0
  62. package/src/lib/viewport/label/setupViewportLabelDrag.ts +70 -0
  63. package/src/lib/window/bindToWindow.ts +1 -2
@@ -0,0 +1 @@
1
+ export declare const getCanvasContainerOrBody: () => HTMLElement;
@@ -1 +1 @@
1
- export declare const getCanvasWindowValue: (path: string[], canvasName?: string) => any;
1
+ export declare const getCanvasWindowValue: (path: string[], canvasName?: string) => unknown;
@@ -0,0 +1 @@
1
+ export declare const adjustForZoom: (value: number, zoom: number, precision?: number) => number;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * State tracked during a drag operation
3
+ */
4
+ export interface DragState {
5
+ isDragging: boolean;
6
+ hasDragged: boolean;
7
+ startX: number;
8
+ startY: number;
9
+ }
10
+ /**
11
+ * Callbacks for drag operations
12
+ */
13
+ export interface DragCallbacks {
14
+ /**
15
+ * Called when drag starts
16
+ * @param event - Mouse event that started the drag
17
+ * @param state - Current drag state
18
+ */
19
+ onStart?: (event: MouseEvent, state: DragState) => void;
20
+ /**
21
+ * Called during drag movement
22
+ * @param event - Mouse move event
23
+ * @param state - Current drag state with updated deltas
24
+ */
25
+ onDrag: (event: MouseEvent, state: DragState & {
26
+ deltaX: number;
27
+ deltaY: number;
28
+ }) => void;
29
+ /**
30
+ * Called when drag stops
31
+ * @param event - Mouse event that stopped the drag
32
+ * @param state - Final drag state
33
+ */
34
+ onStop?: (event: MouseEvent, state: DragState) => void;
35
+ /**
36
+ * Called when drag is cancelled (e.g., window blur)
37
+ * @param state - Current drag state
38
+ */
39
+ onCancel?: (state: DragState) => void;
40
+ /**
41
+ * Called on click events to prevent default behavior
42
+ * @param event - Click event
43
+ * @param state - Current drag state
44
+ */
45
+ onPreventClick?: (event: MouseEvent, state: DragState) => void;
46
+ }
47
+ /**
48
+ * Options for configuring the drag handler
49
+ */
50
+ export interface DragHandlerOptions {
51
+ /**
52
+ * Whether to prevent default behavior on start/stop events
53
+ * @default true
54
+ */
55
+ preventDefault?: boolean;
56
+ /**
57
+ * Whether to stop event propagation on start/stop events
58
+ * @default true
59
+ */
60
+ stopPropagation?: boolean;
61
+ }
62
+ /**
63
+ * Creates a reusable drag handler for mouse drag operations
64
+ * @param element - Element that triggers the drag (mousedown listener attached here)
65
+ * @param callbacks - Callbacks for drag lifecycle events
66
+ * @param options - Configuration options
67
+ * @returns Cleanup function to remove all event listeners
68
+ */
69
+ export declare function createDragHandler(element: HTMLElement | SVGElement, callbacks: DragCallbacks, options?: DragHandlerOptions): () => void;
@@ -0,0 +1 @@
1
+ export declare const getNodeProvider: () => HTMLElement | null;
@@ -0,0 +1,2 @@
1
+ import type { NodeTools } from "../node-tools/types";
2
+ export declare const getNodeTools: () => NodeTools | undefined;
@@ -0,0 +1,4 @@
1
+ export declare const getViewportDimensions: () => {
2
+ width: number;
3
+ height: number;
4
+ };
@@ -1 +1,9 @@
1
- export { withRAF, withRAFThrottle, withDoubleRAF } from "./withRAF";
1
+ export { adjustForZoom } from "./adjustForZoom";
2
+ export type { DragCallbacks, DragHandlerOptions, DragState } from "./createDragHandler";
3
+ export { createDragHandler } from "./createDragHandler";
4
+ export { getNodeProvider } from "./getNodeProvider";
5
+ export { getNodeTools } from "./getNodeTools";
6
+ export { getViewportDimensions } from "./getViewportDimensions";
7
+ export { parseTransform2d, parseTransform3d } from "./parseTransform";
8
+ export { toggleClass } from "./toggleClass";
9
+ export { withDoubleRAF, withRAF, withRAFThrottle } from "./withRAF";
@@ -0,0 +1,8 @@
1
+ export declare const parseTransform3d: (transform: string) => {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ export declare const parseTransform2d: (transform: string | null) => {
6
+ x: number;
7
+ y: number;
8
+ };
@@ -0,0 +1 @@
1
+ export declare const toggleClass: (element: Element | null, className: string, condition: boolean) => void;
@@ -0,0 +1 @@
1
+ export declare const isInsideViewport: (element: Element) => boolean;
@@ -1,7 +1,7 @@
1
1
  export declare const DEFAULT_WIDTH = 400;
2
2
  export declare const RESIZE_CONFIG: {
3
- readonly minWidth: 320;
4
- readonly maxWidth: 1680;
3
+ readonly minWidth: 4;
4
+ readonly maxWidth: 2560;
5
5
  };
6
6
  export declare const RESIZE_PRESETS: readonly [{
7
7
  readonly name: "Mobile";
@@ -0,0 +1 @@
1
+ export declare const getViewportLabelsOverlay: () => SVGSVGElement;
@@ -0,0 +1,4 @@
1
+ export declare const getLabelPosition: (labelGroup: SVGGElement) => {
2
+ x: number;
3
+ y: number;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const getTransformValues: (element: HTMLElement) => {
2
+ x: number;
3
+ y: number;
4
+ };
@@ -0,0 +1 @@
1
+ export declare const getZoomValue: () => number;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Selects the first child node inside a viewport element.
3
+ * Skips the resize-handle element if present.
4
+ */
5
+ export declare const selectFirstViewportNode: (viewportElement: HTMLElement) => void;
@@ -0,0 +1,4 @@
1
+ export { getViewportLabelsOverlay } from "./getViewportLabelsOverlay";
2
+ export { isViewportLabelDragging } from "./isViewportLabelDragging";
3
+ export { refreshViewportLabels } from "./refreshViewportLabels";
4
+ export { setupViewportLabelDrag } from "./setupViewportLabelDrag";
@@ -0,0 +1,2 @@
1
+ export declare const isViewportLabelDragging: () => boolean;
2
+ export declare const setViewportLabelDragging: (isDragging: boolean) => void;
@@ -0,0 +1 @@
1
+ export declare const refreshViewportLabels: () => void;
@@ -0,0 +1 @@
1
+ export declare const setupViewportLabelDrag: (labelElement: SVGTextElement, viewportElement: HTMLElement, viewportName: string) => (() => void);