@tumaet/apollon 4.3.0 → 4.5.0

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 (391) hide show
  1. package/README.md +206 -34
  2. package/dist/assets/style.css +1 -1
  3. package/dist/index.d.ts +897 -7
  4. package/dist/index.js +7988 -73543
  5. package/dist/internals.d.ts +868 -0
  6. package/dist/internals.js +40 -0
  7. package/dist/react/App.d.ts +9 -0
  8. package/dist/react/apollon-editor.d.ts +112 -0
  9. package/dist/react/components/AlignmentGuides.d.ts +1 -0
  10. package/dist/react/components/AssessmentSelectionDebug.d.ts +1 -0
  11. package/dist/react/components/CustomBackground.d.ts +1 -0
  12. package/dist/react/components/CustomControls.d.ts +1 -0
  13. package/dist/react/components/CustomMiniMap.d.ts +1 -0
  14. package/dist/{components → react/components}/Icon/ArrowBackIcon.d.ts +1 -1
  15. package/dist/{components → react/components}/Icon/ArrowForwardIcon.d.ts +1 -1
  16. package/dist/{components → react/components}/Icon/CheckIcon.d.ts +1 -1
  17. package/dist/{components → react/components}/Icon/CrossIcon.d.ts +1 -1
  18. package/dist/{components → react/components}/Icon/DeleteIcon.d.ts +1 -1
  19. package/dist/react/components/Icon/DragHandleIcon.d.ts +4 -0
  20. package/dist/{components → react/components}/Icon/EditIcon.d.ts +1 -1
  21. package/dist/{components → react/components}/Icon/ExclamationIcon.d.ts +1 -1
  22. package/dist/{components → react/components}/Icon/InfiniteIcon.d.ts +1 -1
  23. package/dist/{components → react/components}/Icon/MapIcon.d.ts +1 -1
  24. package/dist/{components → react/components}/Icon/PaintRollerIcon.d.ts +1 -1
  25. package/dist/{components → react/components}/Icon/RedoIcon.d.ts +1 -1
  26. package/dist/{components → react/components}/Icon/SouthEastArrowIcon.d.ts +1 -1
  27. package/dist/{components → react/components}/Icon/SwapHorizIcon.d.ts +1 -1
  28. package/dist/{components → react/components}/Icon/UndoIcon.d.ts +1 -1
  29. package/dist/{components → react/components}/Icon/index.d.ts +1 -0
  30. package/dist/react/components/ReconnectConnectionLine.d.ts +2 -0
  31. package/dist/react/components/Sidebar.d.ts +1 -0
  32. package/dist/react/components/collaboration/CollaborationLayer.d.ts +25 -0
  33. package/dist/{components → react/components}/index.d.ts +2 -0
  34. package/dist/{components → react/components}/popovers/DefaultNodeGiveFeedbackPopover.d.ts +1 -1
  35. package/dist/{components → react/components}/popovers/DefaultNodeSeeFeedbackPopover.d.ts +1 -1
  36. package/dist/{components → react/components}/popovers/GiveFeedbackAssessmentBox.d.ts +1 -1
  37. package/dist/{components → react/components}/popovers/PopoverManager.d.ts +1 -1
  38. package/dist/{components → react/components}/popovers/SeeFeedbackAssessmentBox.d.ts +1 -1
  39. package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNPoolEditPopover.d.ts +1 -1
  40. package/dist/{components → react/components}/popovers/classDiagram/ClassGiveFeedbackPopover.d.ts +1 -1
  41. package/dist/{components → react/components}/popovers/classDiagram/ClassSeeFeedbackPopover.d.ts +1 -1
  42. package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameGiveFeedbackPopover.d.ts +1 -1
  43. package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameSeeFeedbackPopover.d.ts +1 -1
  44. package/dist/{components → react/components}/popovers/edgePopovers/EdgeGiveFeedbackPopover.d.ts +1 -1
  45. package/dist/{components → react/components}/popovers/edgePopovers/EdgeSeeFeedbackPopover.d.ts +1 -1
  46. package/dist/{components → react/components}/popovers/objectDiagram/ObjectGiveFeedbackPopover.d.ts +1 -1
  47. package/dist/{components → react/components}/popovers/objectDiagram/ObjectSeeFeedbackPopover.d.ts +1 -1
  48. package/dist/react/components/react/Apollon.d.ts +45 -0
  49. package/dist/react/components/react/context.d.ts +16 -0
  50. package/dist/react/components/react/useApollonSubscription.d.ts +17 -0
  51. package/dist/{components → react/components}/svgs/edges/InlineMarker.d.ts +2 -2
  52. package/dist/react/components/svgs/nodes/CustomText.d.ts +10 -0
  53. package/dist/{components → react/components}/svgs/nodes/classDiagram/ClassSVG.d.ts +1 -1
  54. package/dist/{components → react/components}/svgs/nodes/classDiagram/ColorDescriptionSVG.d.ts +1 -1
  55. package/dist/{components → react/components}/svgs/nodes/communicationDiagram/CommunicationObjectNameSVG.d.ts +1 -1
  56. package/dist/{components → react/components}/svgs/nodes/objectDiagram/ObjectNameSVG.d.ts +1 -1
  57. package/dist/{components → react/components}/toolbars/edgeToolBar/CustomEdgeToolBar.d.ts +2 -0
  58. package/dist/{components → react/components}/ui/StyleEditor/ColorButtons.d.ts +1 -1
  59. package/dist/{constants.d.ts → react/constants.d.ts} +43 -6
  60. package/dist/react/edges/GenericEdge.d.ts +79 -0
  61. package/dist/{edges → react/edges}/edgeTypes/ActivityDiagramEdge.d.ts +1 -1
  62. package/dist/{edges → react/edges}/edgeTypes/BPMNDiagramEdge.d.ts +1 -1
  63. package/dist/{edges → react/edges}/edgeTypes/ClassDiagramEdge.d.ts +1 -1
  64. package/dist/{edges → react/edges}/edgeTypes/CommunicationDiagramEdge.d.ts +1 -1
  65. package/dist/{edges → react/edges}/edgeTypes/ComponentDiagramEdge.d.ts +1 -1
  66. package/dist/{edges → react/edges}/edgeTypes/DeploymentDiagramEdge.d.ts +1 -1
  67. package/dist/{edges → react/edges}/edgeTypes/FlowChartEdge.d.ts +1 -1
  68. package/dist/{edges → react/edges}/edgeTypes/ObjectDiagramEdge.d.ts +1 -1
  69. package/dist/{edges → react/edges}/edgeTypes/PetriNetEdge.d.ts +1 -1
  70. package/dist/{edges → react/edges}/edgeTypes/ReachabilityGraphArc.d.ts +1 -1
  71. package/dist/{edges → react/edges}/edgeTypes/SfcDiagramEdge.d.ts +1 -1
  72. package/dist/{edges → react/edges}/edgeTypes/SyntaxTreeEdge.d.ts +1 -1
  73. package/dist/{edges → react/edges}/edgeTypes/UseCaseDiagramEdge.d.ts +1 -1
  74. package/dist/{edges → react/edges}/labelTypes/EdgeEndLabels.d.ts +1 -1
  75. package/dist/{edges → react/edges}/labelTypes/EdgeIncludeExtendLabel.d.ts +1 -1
  76. package/dist/{edges → react/edges}/labelTypes/EdgeMiddleLabels.d.ts +2 -1
  77. package/dist/{edges → react/edges}/labelTypes/EdgeMultipleLabels.d.ts +2 -2
  78. package/dist/{edges → react/edges}/types.d.ts +34 -34
  79. package/dist/react/enums/index.d.ts +1 -0
  80. package/dist/react/hooks/useEdgeLineJumps.d.ts +25 -0
  81. package/dist/{hooks → react/hooks}/useHandleFinder.d.ts +1 -0
  82. package/dist/{hooks → react/hooks}/useReconnect.d.ts +1 -1
  83. package/dist/{hooks → react/hooks}/useStepPathEdge.d.ts +10 -6
  84. package/dist/react/hooks/useStraightPathEdge.d.ts +23 -0
  85. package/dist/react/index.d.ts +7 -0
  86. package/dist/react/internals.d.ts +5 -0
  87. package/dist/{nodes → react/nodes}/TitleAndDescriptionNode.d.ts +1 -1
  88. package/dist/{nodes → react/nodes}/activityDiagram/Activity.d.ts +1 -1
  89. package/dist/{nodes → react/nodes}/activityDiagram/ActivityActionNode.d.ts +1 -1
  90. package/dist/{nodes → react/nodes}/activityDiagram/ActivityFinalNode.d.ts +1 -1
  91. package/dist/{nodes → react/nodes}/activityDiagram/ActivityForkNode.d.ts +1 -1
  92. package/dist/{nodes → react/nodes}/activityDiagram/ActivityForkNodeHorizontal.d.ts +1 -1
  93. package/dist/{nodes → react/nodes}/activityDiagram/ActivityInitialNode.d.ts +1 -1
  94. package/dist/{nodes → react/nodes}/activityDiagram/ActivityMergeNode.d.ts +1 -1
  95. package/dist/{nodes → react/nodes}/activityDiagram/ActivityObjectNode.d.ts +1 -1
  96. package/dist/{nodes → react/nodes}/bpmn/BPMNAnnotation.d.ts +1 -1
  97. package/dist/{nodes → react/nodes}/bpmn/BPMNCallActivity.d.ts +1 -1
  98. package/dist/{nodes → react/nodes}/bpmn/BPMNDataObject.d.ts +1 -1
  99. package/dist/{nodes → react/nodes}/bpmn/BPMNDataStore.d.ts +1 -1
  100. package/dist/{nodes → react/nodes}/bpmn/BPMNEndEvent.d.ts +1 -1
  101. package/dist/{nodes → react/nodes}/bpmn/BPMNGateway.d.ts +1 -1
  102. package/dist/{nodes → react/nodes}/bpmn/BPMNGroup.d.ts +1 -1
  103. package/dist/{nodes → react/nodes}/bpmn/BPMNIntermediateEvent.d.ts +1 -1
  104. package/dist/{nodes → react/nodes}/bpmn/BPMNPool.d.ts +1 -1
  105. package/dist/{nodes → react/nodes}/bpmn/BPMNStartEvent.d.ts +1 -1
  106. package/dist/{nodes → react/nodes}/bpmn/BPMNSubprocess.d.ts +1 -1
  107. package/dist/{nodes → react/nodes}/bpmn/BPMNTask.d.ts +1 -1
  108. package/dist/{nodes → react/nodes}/bpmn/BPMNTransaction.d.ts +1 -1
  109. package/dist/{nodes → react/nodes}/classDiagram/Class.d.ts +1 -1
  110. package/dist/{nodes → react/nodes}/classDiagram/ColorDescription.d.ts +1 -1
  111. package/dist/{nodes → react/nodes}/classDiagram/Package.d.ts +1 -1
  112. package/dist/{nodes → react/nodes}/communicationDiagram/CommunicationObjectName.d.ts +1 -1
  113. package/dist/{nodes → react/nodes}/componentDiagram/Component.d.ts +1 -1
  114. package/dist/{nodes → react/nodes}/componentDiagram/ComponentInterface.d.ts +1 -1
  115. package/dist/{nodes → react/nodes}/componentDiagram/ComponentSubsystem.d.ts +1 -1
  116. package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentArtifact.d.ts +1 -1
  117. package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentComponent.d.ts +1 -1
  118. package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentInterface.d.ts +1 -1
  119. package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentNode.d.ts +1 -1
  120. package/dist/{nodes → react/nodes}/flowchart/FlowchartDecision.d.ts +1 -1
  121. package/dist/{nodes → react/nodes}/flowchart/FlowchartFunctionCall.d.ts +1 -1
  122. package/dist/{nodes → react/nodes}/flowchart/FlowchartInputOutput.d.ts +1 -1
  123. package/dist/{nodes → react/nodes}/flowchart/FlowchartProcess.d.ts +1 -1
  124. package/dist/{nodes → react/nodes}/flowchart/FlowchartTerminal.d.ts +1 -1
  125. package/dist/{nodes → react/nodes}/objectDiagram/ObjectName.d.ts +1 -1
  126. package/dist/{nodes → react/nodes}/petriNetDiagram/PetriNetPlace.d.ts +1 -1
  127. package/dist/{nodes → react/nodes}/petriNetDiagram/PetriNetTransition.d.ts +1 -1
  128. package/dist/{nodes → react/nodes}/reachabilityGraphDiagram/ReachabilityGraphMarking.d.ts +1 -1
  129. package/dist/{nodes → react/nodes}/sfcDiagram/SfcActionTable.d.ts +1 -1
  130. package/dist/{nodes → react/nodes}/sfcDiagram/SfcJump.d.ts +1 -1
  131. package/dist/{nodes → react/nodes}/sfcDiagram/SfcStart.d.ts +1 -1
  132. package/dist/{nodes → react/nodes}/sfcDiagram/SfcStep.d.ts +1 -1
  133. package/dist/{nodes → react/nodes}/sfcDiagram/SfcTransitionBranch.d.ts +1 -1
  134. package/dist/{nodes → react/nodes}/syntaxTreeDiagram/SyntaxTreeNonterminal.d.ts +1 -1
  135. package/dist/{nodes → react/nodes}/syntaxTreeDiagram/SyntaxTreeTerminal.d.ts +1 -1
  136. package/dist/{nodes → react/nodes}/useCaseDiagram/UseCase.d.ts +1 -1
  137. package/dist/{nodes → react/nodes}/useCaseDiagram/UseCaseActor.d.ts +1 -1
  138. package/dist/{nodes → react/nodes}/useCaseDiagram/UseCaseSystem.d.ts +1 -1
  139. package/dist/react/nodes/wrappers/DefaultNodeWrapper.d.ts +49 -0
  140. package/dist/react/react.d.ts +4 -0
  141. package/dist/react/react.js +34580 -0
  142. package/dist/react/services/migration/EdgeTransformer.d.ts +11 -0
  143. package/dist/{store → react/store}/context.d.ts +3 -0
  144. package/dist/{store → react/store}/diagramStore.d.ts +8 -0
  145. package/dist/react/store/edgeGeometryStore.d.ts +18 -0
  146. package/dist/{store → react/store}/index.d.ts +2 -1
  147. package/dist/{store → react/store}/metadataStore.d.ts +12 -1
  148. package/dist/react/sync/headless.d.ts +16 -0
  149. package/dist/react/sync/yjsSync.d.ts +62 -0
  150. package/dist/{typings.d.ts → react/typings.d.ts} +44 -9
  151. package/dist/{utils → react/utils}/alignmentUtils.d.ts +2 -2
  152. package/dist/react/utils/collaboration.d.ts +10 -0
  153. package/dist/react/utils/edgeUtils.d.ts +167 -0
  154. package/dist/{utils → react/utils}/exportUtils.d.ts +0 -1
  155. package/dist/react/utils/geometry/bendHandles.d.ts +42 -0
  156. package/dist/{utils → react/utils}/index.d.ts +2 -2
  157. package/dist/{utils → react/utils}/interactiveUtils.d.ts +0 -1
  158. package/dist/{utils → react/utils}/nodeUtils.d.ts +1 -1
  159. package/dist/react/utils/storeUtils.d.ts +1 -0
  160. package/dist/react/utils/textUtils.d.ts +1 -0
  161. package/dist/yjsSync-hZSPGLEP.js +70938 -0
  162. package/package.json +95 -35
  163. package/dist/App.d.ts +0 -6
  164. package/dist/apollon-editor.d.ts +0 -56
  165. package/dist/components/AlignmentGuides.d.ts +0 -1
  166. package/dist/components/AssessmentSelectionDebug.d.ts +0 -1
  167. package/dist/components/CustomBackground.d.ts +0 -1
  168. package/dist/components/CustomControls.d.ts +0 -1
  169. package/dist/components/CustomMiniMap.d.ts +0 -1
  170. package/dist/components/Sidebar.d.ts +0 -1
  171. package/dist/components/debug/AssessmentSelectionDebug.d.ts +0 -6
  172. package/dist/components/svgs/nodes/CustomText.d.ts +0 -16
  173. package/dist/components/theme/styles.d.ts +0 -22
  174. package/dist/edges/GenericEdge.d.ts +0 -43
  175. package/dist/enums/ExportFileFormat.d.ts +0 -6
  176. package/dist/enums/index.d.ts +0 -2
  177. package/dist/hooks/useClipboard.d.ts +0 -11
  178. package/dist/hooks/useDragContext.d.ts +0 -0
  179. package/dist/hooks/useStraightPathEdge.d.ts +0 -31
  180. package/dist/initialElements.d.ts +0 -3
  181. package/dist/nodes/syntaxTreeDiagram/index.d.ts +0 -0
  182. package/dist/nodes/wrappers/DefaultNodeWrapper.d.ts +0 -33
  183. package/dist/sync/index.d.ts +0 -1
  184. package/dist/sync/yjsSyncClass.d.ts +0 -31
  185. package/dist/utils/edgeUtils.d.ts +0 -90
  186. package/dist/utils/labelUtils.d.ts +0 -16
  187. package/dist/utils/storeUtils.d.ts +0 -1
  188. package/dist/utils/textUtils.d.ts +0 -7
  189. package/dist/utils/v2Typings.d.ts +0 -127
  190. /package/dist/{components → react/components}/AssessmentSelectableElement.d.ts +0 -0
  191. /package/dist/{components → react/components}/DraggableGhost.d.ts +0 -0
  192. /package/dist/{components → react/components}/ScrollOverlay.d.ts +0 -0
  193. /package/dist/{components → react/components}/popovers/DefaultNodeEditPopover.d.ts +0 -0
  194. /package/dist/{components → react/components}/popovers/GenericPopover.d.ts +0 -0
  195. /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNEndEventEditPopover.d.ts +0 -0
  196. /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNGatewayEditPopover.d.ts +0 -0
  197. /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNIntermediateEventEditPopover.d.ts +0 -0
  198. /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNStartEventEditPopover.d.ts +0 -0
  199. /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNTaskEditPopover.d.ts +0 -0
  200. /package/dist/{components → react/components}/popovers/bpmnDiagram/index.d.ts +0 -0
  201. /package/dist/{components → react/components}/popovers/classDiagram/ClassEditPopover.d.ts +0 -0
  202. /package/dist/{components → react/components}/popovers/classDiagram/EditableAttributesList.d.ts +0 -0
  203. /package/dist/{components → react/components}/popovers/classDiagram/EditableMethodsList.d.ts +0 -0
  204. /package/dist/{components → react/components}/popovers/classDiagram/index.d.ts +0 -0
  205. /package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameEditPopover.d.ts +0 -0
  206. /package/dist/{components → react/components}/popovers/communicationDiagram/index.d.ts +0 -0
  207. /package/dist/{components → react/components}/popovers/componentDiagram/ComponentEditPopover.d.ts +0 -0
  208. /package/dist/{components → react/components}/popovers/componentDiagram/ComponentSubsystemEditPopover.d.ts +0 -0
  209. /package/dist/{components → react/components}/popovers/componentDiagram/index.d.ts +0 -0
  210. /package/dist/{components → react/components}/popovers/deploymentDiagram/DeploymentComponentEditPopover.d.ts +0 -0
  211. /package/dist/{components → react/components}/popovers/deploymentDiagram/DeploymentNodeEditPopover.d.ts +0 -0
  212. /package/dist/{components → react/components}/popovers/deploymentDiagram/index.d.ts +0 -0
  213. /package/dist/{components → react/components}/popovers/edgePopovers/ActivityDiagramEdgeEditPopover.d.ts +0 -0
  214. /package/dist/{components → react/components}/popovers/edgePopovers/BPMNDiagramEdgeEditPopover.d.ts +0 -0
  215. /package/dist/{components → react/components}/popovers/edgePopovers/ClassDiagramEdgeEditPopover.d.ts +0 -0
  216. /package/dist/{components → react/components}/popovers/edgePopovers/CommunicationDiagramEdgeEditPopover.d.ts +0 -0
  217. /package/dist/{components → react/components}/popovers/edgePopovers/ComponentDiagramEdgeEditPopover.d.ts +0 -0
  218. /package/dist/{components → react/components}/popovers/edgePopovers/DeploymentDiagramEdgeEditPopover.d.ts +0 -0
  219. /package/dist/{components → react/components}/popovers/edgePopovers/FlowChartEdgeEditPopover.d.ts +0 -0
  220. /package/dist/{components → react/components}/popovers/edgePopovers/ObjectDiagramEdgeEditPopover.d.ts +0 -0
  221. /package/dist/{components → react/components}/popovers/edgePopovers/PetriNetEdgeEditPopover.d.ts +0 -0
  222. /package/dist/{components → react/components}/popovers/edgePopovers/ReachabilityGraphEdgeEditPopover.d.ts +0 -0
  223. /package/dist/{components → react/components}/popovers/edgePopovers/SyntaxTreeEdgeEditPopover.d.ts +0 -0
  224. /package/dist/{components → react/components}/popovers/edgePopovers/UseCaseDiagramEdgeEditPopover.d.ts +0 -0
  225. /package/dist/{components → react/components}/popovers/edgePopovers/index.d.ts +0 -0
  226. /package/dist/{components → react/components}/popovers/index.d.ts +0 -0
  227. /package/dist/{components → react/components}/popovers/objectDiagram/ObjectEditPopover.d.ts +0 -0
  228. /package/dist/{components → react/components}/popovers/objectDiagram/index.d.ts +0 -0
  229. /package/dist/{components → react/components}/popovers/petriNetDiagram/PetriNetPlaceEditPopover.d.ts +0 -0
  230. /package/dist/{components → react/components}/popovers/petriNetDiagram/index.d.ts +0 -0
  231. /package/dist/{components → react/components}/popovers/reachabilityGraphDiagram/ReachabilityGraphMarkingEditPopover.d.ts +0 -0
  232. /package/dist/{components → react/components}/popovers/reachabilityGraphDiagram/index.d.ts +0 -0
  233. /package/dist/{components → react/components}/popovers/sfcDiagram/SfcActionTableEditPopover.d.ts +0 -0
  234. /package/dist/{components → react/components}/popovers/sfcDiagram/SfcEdgeEditPopover.d.ts +0 -0
  235. /package/dist/{components → react/components}/popovers/sfcDiagram/index.d.ts +0 -0
  236. /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/SyntaxTreeNonterminalEditPopover.d.ts +0 -0
  237. /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/SyntaxTreeTerminalEditPopover.d.ts +0 -0
  238. /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/index.d.ts +0 -0
  239. /package/dist/{components → react/components}/popovers/types.d.ts +0 -0
  240. /package/dist/{components → react/components}/svgs/AssessmentIcon.d.ts +0 -0
  241. /package/dist/{components → react/components}/svgs/StyledElements.d.ts +0 -0
  242. /package/dist/{components → react/components}/svgs/edges/index.d.ts +0 -0
  243. /package/dist/{components → react/components}/svgs/index.d.ts +0 -0
  244. /package/dist/{components → react/components}/svgs/nodes/HeaderSection.d.ts +0 -0
  245. /package/dist/{components → react/components}/svgs/nodes/MultilineText.d.ts +0 -0
  246. /package/dist/{components → react/components}/svgs/nodes/RowBlockSection.d.ts +0 -0
  247. /package/dist/{components → react/components}/svgs/nodes/SeparationLine.d.ts +0 -0
  248. /package/dist/{components → react/components}/svgs/nodes/StereotypeAndName.d.ts +0 -0
  249. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityActionNodeSVG.d.ts +0 -0
  250. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityFinalNodeSVG.d.ts +0 -0
  251. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityForkNodeHorizontalSVG.d.ts +0 -0
  252. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityForkNodeSVG.d.ts +0 -0
  253. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityInitialNodeSVG.d.ts +0 -0
  254. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityMergeNodeSVG.d.ts +0 -0
  255. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityObjectNodeSVG.d.ts +0 -0
  256. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivitySVG.d.ts +0 -0
  257. /package/dist/{components → react/components}/svgs/nodes/activityDiagram/index.d.ts +0 -0
  258. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNAnnotationNodeSVG.d.ts +0 -0
  259. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNDataObjectNodeSVG.d.ts +0 -0
  260. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNDataStoreNodeSVG.d.ts +0 -0
  261. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNEventNodeSVG.d.ts +0 -0
  262. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNGatewayNodeSVG.d.ts +0 -0
  263. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNGroupNodeSVG.d.ts +0 -0
  264. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNPoolNodeSVG.d.ts +0 -0
  265. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNSubprocessNodeSVG.d.ts +0 -0
  266. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNTaskNodeSVG.d.ts +0 -0
  267. /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/index.d.ts +0 -0
  268. /package/dist/{components → react/components}/svgs/nodes/classDiagram/PackageSVG.d.ts +0 -0
  269. /package/dist/{components → react/components}/svgs/nodes/classDiagram/TitleAndDescriptionSVG.d.ts +0 -0
  270. /package/dist/{components → react/components}/svgs/nodes/classDiagram/index.d.ts +0 -0
  271. /package/dist/{components → react/components}/svgs/nodes/communicationDiagram/index.d.ts +0 -0
  272. /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentInterfaceNodeSVG.d.ts +0 -0
  273. /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentNodeSVG.d.ts +0 -0
  274. /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentSubsystemNodeSVG.d.ts +0 -0
  275. /package/dist/{components → react/components}/svgs/nodes/componentDiagram/index.d.ts +0 -0
  276. /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentArtifactSVG.d.ts +0 -0
  277. /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentComponentSVG.d.ts +0 -0
  278. /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentInterfaceSVG.d.ts +0 -0
  279. /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentNodeSVG.d.ts +0 -0
  280. /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/index.d.ts +0 -0
  281. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartDecisionNodeSVG.d.ts +0 -0
  282. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartFunctionCallNodeSVG.d.ts +0 -0
  283. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartInputOutputNodeSVG.d.ts +0 -0
  284. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartProcessNodeSVG.d.ts +0 -0
  285. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartTerminalNodeSVG.d.ts +0 -0
  286. /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/index.d.ts +0 -0
  287. /package/dist/{components → react/components}/svgs/nodes/index.d.ts +0 -0
  288. /package/dist/{components → react/components}/svgs/nodes/objectDiagram/index.d.ts +0 -0
  289. /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/PetriNetPlaceSVG.d.ts +0 -0
  290. /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/PetriNetTransitionSVG.d.ts +0 -0
  291. /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/index.d.ts +0 -0
  292. /package/dist/{components → react/components}/svgs/nodes/reachabilityGraphDiagram/ReachabilityGraphMarkingSVG.d.ts +0 -0
  293. /package/dist/{components → react/components}/svgs/nodes/reachabilityGraphDiagram/index.d.ts +0 -0
  294. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcActionTableNodeSVG.d.ts +0 -0
  295. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcJumpNodeSVG.d.ts +0 -0
  296. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcStartNodeSVG.d.ts +0 -0
  297. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcStepNodeSVG.d.ts +0 -0
  298. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcTransitionBranchNodeSVG.d.ts +0 -0
  299. /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/index.d.ts +0 -0
  300. /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/SyntaxTreeNonterminalNodeSVG.d.ts +0 -0
  301. /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/SyntaxTreeTerminalNodeSVG.d.ts +0 -0
  302. /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/index.d.ts +0 -0
  303. /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseActorNodeSVG.d.ts +0 -0
  304. /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseNodeSVG.d.ts +0 -0
  305. /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseSystemNodeSVG.d.ts +0 -0
  306. /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/index.d.ts +0 -0
  307. /package/dist/{components → react/components}/toolbars/NodeToolbar.d.ts +0 -0
  308. /package/dist/{components → react/components}/toolbars/edgeToolBar/index.d.ts +0 -0
  309. /package/dist/{components → react/components}/toolbars/index.d.ts +0 -0
  310. /package/dist/{components → react/components}/ui/DividerLine.d.ts +0 -0
  311. /package/dist/{components → react/components}/ui/HeaderSwitchElement.d.ts +0 -0
  312. /package/dist/{components → react/components}/ui/PrimaryButton.d.ts +0 -0
  313. /package/dist/{components → react/components}/ui/StereotypeButtonGroup.d.ts +0 -0
  314. /package/dist/{components → react/components}/ui/StyleEditor/EdgeStyleEditor.d.ts +0 -0
  315. /package/dist/{components → react/components}/ui/StyleEditor/NodeStyleEditor.d.ts +0 -0
  316. /package/dist/{components → react/components}/ui/StyleEditor/index.d.ts +0 -0
  317. /package/dist/{components → react/components}/ui/TextField.d.ts +0 -0
  318. /package/dist/{components → react/components}/ui/Typography.d.ts +0 -0
  319. /package/dist/{components → react/components}/ui/index.d.ts +0 -0
  320. /package/dist/{components → react/components}/wrapper/AssessmentSelectableWrapper.d.ts +0 -0
  321. /package/dist/{components → react/components}/wrapper/FeedbackDropzone.d.ts +0 -0
  322. /package/dist/{components → react/components}/wrapper/index.d.ts +0 -0
  323. /package/dist/{edges → react/edges}/Connection.d.ts +0 -0
  324. /package/dist/{edges → react/edges}/EdgeProps.d.ts +0 -0
  325. /package/dist/{edges → react/edges}/edgeTypes/index.d.ts +0 -0
  326. /package/dist/{edges → react/edges}/index.d.ts +0 -0
  327. /package/dist/{enums → react/enums}/Quadrant.d.ts +0 -0
  328. /package/dist/{hooks → react/hooks}/index.d.ts +0 -0
  329. /package/dist/{hooks → react/hooks}/useAssessmentSelection.d.ts +0 -0
  330. /package/dist/{hooks → react/hooks}/useConnect.d.ts +0 -0
  331. /package/dist/{hooks → react/hooks}/useDiagramModifiable.d.ts +0 -0
  332. /package/dist/{hooks → react/hooks}/useDragOver.d.ts +0 -0
  333. /package/dist/{hooks → react/hooks}/useDropFeedback.d.ts +0 -0
  334. /package/dist/{hooks → react/hooks}/useEdgeConfig.d.ts +0 -0
  335. /package/dist/{hooks → react/hooks}/useEdgeToolbar.d.ts +0 -0
  336. /package/dist/{hooks → react/hooks}/useEdges.d.ts +0 -0
  337. /package/dist/{hooks → react/hooks}/useElementInteractions.d.ts +0 -0
  338. /package/dist/{hooks → react/hooks}/useGoToNextAssessment.d.ts +0 -0
  339. /package/dist/{hooks → react/hooks}/useHandleDelete.d.ts +0 -0
  340. /package/dist/{hooks → react/hooks}/useHandleOnResize.d.ts +0 -0
  341. /package/dist/{hooks → react/hooks}/useIsOnlyThisElementSelected.d.ts +0 -0
  342. /package/dist/{hooks → react/hooks}/useKeyboardShortcuts.d.ts +0 -0
  343. /package/dist/{hooks → react/hooks}/useMessagePositioning.d.ts +0 -0
  344. /package/dist/{hooks → react/hooks}/useNodeDrag.d.ts +0 -0
  345. /package/dist/{hooks → react/hooks}/useNodeDragStop.d.ts +0 -0
  346. /package/dist/{hooks → react/hooks}/usePaneClicked.d.ts +0 -0
  347. /package/dist/{hooks → react/hooks}/useSelectionForCopyPaste.d.ts +0 -0
  348. /package/dist/{hooks → react/hooks}/useViewPointCenter.d.ts +0 -0
  349. /package/dist/{logger.d.ts → react/logger.d.ts} +0 -0
  350. /package/dist/{nodes → react/nodes}/activityDiagram/index.d.ts +0 -0
  351. /package/dist/{nodes → react/nodes}/bpmn/index.d.ts +0 -0
  352. /package/dist/{nodes → react/nodes}/classDiagram/index.d.ts +0 -0
  353. /package/dist/{nodes → react/nodes}/communicationDiagram/index.d.ts +0 -0
  354. /package/dist/{nodes → react/nodes}/componentDiagram/index.d.ts +0 -0
  355. /package/dist/{nodes → react/nodes}/deploymentDiagram/index.d.ts +0 -0
  356. /package/dist/{nodes → react/nodes}/flowchart/index.d.ts +0 -0
  357. /package/dist/{nodes → react/nodes}/index.d.ts +0 -0
  358. /package/dist/{nodes → react/nodes}/objectDiagram/index.d.ts +0 -0
  359. /package/dist/{nodes → react/nodes}/petriNetDiagram/index.d.ts +0 -0
  360. /package/dist/{nodes → react/nodes}/reachabilityGraphDiagram/index.d.ts +0 -0
  361. /package/dist/{nodes → react/nodes}/sfcDiagram/index.d.ts +0 -0
  362. /package/dist/{nodes → react/nodes}/types.d.ts +0 -0
  363. /package/dist/{nodes → react/nodes}/useCaseDiagram/index.d.ts +0 -0
  364. /package/dist/{nodes → react/nodes}/wrappers/index.d.ts +0 -0
  365. /package/dist/{store → react/store}/alignmentGuidesStore.d.ts +0 -0
  366. /package/dist/{store → react/store}/assessmentSelectionStore.d.ts +0 -0
  367. /package/dist/{store → react/store}/popoverStore.d.ts +0 -0
  368. /package/dist/{styles → react/styles}/theme.d.ts +0 -0
  369. /package/dist/{sync → react/sync}/ydoc.d.ts +0 -0
  370. /package/dist/{types → react/types}/DiagramType.d.ts +0 -0
  371. /package/dist/{types → react/types}/SVG.d.ts +0 -0
  372. /package/dist/{types → react/types}/index.d.ts +0 -0
  373. /package/dist/{types → react/types}/locationPopover.d.ts +0 -0
  374. /package/dist/{types → react/types}/nodes/DropNodeDate.d.ts +0 -0
  375. /package/dist/{types → react/types}/nodes/NodeProps.d.ts +0 -0
  376. /package/dist/{types → react/types}/nodes/enums/ClassType.d.ts +0 -0
  377. /package/dist/{types → react/types}/nodes/enums/index.d.ts +0 -0
  378. /package/dist/{types → react/types}/nodes/index.d.ts +0 -0
  379. /package/dist/{utils → react/utils}/bpmnConstraints.d.ts +0 -0
  380. /package/dist/{utils → react/utils}/copyPasteUtils.d.ts +0 -0
  381. /package/dist/{utils → react/utils}/deepPartial.d.ts +0 -0
  382. /package/dist/{utils → react/utils}/diagramTypeUtils.d.ts +0 -0
  383. /package/dist/{utils → react/utils}/helpers.d.ts +0 -0
  384. /package/dist/{utils → react/utils}/layoutUtils.d.ts +0 -0
  385. /package/dist/{utils → react/utils}/pathParsing.d.ts +0 -0
  386. /package/dist/{utils → react/utils}/popoverUtils.d.ts +0 -0
  387. /package/dist/{utils → react/utils}/quadrantUtils.d.ts +0 -0
  388. /package/dist/{utils → react/utils}/requiredInterfaceUtils.d.ts +0 -0
  389. /package/dist/{utils → react/utils}/svgTextLayout.d.ts +0 -0
  390. /package/dist/{utils → react/utils}/v3Typings.d.ts +0 -0
  391. /package/dist/{utils → react/utils}/versionConverter.d.ts +0 -0
