@node-edit-utils/core 2.3.2 → 2.3.4

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 (136) 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/viewport/label/getViewportLabelOverlay.d.ts +1 -0
  12. package/dist/lib/viewport/label/helpers/selectFirstViewportNode.d.ts +5 -0
  13. package/dist/lib/viewport/label/index.d.ts +5 -3
  14. package/dist/lib/viewport/label/isViewportDragging.d.ts +2 -0
  15. package/dist/lib/viewport/label/refreshViewportLabel.d.ts +8 -0
  16. package/dist/lib/viewport/label/removeViewportLabel.d.ts +5 -0
  17. package/dist/lib/viewport/label/setupViewportDrag.d.ts +1 -0
  18. package/dist/node-edit-utils.cjs.js +342 -280
  19. package/dist/node-edit-utils.esm.js +342 -280
  20. package/dist/node-edit-utils.umd.js +342 -280
  21. package/dist/node-edit-utils.umd.min.js +1 -1
  22. package/dist/styles.css +1 -1
  23. package/package.json +7 -2
  24. package/src/lib/canvas/createCanvasObserver.test.ts +242 -0
  25. package/src/lib/canvas/createCanvasObserver.ts +2 -2
  26. package/src/lib/canvas/disableCanvasKeyboard.test.ts +53 -0
  27. package/src/lib/canvas/disableCanvasKeyboard.ts +1 -1
  28. package/src/lib/canvas/disableCanvasTextMode.test.ts +53 -0
  29. package/src/lib/canvas/disableCanvasTextMode.ts +1 -1
  30. package/src/lib/canvas/enableCanvasKeyboard.test.ts +53 -0
  31. package/src/lib/canvas/enableCanvasKeyboard.ts +1 -1
  32. package/src/lib/canvas/enableCanvasTextMode.test.ts +53 -0
  33. package/src/lib/canvas/enableCanvasTextMode.ts +1 -1
  34. package/src/lib/canvas/helpers/applyCanvasState.test.ts +119 -0
  35. package/src/lib/canvas/helpers/applyCanvasState.ts +1 -1
  36. package/src/lib/canvas/helpers/getCanvasContainer.test.ts +62 -0
  37. package/src/lib/canvas/helpers/getCanvasContainerOrBody.test.ts +51 -0
  38. package/src/lib/canvas/helpers/getCanvasContainerOrBody.ts +6 -0
  39. package/src/lib/canvas/helpers/getCanvasWindowValue.test.ts +116 -0
  40. package/src/lib/canvas/helpers/getCanvasWindowValue.ts +2 -3
  41. package/src/lib/helpers/adjustForZoom.test.ts +65 -0
  42. package/src/lib/helpers/adjustForZoom.ts +4 -0
  43. package/src/lib/helpers/createDragHandler.test.ts +325 -0
  44. package/src/lib/helpers/createDragHandler.ts +171 -0
  45. package/src/lib/helpers/getNodeProvider.test.ts +71 -0
  46. package/src/lib/helpers/getNodeProvider.ts +4 -0
  47. package/src/lib/helpers/getNodeTools.test.ts +50 -0
  48. package/src/lib/helpers/getNodeTools.ts +6 -0
  49. package/src/lib/helpers/getViewportDimensions.test.ts +93 -0
  50. package/src/lib/helpers/getViewportDimensions.ts +7 -0
  51. package/src/lib/helpers/index.ts +9 -1
  52. package/src/lib/helpers/observer/connectMutationObserver.test.ts +127 -0
  53. package/src/lib/helpers/observer/connectResizeObserver.test.ts +147 -0
  54. package/src/lib/helpers/parseTransform.test.ts +117 -0
  55. package/src/lib/helpers/parseTransform.ts +9 -0
  56. package/src/lib/helpers/toggleClass.test.ts +71 -0
  57. package/src/lib/helpers/toggleClass.ts +9 -0
  58. package/src/lib/helpers/withRAF.test.ts +439 -0
  59. package/src/lib/node-tools/createNodeTools.test.ts +373 -0
  60. package/src/lib/node-tools/createNodeTools.ts +0 -1
  61. package/src/lib/node-tools/events/click/handleNodeClick.test.ts +109 -0
  62. package/src/lib/node-tools/events/setupEventListener.test.ts +136 -0
  63. package/src/lib/node-tools/highlight/clearHighlightFrame.test.ts +88 -0
  64. package/src/lib/node-tools/highlight/clearHighlightFrame.ts +2 -3
  65. package/src/lib/node-tools/highlight/createCornerHandles.test.ts +150 -0
  66. package/src/lib/node-tools/highlight/createHighlightFrame.test.ts +237 -0
  67. package/src/lib/node-tools/highlight/createHighlightFrame.ts +5 -9
  68. package/src/lib/node-tools/highlight/createTagLabel.test.ts +135 -0
  69. package/src/lib/node-tools/highlight/createToolsContainer.test.ts +97 -0
  70. package/src/lib/node-tools/highlight/createToolsContainer.ts +3 -6
  71. package/src/lib/node-tools/highlight/helpers/getElementBounds.test.ts +158 -0
  72. package/src/lib/node-tools/highlight/helpers/getElementBounds.ts +6 -5
  73. package/src/lib/node-tools/highlight/helpers/getHighlightFrameElement.test.ts +78 -0
  74. package/src/lib/node-tools/highlight/helpers/getHighlightFrameElement.ts +2 -3
  75. package/src/lib/node-tools/highlight/helpers/getScreenBounds.test.ts +133 -0
  76. package/src/lib/node-tools/highlight/highlightNode.test.ts +213 -0
  77. package/src/lib/node-tools/highlight/highlightNode.ts +7 -15
  78. package/src/lib/node-tools/highlight/refreshHighlightFrame.test.ts +323 -0
  79. package/src/lib/node-tools/highlight/refreshHighlightFrame.ts +12 -42
  80. package/src/lib/node-tools/highlight/updateHighlightFrameVisibility.test.ts +110 -0
  81. package/src/lib/node-tools/highlight/updateHighlightFrameVisibility.ts +2 -3
  82. package/src/lib/node-tools/select/helpers/getElementsFromPoint.test.ts +109 -0
  83. package/src/lib/node-tools/select/helpers/isInsideComponent.test.ts +81 -0
  84. package/src/lib/node-tools/select/helpers/isInsideViewport.test.ts +82 -0
  85. package/src/lib/node-tools/select/helpers/targetSameCandidates.test.ts +81 -0
  86. package/src/lib/node-tools/select/selectNode.test.ts +238 -0
  87. package/src/lib/node-tools/text/events/setupKeydownHandler.test.ts +91 -0
  88. package/src/lib/node-tools/text/events/setupMutationObserver.test.ts +213 -0
  89. package/src/lib/node-tools/text/events/setupNodeListeners.test.ts +133 -0
  90. package/src/lib/node-tools/text/helpers/enterTextEditMode.test.ts +50 -0
  91. package/src/lib/node-tools/text/helpers/handleTextChange.test.ts +201 -0
  92. package/src/lib/node-tools/text/helpers/hasTextContent.test.ts +101 -0
  93. package/src/lib/node-tools/text/helpers/insertLineBreak.test.ts +96 -0
  94. package/src/lib/node-tools/text/helpers/makeNodeEditable.test.ts +56 -0
  95. package/src/lib/node-tools/text/helpers/makeNodeNonEditable.test.ts +57 -0
  96. package/src/lib/node-tools/text/helpers/shouldEnterTextEditMode.test.ts +61 -0
  97. package/src/lib/node-tools/text/nodeText.test.ts +233 -0
  98. package/src/lib/post-message/processPostMessage.test.ts +218 -0
  99. package/src/lib/post-message/sendPostMessage.test.ts +120 -0
  100. package/src/lib/styles/styles.css +3 -3
  101. package/src/lib/viewport/createViewport.test.ts +267 -0
  102. package/src/lib/viewport/createViewport.ts +51 -51
  103. package/src/lib/viewport/events/setupEventListener.test.ts +103 -0
  104. package/src/lib/viewport/label/getViewportLabelOverlay.test.ts +77 -0
  105. package/src/lib/viewport/label/{getViewportLabelsOverlay.ts → getViewportLabelOverlay.ts} +6 -6
  106. package/src/lib/viewport/label/helpers/getLabelPosition.test.ts +51 -0
  107. package/src/lib/viewport/label/helpers/getLabelPosition.ts +3 -5
  108. package/src/lib/viewport/label/helpers/getTransformValues.test.ts +59 -0
  109. package/src/lib/viewport/label/helpers/getTransformValues.ts +3 -5
  110. package/src/lib/viewport/label/helpers/getZoomValue.test.ts +53 -0
  111. package/src/lib/viewport/label/helpers/selectFirstViewportNode.test.ts +105 -0
  112. package/src/lib/viewport/label/helpers/selectFirstViewportNode.ts +26 -0
  113. package/src/lib/viewport/label/index.ts +5 -3
  114. package/src/lib/viewport/label/isViewportDragging.test.ts +35 -0
  115. package/src/lib/viewport/label/isViewportDragging.ts +9 -0
  116. package/src/lib/viewport/label/refreshViewportLabel.test.ts +105 -0
  117. package/src/lib/viewport/label/refreshViewportLabel.ts +50 -0
  118. package/src/lib/viewport/label/refreshViewportLabels.test.ts +107 -0
  119. package/src/lib/viewport/label/refreshViewportLabels.ts +19 -52
  120. package/src/lib/viewport/label/removeViewportLabel.test.ts +67 -0
  121. package/src/lib/viewport/label/removeViewportLabel.ts +20 -0
  122. package/src/lib/viewport/label/setupViewportDrag.test.ts +249 -0
  123. package/src/lib/viewport/label/setupViewportDrag.ts +70 -0
  124. package/src/lib/viewport/resize/createResizeHandle.test.ts +37 -0
  125. package/src/lib/viewport/resize/createResizePresets.test.ts +75 -0
  126. package/src/lib/viewport/resize/updateActivePreset.test.ts +92 -0
  127. package/src/lib/viewport/width/calcConstrainedWidth.test.ts +47 -0
  128. package/src/lib/viewport/width/calcWidth.test.ts +68 -0
  129. package/src/lib/viewport/width/updateWidth.test.ts +78 -0
  130. package/src/lib/window/bindToWindow.test.ts +166 -0
  131. package/src/lib/window/bindToWindow.ts +1 -2
  132. package/dist/lib/viewport/label/getViewportLabelsOverlay.d.ts +0 -1
  133. package/dist/lib/viewport/label/isViewportLabelDragging.d.ts +0 -2
  134. package/dist/lib/viewport/label/setupViewportLabelDrag.d.ts +0 -1
  135. package/src/lib/viewport/label/isViewportLabelDragging.ts +0 -9
  136. package/src/lib/viewport/label/setupViewportLabelDrag.ts +0 -98
