@tumaet/apollon 4.2.7 → 4.2.9

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 (50) hide show
  1. package/dist/apollon-editor.d.ts +1 -0
  2. package/dist/assets/style.css +1 -1
  3. package/dist/components/AlignmentGuides.d.ts +1 -0
  4. package/dist/components/DraggableGhost.d.ts +1 -1
  5. package/dist/components/ScrollOverlay.d.ts +1 -1
  6. package/dist/components/index.d.ts +1 -0
  7. package/dist/components/svgs/edges/InlineMarker.d.ts +62 -0
  8. package/dist/components/svgs/edges/index.d.ts +1 -1
  9. package/dist/components/svgs/nodes/classDiagram/ClassSVG.d.ts +1 -1
  10. package/dist/components/svgs/nodes/classDiagram/ColorDescriptionSVG.d.ts +2 -2
  11. package/dist/components/svgs/nodes/classDiagram/TitleAndDescriptionSVG.d.ts +1 -1
  12. package/dist/components/svgs/nodes/communicationDiagram/CommunicationObjectNameSVG.d.ts +1 -1
  13. package/dist/components/svgs/nodes/objectDiagram/ObjectNameSVG.d.ts +1 -1
  14. package/dist/constants.d.ts +176 -0
  15. package/dist/edges/Connection.d.ts +6 -1
  16. package/dist/edges/GenericEdge.d.ts +2 -1
  17. package/dist/edges/edgeTypes/ActivityDiagramEdge.d.ts +1 -1
  18. package/dist/edges/edgeTypes/BPMNDiagramEdge.d.ts +1 -1
  19. package/dist/edges/edgeTypes/ClassDiagramEdge.d.ts +1 -1
  20. package/dist/edges/edgeTypes/CommunicationDiagramEdge.d.ts +1 -1
  21. package/dist/edges/edgeTypes/ComponentDiagramEdge.d.ts +1 -1
  22. package/dist/edges/edgeTypes/DeploymentDiagramEdge.d.ts +1 -1
  23. package/dist/edges/edgeTypes/FlowChartEdge.d.ts +1 -1
  24. package/dist/edges/edgeTypes/ObjectDiagramEdge.d.ts +1 -1
  25. package/dist/edges/edgeTypes/PetriNetEdge.d.ts +1 -1
  26. package/dist/edges/edgeTypes/ReachabilityGraphArc.d.ts +1 -1
  27. package/dist/edges/types.d.ts +28 -28
  28. package/dist/hooks/index.d.ts +1 -0
  29. package/dist/hooks/useNodeDrag.d.ts +2 -0
  30. package/dist/hooks/useStraightPathEdge.d.ts +1 -3
  31. package/dist/index.js +34561 -32122
  32. package/dist/store/alignmentGuidesStore.d.ts +13 -0
  33. package/dist/store/context.d.ts +3 -0
  34. package/dist/store/index.d.ts +2 -1
  35. package/dist/types/SVG.d.ts +1 -1
  36. package/dist/utils/alignmentUtils.d.ts +32 -0
  37. package/dist/utils/edgeUtils.d.ts +1 -1
  38. package/dist/utils/exportUtils.d.ts +97 -1
  39. package/dist/utils/flatSvgExporter.d.ts +8 -0
  40. package/dist/utils/index.d.ts +2 -0
  41. package/dist/utils/pathParsing.d.ts +54 -0
  42. package/package.json +14 -5
  43. package/dist/components/svgs/edges/markers/SvgMarkers.d.ts +0 -1
  44. package/dist/components/svgs/edges/markers/index.d.ts +0 -1
  45. package/dist/constants/canvasConstants.d.ts +0 -6
  46. package/dist/constants/dropElementConfig.d.ts +0 -14
  47. package/dist/constants/edgeConstants.d.ts +0 -13
  48. package/dist/constants/index.d.ts +0 -4
  49. package/dist/constants/layoutConstants.d.ts +0 -9
  50. package/dist/constants/zindexConstants.d.ts +0 -9
