@likec4/diagram 1.19.2 → 1.20.1

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 (581) hide show
  1. package/dist/LikeC4Diagram.css.d.ts +0 -1
  2. package/dist/LikeC4Diagram.css.js +1 -5
  3. package/dist/LikeC4Diagram.d.ts +1 -4
  4. package/dist/LikeC4Diagram.js +102 -147
  5. package/dist/LikeC4Diagram.props.d.ts +10 -16
  6. package/dist/LikeC4Search.js +7 -15
  7. package/dist/StaticLikeC4Diagram.d.ts +1 -1
  8. package/dist/base/Background.d.ts +7 -0
  9. package/dist/{xyflow/XYFlowBackground.js → base/Background.js} +5 -6
  10. package/dist/base/BaseXYFlow.d.ts +14 -0
  11. package/dist/base/BaseXYFlow.js +146 -0
  12. package/dist/base/example/RelationshipsBrowser.d.ts +6 -0
  13. package/dist/base/example/_types.d.ts +20 -0
  14. package/dist/base/example/custom.d.ts +71 -0
  15. package/dist/base/example/useViewToNodesEdges.d.ts +6 -0
  16. package/dist/base/index.d.ts +2 -0
  17. package/dist/base/primitives/NodeHandles.d.ts +4 -0
  18. package/dist/base/primitives/NodeHandles.js +14 -0
  19. package/dist/base/primitives/compound/CompoundActionButton.css.d.ts +3 -0
  20. package/dist/base/primitives/compound/CompoundActionButton.css.js +9 -0
  21. package/dist/base/primitives/compound/CompoundActionButton.d.ts +7 -0
  22. package/dist/base/primitives/compound/CompoundActionButton.js +48 -0
  23. package/dist/base/primitives/compound/CompoundDetailsButton.css.d.ts +3 -0
  24. package/dist/base/primitives/compound/CompoundDetailsButton.css.js +9 -0
  25. package/dist/base/primitives/compound/CompoundDetailsButton.d.ts +7 -0
  26. package/dist/base/primitives/compound/CompoundDetailsButton.js +50 -0
  27. package/dist/base/primitives/compound/CompoundNodeContainer.css.d.ts +9 -0
  28. package/dist/base/primitives/compound/CompoundNodeContainer.css.js +17 -0
  29. package/dist/base/primitives/compound/CompoundNodeContainer.d.ts +26 -0
  30. package/dist/base/primitives/compound/CompoundNodeContainer.js +86 -0
  31. package/dist/base/primitives/compound/CompoundTitle.css.d.ts +2 -0
  32. package/dist/base/primitives/compound/CompoundTitle.css.js +7 -0
  33. package/dist/base/primitives/compound/CompoundTitle.d.ts +6 -0
  34. package/dist/base/primitives/compound/CompoundTitle.js +20 -0
  35. package/dist/base/primitives/customEdge.d.ts +41 -0
  36. package/dist/base/primitives/customEdge.js +13 -0
  37. package/dist/base/primitives/customNode.d.ts +7 -0
  38. package/dist/base/primitives/customNode.js +10 -0
  39. package/dist/base/primitives/edge/EdgeActionButton.d.ts +7 -0
  40. package/dist/base/primitives/edge/EdgeActionButton.js +24 -0
  41. package/dist/base/primitives/edge/EdgeContainer.d.ts +10 -0
  42. package/dist/base/primitives/edge/EdgeContainer.js +35 -0
  43. package/dist/{xyflow/edges/edges.css.d.ts → base/primitives/edge/EdgeLabel.css.d.ts} +5 -9
  44. package/dist/base/primitives/edge/EdgeLabel.css.js +25 -0
  45. package/dist/base/primitives/edge/EdgeLabel.d.ts +51 -0
  46. package/dist/base/primitives/edge/EdgeLabel.js +90 -0
  47. package/dist/{xyflow → base/primitives/edge}/EdgeMarkers.d.ts +2 -0
  48. package/dist/{xyflow → base/primitives/edge}/EdgeMarkers.js +29 -1
  49. package/dist/base/primitives/edge/EdgePath.d.ts +44 -0
  50. package/dist/base/primitives/edge/EdgePath.js +77 -0
  51. package/dist/base/primitives/edge/edge.css.d.ts +6 -0
  52. package/dist/base/primitives/edge/edge.css.js +14 -0
  53. package/dist/base/primitives/element/ElementActionButtons.css.d.ts +3 -0
  54. package/dist/base/primitives/element/ElementActionButtons.css.js +9 -0
  55. package/dist/base/primitives/element/ElementActionButtons.d.ts +13 -0
  56. package/dist/base/primitives/element/ElementActionButtons.js +62 -0
  57. package/dist/base/primitives/element/ElementDetailsButton.css.d.ts +3 -0
  58. package/dist/base/primitives/element/ElementDetailsButton.css.js +9 -0
  59. package/dist/base/primitives/element/ElementDetailsButton.d.ts +7 -0
  60. package/dist/base/primitives/element/ElementDetailsButton.js +54 -0
  61. package/dist/base/primitives/element/ElementNodeContainer.css.d.ts +3 -0
  62. package/dist/base/primitives/element/ElementNodeContainer.css.js +7 -0
  63. package/dist/base/primitives/element/ElementNodeContainer.d.ts +26 -0
  64. package/dist/base/primitives/element/ElementNodeContainer.js +60 -0
  65. package/dist/base/primitives/element/ElementShape.css.d.ts +6 -0
  66. package/dist/base/primitives/element/ElementShape.css.js +14 -0
  67. package/dist/base/primitives/element/ElementShape.d.ts +28 -0
  68. package/dist/{xyflow/nodes/element/ElementShapeSvg.js → base/primitives/element/ElementShape.js} +23 -7
  69. package/dist/base/primitives/element/ElementTitle.css.d.ts +8 -0
  70. package/dist/base/primitives/element/ElementTitle.css.js +19 -0
  71. package/dist/base/primitives/element/ElementTitle.d.ts +10 -0
  72. package/dist/base/primitives/element/ElementTitle.js +66 -0
  73. package/dist/base/primitives/index.d.ts +17 -0
  74. package/dist/base/types.d.ts +90 -0
  75. package/dist/base/types.js +54 -0
  76. package/dist/base/updateEdges.d.ts +3 -0
  77. package/dist/base/updateEdges.js +31 -0
  78. package/dist/base/updateNodes.d.ts +3 -0
  79. package/dist/base/updateNodes.js +36 -0
  80. package/dist/base/xyflowMachine.d.ts +212 -0
  81. package/dist/context/DiagramEventHandlers.d.ts +10 -0
  82. package/dist/context/DiagramEventHandlers.js +49 -0
  83. package/dist/context/DiagramFeatures.d.ts +31 -0
  84. package/dist/context/DiagramFeatures.js +140 -0
  85. package/dist/{ui → context}/FramerMotionConfig.js +2 -4
  86. package/dist/context/IconRenderer.d.ts +11 -0
  87. package/dist/{xyflow/nodes/shared/ElementIcon.js → context/IconRenderer.js} +14 -14
  88. package/dist/context/RootContainer.d.ts +9 -0
  89. package/dist/context/RootContainer.js +20 -0
  90. package/dist/context/index.d.ts +7 -0
  91. package/dist/globals.css.js +0 -86
  92. package/dist/hooks/index.d.ts +7 -5
  93. package/dist/hooks/useCurrentViewId.d.ts +2 -0
  94. package/dist/hooks/useCurrentViewId.js +8 -0
  95. package/dist/hooks/useDiagram.d.ts +10725 -0
  96. package/dist/hooks/useDiagram.js +119 -0
  97. package/dist/hooks/useDiagramActor.d.ts +5 -0
  98. package/dist/hooks/useDiagramActor.js +21 -0
  99. package/dist/hooks/useDiagramContext.d.ts +3 -0
  100. package/dist/hooks/useDiagramContext.js +10 -0
  101. package/dist/hooks/useMantinePortalProps.js +2 -2
  102. package/dist/hooks/useXYFlow.d.ts +195 -37
  103. package/dist/hooks/useXYFlow.js +4 -6
  104. package/dist/index.d.ts +3 -2
  105. package/dist/index.js +5 -6
  106. package/dist/likec4diagram/DiagramActor.d.ts +7 -0
  107. package/dist/likec4diagram/DiagramActor.js +71 -0
  108. package/dist/likec4diagram/DiagramUI.d.ts +2 -0
  109. package/dist/likec4diagram/DiagramUI.js +22 -0
  110. package/dist/likec4diagram/XYFlow.d.ts +6 -0
  111. package/dist/likec4diagram/XYFlow.js +122 -0
  112. package/dist/likec4diagram/custom/edges/NotePopover.css.d.ts +2 -0
  113. package/dist/likec4diagram/custom/edges/NotePopover.css.js +7 -0
  114. package/dist/likec4diagram/custom/edges/NotePopover.d.ts +4 -0
  115. package/dist/likec4diagram/custom/edges/NotePopover.js +101 -0
  116. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +55 -0
  117. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +307 -0
  118. package/dist/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.css.js +4 -4
  119. package/dist/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.d.ts +5 -5
  120. package/dist/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.js +51 -53
  121. package/dist/likec4diagram/custom/edges/edges.css.d.ts +2 -0
  122. package/dist/likec4diagram/custom/edges/edges.css.js +7 -0
  123. package/dist/likec4diagram/custom/edges/utils.d.ts +22 -0
  124. package/dist/likec4diagram/custom/edges/utils.js +24 -0
  125. package/dist/likec4diagram/custom/index.d.ts +57 -0
  126. package/dist/likec4diagram/custom/index.js +7 -0
  127. package/dist/likec4diagram/custom/nodes/CompoundActions.d.ts +5 -0
  128. package/dist/likec4diagram/custom/nodes/CompoundActions.js +25 -0
  129. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +7 -0
  130. package/dist/likec4diagram/custom/nodes/ElementActions.js +69 -0
  131. package/dist/likec4diagram/custom/nodes/nodeTypes.d.ts +10 -0
  132. package/dist/likec4diagram/custom/nodes/nodeTypes.js +94 -0
  133. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.d.ts +21 -0
  134. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +159 -0
  135. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.d.ts +7 -0
  136. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +128 -0
  137. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.d.ts +7 -0
  138. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +149 -0
  139. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +8 -0
  140. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +66 -0
  141. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +40 -0
  142. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +131 -0
  143. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.d.ts +1 -0
  144. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.js +5 -0
  145. package/dist/likec4diagram/state/actorContext.d.ts +50849 -0
  146. package/dist/likec4diagram/state/actorContext.js +12 -0
  147. package/dist/{state → likec4diagram/state}/aligners.d.ts +4 -1
  148. package/dist/{state → likec4diagram/state}/aligners.js +31 -5
  149. package/dist/likec4diagram/state/assign.d.ts +18 -0
  150. package/dist/likec4diagram/state/assign.js +343 -0
  151. package/dist/likec4diagram/state/hotkeyActor.d.ts +5 -0
  152. package/dist/likec4diagram/state/hotkeyActor.js +18 -0
  153. package/dist/likec4diagram/state/inspector.d.ts +5 -0
  154. package/dist/likec4diagram/state/machine.d.ts +10751 -0
  155. package/dist/likec4diagram/state/machine.js +783 -0
  156. package/dist/likec4diagram/state/syncManualLayoutActor.d.ts +113 -0
  157. package/dist/likec4diagram/state/syncManualLayoutActor.js +178 -0
  158. package/dist/likec4diagram/state/utils.d.ts +8 -0
  159. package/dist/likec4diagram/state/utils.js +48 -0
  160. package/dist/likec4diagram/types.d.ts +74 -0
  161. package/dist/{ui/top-left → likec4diagram/ui/controls}/ChangeAutoLayoutButton.js +11 -10
  162. package/dist/likec4diagram/ui/controls/Controls.d.ts +2 -0
  163. package/dist/likec4diagram/ui/controls/Controls.js +102 -0
  164. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.d.ts +2 -0
  165. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.js +43 -0
  166. package/dist/{ui/top-left → likec4diagram/ui/controls}/ManualLayoutToolsButton.js +11 -11
  167. package/dist/likec4diagram/ui/controls/NavigationButtons.d.ts +1 -0
  168. package/dist/likec4diagram/ui/controls/NavigationButtons.js +92 -0
  169. package/dist/{ui/top-left → likec4diagram/ui/controls}/_shared.js +2 -1
  170. package/dist/{ui/top-left → likec4diagram/ui/controls}/styles.css.d.ts +1 -1
  171. package/dist/likec4diagram/ui/controls/styles.css.js +17 -0
  172. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.css.js +11 -0
  173. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.d.ts +1 -0
  174. package/dist/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.js +3 -3
  175. package/dist/likec4diagram/ui/diagram-title/Link.d.ts +4 -0
  176. package/dist/likec4diagram/ui/index.d.ts +2 -0
  177. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +13 -0
  178. package/dist/likec4diagram/ui/notation/NotationPanel.d.ts +2 -0
  179. package/dist/{ui → likec4diagram/ui}/notation/NotationPanel.js +23 -31
  180. package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.css.js +4 -4
  181. package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.js +19 -44
  182. package/dist/{xyflow → likec4diagram}/useLayoutConstraints.d.ts +11 -6
  183. package/dist/{xyflow → likec4diagram}/useLayoutConstraints.js +17 -12
  184. package/dist/likec4diagram/useViewToNodesEdges.d.ts +11 -0
  185. package/dist/likec4diagram/useViewToNodesEdges.js +245 -0
  186. package/dist/likec4model/index.d.ts +1 -1
  187. package/dist/likec4model/useLikeC4Model.d.ts +1 -11
  188. package/dist/likec4model/useLikeC4Model.js +1 -39
  189. package/dist/overlays/Overlays.js +61 -105
  190. package/dist/overlays/element-details/ElementDetailsCard.js +111 -116
  191. package/dist/overlays/element-details/TabPanelDeployments.js +4 -7
  192. package/dist/overlays/element-details/TabPanelRelationships.css.js +0 -2
  193. package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
  194. package/dist/overlays/element-details/TabPanelRelationships.js +35 -64
  195. package/dist/overlays/element-details/TabPanelStructure.d.ts +2 -2
  196. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  197. package/dist/overlays/overlay/Overlay.css.d.ts +2 -0
  198. package/dist/overlays/overlay/Overlay.css.js +93 -0
  199. package/dist/overlays/overlay/Overlay.d.ts +8 -0
  200. package/dist/overlays/overlay/Overlay.js +86 -0
  201. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +5 -0
  202. package/dist/overlays/relationship-details/RelationshipDetails.js +189 -0
  203. package/dist/overlays/{edge-details → relationship-details}/SelectEdge.css.d.ts +1 -0
  204. package/dist/overlays/relationship-details/SelectEdge.css.js +17 -0
  205. package/dist/overlays/{edge-details → relationship-details}/SelectEdge.d.ts +1 -1
  206. package/dist/overlays/{edge-details → relationship-details}/SelectEdge.js +8 -8
  207. package/dist/overlays/relationship-details/_types.d.ts +36 -0
  208. package/dist/overlays/relationship-details/actor.d.ts +41 -0
  209. package/dist/overlays/relationship-details/actor.js +113 -0
  210. package/dist/overlays/relationship-details/custom/ElementActions.d.ts +5 -0
  211. package/dist/overlays/relationship-details/custom/ElementActions.js +33 -0
  212. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +49 -0
  213. package/dist/overlays/relationship-details/custom/edgeTypes.js +51 -0
  214. package/dist/overlays/relationship-details/custom/index.d.ts +2 -0
  215. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +39 -0
  216. package/dist/overlays/relationship-details/custom/nodeTypes.js +89 -0
  217. package/dist/overlays/relationship-details/custom/styles.css.d.ts +1 -0
  218. package/dist/overlays/relationship-details/hooks.d.ts +59 -0
  219. package/dist/overlays/relationship-details/hooks.js +46 -0
  220. package/dist/overlays/{edge-details/use-layouted-edge-details.d.ts → relationship-details/useLayoutedDetails.d.ts} +4 -6
  221. package/dist/overlays/{edge-details/use-layouted-edge-details.js → relationship-details/useLayoutedDetails.js} +68 -64
  222. package/dist/overlays/relationships-browser/-useRelationshipsView.d.ts +39 -0
  223. package/dist/overlays/relationships-browser/-useRelationshipsView.js +488 -0
  224. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +5 -0
  225. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +209 -0
  226. package/dist/overlays/{relationships-of → relationships-browser}/SelectElement.css.d.ts +1 -0
  227. package/dist/overlays/relationships-browser/SelectElement.css.js +9 -0
  228. package/dist/overlays/relationships-browser/SelectElement.d.ts +7 -0
  229. package/dist/overlays/{relationships-of → relationships-browser}/SelectElement.js +11 -8
  230. package/dist/overlays/relationships-browser/_types.d.ts +40 -0
  231. package/dist/overlays/relationships-browser/actor.d.ts +66 -0
  232. package/dist/overlays/relationships-browser/actor.js +159 -0
  233. package/dist/overlays/relationships-browser/custom/ElementActions.d.ts +5 -0
  234. package/dist/overlays/relationships-browser/custom/ElementActions.js +43 -0
  235. package/dist/overlays/relationships-browser/custom/EmptyNode.d.ts +5 -0
  236. package/dist/overlays/{relationships-of/xyflow → relationships-browser/custom}/EmptyNode.js +1 -3
  237. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +46 -0
  238. package/dist/overlays/relationships-browser/custom/edgeTypes.js +51 -0
  239. package/dist/overlays/relationships-browser/custom/index.d.ts +2 -0
  240. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +45 -0
  241. package/dist/overlays/relationships-browser/custom/nodeTypes.js +93 -0
  242. package/dist/overlays/relationships-browser/custom/styles.css.d.ts +1 -0
  243. package/dist/overlays/relationships-browser/custom/styles.css.js +5 -0
  244. package/dist/overlays/relationships-browser/hooks.d.ts +62 -0
  245. package/dist/overlays/relationships-browser/hooks.js +46 -0
  246. package/dist/overlays/relationships-browser/useViewToNodesEdges.d.ts +10 -0
  247. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +160 -0
  248. package/dist/style.css +1 -1
  249. package/dist/utils/index.d.ts +4 -0
  250. package/dist/{xyflow/utils.d.ts → utils/xyflow.d.ts} +4 -4
  251. package/dist/{xyflow/utils.js → utils/xyflow.js} +14 -20
  252. package/package.json +23 -20
  253. package/src/LikeC4Diagram.css.ts +21 -15
  254. package/src/LikeC4Diagram.props.ts +14 -21
  255. package/src/LikeC4Diagram.tsx +105 -150
  256. package/src/LikeC4Search.tsx +21 -28
  257. package/src/StaticLikeC4Diagram.tsx +0 -1
  258. package/src/{xyflow/XYFlowBackground.tsx → base/Background.tsx} +8 -8
  259. package/src/base/BaseXYFlow.tsx +200 -0
  260. package/src/{xyflow → base}/const.ts +1 -1
  261. package/src/base/example/RelationshipsBrowser.tsx +62 -0
  262. package/src/base/example/_types.ts +71 -0
  263. package/src/base/example/custom.tsx +58 -0
  264. package/src/base/example/useViewToNodesEdges.ts +193 -0
  265. package/src/base/index.ts +10 -0
  266. package/src/base/primitives/NodeHandles.tsx +18 -0
  267. package/src/base/primitives/compound/CompoundActionButton.css.ts +55 -0
  268. package/src/base/primitives/compound/CompoundActionButton.tsx +52 -0
  269. package/src/base/primitives/compound/CompoundDetailsButton.css.ts +56 -0
  270. package/src/base/primitives/compound/CompoundDetailsButton.tsx +54 -0
  271. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +161 -0
  272. package/src/base/primitives/compound/CompoundNodeContainer.tsx +95 -0
  273. package/src/base/primitives/compound/CompoundTitle.css.ts +43 -0
  274. package/src/base/primitives/compound/CompoundTitle.tsx +29 -0
  275. package/src/base/primitives/customEdge.ts +32 -0
  276. package/src/base/primitives/customNode.ts +21 -0
  277. package/src/base/primitives/edge/EdgeActionButton.tsx +27 -0
  278. package/src/base/primitives/edge/EdgeContainer.tsx +48 -0
  279. package/src/base/primitives/edge/EdgeLabel.css.ts +196 -0
  280. package/src/base/primitives/edge/EdgeLabel.tsx +136 -0
  281. package/src/{xyflow → base/primitives/edge}/EdgeMarkers.tsx +29 -1
  282. package/src/base/primitives/edge/EdgePath.tsx +89 -0
  283. package/src/base/primitives/edge/edge.css.ts +122 -0
  284. package/src/base/primitives/element/ElementActionButtons.css.ts +48 -0
  285. package/src/base/primitives/element/ElementActionButtons.tsx +73 -0
  286. package/src/base/primitives/element/ElementDetailsButton.css.ts +54 -0
  287. package/src/base/primitives/element/ElementDetailsButton.tsx +59 -0
  288. package/src/base/primitives/element/ElementNodeContainer.css.ts +47 -0
  289. package/src/base/primitives/element/ElementNodeContainer.tsx +72 -0
  290. package/src/base/primitives/element/ElementShape.css.ts +134 -0
  291. package/src/{xyflow/nodes/element/ElementShapeSvg.tsx → base/primitives/element/ElementShape.tsx} +64 -19
  292. package/src/base/primitives/element/ElementTitle.css.ts +156 -0
  293. package/src/base/primitives/element/ElementTitle.tsx +76 -0
  294. package/src/base/primitives/index.ts +17 -0
  295. package/src/base/types.ts +169 -0
  296. package/src/base/updateEdges.ts +40 -0
  297. package/src/base/updateNodes.ts +46 -0
  298. package/src/base/xyflowMachine.ts +75 -0
  299. package/src/context/DiagramEventHandlers.tsx +53 -0
  300. package/src/context/DiagramFeatures.tsx +162 -0
  301. package/src/{ui → context}/FramerMotionConfig.tsx +2 -6
  302. package/src/context/IconRenderer.tsx +45 -0
  303. package/src/context/RootContainer.tsx +31 -0
  304. package/src/context/index.ts +14 -0
  305. package/src/globals.css.ts +32 -32
  306. package/src/hooks/index.ts +7 -5
  307. package/src/hooks/useCurrentViewId.ts +8 -0
  308. package/src/hooks/useDiagram.ts +129 -0
  309. package/src/hooks/useDiagramActor.ts +25 -0
  310. package/src/hooks/useDiagramContext.ts +11 -0
  311. package/src/hooks/useMantinePortalProps.ts +2 -2
  312. package/src/hooks/useXYFlow.ts +12 -38
  313. package/src/index.ts +3 -7
  314. package/src/likec4diagram/DiagramActor.tsx +79 -0
  315. package/src/likec4diagram/DiagramUI.tsx +28 -0
  316. package/src/likec4diagram/XYFlow.tsx +137 -0
  317. package/src/likec4diagram/custom/edges/NotePopover.css.ts +27 -0
  318. package/src/likec4diagram/custom/edges/NotePopover.tsx +96 -0
  319. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +355 -0
  320. package/src/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.css.ts +7 -7
  321. package/src/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.tsx +91 -70
  322. package/src/likec4diagram/custom/edges/edges.css.ts +39 -0
  323. package/src/likec4diagram/custom/edges/utils.ts +125 -0
  324. package/src/likec4diagram/custom/index.tsx +8 -0
  325. package/src/likec4diagram/custom/nodes/CompoundActions.tsx +27 -0
  326. package/src/likec4diagram/custom/nodes/ElementActions.tsx +74 -0
  327. package/src/likec4diagram/custom/nodes/nodeTypes.tsx +107 -0
  328. package/src/likec4diagram/custom/nodes/toolbar/ColorButton.tsx +175 -0
  329. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +122 -0
  330. package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +140 -0
  331. package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +77 -0
  332. package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +143 -0
  333. package/src/likec4diagram/custom/nodes/toolbar/styles.css.ts +9 -0
  334. package/src/likec4diagram/state/actorContext.ts +8 -0
  335. package/src/{state → likec4diagram/state}/aligners.ts +67 -40
  336. package/src/likec4diagram/state/assign.ts +384 -0
  337. package/src/likec4diagram/state/hotkeyActor.ts +20 -0
  338. package/src/likec4diagram/state/inspector.ts +23 -0
  339. package/src/likec4diagram/state/machine.ts +946 -0
  340. package/src/likec4diagram/state/syncManualLayoutActor.ts +219 -0
  341. package/src/likec4diagram/state/utils.ts +52 -0
  342. package/src/likec4diagram/types.ts +144 -0
  343. package/src/{ui/top-left → likec4diagram/ui/controls}/ChangeAutoLayoutButton.tsx +32 -28
  344. package/src/likec4diagram/ui/controls/Controls.tsx +107 -0
  345. package/src/likec4diagram/ui/controls/LayoutDriftNotification.tsx +46 -0
  346. package/src/{ui/top-left → likec4diagram/ui/controls}/ManualLayoutToolsButton.tsx +16 -16
  347. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +83 -0
  348. package/src/{ui/top-left → likec4diagram/ui/controls}/_shared.ts +4 -3
  349. package/src/{ui/top-left → likec4diagram/ui/controls}/styles.css.ts +17 -17
  350. package/src/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.css.ts +11 -11
  351. package/src/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.tsx +6 -5
  352. package/src/likec4diagram/ui/diagram-title/Link.tsx +40 -0
  353. package/src/likec4diagram/ui/index.ts +2 -0
  354. package/src/{ui → likec4diagram/ui}/notation/NotationPanel.css.ts +18 -18
  355. package/src/{ui → likec4diagram/ui}/notation/NotationPanel.tsx +44 -44
  356. package/src/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.css.ts +16 -16
  357. package/src/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.tsx +29 -49
  358. package/src/{xyflow → likec4diagram}/useLayoutConstraints.ts +54 -43
  359. package/src/likec4diagram/useViewToNodesEdges.ts +297 -0
  360. package/src/likec4model/index.ts +0 -6
  361. package/src/likec4model/useLikeC4Model.ts +1 -43
  362. package/src/overlays/Overlays.tsx +201 -147
  363. package/src/overlays/element-details/ElementDetailsCard.css.ts +58 -58
  364. package/src/overlays/element-details/ElementDetailsCard.tsx +143 -128
  365. package/src/overlays/element-details/TabPanelDeployments.css.ts +14 -14
  366. package/src/overlays/element-details/TabPanelDeployments.tsx +22 -22
  367. package/src/overlays/element-details/TabPanelRelationships.css.ts +19 -19
  368. package/src/overlays/element-details/TabPanelRelationships.tsx +45 -28
  369. package/src/overlays/element-details/TabPanelStructure.css.ts +7 -7
  370. package/src/overlays/element-details/TabPanelStructure.tsx +11 -11
  371. package/src/overlays/overlay/Overlay.css.ts +73 -0
  372. package/src/overlays/overlay/Overlay.tsx +99 -0
  373. package/src/overlays/relationship-details/RelationshipDetails.tsx +234 -0
  374. package/src/overlays/{edge-details → relationship-details}/SelectEdge.css.ts +20 -13
  375. package/src/overlays/{edge-details → relationship-details}/SelectEdge.tsx +14 -14
  376. package/src/overlays/relationship-details/_types.ts +73 -0
  377. package/src/overlays/relationship-details/actor.ts +162 -0
  378. package/src/overlays/relationship-details/custom/ElementActions.tsx +45 -0
  379. package/src/overlays/relationship-details/custom/edgeTypes.tsx +49 -0
  380. package/src/overlays/relationship-details/custom/index.tsx +2 -0
  381. package/src/overlays/relationship-details/custom/nodeTypes.tsx +108 -0
  382. package/src/overlays/relationship-details/custom/styles.css.ts +13 -0
  383. package/src/overlays/relationship-details/hooks.ts +48 -0
  384. package/src/overlays/{edge-details/use-layouted-edge-details.ts → relationship-details/useLayoutedDetails.ts} +128 -114
  385. package/src/overlays/relationships-browser/-useRelationshipsView.ts +642 -0
  386. package/src/overlays/relationships-browser/RelationshipsBrowser.tsx +247 -0
  387. package/src/overlays/{relationships-of → relationships-browser}/SelectElement.css.ts +12 -5
  388. package/src/overlays/{relationships-of → relationships-browser}/SelectElement.tsx +19 -18
  389. package/src/overlays/relationships-browser/_types.ts +89 -0
  390. package/src/overlays/relationships-browser/actor.ts +224 -0
  391. package/src/overlays/relationships-browser/custom/ElementActions.tsx +44 -0
  392. package/src/overlays/relationships-browser/custom/EmptyNode.tsx +18 -0
  393. package/src/overlays/relationships-browser/custom/edgeTypes.tsx +49 -0
  394. package/src/overlays/relationships-browser/custom/index.tsx +2 -0
  395. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +109 -0
  396. package/src/overlays/relationships-browser/custom/styles.css.ts +13 -0
  397. package/src/overlays/relationships-browser/hooks.ts +48 -0
  398. package/src/overlays/relationships-browser/useViewToNodesEdges.ts +209 -0
  399. package/src/utils/index.ts +15 -0
  400. package/src/{xyflow/utils.ts → utils/xyflow.ts} +22 -8
  401. package/dist/_virtual/_commonjsHelpers.js +0 -6
  402. package/dist/controls/Text.d.ts +0 -2
  403. package/dist/controls/Text.js +0 -7
  404. package/dist/controls/action-button-bar/ActionButtonBar.css.d.ts +0 -1
  405. package/dist/controls/action-button-bar/ActionButtonBar.css.js +0 -5
  406. package/dist/controls/action-button-bar/ActionButtonBar.d.ts +0 -9
  407. package/dist/controls/action-button-bar/ActionButtonBar.js +0 -100
  408. package/dist/controls/action-button-bar/useActionButtonBarCtx.d.ts +0 -10
  409. package/dist/controls/action-button-bar/useActionButtonBarCtx.js +0 -9
  410. package/dist/controls/action-buttons/ActionButton.css.d.ts +0 -1
  411. package/dist/controls/action-buttons/ActionButton.css.js +0 -5
  412. package/dist/controls/action-buttons/ActionButton.d.ts +0 -9
  413. package/dist/controls/action-buttons/ActionButton.js +0 -66
  414. package/dist/controls/action-buttons/ActionButtons.d.ts +0 -12
  415. package/dist/controls/action-buttons/ActionButtons.js +0 -99
  416. package/dist/hooks/useDiagramState.d.ts +0 -6
  417. package/dist/hooks/useDiagramState.js +0 -27
  418. package/dist/overlays/OverlayContext.d.ts +0 -10
  419. package/dist/overlays/OverlayContext.js +0 -9
  420. package/dist/overlays/Overlays.css.d.ts +0 -3
  421. package/dist/overlays/Overlays.css.js +0 -7
  422. package/dist/overlays/edge-details/EdgeDetailsXYFlow.d.ts +0 -5
  423. package/dist/overlays/edge-details/EdgeDetailsXYFlow.js +0 -185
  424. package/dist/overlays/edge-details/SelectEdge.css.js +0 -17
  425. package/dist/overlays/edge-details/_types.d.ts +0 -14
  426. package/dist/overlays/edge-details/xyflow/CompoundNode.d.ts +0 -5
  427. package/dist/overlays/edge-details/xyflow/CompoundNode.js +0 -76
  428. package/dist/overlays/edge-details/xyflow/ElementNode.d.ts +0 -5
  429. package/dist/overlays/edge-details/xyflow/ElementNode.js +0 -159
  430. package/dist/overlays/edge-details/xyflow/RelationshipEdge.d.ts +0 -3
  431. package/dist/overlays/edge-details/xyflow/RelationshipEdge.js +0 -84
  432. package/dist/overlays/edge-details/xyflow/styles.css.d.ts +0 -9
  433. package/dist/overlays/edge-details/xyflow/styles.css.js +0 -21
  434. package/dist/overlays/index.d.ts +0 -1
  435. package/dist/overlays/relationships-of/RelationshipsOverlay.d.ts +0 -5
  436. package/dist/overlays/relationships-of/RelationshipsOverlay.js +0 -193
  437. package/dist/overlays/relationships-of/RelationshipsXYFlow.d.ts +0 -19
  438. package/dist/overlays/relationships-of/RelationshipsXYFlow.js +0 -290
  439. package/dist/overlays/relationships-of/SelectElement.css.js +0 -7
  440. package/dist/overlays/relationships-of/SelectElement.d.ts +0 -7
  441. package/dist/overlays/relationships-of/_types.d.ts +0 -28
  442. package/dist/overlays/relationships-of/use-layouted-relationships.d.ts +0 -22
  443. package/dist/overlays/relationships-of/use-layouted-relationships.js +0 -496
  444. package/dist/overlays/relationships-of/xyflow/CompoundNode.d.ts +0 -6
  445. package/dist/overlays/relationships-of/xyflow/CompoundNode.js +0 -120
  446. package/dist/overlays/relationships-of/xyflow/ElementNode.d.ts +0 -6
  447. package/dist/overlays/relationships-of/xyflow/ElementNode.js +0 -194
  448. package/dist/overlays/relationships-of/xyflow/EmptyNode.d.ts +0 -5
  449. package/dist/overlays/relationships-of/xyflow/RelationshipEdge.d.ts +0 -3
  450. package/dist/overlays/relationships-of/xyflow/RelationshipEdge.js +0 -123
  451. package/dist/overlays/relationships-of/xyflow/styles.css.d.ts +0 -14
  452. package/dist/overlays/relationships-of/xyflow/styles.css.js +0 -24
  453. package/dist/overlays/shared/xyflow/RelationshipEdge.css.d.ts +0 -4
  454. package/dist/overlays/shared/xyflow/RelationshipEdge.css.js +0 -12
  455. package/dist/overlays/shared/xyflow/_types.d.ts +0 -77
  456. package/dist/state/DiagramContext.d.ts +0 -1609
  457. package/dist/state/DiagramContext.js +0 -101
  458. package/dist/state/diagram-to-xyflow.d.ts +0 -11
  459. package/dist/state/diagram-to-xyflow.js +0 -113
  460. package/dist/state/diagramStore.d.ts +0 -1705
  461. package/dist/state/diagramStore.js +0 -808
  462. package/dist/state/diagramStore.layout.d.ts +0 -4
  463. package/dist/state/diagramStore.layout.js +0 -56
  464. package/dist/ui/DiagramTitlePanel.css.js +0 -11
  465. package/dist/ui/DiagramTitlePanel.d.ts +0 -1
  466. package/dist/ui/notation/NotationPanel.css.js +0 -16
  467. package/dist/ui/notation/NotationPanel.d.ts +0 -1
  468. package/dist/ui/top-left/TopLeftPanel.d.ts +0 -4
  469. package/dist/ui/top-left/TopLeftPanel.js +0 -211
  470. package/dist/ui/top-left/styles.css.js +0 -17
  471. package/dist/xyflow/FitviewOnDiagramChange.d.ts +0 -4
  472. package/dist/xyflow/FitviewOnDiagramChange.js +0 -72
  473. package/dist/xyflow/SelectEdgesOnNodeFocus.d.ts +0 -1
  474. package/dist/xyflow/SelectEdgesOnNodeFocus.js +0 -96
  475. package/dist/xyflow/XYFlow.d.ts +0 -8
  476. package/dist/xyflow/XYFlow.js +0 -145
  477. package/dist/xyflow/XYFlowBackground.d.ts +0 -10
  478. package/dist/xyflow/XYFlowInner.d.ts +0 -8
  479. package/dist/xyflow/XYFlowInner.js +0 -41
  480. package/dist/xyflow/edges/EdgeLabel.d.ts +0 -7
  481. package/dist/xyflow/edges/EdgeLabel.js +0 -160
  482. package/dist/xyflow/edges/RelationshipEdge.d.ts +0 -6
  483. package/dist/xyflow/edges/RelationshipEdge.js +0 -443
  484. package/dist/xyflow/edges/edges.css.js +0 -37
  485. package/dist/xyflow/edges/utils.d.ts +0 -16
  486. package/dist/xyflow/edges/utils.js +0 -24
  487. package/dist/xyflow/nodes/AnimateVariants.d.ts +0 -1313
  488. package/dist/xyflow/nodes/AnimateVariants.js +0 -123
  489. package/dist/xyflow/nodes/Node.css.d.ts +0 -3
  490. package/dist/xyflow/nodes/Node.css.js +0 -9
  491. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +0 -14
  492. package/dist/xyflow/nodes/compound/CompoundNode.css.js +0 -27
  493. package/dist/xyflow/nodes/compound/CompoundNode.d.ts +0 -6
  494. package/dist/xyflow/nodes/compound/CompoundNode.js +0 -216
  495. package/dist/xyflow/nodes/compound/index.d.ts +0 -1
  496. package/dist/xyflow/nodes/element/ElementLink.css.d.ts +0 -3
  497. package/dist/xyflow/nodes/element/ElementLink.d.ts +0 -6
  498. package/dist/xyflow/nodes/element/ElementNode.d.ts +0 -6
  499. package/dist/xyflow/nodes/element/ElementNode.js +0 -190
  500. package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +0 -17
  501. package/dist/xyflow/nodes/element/element.css.d.ts +0 -18
  502. package/dist/xyflow/nodes/element/element.css.js +0 -31
  503. package/dist/xyflow/nodes/element/index.d.ts +0 -1
  504. package/dist/xyflow/nodes/shared/ElementIcon.d.ts +0 -8
  505. package/dist/xyflow/nodes/shared/Toolbar.d.ts +0 -9
  506. package/dist/xyflow/nodes/shared/Toolbar.js +0 -436
  507. package/dist/xyflow/types.d.ts +0 -36
  508. package/dist/xyflow/useXYFlowEvents.d.ts +0 -160
  509. package/dist/xyflow/useXYFlowEvents.js +0 -275
  510. package/src/controls/Text.ts +0 -5
  511. package/src/controls/action-button-bar/ActionButtonBar.css.ts +0 -13
  512. package/src/controls/action-button-bar/ActionButtonBar.tsx +0 -138
  513. package/src/controls/action-button-bar/useActionButtonBarCtx.ts +0 -13
  514. package/src/controls/action-buttons/ActionButton.css.ts +0 -29
  515. package/src/controls/action-buttons/ActionButton.tsx +0 -66
  516. package/src/controls/action-buttons/ActionButtons.tsx +0 -138
  517. package/src/hooks/useDiagramState.ts +0 -36
  518. package/src/overlays/OverlayContext.tsx +0 -11
  519. package/src/overlays/Overlays.css.ts +0 -136
  520. package/src/overlays/edge-details/EdgeDetailsXYFlow.tsx +0 -255
  521. package/src/overlays/edge-details/_types.ts +0 -18
  522. package/src/overlays/edge-details/xyflow/CompoundNode.tsx +0 -72
  523. package/src/overlays/edge-details/xyflow/ElementNode.tsx +0 -152
  524. package/src/overlays/edge-details/xyflow/RelationshipEdge.tsx +0 -85
  525. package/src/overlays/edge-details/xyflow/styles.css.ts +0 -144
  526. package/src/overlays/index.tsx +0 -1
  527. package/src/overlays/relationships-of/RelationshipsOverlay.tsx +0 -185
  528. package/src/overlays/relationships-of/RelationshipsXYFlow.tsx +0 -378
  529. package/src/overlays/relationships-of/_types.ts +0 -40
  530. package/src/overlays/relationships-of/use-layouted-relationships.ts +0 -699
  531. package/src/overlays/relationships-of/xyflow/CompoundNode.tsx +0 -124
  532. package/src/overlays/relationships-of/xyflow/ElementNode.tsx +0 -194
  533. package/src/overlays/relationships-of/xyflow/EmptyNode.tsx +0 -19
  534. package/src/overlays/relationships-of/xyflow/RelationshipEdge.tsx +0 -127
  535. package/src/overlays/relationships-of/xyflow/styles.css.ts +0 -214
  536. package/src/overlays/shared/xyflow/RelationshipEdge.css.ts +0 -60
  537. package/src/overlays/shared/xyflow/_types.ts +0 -87
  538. package/src/state/DiagramContext.tsx +0 -107
  539. package/src/state/diagram-to-xyflow.ts +0 -150
  540. package/src/state/diagramStore.layout.ts +0 -66
  541. package/src/state/diagramStore.ts +0 -1099
  542. package/src/ui/top-left/TopLeftPanel.tsx +0 -220
  543. package/src/xyflow/FitviewOnDiagramChange.tsx +0 -83
  544. package/src/xyflow/SelectEdgesOnNodeFocus.tsx +0 -106
  545. package/src/xyflow/XYFlow.tsx +0 -179
  546. package/src/xyflow/XYFlowInner.tsx +0 -48
  547. package/src/xyflow/edges/EdgeLabel.tsx +0 -193
  548. package/src/xyflow/edges/RelationshipEdge.tsx +0 -547
  549. package/src/xyflow/edges/edges.css.ts +0 -288
  550. package/src/xyflow/edges/utils.ts +0 -153
  551. package/src/xyflow/nodes/AnimateVariants.ts +0 -143
  552. package/src/xyflow/nodes/Node.css.ts +0 -44
  553. package/src/xyflow/nodes/compound/CompoundNode.css.ts +0 -258
  554. package/src/xyflow/nodes/compound/CompoundNode.tsx +0 -227
  555. package/src/xyflow/nodes/compound/index.ts +0 -1
  556. package/src/xyflow/nodes/element/ElementLink.css.ts +0 -67
  557. package/src/xyflow/nodes/element/ElementLink.tsx +0 -97
  558. package/src/xyflow/nodes/element/ElementNode.tsx +0 -209
  559. package/src/xyflow/nodes/element/element.css.ts +0 -369
  560. package/src/xyflow/nodes/element/index.ts +0 -1
  561. package/src/xyflow/nodes/shared/ElementIcon.tsx +0 -43
  562. package/src/xyflow/nodes/shared/Toolbar.tsx +0 -496
  563. package/src/xyflow/types.ts +0 -57
  564. package/src/xyflow/useXYFlowEvents.ts +0 -315
  565. /package/dist/{xyflow → base}/const.d.ts +0 -0
  566. /package/dist/{xyflow → base}/const.js +0 -0
  567. /package/dist/{ui → context}/EnsureMantine.d.ts +0 -0
  568. /package/dist/{ui → context}/EnsureMantine.js +0 -0
  569. /package/dist/{ui → context}/FramerMotionConfig.d.ts +0 -0
  570. /package/dist/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.css.d.ts +0 -0
  571. /package/dist/{ui/top-left → likec4diagram/ui/controls}/ChangeAutoLayoutButton.d.ts +0 -0
  572. /package/dist/{ui/top-left → likec4diagram/ui/controls}/ManualLayoutToolsButton.d.ts +0 -0
  573. /package/dist/{ui/top-left → likec4diagram/ui/controls}/_shared.d.ts +0 -0
  574. /package/dist/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.css.d.ts +0 -0
  575. /package/dist/{ui → likec4diagram/ui/diagram-title}/Link.js +0 -0
  576. /package/dist/{ui → likec4diagram/ui}/notation/NotationPanel.css.d.ts +0 -0
  577. /package/dist/{ui → likec4diagram/ui}/notation/index.d.ts +0 -0
  578. /package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.css.d.ts +0 -0
  579. /package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.d.ts +0 -0
  580. /package/src/{ui → context}/EnsureMantine.tsx +0 -0
  581. /package/src/{ui → likec4diagram/ui}/notation/index.ts +0 -0