@@ -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 getViewportLabelOverlay: () => SVGSVGElement;
@@ -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;
@@ -1,4 +1,6 @@
1
- export { getViewportLabelsOverlay } from "./getViewportLabelsOverlay";
2
- export { isViewportLabelDragging } from "./isViewportLabelDragging";
1
+ export { getViewportLabelOverlay } from "./getViewportLabelOverlay";
2
+ export { isViewportDragging } from "./isViewportDragging";
3
+ export { refreshViewportLabel } from "./refreshViewportLabel";
3
4
  export { refreshViewportLabels } from "./refreshViewportLabels";
4
- export { setupViewportLabelDrag } from "./setupViewportLabelDrag";
5
+ export { removeViewportLabel } from "./removeViewportLabel";
6
+ export { setupViewportDrag } from "./setupViewportDrag";
@@ -0,0 +1,2 @@
1
+ export declare const isViewportDragging: () => boolean;
2
+ export declare const setViewportDragging: (isDragging: boolean) => void;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Refreshes (updates) a viewport label for a single viewport element.
3
+ * Creates the label if it doesn't exist, or updates its position if it does.
4
+ * Similar to refreshHighlightFrame - updates existing elements rather than recreating.
5
+ *
6
+ * @param viewportElement - The viewport element to refresh the label for
7
+ */
8
+ export declare const refreshViewportLabel: (viewportElement: HTMLElement) => void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Removes a viewport label for a single viewport element.
3
+ * @param viewportElement - The viewport element to remove the label for
4
+ */
5
+ export declare const removeViewportLabel: (viewportElement: HTMLElement) => void;
@@ -0,0 +1 @@
1
+ export declare const setupViewportDrag: (labelElement: SVGTextElement, viewportElement: HTMLElement, viewportName: string) => (() => void);