@@ -0,0 +1,11 @@
1
+ import { ApollonEdge, UMLModel } from '../../typings';
2
+ /**
3
+ * Returns a new edge whose data is free of stale runtime geometry. Does NOT
4
+ * mutate the input. A null/absent `data` is normalized to an empty object.
5
+ */
6
+ export declare function hydrateEdgeData(edge: ApollonEdge): ApollonEdge;
7
+ /**
8
+ * Transforms all edges in a `UMLModel`, ensuring every edge satisfies
9
+ * the `OrthogonalEdgeData` interface. Returns a new model object.
10
+ */
11
+ export declare function transformEdges(model: UMLModel): UMLModel;
@@ -4,13 +4,16 @@ import { MetadataStore } from './metadataStore';
4
4
  import { PopoverStore } from './popoverStore';
5
5
  import { AssessmentSelectionStore } from './assessmentSelectionStore';
6
6
  import { AlignmentGuidesStore } from './alignmentGuidesStore';
7
+ import { EdgeGeometryStore } from './edgeGeometryStore';
7
8
  export declare const DiagramStoreContext: import('react').Context<StoreApi<DiagramStore> | null>;
8
9
  export declare const MetadataStoreContext: import('react').Context<StoreApi<MetadataStore> | null>;
9
10
  export declare const PopoverStoreContext: import('react').Context<StoreApi<PopoverStore> | null>;