@@ -1,1705 +0,0 @@
1
- import { ComputedNode, DiagramNode, DiagramView, EdgeId, ElementNotation, Fqn, NodeId, ViewChange, ViewId, StepEdgeId } from '@likec4/core';
2
- import { OnEdgesChange, OnNodesChange } from '@xyflow/react';
3
- import { MouseEvent as ReactMouseEvent, ReactNode, CSSProperties } from 'react';
4
- import { RequireExactlyOne, Simplify } from 'type-fest';
5
- import { XYStoreApi } from '../hooks/useXYFlow';
6
- import { ElementIconRenderer, LikeC4DiagramEventHandlers, WhereOperator } from '../LikeC4Diagram.props';
7
- import { DiagramFlowTypes } from '../xyflow/types';
8
- import { AlignmentMode } from './diagramStore.layout';
9
- import { UseBoundStoreWithEqualityFn } from 'zustand/traditional';
10
- import { StoreApi } from 'zustand/vanilla';
11
- import { OnChange, OnNavigateTo, OnNodeClick, OnCanvasClick, OnEdgeClick, OpenSourceParams } from '..';
12
- import { EdgeMarkerType, HandleType } from '@xyflow/system';
13
- type RequiredOrNull<T> = {
14
- [P in keyof T]-?: NonNullable<T[P]> | null;
15
- };
16
- export type DiagramInitialState = {
17
- view: DiagramView;
18
- readonly: boolean;
19
- hasLikeC4Model: boolean;
20
- controls: boolean;
21
- showNavigationButtons: boolean;
22
- showNotations: boolean;
23
- fitViewEnabled: boolean;
24
- fitViewPadding: number;
25
- zoomable: boolean;
26
- pannable: boolean;
27
- nodesDraggable: boolean;
28
- nodesSelectable: boolean;
29
- experimentalEdgeEditing: boolean;
30
- enableFocusMode: boolean;
31
- enableElementDetails: boolean;
32
- enableRelationshipBrowser: boolean;
33
- enableRelationshipDetails: boolean;
34
- enableSearch: boolean;
35
- renderIcon: ElementIconRenderer | null;
36
- whereFilter: WhereOperator<string, string> | null;
37
- enableDynamicViewWalkthrough: boolean;
38
- xyflow: DiagramFlowTypes.XYFlowInstance;
39
- xystore: XYStoreApi;
40
- getContainer: () => HTMLDivElement | null;
41
- } & RequiredOrNull<LikeC4DiagramEventHandlers>;
42
- type NodeKind = ComputedNode['kind'];
43
- export type DiagramState = Simplify<DiagramInitialState & {
44
- readonly storeDevId: string;
45
- xynodes: DiagramFlowTypes.Node[];
46
- xyedges: DiagramFlowTypes.Edge[];
47
- viewSyncDebounceTimeout: number | null;
48
- viewportChanged: boolean;
49
- initialized: boolean;
50
- activeOverlay: null | RequireExactlyOne<{
51
- elementDetails: Fqn;
52
- relationshipsOf: Fqn;
53
- edgeDetails: EdgeId;
54
- }>;
55
- isEditable: () => boolean;
56
- isDynamicView: boolean;
57
- activeWalkthrough: null | {
58
- stepId: StepEdgeId;
59
- hasPrevious: boolean;
60
- hasNext: boolean;
61
- parallelPrefix: string | null;
62
- };
63
- lastClickedNodeId: string | null;
64
- lastClickedEdgeId: string | null;
65
- focusedNodeId: string | null;
66
- hoveredEdgeId: string | null;
67
- dimmed: ReadonlySet<string>;
68
- lastOnNavigate: null | {
69
- fromView: ViewId;
70
- toView: ViewId;
71
- fromNode: NodeId | null;
72
- };
73
- navigationHistory: Array<{
74
- viewId: ViewId;
75
- nodeId: NodeId | null;
76
- }>;
77
- navigationHistoryIndex: number;
78
- updateView: (view: DiagramView) => void;
79
- /**
80
- * A function to set the focus on a specific node given its identifier.
81
- * It can also be used to remove focus if the input is `false`.
82
- */
83
- focusOnNode: (nodeId: string | false) => void;
84
- setHoveredEdge: (edgeId: string | null) => void;
85
- setLastClickedNode: (nodeId: string | null) => void;
86
- setLastClickedEdge: (edgeId: string | null) => void;
87
- resetFocusAndLastClicked: () => void;
88
- getElement(id: Fqn): DiagramNode | null;
89
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
90
- /**
91
- * @returns true if there was pending save layout
92
- */
93
- cancelSaveManualLayout: () => boolean;
94
- scheduleSaveManualLayout: () => void;
95
- triggerSaveManualLayout: () => void;
96
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
97
- fitDiagram: (duration?: number) => void;
98
- goBack: () => void;
99
- goForward: () => void;
100
- nextDynamicStep: (increment?: number) => void;
101
- activateWalkthrough: (step: EdgeId | DiagramFlowTypes.Edge) => void;
102
- stopWalkthrough: () => void;
103
- openOverlay: (overlay: NonNullable<DiagramState['activeOverlay']>) => void;
104
- closeOverlay: () => void;
105
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
106
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
107
- onEdgesChange: OnEdgesChange<DiagramFlowTypes.Edge>;
108
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
109
- resetEdgeControlPoints: () => void;
110
- align: (mode: AlignmentMode) => void;
111
- onOpenSourceView: () => void;
112
- }>;
113
- export declare function createDiagramStore(props: DiagramInitialState): UseBoundStoreWithEqualityFn<Omit<Omit< StoreApi<{
114
- view: DiagramView;
115
- readonly: boolean;
116
- hasLikeC4Model: boolean;
117
- controls: boolean;
118
- showNavigationButtons: boolean;
119
- showNotations: boolean;
120
- fitViewEnabled: boolean;
121
- fitViewPadding: number;
122
- zoomable: boolean;
123
- pannable: boolean;
124
- nodesDraggable: boolean;
125
- nodesSelectable: boolean;
126
- experimentalEdgeEditing: boolean;
127
- enableFocusMode: boolean;
128
- enableElementDetails: boolean;
129
- enableRelationshipBrowser: boolean;
130
- enableRelationshipDetails: boolean;
131
- enableSearch: boolean;
132
- renderIcon: ElementIconRenderer | null;
133
- whereFilter: WhereOperator<string, string> | null;
134
- enableDynamicViewWalkthrough: boolean;
135
- xyflow: DiagramFlowTypes.XYFlowInstance;
136
- xystore: XYStoreApi;
137
- getContainer: () => HTMLDivElement | null;
138
- onChange: OnChange | null;
139
- onNavigateTo: OnNavigateTo<ViewId> | null;
140
- onNodeClick: OnNodeClick | null;
141
- onNodeContextMenu: OnNodeClick | null;
142
- onCanvasContextMenu: OnCanvasClick | null;
143
- onEdgeClick: OnEdgeClick | null;
144
- onEdgeContextMenu: OnEdgeClick | null;
145
- onCanvasClick: OnCanvasClick | null;
146
- onCanvasDblClick: OnCanvasClick | null;
147
- onBurgerMenuClick: (() => void) | null;
148
- onOpenSource: ((params: OpenSourceParams) => void) | null;
149
- readonly storeDevId: string;
150
- xynodes: DiagramFlowTypes.Node[];
151
- xyedges: DiagramFlowTypes.Edge[];
152
- viewSyncDebounceTimeout: number | null;
153
- viewportChanged: boolean;
154
- initialized: boolean;
155
- activeOverlay: null | RequireExactlyOne<{
156
- elementDetails: Fqn;
157
- relationshipsOf: Fqn;
158
- edgeDetails: EdgeId;
159
- }>;
160
- isEditable: () => boolean;
161
- isDynamicView: boolean;
162
- activeWalkthrough: null | {
163
- stepId: StepEdgeId;
164
- hasPrevious: boolean;
165
- hasNext: boolean;
166
- parallelPrefix: string | null;
167
- };
168
- lastClickedNodeId: string | null;
169
- lastClickedEdgeId: string | null;
170
- focusedNodeId: string | null;
171
- hoveredEdgeId: string | null;
172
- dimmed: ReadonlySet<string>;
173
- lastOnNavigate: null | {
174
- fromView: ViewId;
175
- toView: ViewId;
176
- fromNode: NodeId | null;
177
- };
178
- navigationHistory: Array<{
179
- viewId: ViewId;
180
- nodeId: NodeId | null;
181
- }>;
182
- navigationHistoryIndex: number;
183
- updateView: (view: DiagramView) => void;
184
- focusOnNode: (nodeId: string | false) => void;
185
- setHoveredEdge: (edgeId: string | null) => void;
186
- setLastClickedNode: (nodeId: string | null) => void;
187
- setLastClickedEdge: (edgeId: string | null) => void;
188
- resetFocusAndLastClicked: () => void;
189
- getElement: (id: Fqn) => DiagramNode | null;
190
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
191
- cancelSaveManualLayout: () => boolean;
192
- scheduleSaveManualLayout: () => void;
193
- triggerSaveManualLayout: () => void;
194
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
195
- fitDiagram: (duration?: number) => void;
196
- goBack: () => void;
197
- goForward: () => void;
198
- nextDynamicStep: (increment?: number) => void;
199
- activateWalkthrough: (step: EdgeId | DiagramFlowTypes.Edge) => void;
200
- stopWalkthrough: () => void;
201
- openOverlay: (overlay: NonNullable<DiagramState["activeOverlay"]>) => void;
202
- closeOverlay: () => void;
203
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
204
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
205
- onEdgesChange: OnEdgesChange<DiagramFlowTypes.Edge>;
206
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
207
- resetEdgeControlPoints: () => void;
208
- align: (mode: AlignmentMode) => void;
209
- onOpenSourceView: () => void;
210
- }>, "subscribe"> & {
211
- subscribe: {
212
- (listener: (selectedState: {
213
- view: DiagramView;
214
- readonly: boolean;
215
- hasLikeC4Model: boolean;
216
- controls: boolean;
217
- showNavigationButtons: boolean;
218
- showNotations: boolean;
219
- fitViewEnabled: boolean;
220
- fitViewPadding: number;
221
- zoomable: boolean;
222
- pannable: boolean;
223
- nodesDraggable: boolean;
224
- nodesSelectable: boolean;
225
- experimentalEdgeEditing: boolean;
226
- enableFocusMode: boolean;
227
- enableElementDetails: boolean;
228
- enableRelationshipBrowser: boolean;
229
- enableRelationshipDetails: boolean;
230
- enableSearch: boolean;
231
- renderIcon: ElementIconRenderer | null;
232
- whereFilter: WhereOperator<string, string> | null;
233
- enableDynamicViewWalkthrough: boolean;
234
- xyflow: DiagramFlowTypes.XYFlowInstance;
235
- xystore: XYStoreApi;
236
- getContainer: () => HTMLDivElement | null;
237
- onChange: OnChange | null;
238
- onNavigateTo: OnNavigateTo<ViewId> | null;
239
- onNodeClick: OnNodeClick | null;
240
- onNodeContextMenu: OnNodeClick | null;
241
- onCanvasContextMenu: OnCanvasClick | null;
242
- onEdgeClick: OnEdgeClick | null;
243
- onEdgeContextMenu: OnEdgeClick | null;
244
- onCanvasClick: OnCanvasClick | null;
245
- onCanvasDblClick: OnCanvasClick | null;
246
- onBurgerMenuClick: (() => void) | null;
247
- onOpenSource: ((params: OpenSourceParams) => void) | null;
248
- readonly storeDevId: string;
249
- xynodes: DiagramFlowTypes.Node[];
250
- xyedges: {
251
- id: string;
252
- type: "relationship";
253
- source: string;
254
- target: string;
255
- sourceHandle?: string | null;
256
- targetHandle?: string | null;
257
- animated?: boolean;
258
- hidden?: boolean;
259
- deletable?: boolean;
260
- selectable?: boolean;
261
- data: DiagramFlowTypes.DiagramEdgeData;
262
- selected?: boolean;
263
- markerStart?: EdgeMarkerType;
264
- markerEnd?: EdgeMarkerType;
265
- zIndex?: number;
266
- ariaLabel?: string;
267
- interactionWidth?: number;
268
- label?: ReactNode;
269
- labelStyle?: CSSProperties;
270
- labelShowBg?: boolean;
271
- labelBgStyle?: CSSProperties;
272
- labelBgPadding?: [number, number];
273
- labelBgBorderRadius?: number;
274
- style?: CSSProperties;
275
- className?: string;
276
- reconnectable?: boolean | HandleType;
277
- focusable?: boolean;
278
- }[];
279
- viewSyncDebounceTimeout: number | null;
280
- viewportChanged: boolean;
281
- initialized: boolean;
282
- activeOverlay: null | RequireExactlyOne<{
283
- elementDetails: Fqn;
284
- relationshipsOf: Fqn;
285
- edgeDetails: EdgeId;
286
- }>;
287
- isEditable: () => boolean;
288
- isDynamicView: boolean;
289
- activeWalkthrough: null | {
290
- stepId: StepEdgeId;
291
- hasPrevious: boolean;
292
- hasNext: boolean;
293
- parallelPrefix: string | null;
294
- };
295
- lastClickedNodeId: string | null;
296
- lastClickedEdgeId: string | null;
297
- focusedNodeId: string | null;
298
- hoveredEdgeId: string | null;
299
- dimmed: ReadonlySet<string>;
300
- lastOnNavigate: null | {
301
- fromView: ViewId;
302
- toView: ViewId;
303
- fromNode: NodeId | null;
304
- };
305
- navigationHistory: Array<{
306
- viewId: ViewId;
307
- nodeId: NodeId | null;
308
- }>;
309
- navigationHistoryIndex: number;
310
- updateView: (view: DiagramView) => void;
311
- focusOnNode: (nodeId: string | false) => void;
312
- setHoveredEdge: (edgeId: string | null) => void;
313
- setLastClickedNode: (nodeId: string | null) => void;
314
- setLastClickedEdge: (edgeId: string | null) => void;
315
- resetFocusAndLastClicked: () => void;
316
- getElement: (id: Fqn) => DiagramNode | null;
317
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
318
- cancelSaveManualLayout: () => boolean;
319
- scheduleSaveManualLayout: () => void;
320
- triggerSaveManualLayout: () => void;
321
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
322
- fitDiagram: (duration?: number) => void;
323
- goBack: () => void;
324
- goForward: () => void;
325
- nextDynamicStep: (increment?: number) => void;
326
- activateWalkthrough: (step: EdgeId | {
327
- id: string;
328
- type: "relationship";
329
- source: string;
330
- target: string;
331
- sourceHandle?: string | null;
332
- targetHandle?: string | null;
333
- animated?: boolean;
334
- hidden?: boolean;
335
- deletable?: boolean;
336
- selectable?: boolean;
337
- data: DiagramFlowTypes.DiagramEdgeData;
338
- selected?: boolean;
339
- markerStart?: EdgeMarkerType;
340
- markerEnd?: EdgeMarkerType;
341
- zIndex?: number;
342
- ariaLabel?: string;
343
- interactionWidth?: number;
344
- label?: ReactNode;
345
- labelStyle?: CSSProperties;
346
- labelShowBg?: boolean;
347
- labelBgStyle?: CSSProperties;
348
- labelBgPadding?: [number, number];
349
- labelBgBorderRadius?: number;
350
- style?: CSSProperties;
351
- className?: string;
352
- reconnectable?: boolean | HandleType;
353
- focusable?: boolean;
354
- }) => void;
355
- stopWalkthrough: () => void;
356
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
357
- elementDetails: Fqn;
358
- relationshipsOf: Fqn;
359
- edgeDetails: EdgeId;
360
- }> | null>) => void;
361
- closeOverlay: () => void;
362
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
363
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
364
- onEdgesChange: OnEdgesChange<{
365
- id: string;
366
- type: "relationship";
367
- source: string;
368
- target: string;
369
- sourceHandle?: string | null;
370
- targetHandle?: string | null;
371
- animated?: boolean;
372
- hidden?: boolean;
373
- deletable?: boolean;
374
- selectable?: boolean;
375
- data: DiagramFlowTypes.DiagramEdgeData;
376
- selected?: boolean;
377
- markerStart?: EdgeMarkerType;
378
- markerEnd?: EdgeMarkerType;
379
- zIndex?: number;
380
- ariaLabel?: string;
381
- interactionWidth?: number;
382
- label?: ReactNode;
383
- labelStyle?: CSSProperties;
384
- labelShowBg?: boolean;
385
- labelBgStyle?: CSSProperties;
386
- labelBgPadding?: [number, number];
387
- labelBgBorderRadius?: number;
388
- style?: CSSProperties;
389
- className?: string;
390
- reconnectable?: boolean | HandleType;
391
- focusable?: boolean;
392
- }>;
393
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
394
- resetEdgeControlPoints: () => void;
395
- align: (mode: AlignmentMode) => void;
396
- onOpenSourceView: () => void;
397
- }, previousSelectedState: {
398
- view: DiagramView;
399
- readonly: boolean;
400
- hasLikeC4Model: boolean;
401
- controls: boolean;
402
- showNavigationButtons: boolean;
403
- showNotations: boolean;
404
- fitViewEnabled: boolean;
405
- fitViewPadding: number;
406
- zoomable: boolean;
407
- pannable: boolean;
408
- nodesDraggable: boolean;
409
- nodesSelectable: boolean;
410
- experimentalEdgeEditing: boolean;
411
- enableFocusMode: boolean;
412
- enableElementDetails: boolean;
413
- enableRelationshipBrowser: boolean;
414
- enableRelationshipDetails: boolean;
415
- enableSearch: boolean;
416
- renderIcon: ElementIconRenderer | null;
417
- whereFilter: WhereOperator<string, string> | null;
418
- enableDynamicViewWalkthrough: boolean;
419
- xyflow: DiagramFlowTypes.XYFlowInstance;
420
- xystore: XYStoreApi;
421
- getContainer: () => HTMLDivElement | null;
422
- onChange: OnChange | null;
423
- onNavigateTo: OnNavigateTo<ViewId> | null;
424
- onNodeClick: OnNodeClick | null;
425
- onNodeContextMenu: OnNodeClick | null;
426
- onCanvasContextMenu: OnCanvasClick | null;
427
- onEdgeClick: OnEdgeClick | null;
428
- onEdgeContextMenu: OnEdgeClick | null;
429
- onCanvasClick: OnCanvasClick | null;
430
- onCanvasDblClick: OnCanvasClick | null;
431
- onBurgerMenuClick: (() => void) | null;
432
- onOpenSource: ((params: OpenSourceParams) => void) | null;
433
- readonly storeDevId: string;
434
- xynodes: DiagramFlowTypes.Node[];
435
- xyedges: {
436
- id: string;
437
- type: "relationship";
438
- source: string;
439
- target: string;
440
- sourceHandle?: string | null;
441
- targetHandle?: string | null;
442
- animated?: boolean;
443
- hidden?: boolean;
444
- deletable?: boolean;
445
- selectable?: boolean;
446
- data: DiagramFlowTypes.DiagramEdgeData;
447
- selected?: boolean;
448
- markerStart?: EdgeMarkerType;
449
- markerEnd?: EdgeMarkerType;
450
- zIndex?: number;
451
- ariaLabel?: string;
452
- interactionWidth?: number;
453
- label?: ReactNode;
454
- labelStyle?: CSSProperties;
455
- labelShowBg?: boolean;
456
- labelBgStyle?: CSSProperties;
457
- labelBgPadding?: [number, number];
458
- labelBgBorderRadius?: number;
459
- style?: CSSProperties;
460
- className?: string;
461
- reconnectable?: boolean | HandleType;
462
- focusable?: boolean;
463
- }[];
464
- viewSyncDebounceTimeout: number | null;
465
- viewportChanged: boolean;
466
- initialized: boolean;
467
- activeOverlay: null | RequireExactlyOne<{
468
- elementDetails: Fqn;
469
- relationshipsOf: Fqn;
470
- edgeDetails: EdgeId;
471
- }>;
472
- isEditable: () => boolean;
473
- isDynamicView: boolean;
474
- activeWalkthrough: null | {
475
- stepId: StepEdgeId;
476
- hasPrevious: boolean;
477
- hasNext: boolean;
478
- parallelPrefix: string | null;
479
- };
480
- lastClickedNodeId: string | null;
481
- lastClickedEdgeId: string | null;
482
- focusedNodeId: string | null;
483
- hoveredEdgeId: string | null;
484
- dimmed: ReadonlySet<string>;
485
- lastOnNavigate: null | {
486
- fromView: ViewId;
487
- toView: ViewId;
488
- fromNode: NodeId | null;
489
- };
490
- navigationHistory: Array<{
491
- viewId: ViewId;
492
- nodeId: NodeId | null;
493
- }>;
494
- navigationHistoryIndex: number;
495
- updateView: (view: DiagramView) => void;
496
- focusOnNode: (nodeId: string | false) => void;
497
- setHoveredEdge: (edgeId: string | null) => void;
498
- setLastClickedNode: (nodeId: string | null) => void;
499
- setLastClickedEdge: (edgeId: string | null) => void;
500
- resetFocusAndLastClicked: () => void;
501
- getElement: (id: Fqn) => DiagramNode | null;
502
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
503
- cancelSaveManualLayout: () => boolean;
504
- scheduleSaveManualLayout: () => void;
505
- triggerSaveManualLayout: () => void;
506
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
507
- fitDiagram: (duration?: number) => void;
508
- goBack: () => void;
509
- goForward: () => void;
510
- nextDynamicStep: (increment?: number) => void;
511
- activateWalkthrough: (step: EdgeId | {
512
- id: string;
513
- type: "relationship";
514
- source: string;
515
- target: string;
516
- sourceHandle?: string | null;
517
- targetHandle?: string | null;
518
- animated?: boolean;
519
- hidden?: boolean;
520
- deletable?: boolean;
521
- selectable?: boolean;
522
- data: DiagramFlowTypes.DiagramEdgeData;
523
- selected?: boolean;
524
- markerStart?: EdgeMarkerType;
525
- markerEnd?: EdgeMarkerType;
526
- zIndex?: number;
527
- ariaLabel?: string;
528
- interactionWidth?: number;
529
- label?: ReactNode;
530
- labelStyle?: CSSProperties;
531
- labelShowBg?: boolean;
532
- labelBgStyle?: CSSProperties;
533
- labelBgPadding?: [number, number];
534
- labelBgBorderRadius?: number;
535
- style?: CSSProperties;
536
- className?: string;
537
- reconnectable?: boolean | HandleType;
538
- focusable?: boolean;
539
- }) => void;
540
- stopWalkthrough: () => void;
541
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
542
- elementDetails: Fqn;
543
- relationshipsOf: Fqn;
544
- edgeDetails: EdgeId;
545
- }> | null>) => void;
546
- closeOverlay: () => void;
547
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
548
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
549
- onEdgesChange: OnEdgesChange<{
550
- id: string;
551
- type: "relationship";
552
- source: string;
553
- target: string;
554
- sourceHandle?: string | null;
555
- targetHandle?: string | null;
556
- animated?: boolean;
557
- hidden?: boolean;
558
- deletable?: boolean;
559
- selectable?: boolean;
560
- data: DiagramFlowTypes.DiagramEdgeData;
561
- selected?: boolean;
562
- markerStart?: EdgeMarkerType;
563
- markerEnd?: EdgeMarkerType;
564
- zIndex?: number;
565
- ariaLabel?: string;
566
- interactionWidth?: number;
567
- label?: ReactNode;
568
- labelStyle?: CSSProperties;
569
- labelShowBg?: boolean;
570
- labelBgStyle?: CSSProperties;
571
- labelBgPadding?: [number, number];
572
- labelBgBorderRadius?: number;
573
- style?: CSSProperties;
574
- className?: string;
575
- reconnectable?: boolean | HandleType;
576
- focusable?: boolean;
577
- }>;
578
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
579
- resetEdgeControlPoints: () => void;
580
- align: (mode: AlignmentMode) => void;
581
- onOpenSourceView: () => void;
582
- }) => void): () => void;
583
- <U>(selector: (state: {
584
- view: DiagramView;
585
- readonly: boolean;
586
- hasLikeC4Model: boolean;
587
- controls: boolean;
588
- showNavigationButtons: boolean;
589
- showNotations: boolean;
590
- fitViewEnabled: boolean;
591
- fitViewPadding: number;
592
- zoomable: boolean;
593
- pannable: boolean;
594
- nodesDraggable: boolean;
595
- nodesSelectable: boolean;
596
- experimentalEdgeEditing: boolean;
597
- enableFocusMode: boolean;
598
- enableElementDetails: boolean;
599
- enableRelationshipBrowser: boolean;
600
- enableRelationshipDetails: boolean;
601
- enableSearch: boolean;
602
- renderIcon: ElementIconRenderer | null;
603
- whereFilter: WhereOperator<string, string> | null;
604
- enableDynamicViewWalkthrough: boolean;
605
- xyflow: DiagramFlowTypes.XYFlowInstance;
606
- xystore: XYStoreApi;
607
- getContainer: () => HTMLDivElement | null;
608
- onChange: OnChange | null;
609
- onNavigateTo: OnNavigateTo<ViewId> | null;
610
- onNodeClick: OnNodeClick | null;
611
- onNodeContextMenu: OnNodeClick | null;
612
- onCanvasContextMenu: OnCanvasClick | null;
613
- onEdgeClick: OnEdgeClick | null;
614
- onEdgeContextMenu: OnEdgeClick | null;
615
- onCanvasClick: OnCanvasClick | null;
616
- onCanvasDblClick: OnCanvasClick | null;
617
- onBurgerMenuClick: (() => void) | null;
618
- onOpenSource: ((params: OpenSourceParams) => void) | null;
619
- readonly storeDevId: string;
620
- xynodes: DiagramFlowTypes.Node[];
621
- xyedges: {
622
- id: string;
623
- type: "relationship";
624
- source: string;
625
- target: string;
626
- sourceHandle?: string | null;
627
- targetHandle?: string | null;
628
- animated?: boolean;
629
- hidden?: boolean;
630
- deletable?: boolean;
631
- selectable?: boolean;
632
- data: DiagramFlowTypes.DiagramEdgeData;
633
- selected?: boolean;
634
- markerStart?: EdgeMarkerType;
635
- markerEnd?: EdgeMarkerType;
636
- zIndex?: number;
637
- ariaLabel?: string;
638
- interactionWidth?: number;
639
- label?: ReactNode;
640
- labelStyle?: CSSProperties;
641
- labelShowBg?: boolean;
642
- labelBgStyle?: CSSProperties;
643
- labelBgPadding?: [number, number];
644
- labelBgBorderRadius?: number;
645
- style?: CSSProperties;
646
- className?: string;
647
- reconnectable?: boolean | HandleType;
648
- focusable?: boolean;
649
- }[];
650
- viewSyncDebounceTimeout: number | null;
651
- viewportChanged: boolean;
652
- initialized: boolean;
653
- activeOverlay: null | RequireExactlyOne<{
654
- elementDetails: Fqn;
655
- relationshipsOf: Fqn;
656
- edgeDetails: EdgeId;
657
- }>;
658
- isEditable: () => boolean;
659
- isDynamicView: boolean;
660
- activeWalkthrough: null | {
661
- stepId: StepEdgeId;
662
- hasPrevious: boolean;
663
- hasNext: boolean;
664
- parallelPrefix: string | null;
665
- };
666
- lastClickedNodeId: string | null;
667
- lastClickedEdgeId: string | null;
668
- focusedNodeId: string | null;
669
- hoveredEdgeId: string | null;
670
- dimmed: ReadonlySet<string>;
671
- lastOnNavigate: null | {
672
- fromView: ViewId;
673
- toView: ViewId;
674
- fromNode: NodeId | null;
675
- };
676
- navigationHistory: Array<{
677
- viewId: ViewId;
678
- nodeId: NodeId | null;
679
- }>;
680
- navigationHistoryIndex: number;
681
- updateView: (view: DiagramView) => void;
682
- focusOnNode: (nodeId: string | false) => void;
683
- setHoveredEdge: (edgeId: string | null) => void;
684
- setLastClickedNode: (nodeId: string | null) => void;
685
- setLastClickedEdge: (edgeId: string | null) => void;
686
- resetFocusAndLastClicked: () => void;
687
- getElement: (id: Fqn) => DiagramNode | null;
688
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
689
- cancelSaveManualLayout: () => boolean;
690
- scheduleSaveManualLayout: () => void;
691
- triggerSaveManualLayout: () => void;
692
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
693
- fitDiagram: (duration?: number) => void;
694
- goBack: () => void;
695
- goForward: () => void;
696
- nextDynamicStep: (increment?: number) => void;
697
- activateWalkthrough: (step: EdgeId | {
698
- id: string;
699
- type: "relationship";
700
- source: string;
701
- target: string;
702
- sourceHandle?: string | null;
703
- targetHandle?: string | null;
704
- animated?: boolean;
705
- hidden?: boolean;
706
- deletable?: boolean;
707
- selectable?: boolean;
708
- data: DiagramFlowTypes.DiagramEdgeData;
709
- selected?: boolean;
710
- markerStart?: EdgeMarkerType;
711
- markerEnd?: EdgeMarkerType;
712
- zIndex?: number;
713
- ariaLabel?: string;
714
- interactionWidth?: number;
715
- label?: ReactNode;
716
- labelStyle?: CSSProperties;
717
- labelShowBg?: boolean;
718
- labelBgStyle?: CSSProperties;
719
- labelBgPadding?: [number, number];
720
- labelBgBorderRadius?: number;
721
- style?: CSSProperties;
722
- className?: string;
723
- reconnectable?: boolean | HandleType;
724
- focusable?: boolean;
725
- }) => void;
726
- stopWalkthrough: () => void;
727
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
728
- elementDetails: Fqn;
729
- relationshipsOf: Fqn;
730
- edgeDetails: EdgeId;
731
- }> | null>) => void;
732
- closeOverlay: () => void;
733
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
734
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
735
- onEdgesChange: OnEdgesChange<{
736
- id: string;
737
- type: "relationship";
738
- source: string;
739
- target: string;
740
- sourceHandle?: string | null;
741
- targetHandle?: string | null;
742
- animated?: boolean;
743
- hidden?: boolean;
744
- deletable?: boolean;
745
- selectable?: boolean;
746
- data: DiagramFlowTypes.DiagramEdgeData;
747
- selected?: boolean;
748
- markerStart?: EdgeMarkerType;
749
- markerEnd?: EdgeMarkerType;
750
- zIndex?: number;
751
- ariaLabel?: string;
752
- interactionWidth?: number;
753
- label?: ReactNode;
754
- labelStyle?: CSSProperties;
755
- labelShowBg?: boolean;
756
- labelBgStyle?: CSSProperties;
757
- labelBgPadding?: [number, number];
758
- labelBgBorderRadius?: number;
759
- style?: CSSProperties;
760
- className?: string;
761
- reconnectable?: boolean | HandleType;
762
- focusable?: boolean;
763
- }>;
764
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
765
- resetEdgeControlPoints: () => void;
766
- align: (mode: AlignmentMode) => void;
767
- onOpenSourceView: () => void;
768
- }) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
769
- equalityFn?: (a: U, b: U) => boolean;
770
- fireImmediately?: boolean;
771
- } | undefined): () => void;
772
- };
773
- }, "setState"> & {
774
- setState<A extends string | {
775
- type: string;
776
- }>(partial: {
777
- view: DiagramView;
778
- readonly: boolean;
779
- hasLikeC4Model: boolean;
780
- controls: boolean;
781
- showNavigationButtons: boolean;
782
- showNotations: boolean;
783
- fitViewEnabled: boolean;
784
- fitViewPadding: number;
785
- zoomable: boolean;
786
- pannable: boolean;
787
- nodesDraggable: boolean;
788
- nodesSelectable: boolean;
789
- experimentalEdgeEditing: boolean;
790
- enableFocusMode: boolean;
791
- enableElementDetails: boolean;
792
- enableRelationshipBrowser: boolean;
793
- enableRelationshipDetails: boolean;
794
- enableSearch: boolean;
795
- renderIcon: ElementIconRenderer | null;
796
- whereFilter: WhereOperator<string, string> | null;
797
- enableDynamicViewWalkthrough: boolean;
798
- xyflow: DiagramFlowTypes.XYFlowInstance;
799
- xystore: XYStoreApi;
800
- getContainer: () => HTMLDivElement | null;
801
- onChange: OnChange | null;
802
- onNavigateTo: OnNavigateTo<ViewId> | null;
803
- onNodeClick: OnNodeClick | null;
804
- onNodeContextMenu: OnNodeClick | null;
805
- onCanvasContextMenu: OnCanvasClick | null;
806
- onEdgeClick: OnEdgeClick | null;
807
- onEdgeContextMenu: OnEdgeClick | null;
808
- onCanvasClick: OnCanvasClick | null;
809
- onCanvasDblClick: OnCanvasClick | null;
810
- onBurgerMenuClick: (() => void) | null;
811
- onOpenSource: ((params: OpenSourceParams) => void) | null;
812
- readonly storeDevId: string;
813
- xynodes: DiagramFlowTypes.Node[];
814
- xyedges: {
815
- id: string;
816
- type: "relationship";
817
- source: string;
818
- target: string;
819
- sourceHandle?: string | null;
820
- targetHandle?: string | null;
821
- animated?: boolean;
822
- hidden?: boolean;
823
- deletable?: boolean;
824
- selectable?: boolean;
825
- data: DiagramFlowTypes.DiagramEdgeData;
826
- selected?: boolean;
827
- markerStart?: EdgeMarkerType;
828
- markerEnd?: EdgeMarkerType;
829
- zIndex?: number;
830
- ariaLabel?: string;
831
- interactionWidth?: number;
832
- label?: ReactNode;
833
- labelStyle?: CSSProperties;
834
- labelShowBg?: boolean;
835
- labelBgStyle?: CSSProperties;
836
- labelBgPadding?: [number, number];
837
- labelBgBorderRadius?: number;
838
- style?: CSSProperties;
839
- className?: string;
840
- reconnectable?: boolean | HandleType;
841
- focusable?: boolean;
842
- }[];
843
- viewSyncDebounceTimeout: number | null;
844
- viewportChanged: boolean;
845
- initialized: boolean;
846
- activeOverlay: null | RequireExactlyOne<{
847
- elementDetails: Fqn;
848
- relationshipsOf: Fqn;
849
- edgeDetails: EdgeId;
850
- }>;
851
- isEditable: () => boolean;
852
- isDynamicView: boolean;
853
- activeWalkthrough: null | {
854
- stepId: StepEdgeId;
855
- hasPrevious: boolean;
856
- hasNext: boolean;
857
- parallelPrefix: string | null;
858
- };
859
- lastClickedNodeId: string | null;
860
- lastClickedEdgeId: string | null;
861
- focusedNodeId: string | null;
862
- hoveredEdgeId: string | null;
863
- dimmed: ReadonlySet<string>;
864
- lastOnNavigate: null | {
865
- fromView: ViewId;
866
- toView: ViewId;
867
- fromNode: NodeId | null;
868
- };
869
- navigationHistory: Array<{
870
- viewId: ViewId;
871
- nodeId: NodeId | null;
872
- }>;
873
- navigationHistoryIndex: number;
874
- updateView: (view: DiagramView) => void;
875
- focusOnNode: (nodeId: string | false) => void;
876
- setHoveredEdge: (edgeId: string | null) => void;
877
- setLastClickedNode: (nodeId: string | null) => void;
878
- setLastClickedEdge: (edgeId: string | null) => void;
879
- resetFocusAndLastClicked: () => void;
880
- getElement: (id: Fqn) => DiagramNode | null;
881
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
882
- cancelSaveManualLayout: () => boolean;
883
- scheduleSaveManualLayout: () => void;
884
- triggerSaveManualLayout: () => void;
885
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
886
- fitDiagram: (duration?: number) => void;
887
- goBack: () => void;
888
- goForward: () => void;
889
- nextDynamicStep: (increment?: number) => void;
890
- activateWalkthrough: (step: EdgeId | {
891
- id: string;
892
- type: "relationship";
893
- source: string;
894
- target: string;
895
- sourceHandle?: string | null;
896
- targetHandle?: string | null;
897
- animated?: boolean;
898
- hidden?: boolean;
899
- deletable?: boolean;
900
- selectable?: boolean;
901
- data: DiagramFlowTypes.DiagramEdgeData;
902
- selected?: boolean;
903
- markerStart?: EdgeMarkerType;
904
- markerEnd?: EdgeMarkerType;
905
- zIndex?: number;
906
- ariaLabel?: string;
907
- interactionWidth?: number;
908
- label?: ReactNode;
909
- labelStyle?: CSSProperties;
910
- labelShowBg?: boolean;
911
- labelBgStyle?: CSSProperties;
912
- labelBgPadding?: [number, number];
913
- labelBgBorderRadius?: number;
914
- style?: CSSProperties;
915
- className?: string;
916
- reconnectable?: boolean | HandleType;
917
- focusable?: boolean;
918
- }) => void;
919
- stopWalkthrough: () => void;
920
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
921
- elementDetails: Fqn;
922
- relationshipsOf: Fqn;
923
- edgeDetails: EdgeId;
924
- }> | null>) => void;
925
- closeOverlay: () => void;
926
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
927
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
928
- onEdgesChange: OnEdgesChange<{
929
- id: string;
930
- type: "relationship";
931
- source: string;
932
- target: string;
933
- sourceHandle?: string | null;
934
- targetHandle?: string | null;
935
- animated?: boolean;
936
- hidden?: boolean;
937
- deletable?: boolean;
938
- selectable?: boolean;
939
- data: DiagramFlowTypes.DiagramEdgeData;
940
- selected?: boolean;
941
- markerStart?: EdgeMarkerType;
942
- markerEnd?: EdgeMarkerType;
943
- zIndex?: number;
944
- ariaLabel?: string;
945
- interactionWidth?: number;
946
- label?: ReactNode;
947
- labelStyle?: CSSProperties;
948
- labelShowBg?: boolean;
949
- labelBgStyle?: CSSProperties;
950
- labelBgPadding?: [number, number];
951
- labelBgBorderRadius?: number;
952
- style?: CSSProperties;
953
- className?: string;
954
- reconnectable?: boolean | HandleType;
955
- focusable?: boolean;
956
- }>;
957
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
958
- resetEdgeControlPoints: () => void;
959
- align: (mode: AlignmentMode) => void;
960
- onOpenSourceView: () => void;
961
- } | Partial<{
962
- view: DiagramView;
963
- readonly: boolean;
964
- hasLikeC4Model: boolean;
965
- controls: boolean;
966
- showNavigationButtons: boolean;
967
- showNotations: boolean;
968
- fitViewEnabled: boolean;
969
- fitViewPadding: number;
970
- zoomable: boolean;
971
- pannable: boolean;
972
- nodesDraggable: boolean;
973
- nodesSelectable: boolean;
974
- experimentalEdgeEditing: boolean;
975
- enableFocusMode: boolean;
976
- enableElementDetails: boolean;
977
- enableRelationshipBrowser: boolean;
978
- enableRelationshipDetails: boolean;
979
- enableSearch: boolean;
980
- renderIcon: ElementIconRenderer | null;
981
- whereFilter: WhereOperator<string, string> | null;
982
- enableDynamicViewWalkthrough: boolean;
983
- xyflow: DiagramFlowTypes.XYFlowInstance;
984
- xystore: XYStoreApi;
985
- getContainer: () => HTMLDivElement | null;
986
- onChange: OnChange | null;
987
- onNavigateTo: OnNavigateTo<ViewId> | null;
988
- onNodeClick: OnNodeClick | null;
989
- onNodeContextMenu: OnNodeClick | null;
990
- onCanvasContextMenu: OnCanvasClick | null;
991
- onEdgeClick: OnEdgeClick | null;
992
- onEdgeContextMenu: OnEdgeClick | null;
993
- onCanvasClick: OnCanvasClick | null;
994
- onCanvasDblClick: OnCanvasClick | null;
995
- onBurgerMenuClick: (() => void) | null;
996
- onOpenSource: ((params: OpenSourceParams) => void) | null;
997
- readonly storeDevId: string;
998
- xynodes: DiagramFlowTypes.Node[];
999
- xyedges: {
1000
- id: string;
1001
- type: "relationship";
1002
- source: string;
1003
- target: string;
1004
- sourceHandle?: string | null;
1005
- targetHandle?: string | null;
1006
- animated?: boolean;
1007
- hidden?: boolean;
1008
- deletable?: boolean;
1009
- selectable?: boolean;
1010
- data: DiagramFlowTypes.DiagramEdgeData;
1011
- selected?: boolean;
1012
- markerStart?: EdgeMarkerType;
1013
- markerEnd?: EdgeMarkerType;
1014
- zIndex?: number;
1015
- ariaLabel?: string;
1016
- interactionWidth?: number;
1017
- label?: ReactNode;
1018
- labelStyle?: CSSProperties;
1019
- labelShowBg?: boolean;
1020
- labelBgStyle?: CSSProperties;
1021
- labelBgPadding?: [number, number];
1022
- labelBgBorderRadius?: number;
1023
- style?: CSSProperties;
1024
- className?: string;
1025
- reconnectable?: boolean | HandleType;
1026
- focusable?: boolean;
1027
- }[];
1028
- viewSyncDebounceTimeout: number | null;
1029
- viewportChanged: boolean;
1030
- initialized: boolean;
1031
- activeOverlay: null | RequireExactlyOne<{
1032
- elementDetails: Fqn;
1033
- relationshipsOf: Fqn;
1034
- edgeDetails: EdgeId;
1035
- }>;
1036
- isEditable: () => boolean;
1037
- isDynamicView: boolean;
1038
- activeWalkthrough: null | {
1039
- stepId: StepEdgeId;
1040
- hasPrevious: boolean;
1041
- hasNext: boolean;
1042
- parallelPrefix: string | null;
1043
- };
1044
- lastClickedNodeId: string | null;
1045
- lastClickedEdgeId: string | null;
1046
- focusedNodeId: string | null;
1047
- hoveredEdgeId: string | null;
1048
- dimmed: ReadonlySet<string>;
1049
- lastOnNavigate: null | {
1050
- fromView: ViewId;
1051
- toView: ViewId;
1052
- fromNode: NodeId | null;
1053
- };
1054
- navigationHistory: Array<{
1055
- viewId: ViewId;
1056
- nodeId: NodeId | null;
1057
- }>;
1058
- navigationHistoryIndex: number;
1059
- updateView: (view: DiagramView) => void;
1060
- focusOnNode: (nodeId: string | false) => void;
1061
- setHoveredEdge: (edgeId: string | null) => void;
1062
- setLastClickedNode: (nodeId: string | null) => void;
1063
- setLastClickedEdge: (edgeId: string | null) => void;
1064
- resetFocusAndLastClicked: () => void;
1065
- getElement: (id: Fqn) => DiagramNode | null;
1066
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1067
- cancelSaveManualLayout: () => boolean;
1068
- scheduleSaveManualLayout: () => void;
1069
- triggerSaveManualLayout: () => void;
1070
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1071
- fitDiagram: (duration?: number) => void;
1072
- goBack: () => void;
1073
- goForward: () => void;
1074
- nextDynamicStep: (increment?: number) => void;
1075
- activateWalkthrough: (step: EdgeId | {
1076
- id: string;
1077
- type: "relationship";
1078
- source: string;
1079
- target: string;
1080
- sourceHandle?: string | null;
1081
- targetHandle?: string | null;
1082
- animated?: boolean;
1083
- hidden?: boolean;
1084
- deletable?: boolean;
1085
- selectable?: boolean;
1086
- data: DiagramFlowTypes.DiagramEdgeData;
1087
- selected?: boolean;
1088
- markerStart?: EdgeMarkerType;
1089
- markerEnd?: EdgeMarkerType;
1090
- zIndex?: number;
1091
- ariaLabel?: string;
1092
- interactionWidth?: number;
1093
- label?: ReactNode;
1094
- labelStyle?: CSSProperties;
1095
- labelShowBg?: boolean;
1096
- labelBgStyle?: CSSProperties;
1097
- labelBgPadding?: [number, number];
1098
- labelBgBorderRadius?: number;
1099
- style?: CSSProperties;
1100
- className?: string;
1101
- reconnectable?: boolean | HandleType;
1102
- focusable?: boolean;
1103
- }) => void;
1104
- stopWalkthrough: () => void;
1105
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
1106
- elementDetails: Fqn;
1107
- relationshipsOf: Fqn;
1108
- edgeDetails: EdgeId;
1109
- }> | null>) => void;
1110
- closeOverlay: () => void;
1111
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
1112
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
1113
- onEdgesChange: OnEdgesChange<{
1114
- id: string;
1115
- type: "relationship";
1116
- source: string;
1117
- target: string;
1118
- sourceHandle?: string | null;
1119
- targetHandle?: string | null;
1120
- animated?: boolean;
1121
- hidden?: boolean;
1122
- deletable?: boolean;
1123
- selectable?: boolean;
1124
- data: DiagramFlowTypes.DiagramEdgeData;
1125
- selected?: boolean;
1126
- markerStart?: EdgeMarkerType;
1127
- markerEnd?: EdgeMarkerType;
1128
- zIndex?: number;
1129
- ariaLabel?: string;
1130
- interactionWidth?: number;
1131
- label?: ReactNode;
1132
- labelStyle?: CSSProperties;
1133
- labelShowBg?: boolean;
1134
- labelBgStyle?: CSSProperties;
1135
- labelBgPadding?: [number, number];
1136
- labelBgBorderRadius?: number;
1137
- style?: CSSProperties;
1138
- className?: string;
1139
- reconnectable?: boolean | HandleType;
1140
- focusable?: boolean;
1141
- }>;
1142
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
1143
- resetEdgeControlPoints: () => void;
1144
- align: (mode: AlignmentMode) => void;
1145
- onOpenSourceView: () => void;
1146
- }> | ((state: {
1147
- view: DiagramView;
1148
- readonly: boolean;
1149
- hasLikeC4Model: boolean;
1150
- controls: boolean;
1151
- showNavigationButtons: boolean;
1152
- showNotations: boolean;
1153
- fitViewEnabled: boolean;
1154
- fitViewPadding: number;
1155
- zoomable: boolean;
1156
- pannable: boolean;
1157
- nodesDraggable: boolean;
1158
- nodesSelectable: boolean;
1159
- experimentalEdgeEditing: boolean;
1160
- enableFocusMode: boolean;
1161
- enableElementDetails: boolean;
1162
- enableRelationshipBrowser: boolean;
1163
- enableRelationshipDetails: boolean;
1164
- enableSearch: boolean;
1165
- renderIcon: ElementIconRenderer | null;
1166
- whereFilter: WhereOperator<string, string> | null;
1167
- enableDynamicViewWalkthrough: boolean;
1168
- xyflow: DiagramFlowTypes.XYFlowInstance;
1169
- xystore: XYStoreApi;
1170
- getContainer: () => HTMLDivElement | null;
1171
- onChange: OnChange | null;
1172
- onNavigateTo: OnNavigateTo<ViewId> | null;
1173
- onNodeClick: OnNodeClick | null;
1174
- onNodeContextMenu: OnNodeClick | null;
1175
- onCanvasContextMenu: OnCanvasClick | null;
1176
- onEdgeClick: OnEdgeClick | null;
1177
- onEdgeContextMenu: OnEdgeClick | null;
1178
- onCanvasClick: OnCanvasClick | null;
1179
- onCanvasDblClick: OnCanvasClick | null;
1180
- onBurgerMenuClick: (() => void) | null;
1181
- onOpenSource: ((params: OpenSourceParams) => void) | null;
1182
- readonly storeDevId: string;
1183
- xynodes: DiagramFlowTypes.Node[];
1184
- xyedges: {
1185
- id: string;
1186
- type: "relationship";
1187
- source: string;
1188
- target: string;
1189
- sourceHandle?: string | null;
1190
- targetHandle?: string | null;
1191
- animated?: boolean;
1192
- hidden?: boolean;
1193
- deletable?: boolean;
1194
- selectable?: boolean;
1195
- data: DiagramFlowTypes.DiagramEdgeData;
1196
- selected?: boolean;
1197
- markerStart?: EdgeMarkerType;
1198
- markerEnd?: EdgeMarkerType;
1199
- zIndex?: number;
1200
- ariaLabel?: string;
1201
- interactionWidth?: number;
1202
- label?: ReactNode;
1203
- labelStyle?: CSSProperties;
1204
- labelShowBg?: boolean;
1205
- labelBgStyle?: CSSProperties;
1206
- labelBgPadding?: [number, number];
1207
- labelBgBorderRadius?: number;
1208
- style?: CSSProperties;
1209
- className?: string;
1210
- reconnectable?: boolean | HandleType;
1211
- focusable?: boolean;
1212
- }[];
1213
- viewSyncDebounceTimeout: number | null;
1214
- viewportChanged: boolean;
1215
- initialized: boolean;
1216
- activeOverlay: null | RequireExactlyOne<{
1217
- elementDetails: Fqn;
1218
- relationshipsOf: Fqn;
1219
- edgeDetails: EdgeId;
1220
- }>;
1221
- isEditable: () => boolean;
1222
- isDynamicView: boolean;
1223
- activeWalkthrough: null | {
1224
- stepId: StepEdgeId;
1225
- hasPrevious: boolean;
1226
- hasNext: boolean;
1227
- parallelPrefix: string | null;
1228
- };
1229
- lastClickedNodeId: string | null;
1230
- lastClickedEdgeId: string | null;
1231
- focusedNodeId: string | null;
1232
- hoveredEdgeId: string | null;
1233
- dimmed: ReadonlySet<string>;
1234
- lastOnNavigate: null | {
1235
- fromView: ViewId;
1236
- toView: ViewId;
1237
- fromNode: NodeId | null;
1238
- };
1239
- navigationHistory: Array<{
1240
- viewId: ViewId;
1241
- nodeId: NodeId | null;
1242
- }>;
1243
- navigationHistoryIndex: number;
1244
- updateView: (view: DiagramView) => void;
1245
- focusOnNode: (nodeId: string | false) => void;
1246
- setHoveredEdge: (edgeId: string | null) => void;
1247
- setLastClickedNode: (nodeId: string | null) => void;
1248
- setLastClickedEdge: (edgeId: string | null) => void;
1249
- resetFocusAndLastClicked: () => void;
1250
- getElement: (id: Fqn) => DiagramNode | null;
1251
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1252
- cancelSaveManualLayout: () => boolean;
1253
- scheduleSaveManualLayout: () => void;
1254
- triggerSaveManualLayout: () => void;
1255
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1256
- fitDiagram: (duration?: number) => void;
1257
- goBack: () => void;
1258
- goForward: () => void;
1259
- nextDynamicStep: (increment?: number) => void;
1260
- activateWalkthrough: (step: EdgeId | {
1261
- id: string;
1262
- type: "relationship";
1263
- source: string;
1264
- target: string;
1265
- sourceHandle?: string | null;
1266
- targetHandle?: string | null;
1267
- animated?: boolean;
1268
- hidden?: boolean;
1269
- deletable?: boolean;
1270
- selectable?: boolean;
1271
- data: DiagramFlowTypes.DiagramEdgeData;
1272
- selected?: boolean;
1273
- markerStart?: EdgeMarkerType;
1274
- markerEnd?: EdgeMarkerType;
1275
- zIndex?: number;
1276
- ariaLabel?: string;
1277
- interactionWidth?: number;
1278
- label?: ReactNode;
1279
- labelStyle?: CSSProperties;
1280
- labelShowBg?: boolean;
1281
- labelBgStyle?: CSSProperties;
1282
- labelBgPadding?: [number, number];
1283
- labelBgBorderRadius?: number;
1284
- style?: CSSProperties;
1285
- className?: string;
1286
- reconnectable?: boolean | HandleType;
1287
- focusable?: boolean;
1288
- }) => void;
1289
- stopWalkthrough: () => void;
1290
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
1291
- elementDetails: Fqn;
1292
- relationshipsOf: Fqn;
1293
- edgeDetails: EdgeId;
1294
- }> | null>) => void;
1295
- closeOverlay: () => void;
1296
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
1297
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
1298
- onEdgesChange: OnEdgesChange<{
1299
- id: string;
1300
- type: "relationship";
1301
- source: string;
1302
- target: string;
1303
- sourceHandle?: string | null;
1304
- targetHandle?: string | null;
1305
- animated?: boolean;
1306
- hidden?: boolean;
1307
- deletable?: boolean;
1308
- selectable?: boolean;
1309
- data: DiagramFlowTypes.DiagramEdgeData;
1310
- selected?: boolean;
1311
- markerStart?: EdgeMarkerType;
1312
- markerEnd?: EdgeMarkerType;
1313
- zIndex?: number;
1314
- ariaLabel?: string;
1315
- interactionWidth?: number;
1316
- label?: ReactNode;
1317
- labelStyle?: CSSProperties;
1318
- labelShowBg?: boolean;
1319
- labelBgStyle?: CSSProperties;
1320
- labelBgPadding?: [number, number];
1321
- labelBgBorderRadius?: number;
1322
- style?: CSSProperties;
1323
- className?: string;
1324
- reconnectable?: boolean | HandleType;
1325
- focusable?: boolean;
1326
- }>;
1327
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
1328
- resetEdgeControlPoints: () => void;
1329
- align: (mode: AlignmentMode) => void;
1330
- onOpenSourceView: () => void;
1331
- }) => {
1332
- view: DiagramView;
1333
- readonly: boolean;
1334
- hasLikeC4Model: boolean;
1335
- controls: boolean;
1336
- showNavigationButtons: boolean;
1337
- showNotations: boolean;
1338
- fitViewEnabled: boolean;
1339
- fitViewPadding: number;
1340
- zoomable: boolean;
1341
- pannable: boolean;
1342
- nodesDraggable: boolean;
1343
- nodesSelectable: boolean;
1344
- experimentalEdgeEditing: boolean;
1345
- enableFocusMode: boolean;
1346
- enableElementDetails: boolean;
1347
- enableRelationshipBrowser: boolean;
1348
- enableRelationshipDetails: boolean;
1349
- enableSearch: boolean;
1350
- renderIcon: ElementIconRenderer | null;
1351
- whereFilter: WhereOperator<string, string> | null;
1352
- enableDynamicViewWalkthrough: boolean;
1353
- xyflow: DiagramFlowTypes.XYFlowInstance;
1354
- xystore: XYStoreApi;
1355
- getContainer: () => HTMLDivElement | null;
1356
- onChange: OnChange | null;
1357
- onNavigateTo: OnNavigateTo<ViewId> | null;
1358
- onNodeClick: OnNodeClick | null;
1359
- onNodeContextMenu: OnNodeClick | null;
1360
- onCanvasContextMenu: OnCanvasClick | null;
1361
- onEdgeClick: OnEdgeClick | null;
1362
- onEdgeContextMenu: OnEdgeClick | null;
1363
- onCanvasClick: OnCanvasClick | null;
1364
- onCanvasDblClick: OnCanvasClick | null;
1365
- onBurgerMenuClick: (() => void) | null;
1366
- onOpenSource: ((params: OpenSourceParams) => void) | null;
1367
- readonly storeDevId: string;
1368
- xynodes: DiagramFlowTypes.Node[];
1369
- xyedges: {
1370
- id: string;
1371
- type: "relationship";
1372
- source: string;
1373
- target: string;
1374
- sourceHandle?: string | null;
1375
- targetHandle?: string | null;
1376
- animated?: boolean;
1377
- hidden?: boolean;
1378
- deletable?: boolean;
1379
- selectable?: boolean;
1380
- data: DiagramFlowTypes.DiagramEdgeData;
1381
- selected?: boolean;
1382
- markerStart?: EdgeMarkerType;
1383
- markerEnd?: EdgeMarkerType;
1384
- zIndex?: number;
1385
- ariaLabel?: string;
1386
- interactionWidth?: number;
1387
- label?: ReactNode;
1388
- labelStyle?: CSSProperties;
1389
- labelShowBg?: boolean;
1390
- labelBgStyle?: CSSProperties;
1391
- labelBgPadding?: [number, number];
1392
- labelBgBorderRadius?: number;
1393
- style?: CSSProperties;
1394
- className?: string;
1395
- reconnectable?: boolean | HandleType;
1396
- focusable?: boolean;
1397
- }[];
1398
- viewSyncDebounceTimeout: number | null;
1399
- viewportChanged: boolean;
1400
- initialized: boolean;
1401
- activeOverlay: null | RequireExactlyOne<{
1402
- elementDetails: Fqn;
1403
- relationshipsOf: Fqn;
1404
- edgeDetails: EdgeId;
1405
- }>;
1406
- isEditable: () => boolean;
1407
- isDynamicView: boolean;
1408
- activeWalkthrough: null | {
1409
- stepId: StepEdgeId;
1410
- hasPrevious: boolean;
1411
- hasNext: boolean;
1412
- parallelPrefix: string | null;
1413
- };
1414
- lastClickedNodeId: string | null;
1415
- lastClickedEdgeId: string | null;
1416
- focusedNodeId: string | null;
1417
- hoveredEdgeId: string | null;
1418
- dimmed: ReadonlySet<string>;
1419
- lastOnNavigate: null | {
1420
- fromView: ViewId;
1421
- toView: ViewId;
1422
- fromNode: NodeId | null;
1423
- };
1424
- navigationHistory: Array<{
1425
- viewId: ViewId;
1426
- nodeId: NodeId | null;
1427
- }>;
1428
- navigationHistoryIndex: number;
1429
- updateView: (view: DiagramView) => void;
1430
- focusOnNode: (nodeId: string | false) => void;
1431
- setHoveredEdge: (edgeId: string | null) => void;
1432
- setLastClickedNode: (nodeId: string | null) => void;
1433
- setLastClickedEdge: (edgeId: string | null) => void;
1434
- resetFocusAndLastClicked: () => void;
1435
- getElement: (id: Fqn) => DiagramNode | null;
1436
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1437
- cancelSaveManualLayout: () => boolean;
1438
- scheduleSaveManualLayout: () => void;
1439
- triggerSaveManualLayout: () => void;
1440
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1441
- fitDiagram: (duration?: number) => void;
1442
- goBack: () => void;
1443
- goForward: () => void;
1444
- nextDynamicStep: (increment?: number) => void;
1445
- activateWalkthrough: (step: EdgeId | {
1446
- id: string;
1447
- type: "relationship";
1448
- source: string;
1449
- target: string;
1450
- sourceHandle?: string | null;
1451
- targetHandle?: string | null;
1452
- animated?: boolean;
1453
- hidden?: boolean;
1454
- deletable?: boolean;
1455
- selectable?: boolean;
1456
- data: DiagramFlowTypes.DiagramEdgeData;
1457
- selected?: boolean;
1458
- markerStart?: EdgeMarkerType;
1459
- markerEnd?: EdgeMarkerType;
1460
- zIndex?: number;
1461
- ariaLabel?: string;
1462
- interactionWidth?: number;
1463
- label?: ReactNode;
1464
- labelStyle?: CSSProperties;
1465
- labelShowBg?: boolean;
1466
- labelBgStyle?: CSSProperties;
1467
- labelBgPadding?: [number, number];
1468
- labelBgBorderRadius?: number;
1469
- style?: CSSProperties;
1470
- className?: string;
1471
- reconnectable?: boolean | HandleType;
1472
- focusable?: boolean;
1473
- }) => void;
1474
- stopWalkthrough: () => void;
1475
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
1476
- elementDetails: Fqn;
1477
- relationshipsOf: Fqn;
1478
- edgeDetails: EdgeId;
1479
- }> | null>) => void;
1480
- closeOverlay: () => void;
1481
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
1482
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
1483
- onEdgesChange: OnEdgesChange<{
1484
- id: string;
1485
- type: "relationship";
1486
- source: string;
1487
- target: string;
1488
- sourceHandle?: string | null;
1489
- targetHandle?: string | null;
1490
- animated?: boolean;
1491
- hidden?: boolean;
1492
- deletable?: boolean;
1493
- selectable?: boolean;
1494
- data: DiagramFlowTypes.DiagramEdgeData;
1495
- selected?: boolean;
1496
- markerStart?: EdgeMarkerType;
1497
- markerEnd?: EdgeMarkerType;
1498
- zIndex?: number;
1499
- ariaLabel?: string;
1500
- interactionWidth?: number;
1501
- label?: ReactNode;
1502
- labelStyle?: CSSProperties;
1503
- labelShowBg?: boolean;
1504
- labelBgStyle?: CSSProperties;
1505
- labelBgPadding?: [number, number];
1506
- labelBgBorderRadius?: number;
1507
- style?: CSSProperties;
1508
- className?: string;
1509
- reconnectable?: boolean | HandleType;
1510
- focusable?: boolean;
1511
- }>;
1512
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
1513
- resetEdgeControlPoints: () => void;
1514
- align: (mode: AlignmentMode) => void;
1515
- onOpenSourceView: () => void;
1516
- } | Partial<{
1517
- view: DiagramView;
1518
- readonly: boolean;
1519
- hasLikeC4Model: boolean;
1520
- controls: boolean;
1521
- showNavigationButtons: boolean;
1522
- showNotations: boolean;
1523
- fitViewEnabled: boolean;
1524
- fitViewPadding: number;
1525
- zoomable: boolean;
1526
- pannable: boolean;
1527
- nodesDraggable: boolean;
1528
- nodesSelectable: boolean;
1529
- experimentalEdgeEditing: boolean;
1530
- enableFocusMode: boolean;
1531
- enableElementDetails: boolean;
1532
- enableRelationshipBrowser: boolean;
1533
- enableRelationshipDetails: boolean;
1534
- enableSearch: boolean;
1535
- renderIcon: ElementIconRenderer | null;
1536
- whereFilter: WhereOperator<string, string> | null;
1537
- enableDynamicViewWalkthrough: boolean;
1538
- xyflow: DiagramFlowTypes.XYFlowInstance;
1539
- xystore: XYStoreApi;
1540
- getContainer: () => HTMLDivElement | null;
1541
- onChange: OnChange | null;
1542
- onNavigateTo: OnNavigateTo<ViewId> | null;
1543
- onNodeClick: OnNodeClick | null;
1544
- onNodeContextMenu: OnNodeClick | null;
1545
- onCanvasContextMenu: OnCanvasClick | null;
1546
- onEdgeClick: OnEdgeClick | null;
1547
- onEdgeContextMenu: OnEdgeClick | null;
1548
- onCanvasClick: OnCanvasClick | null;
1549
- onCanvasDblClick: OnCanvasClick | null;
1550
- onBurgerMenuClick: (() => void) | null;
1551
- onOpenSource: ((params: OpenSourceParams) => void) | null;
1552
- readonly storeDevId: string;
1553
- xynodes: DiagramFlowTypes.Node[];
1554
- xyedges: {
1555
- id: string;
1556
- type: "relationship";
1557
- source: string;
1558
- target: string;
1559
- sourceHandle?: string | null;
1560
- targetHandle?: string | null;
1561
- animated?: boolean;
1562
- hidden?: boolean;
1563
- deletable?: boolean;
1564
- selectable?: boolean;
1565
- data: DiagramFlowTypes.DiagramEdgeData;
1566
- selected?: boolean;
1567
- markerStart?: EdgeMarkerType;
1568
- markerEnd?: EdgeMarkerType;
1569
- zIndex?: number;
1570
- ariaLabel?: string;
1571
- interactionWidth?: number;
1572
- label?: ReactNode;
1573
- labelStyle?: CSSProperties;
1574
- labelShowBg?: boolean;
1575
- labelBgStyle?: CSSProperties;
1576
- labelBgPadding?: [number, number];
1577
- labelBgBorderRadius?: number;
1578
- style?: CSSProperties;
1579
- className?: string;
1580
- reconnectable?: boolean | HandleType;
1581
- focusable?: boolean;
1582
- }[];
1583
- viewSyncDebounceTimeout: number | null;
1584
- viewportChanged: boolean;
1585
- initialized: boolean;
1586
- activeOverlay: null | RequireExactlyOne<{
1587
- elementDetails: Fqn;
1588
- relationshipsOf: Fqn;
1589
- edgeDetails: EdgeId;
1590
- }>;
1591
- isEditable: () => boolean;
1592
- isDynamicView: boolean;
1593
- activeWalkthrough: null | {
1594
- stepId: StepEdgeId;
1595
- hasPrevious: boolean;
1596
- hasNext: boolean;
1597
- parallelPrefix: string | null;
1598
- };
1599
- lastClickedNodeId: string | null;
1600
- lastClickedEdgeId: string | null;
1601
- focusedNodeId: string | null;
1602
- hoveredEdgeId: string | null;
1603
- dimmed: ReadonlySet<string>;
1604
- lastOnNavigate: null | {
1605
- fromView: ViewId;
1606
- toView: ViewId;
1607
- fromNode: NodeId | null;
1608
- };
1609
- navigationHistory: Array<{
1610
- viewId: ViewId;
1611
- nodeId: NodeId | null;
1612
- }>;
1613
- navigationHistoryIndex: number;
1614
- updateView: (view: DiagramView) => void;
1615
- focusOnNode: (nodeId: string | false) => void;
1616
- setHoveredEdge: (edgeId: string | null) => void;
1617
- setLastClickedNode: (nodeId: string | null) => void;
1618
- setLastClickedEdge: (edgeId: string | null) => void;
1619
- resetFocusAndLastClicked: () => void;
1620
- getElement: (id: Fqn) => DiagramNode | null;
1621
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1622
- cancelSaveManualLayout: () => boolean;
1623
- scheduleSaveManualLayout: () => void;
1624
- triggerSaveManualLayout: () => void;
1625
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1626
- fitDiagram: (duration?: number) => void;
1627
- goBack: () => void;
1628
- goForward: () => void;
1629
- nextDynamicStep: (increment?: number) => void;
1630
- activateWalkthrough: (step: EdgeId | {
1631
- id: string;
1632
- type: "relationship";
1633
- source: string;
1634
- target: string;
1635
- sourceHandle?: string | null;
1636
- targetHandle?: string | null;
1637
- animated?: boolean;
1638
- hidden?: boolean;
1639
- deletable?: boolean;
1640
- selectable?: boolean;
1641
- data: DiagramFlowTypes.DiagramEdgeData;
1642
- selected?: boolean;
1643
- markerStart?: EdgeMarkerType;
1644
- markerEnd?: EdgeMarkerType;
1645
- zIndex?: number;
1646
- ariaLabel?: string;
1647
- interactionWidth?: number;
1648
- label?: ReactNode;
1649
- labelStyle?: CSSProperties;
1650
- labelShowBg?: boolean;
1651
- labelBgStyle?: CSSProperties;
1652
- labelBgPadding?: [number, number];
1653
- labelBgBorderRadius?: number;
1654
- style?: CSSProperties;
1655
- className?: string;
1656
- reconnectable?: boolean | HandleType;
1657
- focusable?: boolean;
1658
- }) => void;
1659
- stopWalkthrough: () => void;
1660
- openOverlay: (overlay: NonNullable<RequireExactlyOne<{
1661
- elementDetails: Fqn;
1662
- relationshipsOf: Fqn;
1663
- edgeDetails: EdgeId;
1664
- }> | null>) => void;
1665
- closeOverlay: () => void;
1666
- onInit: (xyflow: DiagramFlowTypes.XYFlowInstance) => void;
1667
- onNodesChange: OnNodesChange<DiagramFlowTypes.Node>;
1668
- onEdgesChange: OnEdgesChange<{
1669
- id: string;
1670
- type: "relationship";
1671
- source: string;
1672
- target: string;
1673
- sourceHandle?: string | null;
1674
- targetHandle?: string | null;
1675
- animated?: boolean;
1676
- hidden?: boolean;
1677
- deletable?: boolean;
1678
- selectable?: boolean;
1679
- data: DiagramFlowTypes.DiagramEdgeData;
1680
- selected?: boolean;
1681
- markerStart?: EdgeMarkerType;
1682
- markerEnd?: EdgeMarkerType;
1683
- zIndex?: number;
1684
- ariaLabel?: string;
1685
- interactionWidth?: number;
1686
- label?: ReactNode;
1687
- labelStyle?: CSSProperties;
1688
- labelShowBg?: boolean;
1689
- labelBgStyle?: CSSProperties;
1690
- labelBgPadding?: [number, number];
1691
- labelBgBorderRadius?: number;
1692
- style?: CSSProperties;
1693
- className?: string;
1694
- reconnectable?: boolean | HandleType;
1695
- focusable?: boolean;
1696
- }>;
1697
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: NodeKind) => void;
1698
- resetEdgeControlPoints: () => void;
1699
- align: (mode: AlignmentMode) => void;
1700
- onOpenSourceView: () => void;
1701
- }>), replace?: boolean | undefined, action?: A | undefined): void;
1702
- }>;
1703
- export type DiagramZustandStore = ReturnType<typeof createDiagramStore>;
1704
- export type DiagramStoreApi = Readonly<Pick<DiagramZustandStore, 'getState' | 'setState' | 'subscribe'>>;
1705
- export {};