@@ -12,6 +12,7 @@ export declare class ApollonEditor {
12
12
  private readonly metadataStore;
13
13
  private readonly popoverStore;
14
14
  private readonly assessmentSelectionStore;
15
+ private readonly alignmentGuidesStore;
15
16
  private subscribers;
16
17
  constructor(element: HTMLElement, options?: Apollon.ApollonOptions);
17
18
  private setReactFlowInstance;
@@ -1 +1 @@
1
- .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgb(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgb(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color, var(--xy-background-color-props, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--apollon2-primary: var(--apollon-primary, #3e8acc);--apollon2-primary-contrast: var(--apollon-primary-contrast, #212529);--apollon2-secondary: var(--apollon-secondary, #6c757d);--apollon2-alert-warning-yellow: var(--apollon-alert-warning-yellow, #ffc107);--apollon2-alert-warning-background: var(--apollon-alert-warning-background, #fff3cd);--apollon2-alert-warning-border: var(--apollon-alert-warning-border, #ffeeba);--apollon2-background: var(--apollon-background, white);--apollon2-background-inverse: var(--apollon-background-inverse, #000000);--apollon2-background-variant: var(--apollon-background-variant, #f8f9fa);--apollon2-gray: var(--apollon-gray, #e9ecef);--apollon2-grid: var(--apollon-grid, rgba(36, 39, 36, .1));--apollon2-gray-variant: var(--apollon-gray-variant, #495057);--apollon2-alert-danger-color: var(--apollon-alert-danger-color, #721c24);--apollon2-alert-danger-background: var(--apollon-alert-danger-background, #f8d7da);--apollon2-alert-danger-border: var(--apollon-alert-danger-border, #f5c6cb);--apollon2-switch-box-border-color: var(--apollon-switch-box-border-color, #dee2e6);--apollon2-list-group-color: var(--apollon-list-group-color, #ffffff);--apollon2-btn-outline-secondary-color: var(--apollon-btn-outline-secondary-color, #6c757d);--apollon2-modal-bottom-border: var(--apollon-modal-bottom-border, #e9ecef);--xy-controls-button-background-color: var(--apollon2-background)}.react-flow{--panel-background: var(--apollon2-background);--panel-shadow: 0 0 4px 0 var(--apollon2-background-variant);--text: var(--apollon2-primary-contrast);--xy-edge-stroke: var(--apollon2-primary-contrast);--xy-minimap-mask-background-color-props: #00000020}.react-flow__controls-button{background:none;border-bottom:none}.react-flow__panel,.react-flow__node-toolbar{background-color:var(--panel-background);box-shadow:var(--panel-shadow);border-radius:8px;padding:8px}.react-flow svg{display:block}.react-flow__node-toolbar{display:flex;gap:8px}.react-flow__controls-button,.react-flow__controls-button:hover{background:var(--panel-background);border-bottom:none}.react-flow__controls-button>svg{fill:var(--text)}.react-flow__handle{opacity:0;background-color:#639af2}.react-flow__resize-control line{z-index:9}.react-flow__resize-control.handle{z-index:20}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:.6;background-color:#639af2}.edge-circle{opacity:0;background-color:#639af2}.react-flow__edge:hover .edge-circle,.react-flow__edge.selected .edge-circle{opacity:.4;padding:4px;fill:#007bff}.react-flow__edge:hover .edge-overlay,.react-flow__edge:hover .edge-marker-highlight,.react-flow__edge.selected .edge-overlay,.react-flow__edge.selected .edge-marker-highlight{opacity:.4;padding:4px;stroke:#007bff;stroke-width:15px}.react-flow__node:hover,.react-flow__node.selected{opacity:.9}.react-flow__edges{z-index:9999}.react-flow__node{z-index:9998}.react-flow__minimap-mask{fill:"#f2f2f2";opacity:.6}.prevent-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.control-button{background-color:var(--apollon2-background);border:1px solid var(--apollon2-gray-variant);border-radius:8px;padding:6px 8px;cursor:pointer;opacity:1;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;font-size:14px;font-weight:700;transition:background-color .2s ease}.control-button:hover:not(.disabled){background-color:var(--apollon2-background-variant)}.control-button.disabled{cursor:not-allowed;opacity:.5}.control-button.disabled:hover{background-color:var(--apollon2-background)}.horizontally-not-resizable .react-flow__resize-control.top.line:hover,.horizontally-not-resizable .react-flow__resize-control.bottom.line:hover,.vertically-not-resizable .react-flow__resize-control.right.line:hover,.vertically-not-resizable .react-flow__resize-control.left.line:hover{cursor:grab}.MuiSelect-select,.MuiFormLabel-root{color:var(--apollon2-primary-contrast)!important}.MuiOutlinedInput-notchedOutline{border-color:var(--apollon2-primary-contrast)!important}.MuiSvgIcon-root{color:var(--apollon2-primary-contrast)!important}.scroll-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000026;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px);z-index:10;cursor:not-allowed;animation:fadeIn .2s ease-in-out;display:flex;align-items:center;justify-content:center;pointer-events:auto}.scroll-overlay-hint{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:11}.scroll-overlay-hint-content{background-color:var(--apollon2-background);border:2px solid var(--apollon2-primary);border-radius:8px;padding:16px 24px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center}.scroll-overlay-hint-text{margin:0;color:var(--apollon2-primary);font-weight:600;font-size:14px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
1
+ .alignment-guides-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999}.alignment-guide-line{stroke-width:1;stroke-dasharray:5,5;pointer-events:none;opacity:.8;animation:alignmentPulse .8s ease-in-out infinite}.alignment-guide-vertical{stroke:var(--apollon2-guide-vertical, #d63031)}.alignment-guide-horizontal{stroke:var(--apollon2-guide-horizontal, #0984e3)}@keyframes alignmentPulse{0%,to{opacity:.8}50%{opacity:.5}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgb(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgb(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color, var(--xy-background-color-props, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--apollon2-primary: var(--apollon-primary, #3e8acc);--apollon2-primary-contrast: var(--apollon-primary-contrast, #000000);--apollon2-secondary: var(--apollon-secondary, #6c757d);--apollon2-alert-warning-yellow: var(--apollon-alert-warning-yellow, #ffc107);--apollon2-alert-warning-background: var( --apollon-alert-warning-background, #fff3cd );--apollon2-alert-warning-border: var(--apollon-alert-warning-border, #ffeeba);--apollon2-background: var(--apollon-background, white);--apollon2-background-inverse: var(--apollon-background-inverse, #000000);--apollon2-background-variant: var(--apollon-background-variant, #f8f9fa);--apollon2-gray: var(--apollon-gray, #e9ecef);--apollon2-grid: var(--apollon-grid, rgba(36, 39, 36, .1));--apollon2-gray-variant: var(--apollon-gray-variant, #495057);--apollon2-alert-danger-color: var(--apollon-alert-danger-color, #721c24);--apollon2-alert-danger-background: var( --apollon-alert-danger-background, #f8d7da );--apollon2-alert-danger-border: var(--apollon-alert-danger-border, #f5c6cb);--apollon2-switch-box-border-color: var( --apollon-switch-box-border-color, #dee2e6 );--apollon2-list-group-color: var(--apollon-list-group-color, #ffffff);--apollon2-btn-outline-secondary-color: var( --apollon-btn-outline-secondary-color, #6c757d );--apollon2-modal-bottom-border: var(--apollon-modal-bottom-border, #e9ecef);--xy-controls-button-background-color: var(--apollon2-background)}.react-flow{--panel-background: var(--apollon2-background);--panel-shadow: 0 0 4px 0 var(--apollon2-background-variant);--text: var(--apollon2-primary-contrast);--xy-edge-stroke: var(--apollon2-primary-contrast);--xy-edge-stroke-width: 2px;--xy-minimap-mask-background-color-props: #00000020}.react-flow__controls-button{background:none;border-bottom:none}.react-flow__panel,.react-flow__node-toolbar{background-color:var(--panel-background);box-shadow:var(--panel-shadow);border-radius:8px;padding:8px}.react-flow svg{display:block}.react-flow__node-toolbar{display:flex;gap:8px}.react-flow__controls-button,.react-flow__controls-button:hover{background:var(--panel-background);border-bottom:none}.react-flow__controls-button>svg{fill:var(--text)}.react-flow__handle{opacity:0;background-color:#639af2}.react-flow__resize-control line{z-index:9}.react-flow__resize-control.handle{z-index:20}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:.6;background-color:#639af2}.edge-circle{opacity:0;background-color:#639af2}.react-flow__edge:hover .edge-circle,.react-flow__edge.selected .edge-circle{opacity:.4;padding:4px;fill:#007bff}.react-flow__edge:hover .edge-overlay,.react-flow__edge:hover .edge-marker-highlight,.react-flow__edge.selected .edge-overlay,.react-flow__edge.selected .edge-marker-highlight{opacity:.4;padding:4px;stroke:#007bff;stroke-width:15px}.react-flow__node:hover,.react-flow__node.selected{opacity:.9}.react-flow__edges{z-index:9999}.react-flow__node{z-index:9998}svg.react-flow__connectionline{z-index:10000}.react-flow__connection-path{stroke:var(--xy-edge-stroke);stroke-width:var(--xy-edge-stroke-width);opacity:.5}.react-flow__minimap-mask{fill:"#f2f2f2";opacity:.6}.prevent-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.control-button{background-color:var(--apollon2-background);border:1px solid var(--apollon2-gray-variant);border-radius:8px;padding:6px 8px;cursor:pointer;opacity:1;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;font-size:14px;font-weight:700;transition:background-color .2s ease}.control-button:hover:not(.disabled){background-color:var(--apollon2-background-variant)}.control-button.disabled{cursor:not-allowed;opacity:.5}.control-button.disabled:hover{background-color:var( --apollon2-background )}.horizontally-not-resizable .react-flow__resize-control.top.line:hover,.horizontally-not-resizable .react-flow__resize-control.bottom.line:hover,.vertically-not-resizable .react-flow__resize-control.right.line:hover,.vertically-not-resizable .react-flow__resize-control.left.line:hover{cursor:grab}.MuiSelect-select,.MuiFormLabel-root{color:var(--apollon2-primary-contrast)!important}.MuiOutlinedInput-notchedOutline{border-color:var(--apollon2-primary-contrast)!important}.MuiSvgIcon-root{color:var(--apollon2-primary-contrast)!important}.scroll-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000026;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px);z-index:10;cursor:not-allowed;animation:fadeIn .2s ease-in-out;display:flex;align-items:center;justify-content:center;pointer-events:auto}.scroll-overlay-hint{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:11}.scroll-overlay-hint-content{background-color:var(--apollon2-background);border:2px solid var(--apollon2-primary);border-radius:8px;padding:16px 24px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center}.scroll-overlay-hint-text{margin:0;color:var(--apollon2-primary);font-weight:600;font-size:14px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
@@ -0,0 +1 @@
1
+ export declare const AlignmentGuides: () => JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { DropElementConfig } from '../constants/dropElementConfig';
2
+ import { DropElementConfig } from '../constants';
3
3
  interface DraggableGhostProps {
4
4
  children: React.ReactNode;
5
5
  dropElementConfig: DropElementConfig;
@@ -2,6 +2,6 @@ import { default as React } from 'react';
2
2
  /**
3
3
  * ScrollOverlay Component
4
4
  * Displays an overlay when user tries to scroll but scrollLock is enabled.
5
- * Press Space to temporarily unlock scrolling.
5
+ * Press Ctrl or Cmd to temporarily unlock scrolling.
6
6
  */
7
7
  export declare const ScrollOverlay: React.FC;
@@ -11,3 +11,4 @@ export * from './CustomBackground';
11
11
  export * from './wrapper/AssessmentSelectableWrapper';
12
12
  export * from './AssessmentSelectionDebug';
13
13
  export * from './ScrollOverlay';
14
+ export * from './AlignmentGuides';
@@ -0,0 +1,62 @@
1
+ import { extractMarkerId as extractMarkerIdFromParser } from '../../../utils/pathParsing';
2
+ export interface MarkerProps {
3
+ /** The endpoint where the marker should be drawn */
4
+ endPoint: {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ /** The direction angle in radians (from previous point to endpoint) */
9
+ direction: number;
10
+ /** The marker type ID */
11
+ markerId: string;
12
+ /** Optional stroke color override */
13
+ strokeColor?: string;
14
+ }
15
+ /**
16
+ * Extract marker ID from a url() reference.
17
+ * e.g., "url(#black-arrow)" -> "black-arrow"
18
+ *
19
+ * Uses the robust implementation from pathParsing.ts that handles
20
+ * all SVG path commands including relative coordinates.
21
+ */
22
+ export declare const extractMarkerId: typeof extractMarkerIdFromParser;
23
+ /**
24
+ * Calculate endpoint and direction from the last segment of a path.
25
+ *
26
+ * Uses the robust implementation from pathParsing.ts that handles
27
+ * all SVG path commands including relative coordinates and bezier curves.
28
+ */
29
+ export declare function getPathEndInfo(pathD: string): {
30
+ endPoint: {
31
+ x: number;
32
+ y: number;
33
+ };
34
+ direction: number;
35
+ } | null;
36
+ /**
37
+ * Get path start info for marker-start.
38
+ *
39
+ * Uses the robust implementation from pathParsing.ts that handles
40
+ * all SVG path commands including H, V, C, Q, and relative coordinates.
41
+ */
42
+ export declare function getPathStartInfo(pathD: string): {
43
+ startPoint: {
44
+ x: number;
45
+ y: number;
46
+ };
47
+ direction: number;
48
+ } | null;
49
+ /**
50
+ * Renders an inline SVG marker at the given position and direction.
51
+ */
52
+ export declare function InlineMarker({ endPoint, direction, markerId, strokeColor, }: MarkerProps): JSX.Element | null;
53
+ /**
54
+ * Helper component that renders inline markers for an edge path.
55
+ * Use this alongside BaseEdge (without markerEnd/markerStart props).
56
+ */
57
+ export declare function EdgeInlineMarkers({ pathD, markerEnd, markerStart, strokeColor, }: {
58
+ pathD: string;
59
+ markerEnd?: string;
60
+ markerStart?: string;
61
+ strokeColor?: string;
62
+ }): JSX.Element;
@@ -1 +1 @@
1
- export * from './markers';
1
+ export * from './InlineMarker';
@@ -7,4 +7,4 @@ export interface MinSize {
7
7
  export type ClassSVGProps = SVGComponentProps & {
8
8
  data: ClassNodeProps;
9
9
  };
10
- export declare const ClassSVG: ({ id, width, height, transformScale, svgAttributes, showAssessmentResults, data, }: ClassSVGProps) => JSX.Element;
10
+ export declare const ClassSVG: ({ id, width, height, SIDEBAR_PREVIEW_SCALE, svgAttributes, showAssessmentResults, data, }: ClassSVGProps) => JSX.Element;
@@ -4,7 +4,7 @@ export type ColorDescriptionSVGProps = {
4
4
  width: number;
5
5
  height: number;
6
6
  data: DefaultNodeProps;
7
- transformScale?: number;
7
+ SIDEBAR_PREVIEW_SCALE?: number;
8
8
  svgAttributes?: SVGAttributes<SVGElement>;
9
9
  };
10
- export declare function ColorDescriptionSVG({ width, height, data, svgAttributes, transformScale, }: ColorDescriptionSVGProps): JSX.Element;
10
+ export declare function ColorDescriptionSVG({ width, height, data, svgAttributes, SIDEBAR_PREVIEW_SCALE, }: ColorDescriptionSVGProps): JSX.Element;
@@ -4,7 +4,7 @@ interface TitleAndDescriptionSVGProps {
4
4
  height: number;
5
5
  title: string;
6
6
  description: string;
7
- transformScale?: number;
7
+ SIDEBAR_PREVIEW_SCALE?: number;
8
8
  svgAttributes?: SVGAttributes<SVGElement>;
9
9
  }
10
10
  export declare const TitleAndDescriptionSVG: React.FC<TitleAndDescriptionSVGProps>;
@@ -3,4 +3,4 @@ import { SVGComponentProps } from '../../../../types/SVG';
3
3
  export type CommunicationObjectNameSVGProps = SVGComponentProps & {
4
4
  data: CommunicationObjectNodeProps;
5
5
  };
6
- export declare const CommunicationObjectNameSVG: ({ id, width, height, data, transformScale, svgAttributes, showAssessmentResults, }: CommunicationObjectNameSVGProps) => JSX.Element;
6
+ export declare const CommunicationObjectNameSVG: ({ id, width, height, data, SIDEBAR_PREVIEW_SCALE, svgAttributes, showAssessmentResults, }: CommunicationObjectNameSVGProps) => JSX.Element;
@@ -3,5 +3,5 @@ import { SVGComponentProps } from '../../../../types/SVG';
3
3
  interface Props extends SVGComponentProps {
4
4
  data: ObjectNodeProps;
5
5
  }
6
- export declare const ObjectNameSVG: ({ id, width, height, data, transformScale, svgAttributes, showAssessmentResults, }: Props) => JSX.Element;
6
+ export declare const ObjectNameSVG: ({ id, width, height, data, SIDEBAR_PREVIEW_SCALE, svgAttributes, showAssessmentResults, }: Props) => JSX.Element;
7
7
  export {};
@@ -0,0 +1,176 @@
1
+ import { default as React } from 'react';
2
+ import { DiagramNodeType } from './nodes';
3
+ import { UMLDiagramType } from './types';
4
+ export declare const CANVAS: Readonly<{
5
+ readonly MIN_SCALE_TO_ZOOM_OUT: 0.4;
6
+ readonly MAX_SCALE_TO_ZOOM_IN: 2.5;
7
+ readonly MOUSE_UP_OFFSET_PX: 5;
8
+ readonly SNAP_TO_GRID_PX: 10;
9
+ readonly EXTRA_SPACE_FOR_EXTENSION: 10;
10
+ readonly PASTE_OFFSET_PX: 20;
11
+ }>;
12
+ export declare const CSS_VARIABLE_FALLBACKS: Readonly<Record<string, string>>;
13
+ export declare const STROKE_COLOR: string;
14
+ export declare const FILL_COLOR: string;
15
+ export declare const LAYOUT: Readonly<{
16
+ readonly DEFAULT_FONT: "400 16px Inter, system-ui, Avenir, Helvetica, Arial, sans-serif";
17
+ readonly DEFAULT_HEADER_HEIGHT: 40;
18
+ readonly DEFAULT_HEADER_HEIGHT_WITH_STEREOTYPE: 50;
19
+ readonly DEFAULT_ATTRIBUTE_HEIGHT: 30;
20
+ readonly DEFAULT_METHOD_HEIGHT: 30;
21
+ readonly DEFAULT_PADDING: 10;
22
+ readonly LINE_WIDTH: 2;
23
+ readonly LINE_WIDTH_INTERFACE: 2;
24
+ readonly LINE_WIDTH_EDGE: 2;
25
+ readonly ICON_LINE_WIDTH: 1.5;
26
+ }>;
27
+ export declare const INTERFACE: Readonly<{
28
+ readonly SIZE: 30;
29
+ readonly RADIUS: 15;
30
+ readonly STROKE_WIDTH: 2;
31
+ }>;
32
+ export declare const MARKER_BASE_SIZE = 18;
33
+ export declare const BPMN_MARKER_SIZE = 11;
34
+ export declare const EDGES: Readonly<{
35
+ /** Negative padding extends target point to node boundary (React Flow handles are offset 3px) */
36
+ readonly MARKER_PADDING: -3;
37
+ /** Positive padding pulls source point back to node boundary (React Flow handles are offset 3px from node edge) */
38
+ readonly SOURCE_CONNECTION_POINT_PADDING: 3;
39
+ /** Border radius for step-style edge corners */
40
+ readonly STEP_BORDER_RADIUS: 0;
41
+ /** Width of the invisible stroke used for edge selection/highlighting */
42
+ readonly EDGE_HIGHLIGHT_STROKE_WIDTH: 15;
43
+ }>;
44
+ export declare const ZINDEX: Readonly<{
45
+ readonly BASE: 0;
46
+ readonly HEADER_SWITCH: 1;
47
+ readonly DRAGGABLE_GHOST: 2;
48
+ readonly MINIMAP: 5;
49
+ readonly PANEL: 10;
50
+ readonly MODAL: 9998;
51
+ readonly LABEL: 9998;
52
+ readonly DRAGGABLE_ELEMENT: 9999;
53
+ readonly TOOLTIP: 10000;
54
+ }>;
55
+ export type MarkerShape = "triangle" | "arrow" | "rhombus" | "circle" | "semicircle";
56
+ export interface MarkerConfig {
57
+ readonly type: MarkerShape;
58
+ readonly filled: boolean;
59
+ readonly size: number;
60
+ readonly widthFactor: number;
61
+ readonly heightFactor: number;
62
+ readonly arcSpanDegrees?: number;
63
+ }
64
+ export declare const MARKER_CONFIGS: Readonly<{
65
+ readonly "black-rhombus": {
66
+ readonly type: "rhombus";
67
+ readonly filled: true;
68
+ readonly size: 18;
69
+ readonly widthFactor: 1;
70
+ readonly heightFactor: 0.618;
71
+ };
72
+ readonly "white-rhombus": {
73
+ readonly type: "rhombus";
74
+ readonly filled: false;
75
+ readonly size: 18;
76
+ readonly widthFactor: 1;
77
+ readonly heightFactor: 0.618;
78
+ };
79
+ readonly "white-triangle": {
80
+ readonly type: "triangle";
81
+ readonly filled: false;
82
+ readonly size: 18;
83
+ readonly widthFactor: 1;
84
+ readonly heightFactor: 0.866;
85
+ };
86
+ readonly "black-triangle": {
87
+ readonly type: "triangle";
88
+ readonly filled: true;
89
+ readonly size: 18;
90
+ readonly widthFactor: 1;
91
+ readonly heightFactor: 0.866;
92
+ };
93
+ readonly "black-arrow": {
94
+ readonly type: "arrow";
95
+ readonly filled: false;
96
+ readonly size: 18;
97
+ readonly widthFactor: 1;
98
+ readonly heightFactor: 0.866;
99
+ };
100
+ readonly "required-interface": {
101
+ readonly type: "semicircle";
102
+ readonly filled: false;
103
+ readonly size: 15;
104
+ readonly widthFactor: 1;
105
+ readonly heightFactor: 1;
106
+ readonly arcSpanDegrees: 180;
107
+ };
108
+ readonly "required-interface-quarter": {
109
+ readonly type: "semicircle";
110
+ readonly filled: false;
111
+ readonly size: 15;
112
+ readonly widthFactor: 1;
113
+ readonly heightFactor: 1;
114
+ readonly arcSpanDegrees: 90;
115
+ };
116
+ readonly "required-interface-threequarter": {
117
+ readonly type: "semicircle";
118
+ readonly filled: false;
119
+ readonly size: 15;
120
+ readonly widthFactor: 1;
121
+ readonly heightFactor: 1;
122
+ readonly arcSpanDegrees: 270;
123
+ };
124
+ readonly "bpmn-white-triangle": {
125
+ readonly type: "triangle";
126
+ readonly filled: false;
127
+ readonly size: 11;
128
+ readonly widthFactor: 1;
129
+ readonly heightFactor: 0.866;
130
+ };
131
+ readonly "bpmn-black-triangle": {
132
+ readonly type: "triangle";
133
+ readonly filled: true;
134
+ readonly size: 11;
135
+ readonly widthFactor: 1;
136
+ readonly heightFactor: 0.866;
137
+ };
138
+ readonly "bpmn-white-circle": {
139
+ readonly type: "circle";
140
+ readonly filled: false;
141
+ readonly size: 11;
142
+ readonly widthFactor: 1;
143
+ readonly heightFactor: 1;
144
+ };
145
+ readonly "bpmn-arrow": {
146
+ readonly type: "arrow";
147
+ readonly filled: false;
148
+ readonly size: 11;
149
+ readonly widthFactor: 1;
150
+ readonly heightFactor: 0.866;
151
+ };
152
+ }>;
153
+ export type MarkerId = keyof typeof MARKER_CONFIGS;
154
+ export declare const MARKERS: Readonly<{
155
+ readonly STROKE_WIDTH: Readonly<{
156
+ readonly triangle: 1.3;
157
+ readonly arrow: 1.5;
158
+ readonly rhombus: 1.3;
159
+ readonly circle: 1.3;
160
+ readonly semicircle: 2;
161
+ }>;
162
+ }>;
163
+ export declare const DROPS: Readonly<{
164
+ readonly SIDEBAR_PREVIEW_SCALE: 0.8;
165
+ readonly DEFAULT_ELEMENT_WIDTH: 160;
166
+ }>;
167
+ export type DropElementConfig = {
168
+ readonly type: DiagramNodeType;
169
+ readonly width: number;
170
+ readonly height: number;
171
+ readonly defaultData?: Record<string, unknown>;
172
+ readonly svg: React.FC<any>;
173
+ readonly marginTop?: number;
174
+ };
175
+ export declare const dropElementConfigs: Readonly<Record<UMLDiagramType, ReadonlyArray<DropElementConfig>>>;
176
+ export declare const ColorDescriptionConfig: DropElementConfig;
@@ -28,4 +28,9 @@ export declare function tryFindStraightPath(source: {
28
28
  width: number;
29
29
  height: number;
30
30
  direction: Position;
31
- }, targetPadding: number): IPoint[] | null;
31
+ }, targetPadding: number, handleCoords?: {
32
+ sourceX: number;
33
+ sourceY: number;
34
+ targetX: number;
35
+ targetY: number;
36
+ }): IPoint[] | null;
@@ -21,10 +21,11 @@ export declare const useEdgeReconnection: (id: string, source: string, target: s
21
21
  shouldClearPoints: boolean;
22
22
  }, onCustomPointsClear?: () => void) => void;
23
23
  };
24
- export declare const EdgeEndpointMarkers: ({ sourcePoint, targetPoint, isDiagramModifiable, diagramType, pathType, onSourcePointerDown, onTargetPointerDown, }: {
24
+ export declare const EdgeEndpointMarkers: ({ sourcePoint, targetPoint, isDiagramModifiable, selected, diagramType, pathType, onSourcePointerDown, onTargetPointerDown, }: {
25
25
  sourcePoint: IPoint;
26
26
  targetPoint: IPoint;
27
27
  isDiagramModifiable: boolean;
28
+ selected?: boolean;
28
29
  diagramType: string;
29
30
  pathType: string;
30
31
  onSourcePointerDown: (e: React.PointerEvent) => void;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const ActivityDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const ActivityDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const BPMNDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const BPMNDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const ClassDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const ClassDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const CommunicationDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const CommunicationDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const ComponentDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const ComponentDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const DeploymentDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const DeploymentDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const FlowChartEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const FlowChartEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const ObjectDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const ObjectDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const PetriNetEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const PetriNetEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { BaseEdgeProps } from '../GenericEdge';
2
- export declare const ReachabilityGraphEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: BaseEdgeProps) => JSX.Element;
2
+ export declare const ReachabilityGraphEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: BaseEdgeProps) => JSX.Element;
@@ -1,38 +1,38 @@
1
1
  export declare const diagramEdgeTypes: {
2
- ClassAggregation: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
3
- ClassInheritance: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
4
- ClassRealization: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
5
- ClassComposition: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
6
- ClassBidirectional: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
7
- ClassUnidirectional: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
8
- ClassDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
9
- ActivityControlFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
10
- ObjectLink: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
11
- FlowChartFlowline: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
2
+ ClassAggregation: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
3
+ ClassInheritance: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
4
+ ClassRealization: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
5
+ ClassComposition: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
6
+ ClassBidirectional: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
7
+ ClassUnidirectional: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
8
+ ClassDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
9
+ ActivityControlFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
10
+ ObjectLink: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
11
+ FlowChartFlowline: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
12
12
  SyntaxTreeLink: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
13
- CommunicationLink: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
14
- PetriNetArc: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
13
+ CommunicationLink: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
14
+ PetriNetArc: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
15
15
  UseCaseAssociation: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
16
16
  UseCaseInclude: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
17
17
  UseCaseExtend: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
18
18
  UseCaseGeneralization: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
19
- ComponentDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
20
- ComponentProvidedInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
21
- ComponentRequiredInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
22
- ComponentRequiredThreeQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
23
- ComponentRequiredQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
24
- DeploymentAssociation: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
25
- DeploymentDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
26
- DeploymentProvidedInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
27
- DeploymentRequiredInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
28
- DeploymentRequiredThreeQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
29
- DeploymentRequiredQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
19
+ ComponentDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
20
+ ComponentProvidedInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
21
+ ComponentRequiredInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
22
+ ComponentRequiredThreeQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
23
+ ComponentRequiredQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
24
+ DeploymentAssociation: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
25
+ DeploymentDependency: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
26
+ DeploymentProvidedInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
27
+ DeploymentRequiredInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
28
+ DeploymentRequiredThreeQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
29
+ DeploymentRequiredQuarterInterface: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
30
30
  SfcDiagramEdge: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
31
- ReachabilityGraphArc: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
32
- BPMNSequenceFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
33
- BPMNMessageFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
34
- BPMNAssociationFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
35
- BPMNDataAssociationFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
31
+ ReachabilityGraphArc: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
32
+ BPMNSequenceFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
33
+ BPMNMessageFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
34
+ BPMNAssociationFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
35
+ BPMNDataAssociationFlow: ({ id, type, source, target, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, sourceHandleId, targetHandleId, data, selected, }: import('./GenericEdge').BaseEdgeProps) => JSX.Element;
36
36
  };
37
37
  export declare const edgeConfig: {
38
38
  readonly ClassAggregation: {
@@ -2,6 +2,7 @@ export * from './useViewPointCenter';
2
2
  export * from './useReconnect';
3
3
  export * from './useConnect';
4
4
  export * from './useNodeDragStop';
5
+ export * from './useNodeDrag';
5
6
  export * from './useHandleOnResize';
6
7
  export * from './useEdges';
7
8
  export * from './useEdgeToolbar';
@@ -0,0 +1,2 @@
1
+ import { OnNodeDrag, Node } from '@xyflow/react';
2
+ export declare const useNodeDrag: () => OnNodeDrag<Node>;
@@ -25,9 +25,7 @@ export declare const useStraightPathEdge: ({ id, type, source, target, sourceX,
25
25
  y: number;
26
26
  };
27
27
  isDiagramModifiable: boolean;
28
- isReconnectingRef: import('react').MutableRefObject<boolean> | {
29
- current: boolean;
30
- };
28
+ isReconnectingRef: import('react').MutableRefObject<boolean>;
31
29
  handleEndpointPointerDown: (e: React.PointerEvent, endType: "source" | "target") => void;
32
30
  tempReconnectPath: string | null;
33
31
  };