10
11
  export declare const AssessmentSelectionStoreContext: import('react').Context<StoreApi<AssessmentSelectionStore> | null>;
11
12
  export declare const AlignmentGuidesStoreContext: import('react').Context<StoreApi<AlignmentGuidesStore> | null>;
13
+ export declare const EdgeGeometryStoreContext: import('react').Context<StoreApi<EdgeGeometryStore> | null>;
12
14
  export declare const useDiagramStore: <T>(selector: (state: DiagramStore) => T) => T;
13
15
  export declare const useMetadataStore: <T>(selector: (state: MetadataStore) => T) => T;
14
16
  export declare const usePopoverStore: <T>(selector: (state: PopoverStore) => T) => T;
15
17
  export declare const useAssessmentSelectionStore: <T>(selector: (state: AssessmentSelectionStore) => T) => T;
16
18
  export declare const useAlignmentGuidesStore: <T>(selector: (state: AlignmentGuidesStore) => T) => T;
19
+ export declare const useEdgeGeometryStore: <T>(selector: (state: EdgeGeometryStore) => T) => T;
@@ -18,6 +18,7 @@ export type DiagramStore = {
18
18
  canUndo: boolean;
19
19
  canRedo: boolean;
20
20
  undoManager: Y.UndoManager | null;
21
+ previewMode: boolean;
21
22
  setDiagramId: (diagramId: string) => void;
22
23
  setNodes: (payload: Node[] | ((nodes: Node[]) => Node[])) => void;
23
24
  setEdges: (payload: Edge[] | ((edges: Edge[]) => Edge[])) => void;
@@ -42,5 +43,12 @@ export type DiagramStore = {
42
43
  getInteractiveForSerialization: () => InteractiveElements | undefined;
43
44
  setInteractive: (interactive: InteractiveElements | undefined) => void;
44
45
  isElementInteractive: (elementId: string) => boolean;
46
+ /**
47
+ * Toggle the preview overlay. When entering, the Yjs doc is left
48
+ * untouched by store mutators and observers. When exiting, the local
49
+ * Zustand state is rebuilt from the (peer-augmented) Yjs maps so the
50
+ * canvas catches up to everything that arrived during preview.
51
+ */
52
+ setPreviewMode: (active: boolean) => void;
45
53
  };
46
54
  export declare const createDiagramStore: (ydoc: Y.Doc) => UseBoundStore<StoreApi<DiagramStore>>;
@@ -0,0 +1,18 @@
1
+ import { StoreApi, UseBoundStore } from 'zustand';
2
+ import { IPoint } from '../edges/Connection';
3
+ /**
4
+ * Runtime-only registry of each edge's ACTUAL rendered polyline (jump-free),
5
+ * keyed by edge id. Line jumps read other edges' geometry from here instead of
6
+ * re-deriving it, so a bridge always centers on the crossing the user actually
7
+ * sees — regardless of edge type, routing (step / straight-path), handle, or
8
+ * container offset. Each edge publishes on render and removes on unmount.
9
+ *
10
+ * Not persisted (Yjs never sees it) — it is ephemeral view geometry, exactly
11
+ * the kind of "computed segments" the model deliberately does not store.
12
+ */
13
+ export type EdgeGeometryStore = {
14
+ geometryById: Record<string, IPoint[]>;
15
+ publishEdgeGeometry: (id: string, points: IPoint[]) => void;
16
+ removeEdgeGeometry: (id: string) => void;
17
+ };
18
+ export declare const createEdgeGeometryStore: () => UseBoundStore<StoreApi<EdgeGeometryStore>>;
@@ -3,4 +3,5 @@ export { createMetadataStore } from './metadataStore';
3
3
  export { createPopoverStore } from './popoverStore';
4
4
  export { createAssessmentSelectionStore } from './assessmentSelectionStore';
5
5
  export { createAlignmentGuidesStore } from './alignmentGuidesStore';
6
- export { DiagramStoreContext, MetadataStoreContext, PopoverStoreContext, AssessmentSelectionStoreContext, AlignmentGuidesStoreContext, useDiagramStore, useMetadataStore, usePopoverStore, useAssessmentSelectionStore, useAlignmentGuidesStore, } from './context';
6
+ export { createEdgeGeometryStore } from './edgeGeometryStore';
7
+ export { DiagramStoreContext, MetadataStoreContext, PopoverStoreContext, AssessmentSelectionStoreContext, AlignmentGuidesStoreContext, EdgeGeometryStoreContext, useDiagramStore, useMetadataStore, usePopoverStore, useAssessmentSelectionStore, useAlignmentGuidesStore, useEdgeGeometryStore, } from './context';
@@ -1,6 +1,7 @@
1
1
  import { StoreApi, UseBoundStore } from 'zustand';
2
2
  import { UMLDiagramType } from '../types';
3
3
  import { ApollonMode, ApollonView } from '../typings';
4
+ import { IPoint } from '../edges/Connection';
4
5
  import * as Y from "yjs";
5
6
  export type MetadataStore = {
6
7
  diagramTitle: string;
@@ -12,12 +13,22 @@ export type MetadataStore = {
12
13
  debug: boolean;
13
14
  scrollLock: boolean;
14
15
  scrollEnabled: boolean;
16
+ connectionGuidanceActive: boolean;
17
+ connectionGuidanceSourceNodeId: string | null;
18
+ connectionGuidanceSourceHandleId: string | null;
19
+ reconnectPreviewEdgeId: string | null;
20
+ reconnectPreviewHandleType: "source" | "target" | null;
21
+ reconnectPreviewBasePoints: IPoint[];
15
22
  setMode: (mode: ApollonMode) => void;
16
23
  setView: (view: ApollonView) => void;
17
24
  setAvailableViews: (availableViews: ApollonView[]) => void;
18
25
  setReadonly: (readonly: boolean) => void;
19
26
  setScrollLock: (scrollLock: boolean) => void;
20
27
  setScrollEnabled: (scrollEnabled: boolean) => void;
28
+ startConnectionGuidance: (sourceNodeId: string | null, sourceHandleId: string | null) => void;
29
+ stopConnectionGuidance: () => void;
30
+ startReconnectPreview: (edgeId: string, handleType: "source" | "target", basePoints: IPoint[]) => void;
31
+ stopReconnectPreview: () => void;
21
32
  updateDiagramTitle: (diagramTitle: string) => void;
22
33
  updateDiagramType: (diagramType: UMLDiagramType) => void;
23
34
  updateMetaData: (diagramTitle: string, diagramType: UMLDiagramType) => void;
@@ -25,4 +36,4 @@ export type MetadataStore = {
25
36
  reset: () => void;
26
37
  setDebug: (debug: boolean) => void;
27
38
  };
28
- export declare const createMetadataStore: (ydoc: Y.Doc) => UseBoundStore<StoreApi<MetadataStore>>;
39
+ export declare const createMetadataStore: (ydoc: Y.Doc, isPreviewMode?: () => boolean) => UseBoundStore<StoreApi<MetadataStore>>;
@@ -0,0 +1,16 @@
1
+ import { YjsSync } from './yjsSync';
2
+ import * as Y from "yjs";
3
+ /**
4
+ * Construct a `YjsSync` against minimal stub stores. Intended for
5
+ * tests that exercise the wire protocol (sync/awareness handshake,
6
+ * incremental updates, reconnect behaviour) without dragging the React
7
+ * editor / React-Flow / zustand-with-middleware setup into the harness.
8
+ *
9
+ * Stores expose only the methods the sync class actually invokes. The
10
+ * Yjs observers will call them, but their bodies are no-ops because the
11
+ * test asserts directly against the `Y.Doc` that's returned.
12
+ */
13
+ export declare function createHeadlessSync(ydoc?: Y.Doc): {
14
+ ydoc: Y.Doc;
15
+ sync: YjsSync;
16
+ };
@@ -0,0 +1,62 @@
1
+ import { DiagramStore } from '../store/diagramStore';
2
+ import { MetadataStore } from '../store/metadataStore';
3
+ import { CollaborationState, CollaborationUser, CollaborationViewport, CollaboratorInfo } from '../typings';
4
+ import { StoreApi } from 'zustand';
5
+ import * as Y from "yjs";
6
+ export declare enum MessageType {
7
+ YjsSYNC = 0,
8
+ YjsUpdate = 1,
9
+ AwarenessSync = 2,
10
+ AwarenessUpdate = 3
11
+ }
12
+ export type SendBroadcastMessage = (base64data: string) => void;
13
+ export declare class YjsSync {
14
+ private readonly stopYjsObserver;
15
+ private sendBroadcastMessage;
16
+ private readonly ydoc;
17
+ private readonly diagramStore;
18
+ private readonly metadataStore;
19
+ private readonly awareness;
20
+ constructor(ydoc: Y.Doc, diagramStore: StoreApi<DiagramStore>, metadataStore: StoreApi<MetadataStore>);
21
+ stopSync(): void;
22
+ /**
23
+ * Push the entire local Yjs document as a single `YjsUpdate`. Callers should
24
+ * invoke this after a (re)connect so peers absorb any edits made while we
25
+ * were disconnected — those updates fire while `readyState !== OPEN`, are
26
+ * silently dropped by the send callback, and never replayed otherwise.
27
+ * Yjs CRDTs converge on merge, so peers that already have these ops just
28
+ * no-op.
29
+ */
30
+ broadcastFullState: () => void;
31
+ setSendBroadcastMessage: (sendFn: SendBroadcastMessage) => void;
32
+ setLocalAwarenessUser: (user: CollaborationUser) => void;
33
+ setLocalAwarenessCursor: (cursor: {
34
+ x: number;
35
+ y: number;
36
+ } | null) => void;
37
+ setLocalAwarenessViewport: (viewport: CollaborationViewport | null) => void;
38
+ setLocalAwarenessFollowing: (followingClientId: number | null) => void;
39
+ setLocalAwarenessSelectedElement: (selectedElementId: string | null) => void;
40
+ setLocalAwarenessState: (state: Partial<CollaborationState>) => void;
41
+ subscribeToAwarenessChanges: (callback: (states: Map<number, CollaborationState>) => void) => () => void;
42
+ getAwarenessStates: () => Map<number, CollaborationState>;
43
+ getCollaborators: () => CollaboratorInfo[];
44
+ subscribeToCollaboratorChanges: (callback: (collaborators: CollaboratorInfo[]) => void) => () => void;
45
+ getLocalAwarenessClientId: () => number;
46
+ private static narrowState;
47
+ private getTypedStates;
48
+ private computeParticipantSignature;
49
+ private sendFramedMessage;
50
+ private applyUpdate;
51
+ handleReceivedData: (base64Data: string) => void;
52
+ private startYjsObserver;
53
+ private isUndoRedoTransaction;
54
+ /**
55
+ * Convert Uint8Array to Base64 string
56
+ */
57
+ static uint8ToBase64(uint8: Uint8Array): string;
58
+ /**
59
+ * Convert Base64 string to Uint8Array
60
+ */
61
+ private base64ToUint8;
62
+ }
@@ -2,7 +2,6 @@ import { DiagramEdgeType, IPoint } from './edges/types';
2
2
  import { DiagramNodeType } from './nodes/types';
3
3
  import { UMLDiagramType } from './types/DiagramType';
4
4
  import { Styles } from './styles/theme';
5
- import { DeepPartial } from './utils';
6
5
  export { UMLDiagramType, type DiagramNodeType, type DiagramEdgeType };
7
6
  export { type Styles };
8
7
  export type Unsubscriber = () => void;
@@ -10,6 +9,44 @@ export type Subscribers = {
10
9
  [key: number]: Unsubscriber;
11
10
  };
12
11
  export type UMLModelElementType = DiagramNodeType | DiagramEdgeType;
12
+ export type CollaborationUser = {
13
+ name: string;
14
+ color: string;
15
+ id?: string;
16
+ imageUrl?: string;
17
+ };
18
+ export type CollaborationCursor = {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ export type CollaborationViewport = {
23
+ x: number;
24
+ y: number;
25
+ zoom: number;
26
+ };
27
+ export type CollaborationState = {
28
+ user?: CollaborationUser;
29
+ cursor?: CollaborationCursor | null;
30
+ viewport?: CollaborationViewport | null;
31
+ followingClientId?: number | null;
32
+ selectedElementId?: string | null;
33
+ };
34
+ export type CollaboratorInfo = {
35
+ id: string;
36
+ name: string;
37
+ color: string;
38
+ imageUrl?: string;
39
+ clientIds: number[];
40
+ isLocal: boolean;
41
+ };
42
+ export type ApollonCollaborationOptions = {
43
+ enabled?: boolean;
44
+ user?: CollaborationUser;
45
+ showPresence?: boolean;
46
+ showCursors?: boolean;
47
+ showSelectionHighlights?: boolean;
48
+ showFollow?: boolean;
49
+ };
13
50
  export declare enum Locale {
14
51
  en = "en",
15
52
  de = "de"
@@ -37,6 +74,10 @@ export type ApollonNode = {
37
74
  height: number;
38
75
  };
39
76
  };
77
+ export interface OrthogonalEdgeData {
78
+ [key: string]: unknown;
79
+ points: IPoint[];
80
+ }
40
81
  export type ApollonEdge = {
41
82
  id: string;
42
83
  source: string;
@@ -44,10 +85,7 @@ export type ApollonEdge = {
44
85
  type: DiagramEdgeType;
45
86
  sourceHandle: string;
46
87
  targetHandle: string;
47
- data: {
48
- [key: string]: unknown;
49
- points: IPoint[];
50
- };
88
+ data: OrthogonalEdgeData;
51
89
  };
52
90
  export type InteractiveElements = {
53
91
  elements: Record<string, boolean>;
@@ -79,13 +117,10 @@ export type ApollonOptions = {
79
117
  readonly?: boolean;
80
118
  enablePopups?: boolean;
81
119
  model?: UMLModel;
82
- theme?: DeepPartial<Styles>;
83
120
  locale?: Locale;
84
- copyPasteToClipboard?: boolean;
85
- colorEnabled?: boolean;
86
- scale?: number;
87
121
  debug?: boolean;
88
122
  collaborationEnabled?: boolean;
123
+ collaboration?: ApollonCollaborationOptions;
89
124
  scrollLock?: boolean;
90
125
  };
91
126
  export type FeedbackCorrectionStatus = {
@@ -11,7 +11,7 @@ export type AlignmentInfo = {
11
11
  /**
12
12
  * Get the bounds of a node (considering its position and dimensions)
13
13
  */
14
- export declare const getNodeBounds: (node: Node) => {
14
+ export declare const getNodeBounds: (node: Node, allNodes?: Node[]) => {
15
15
  left: number;
16
16
  right: number;
17
17
  top: number;
@@ -26,7 +26,7 @@ export declare const calculateAlignmentGuides: (draggedNode: Node, allNodes: Nod
26
26
  /**
27
27
  * Snap node position to nearby nodes
28
28
  */
29
- export declare const snapNodeToGuides: (draggedNode: Node, guides: AlignmentGuide[], threshold?: number) => {
29
+ export declare const snapNodeToGuides: (draggedNode: Node, guides: AlignmentGuide[], threshold?: number, allNodes?: Node[]) => {
30
30
  x?: number;
31
31
  y?: number;
32
32
  };
@@ -0,0 +1,10 @@
1
+ import { CollaborationViewport } from '../typings';
2
+ export declare const randomCollabName: () => string;
3
+ export declare const collabColorFromName: (name: string) => string;
4
+ /**
5
+ * Narrow an untrusted, peer-supplied viewport before it reaches React Flow's
6
+ * `setViewport`. A `NaN`/`Infinity`/non-positive zoom corrupts the canvas
7
+ * transform, so every field must be a finite number and zoom must be positive.
8
+ * Returns `null` for anything malformed.
9
+ */
10
+ export declare const sanitizeCollaborationViewport: (raw: unknown) => CollaborationViewport | null;
@@ -0,0 +1,167 @@
1
+ import { IPoint } from '../edges/Connection';
2
+ import { DiagramEdgeType, UMLDiagramType } from '../typings';
3
+ import { Position, Rect, XYPosition, ConnectionLineType } from '@xyflow/react';
4
+ /**
5
+ * Adjusts the target coordinates based on the position and marker padding.
6
+ */
7
+ export declare const adjustTargetCoordinates: (targetX: number, targetY: number, targetPosition: Position, markerPadding: number) => {
8
+ targetX: number;
9
+ targetY: number;
10
+ };
11
+ /**
12
+ * Adjusts the source coordinates based on the position and marker padding.
13
+ */
14
+ export declare const adjustSourceCoordinates: (sourceX: number, sourceY: number, sourcePosition: Position, sourcePadding: number) => {
15
+ sourceX: number;
16
+ sourceY: number;
17
+ };
18
+ export declare const calculateDynamicEdgeLabels: (x: number, y: number, direction: string) => {
19
+ roleX: number;
20
+ roleY: number;
21
+ roleTextAnchor: "end";
22
+ multiplicityX: number;
23
+ multiplicityY: number;
24
+ multiplicityTextAnchor: "start";
25
+ } | {
26
+ roleX: number;
27
+ roleY: number;
28
+ roleTextAnchor: "end";
29
+ multiplicityX: number;
30
+ multiplicityY: number;
31
+ multiplicityTextAnchor: "end";
32
+ } | {
33
+ roleX: number;
34
+ roleY: number;
35
+ roleTextAnchor: "start";
36
+ multiplicityX: number;
37
+ multiplicityY: number;
38
+ multiplicityTextAnchor: "start";
39
+ } | {
40
+ roleX: number;
41
+ roleY: number;
42
+ roleTextAnchor: "middle";
43
+ multiplicityX: number;
44
+ multiplicityY: number;
45
+ multiplicityTextAnchor: "middle";
46
+ };
47
+ export interface EdgeMarkerStyles {
48
+ markerEnd?: string;
49
+ markerStart?: string;
50
+ markerPadding?: number;
51
+ strokeDashArray?: string;
52
+ offset?: number;
53
+ }
54
+ export declare function getEdgeMarkerStyles(edgeType: string): EdgeMarkerStyles;
55
+ interface FindClosestHandleParams {
56
+ point: XYPosition;
57
+ rect: Rect;
58
+ useFourHandles?: boolean;
59
+ }
60
+ export declare function getNormalizedHandleOffset(axisLength: number, ratio: number): number;
61
+ export declare function getNormalizedHandleOffsetPercent(axisLength: number, ratio: number): string;
62
+ export type AxisHandlePlan = {
63
+ offsets: [
64
+ number,
65
+ number,
66
+ number,
67
+ number,
68
+ number,
69
+ number,
70
+ number,
71
+ number,
72
+ number
73
+ ];
74
+ visibleArcCount: 1 | 3 | 5;
75
+ };
76
+ export declare function getAxisHandlePlan(axisLength: number): AxisHandlePlan;
77
+ /**
78
+ * Reduce how many arcs a side actually shows so adjacent visible arcs never
79
+ * overlap ON SCREEN. The slot offsets stay fixed (handles don't move); we just
80
+ * hide arcs when, at the current zoom, two neighbours would be closer than an
81
+ * arc's on-screen length apart. Arcs counter-scale to a constant on-screen size
82
+ * when zoomed out and grow when zoomed in, so the required flow spacing is
83
+ * ARC_LENGTH_PX / min(zoom, 1): bigger (fewer arcs) when zoomed out, constant
84
+ * at and above 1x.
85
+ *
86
+ * Returns 5, 3, or 1 — always <= the size-based `baseVisibleArcCount`.
87
+ */
88
+ export declare function reduceVisibleArcCountForZoom(offsets: AxisHandlePlan["offsets"], baseVisibleArcCount: 1 | 3 | 5, zoom: number): 1 | 3 | 5;
89
+ export declare function getDistributedHandleOffsets(axisLength: number): number[];
90
+ export declare function getDistributedHandleOffsetPercents(axisLength: number): [string, string, string, string, string, string, string, string, string];
91
+ type HandleSide = "top" | "right" | "bottom" | "left";
92
+ export declare function getHandleIdForSideSlot(side: HandleSide, slotIndex: number, slotCount: number): string;
93
+ export declare function findClosestHandle({ point, rect, useFourHandles, }: FindClosestHandleParams): string;
94
+ /**
95
+ * Helper function to get handle position on ellipse perimeter
96
+ */
97
+ export declare function getEllipseHandlePosition(centerX: number, centerY: number, radiusX: number, radiusY: number, handle: string): {
98
+ x: number;
99
+ y: number;
100
+ };
101
+ export type Orientation = "horizontal" | "vertical";
102
+ export type AxisAlignedSegment = {
103
+ index: number;
104
+ start: IPoint;
105
+ end: IPoint;
106
+ orientation: Orientation;
107
+ fixed: number;
108
+ min: number;
109
+ max: number;
110
+ };
111
+ export declare function getAxisAlignedSegments(points: IPoint[], tolerance?: number): AxisAlignedSegment[];
112
+ export type LineJumpHit = {
113
+ segmentIndex: number;
114
+ point: IPoint;
115
+ orientation: Orientation;
116
+ };
117
+ export declare function findLineJumpIntersections(baseSegments: AxisAlignedSegment[], otherSegments: AxisAlignedSegment[], jumpWidth: number, preferredOrientation?: Orientation | "any", tolerance?: number): LineJumpHit[];
118
+ export declare function buildPathWithLineJumps(points: IPoint[], jumps: LineJumpHit[], jumpHeight: number, jumpWidth?: number): string;
119
+ /**
120
+ * Collects the crossings an edge should bridge over. Uses the layout-stable
121
+ * "horizontal hops vertical" convention (yEd / yFiles' `BridgeManager` default
122
+ * `HORIZONTAL_BRIDGES_VERTICAL`): the bridge is always drawn on the HORIZONTAL
123
+ * segment of a crossing. Consequences that make this the right default for a
124
+ * declarative editor:
125
+ * - exactly one edge of any H×V pair hops (the horizontal one),
126
+ * - the assignment is independent of edge array order / z-index, so it never
127
+ * flips when an edge is selected (React Flow's `elevateEdgesOnSelect`) or
128
+ * reordered — unlike a render-order rule.
129
+ * Diagonal segments yield no axis-aligned segments, so they neither hop nor are
130
+ * hopped (line jumps are orthogonal-only, matching mxGraph/ELK/yFiles).
131
+ *
132
+ * @param geometryMap each OTHER edge's actual rendered polyline, keyed by id
133
+ * (from the edge-geometry registry)
134
+ */
135
+ export declare function computeLineJumpsForEdge(edgeId: string, basePoints: IPoint[], edges: ReadonlyArray<{
136
+ id: string;
137
+ }>, geometryMap: ReadonlyMap<string, IPoint[]>): LineJumpHit[];
138
+ export declare function calculateOverlayPath(sourceX: number, sourceY: number, targetX: number, targetY: number, type: string): string;
139
+ export declare function calculateStraightPath(sourceX: number, sourceY: number, targetX: number, targetY: number, type: string): string;
140
+ export declare function simplifySvgPath(path: string): string;
141
+ export declare function simplifyPoints(points: IPoint[]): IPoint[];
142
+ export declare function parseSvgPath(path: string): IPoint[];
143
+ export declare function removeDuplicatePoints(points: IPoint[]): IPoint[];
144
+ export declare function resolveReconnectPreviewBasePoints(storedPoints: IPoint[] | undefined, localPoints: IPoint[] | undefined, fallbackPoints: IPoint[]): IPoint[];
145
+ /**
146
+ * Returns true when source and target stubs point toward each other and would
147
+ * overlap or leave no room between them. This catches the "narrow U" case —
148
+ * where the two arms of a U-shape almost touch — before the geometry has
149
+ * actually inverted (which hasCollapsingSegments catches too late).
150
+ *
151
+ * Only applies to facing-stub configurations where both stubs exit into the
152
+ * same space and can collide. Diverging pairs are handled by later validation.
153
+ */
154
+ export declare const stubsWouldOverlap: (sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position, stubLength: number) => boolean;
155
+ export declare function isInvalidOrthogonalEdgeRelease(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): boolean;
156
+ export declare function normalizeOrthogonalEdgePoints(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
157
+ export declare function resolveOrthogonalEdgeReleasePoints(releasedPoints: IPoint[], lastValidPoints: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
158
+ export declare function preserveOrthogonalEdgePoints(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
159
+ export declare function getMarkerSegmentPath(points: IPoint[], offset: number, targetPosition: "top" | "bottom" | "left" | "right"): string;
160
+ export declare const getDefaultEdgeType: (diagramType: UMLDiagramType) => DiagramEdgeType;
161
+ /**
162
+ * Determines the appropriate connection line type based on the diagram type
163
+ * @param diagramType - The type of diagram being rendered
164
+ * @returns The corresponding ConnectionLineType
165
+ */
166
+ export declare function getConnectionLineType(diagramType: UMLDiagramType): ConnectionLineType;
167
+ export {};
@@ -34,7 +34,6 @@ declare function getNodeBoundsFromDOM(container: HTMLElement, reactFlow?: ReactF
34
34
  */
35
35
  declare function getNodeOverflowBoundsFromDOM(container: HTMLElement): Rect | undefined;
36
36
  declare function mergeBounds(a: Rect, b: Rect): Rect;
37
- export declare function getDiagramBounds(reactFlow: ReactFlowInstance<Node, Edge>, container?: HTMLElement | null): Rect;
38
37
  export declare function getRenderedDiagramBounds(reactFlow: ReactFlowInstance<Node, Edge>, container: HTMLElement): Rect;
39
38
  declare function extractStyles(styleString: string): {
40
39
  transform: {
@@ -0,0 +1,42 @@
1
+ import { Position } from '@xyflow/react';
2
+ import { IPoint } from '../../edges/Connection';
3
+ export declare function collapseCollinearPoints(points: IPoint[]): IPoint[];
4
+ export type SegmentKind = "source-terminal" | "target-terminal" | "inner";
5
+ export interface BendHandle {
6
+ segmentIndex: number;
7
+ position: IPoint;
8
+ orientation: "H" | "V";
9
+ kind: SegmentKind;
10
+ }
11
+ export declare function hasArmCollapse(points: IPoint[], proximityPx: number): boolean;
12
+ export declare function getSegmentOrientation(points: IPoint[], segmentIndex: number): "H" | "V";
13
+ export declare function getSegmentKind(segmentIndex: number, totalPoints: number): SegmentKind;
14
+ export declare function getSegmentEffectiveLength(points: IPoint[], segmentIndex: number, stubLength: number): number;
15
+ /**
16
+ * Whether a flow-space length is long enough to host an interactive handle,
17
+ * judged by its ON-SCREEN size. Screen-based so the rule matches what the user
18
+ * sees: zooming in always reveals more handles (a short segment becomes
19
+ * editable once it is `minScreenLength` px long on screen) and never hides
20
+ * them. `minScreenLength` is a screen-px budget (handle size + clearance).
21
+ */
22
+ export declare function isLengthEditableAtZoom(canvasLength: number, minScreenLength: number, zoom: number): boolean;
23
+ export declare function getStubExit(nodePoint: IPoint, position: Position, stubLength: number): IPoint;
24
+ export declare function getBendHandlePosition(points: IPoint[], segmentIndex: number): IPoint;
25
+ /**
26
+ * Bend handles for every segment with enough ON-SCREEN room to host one.
27
+ *
28
+ * The "safe area" next to each node (`safeAreaPx`) is excluded: a terminal
29
+ * segment loses that length at its node end, both for deciding whether a handle
30
+ * fits AND for where the handle sits. The handle is placed at the midpoint of
31
+ * the *bendable* region (past the safe area), never inside the locked stub —
32
+ * so dragging always grabs a real, bendable slice instead of a detached sliver
33
+ * hugging the node.
34
+ *
35
+ * Availability is judged on the bendable region's ON-SCREEN length
36
+ * (bendable * zoom >= `minSegmentScreenLength`), so zooming in reveals handles
37
+ * on shorter segments and never hides them.
38
+ */
39
+ export declare function getBendableSegments(points: IPoint[], _sourcePosition: Position, _targetPosition: Position, safeAreaPx: number, minSegmentScreenLength: number, zoom?: number): BendHandle[];
40
+ export declare function applyInnerSegmentBend(points: IPoint[], segmentIndex: number, delta: IPoint, snapGrid: number): IPoint[];
41
+ export declare function computeToolbarPosition(pathMiddlePosition: IPoint, isMiddlePathHorizontal: boolean): IPoint;
42
+ export declare function applyTerminalSegmentBend(points: IPoint[], handle: BendHandle, delta: IPoint, sourcePosition: Position, targetPosition: Position, stubLength: number, snapGrid: number): IPoint[];
@@ -10,9 +10,9 @@ export * from './diagramTypeUtils';
10
10
  export * from './storeUtils';
11
11
  export * from './deepPartial';
12
12
  export * from './bpmnConstraints';
13
- export * from './versionConverter';
14
- export * from './labelUtils';
13
+ export { importDiagram } from './versionConverter';
15
14
  export * from './alignmentUtils';
16
15
  export * from './requiredInterfaceUtils';
16
+ export * from './collaboration';
17
17
  export { wrapTextInRect, layoutTextInEllipse, layoutTextInDiamond, maxLinesForHeight, } from './svgTextLayout';
18
18
  export type { WrappedText, ShapeLayout, SvgFontSpec, WhiteSpaceMode, } from './svgTextLayout';
@@ -3,5 +3,4 @@ type InteractivePruneNode = Pick<ApollonNode, "id"> & Partial<Pick<ApollonNode,
3
3
  export declare function getNestedNodeElementIds(nodes: InteractivePruneNode[]): Set<string>;
4
4
  export declare function pruneInteractiveElements(interactive: InteractiveElements | undefined, nodes: InteractivePruneNode[], edges: Array<Pick<ApollonEdge, "id">>): InteractiveElements | undefined;
5
5
  export declare function toggleInteractiveRecord(record: Record<string, boolean>, id: string): Record<string, boolean>;
6
- export declare function hasInteractiveSelections(interactive: InteractiveElements | undefined): boolean;
7
6
  export {};
@@ -1,5 +1,5 @@
1
1
  import { XYPosition, Node } from '@xyflow/react';
2
- export declare const getPositionOnCanvas: (node: Node, allNodes: Node[]) => XYPosition;
2
+ export declare const getPositionOnCanvas: (node: Node, allNodes: ReadonlyArray<Node>) => XYPosition;
3
3
  export declare const resizeAllParents: (node: Node, allNodes: Node[]) => Node[];
4
4
  export declare function sortNodesTopologically(nodes: Node[]): Node[];
5
5
  /**
@@ -0,0 +1 @@
1
+ export declare const deepEqual: (a: unknown, b: unknown) => boolean;
@@ -0,0 +1 @@
1
+ export declare const measureTextWidth: (text: string, font?: string) => number;