@likec4/diagram 1.19.1 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) 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 -87
  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 +25 -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 -7
  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/theme-vars.css.js +1 -0
  250. package/dist/utils/index.d.ts +4 -0
  251. package/dist/{xyflow/utils.d.ts → utils/xyflow.d.ts} +4 -4
  252. package/dist/{xyflow/utils.js → utils/xyflow.js} +14 -20
  253. package/package.json +24 -21
  254. package/src/LikeC4Diagram.css.ts +21 -15
  255. package/src/LikeC4Diagram.props.ts +14 -21
  256. package/src/LikeC4Diagram.tsx +105 -150
  257. package/src/LikeC4Search.tsx +21 -28
  258. package/src/StaticLikeC4Diagram.tsx +0 -1
  259. package/src/{xyflow/XYFlowBackground.tsx → base/Background.tsx} +8 -8
  260. package/src/base/BaseXYFlow.tsx +200 -0
  261. package/src/{xyflow → base}/const.ts +1 -1
  262. package/src/base/example/RelationshipsBrowser.tsx +62 -0
  263. package/src/base/example/_types.ts +71 -0
  264. package/src/base/example/custom.tsx +58 -0
  265. package/src/base/example/useViewToNodesEdges.ts +193 -0
  266. package/src/base/index.ts +10 -0
  267. package/src/base/primitives/NodeHandles.tsx +18 -0
  268. package/src/base/primitives/compound/CompoundActionButton.css.ts +55 -0
  269. package/src/base/primitives/compound/CompoundActionButton.tsx +52 -0
  270. package/src/base/primitives/compound/CompoundDetailsButton.css.ts +56 -0
  271. package/src/base/primitives/compound/CompoundDetailsButton.tsx +54 -0
  272. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +161 -0
  273. package/src/base/primitives/compound/CompoundNodeContainer.tsx +95 -0
  274. package/src/base/primitives/compound/CompoundTitle.css.ts +43 -0
  275. package/src/base/primitives/compound/CompoundTitle.tsx +29 -0
  276. package/src/base/primitives/customEdge.ts +32 -0
  277. package/src/base/primitives/customNode.ts +21 -0
  278. package/src/base/primitives/edge/EdgeActionButton.tsx +27 -0
  279. package/src/base/primitives/edge/EdgeContainer.tsx +48 -0
  280. package/src/base/primitives/edge/EdgeLabel.css.ts +196 -0
  281. package/src/base/primitives/edge/EdgeLabel.tsx +136 -0
  282. package/src/{xyflow → base/primitives/edge}/EdgeMarkers.tsx +29 -1
  283. package/src/base/primitives/edge/EdgePath.tsx +89 -0
  284. package/src/base/primitives/edge/edge.css.ts +122 -0
  285. package/src/base/primitives/element/ElementActionButtons.css.ts +48 -0
  286. package/src/base/primitives/element/ElementActionButtons.tsx +73 -0
  287. package/src/base/primitives/element/ElementDetailsButton.css.ts +54 -0
  288. package/src/base/primitives/element/ElementDetailsButton.tsx +59 -0
  289. package/src/base/primitives/element/ElementNodeContainer.css.ts +47 -0
  290. package/src/base/primitives/element/ElementNodeContainer.tsx +72 -0
  291. package/src/base/primitives/element/ElementShape.css.ts +134 -0
  292. package/src/{xyflow/nodes/element/ElementShapeSvg.tsx → base/primitives/element/ElementShape.tsx} +64 -19
  293. package/src/base/primitives/element/ElementTitle.css.ts +156 -0
  294. package/src/base/primitives/element/ElementTitle.tsx +76 -0
  295. package/src/base/primitives/index.ts +17 -0
  296. package/src/base/types.ts +169 -0
  297. package/src/base/updateEdges.ts +40 -0
  298. package/src/base/updateNodes.ts +46 -0
  299. package/src/base/xyflowMachine.ts +75 -0
  300. package/src/context/DiagramEventHandlers.tsx +53 -0
  301. package/src/context/DiagramFeatures.tsx +162 -0
  302. package/src/{ui → context}/FramerMotionConfig.tsx +2 -6
  303. package/src/context/IconRenderer.tsx +45 -0
  304. package/src/context/RootContainer.tsx +31 -0
  305. package/src/context/index.ts +14 -0
  306. package/src/globals.css.ts +32 -32
  307. package/src/hooks/index.ts +7 -5
  308. package/src/hooks/useCurrentViewId.ts +8 -0
  309. package/src/hooks/useDiagram.ts +129 -0
  310. package/src/hooks/useDiagramActor.ts +25 -0
  311. package/src/hooks/useDiagramContext.ts +11 -0
  312. package/src/hooks/useMantinePortalProps.ts +2 -2
  313. package/src/hooks/useXYFlow.ts +12 -38
  314. package/src/index.ts +3 -7
  315. package/src/likec4diagram/DiagramActor.tsx +79 -0
  316. package/src/likec4diagram/DiagramUI.tsx +28 -0
  317. package/src/likec4diagram/XYFlow.tsx +137 -0
  318. package/src/likec4diagram/custom/edges/NotePopover.css.ts +27 -0
  319. package/src/likec4diagram/custom/edges/NotePopover.tsx +96 -0
  320. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +355 -0
  321. package/src/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.css.ts +7 -7
  322. package/src/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.tsx +91 -70
  323. package/src/likec4diagram/custom/edges/edges.css.ts +39 -0
  324. package/src/likec4diagram/custom/edges/utils.ts +126 -0
  325. package/src/likec4diagram/custom/index.tsx +8 -0
  326. package/src/likec4diagram/custom/nodes/CompoundActions.tsx +27 -0
  327. package/src/likec4diagram/custom/nodes/ElementActions.tsx +74 -0
  328. package/src/likec4diagram/custom/nodes/nodeTypes.tsx +107 -0
  329. package/src/likec4diagram/custom/nodes/toolbar/ColorButton.tsx +175 -0
  330. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +122 -0
  331. package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +140 -0
  332. package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +77 -0
  333. package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +143 -0
  334. package/src/likec4diagram/custom/nodes/toolbar/styles.css.ts +9 -0
  335. package/src/likec4diagram/state/actorContext.ts +8 -0
  336. package/src/{state → likec4diagram/state}/aligners.ts +67 -40
  337. package/src/likec4diagram/state/assign.ts +384 -0
  338. package/src/likec4diagram/state/hotkeyActor.ts +20 -0
  339. package/src/likec4diagram/state/inspector.ts +23 -0
  340. package/src/likec4diagram/state/machine.ts +946 -0
  341. package/src/likec4diagram/state/syncManualLayoutActor.ts +219 -0
  342. package/src/likec4diagram/state/utils.ts +52 -0
  343. package/src/likec4diagram/types.ts +144 -0
  344. package/src/{ui/top-left → likec4diagram/ui/controls}/ChangeAutoLayoutButton.tsx +32 -28
  345. package/src/likec4diagram/ui/controls/Controls.tsx +107 -0
  346. package/src/likec4diagram/ui/controls/LayoutDriftNotification.tsx +46 -0
  347. package/src/{ui/top-left → likec4diagram/ui/controls}/ManualLayoutToolsButton.tsx +16 -16
  348. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +83 -0
  349. package/src/{ui/top-left → likec4diagram/ui/controls}/_shared.ts +4 -3
  350. package/src/{ui/top-left → likec4diagram/ui/controls}/styles.css.ts +17 -17
  351. package/src/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.css.ts +11 -11
  352. package/src/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.tsx +6 -5
  353. package/src/likec4diagram/ui/diagram-title/Link.tsx +40 -0
  354. package/src/likec4diagram/ui/index.ts +2 -0
  355. package/src/{ui → likec4diagram/ui}/notation/NotationPanel.css.ts +18 -18
  356. package/src/{ui → likec4diagram/ui}/notation/NotationPanel.tsx +44 -44
  357. package/src/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.css.ts +16 -16
  358. package/src/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.tsx +29 -49
  359. package/src/{xyflow → likec4diagram}/useLayoutConstraints.ts +54 -43
  360. package/src/likec4diagram/useViewToNodesEdges.ts +297 -0
  361. package/src/likec4model/index.ts +0 -6
  362. package/src/likec4model/useLikeC4Model.ts +1 -43
  363. package/src/overlays/Overlays.tsx +201 -147
  364. package/src/overlays/element-details/ElementDetailsCard.css.ts +58 -58
  365. package/src/overlays/element-details/ElementDetailsCard.tsx +143 -128
  366. package/src/overlays/element-details/TabPanelDeployments.css.ts +14 -14
  367. package/src/overlays/element-details/TabPanelDeployments.tsx +22 -22
  368. package/src/overlays/element-details/TabPanelRelationships.css.ts +19 -19
  369. package/src/overlays/element-details/TabPanelRelationships.tsx +45 -28
  370. package/src/overlays/element-details/TabPanelStructure.css.ts +7 -7
  371. package/src/overlays/element-details/TabPanelStructure.tsx +11 -11
  372. package/src/overlays/overlay/Overlay.css.ts +73 -0
  373. package/src/overlays/overlay/Overlay.tsx +99 -0
  374. package/src/overlays/relationship-details/RelationshipDetails.tsx +234 -0
  375. package/src/overlays/{edge-details → relationship-details}/SelectEdge.css.ts +20 -13
  376. package/src/overlays/{edge-details → relationship-details}/SelectEdge.tsx +14 -14
  377. package/src/overlays/relationship-details/_types.ts +73 -0
  378. package/src/overlays/relationship-details/actor.ts +162 -0
  379. package/src/overlays/relationship-details/custom/ElementActions.tsx +45 -0
  380. package/src/overlays/relationship-details/custom/edgeTypes.tsx +49 -0
  381. package/src/overlays/relationship-details/custom/index.tsx +2 -0
  382. package/src/overlays/relationship-details/custom/nodeTypes.tsx +108 -0
  383. package/src/overlays/relationship-details/custom/styles.css.ts +13 -0
  384. package/src/overlays/relationship-details/hooks.ts +48 -0
  385. package/src/overlays/{edge-details/use-layouted-edge-details.ts → relationship-details/useLayoutedDetails.ts} +128 -114
  386. package/src/overlays/relationships-browser/-useRelationshipsView.ts +642 -0
  387. package/src/overlays/relationships-browser/RelationshipsBrowser.tsx +247 -0
  388. package/src/overlays/{relationships-of → relationships-browser}/SelectElement.css.ts +12 -5
  389. package/src/overlays/{relationships-of → relationships-browser}/SelectElement.tsx +19 -17
  390. package/src/overlays/relationships-browser/_types.ts +89 -0
  391. package/src/overlays/relationships-browser/actor.ts +224 -0
  392. package/src/overlays/relationships-browser/custom/ElementActions.tsx +44 -0
  393. package/src/overlays/relationships-browser/custom/EmptyNode.tsx +18 -0
  394. package/src/overlays/relationships-browser/custom/edgeTypes.tsx +49 -0
  395. package/src/overlays/relationships-browser/custom/index.tsx +2 -0
  396. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +109 -0
  397. package/src/overlays/relationships-browser/custom/styles.css.ts +13 -0
  398. package/src/overlays/relationships-browser/hooks.ts +48 -0
  399. package/src/overlays/relationships-browser/useViewToNodesEdges.ts +209 -0
  400. package/src/utils/index.ts +15 -0
  401. package/src/{xyflow/utils.ts → utils/xyflow.ts} +22 -8
  402. package/dist/_virtual/_commonjsHelpers.js +0 -6
  403. package/dist/controls/Text.d.ts +0 -2
  404. package/dist/controls/Text.js +0 -7
  405. package/dist/controls/action-button-bar/ActionButtonBar.css.d.ts +0 -1
  406. package/dist/controls/action-button-bar/ActionButtonBar.css.js +0 -5
  407. package/dist/controls/action-button-bar/ActionButtonBar.d.ts +0 -9
  408. package/dist/controls/action-button-bar/ActionButtonBar.js +0 -100
  409. package/dist/controls/action-button-bar/useActionButtonBarCtx.d.ts +0 -10
  410. package/dist/controls/action-button-bar/useActionButtonBarCtx.js +0 -9
  411. package/dist/controls/action-buttons/ActionButton.css.d.ts +0 -1
  412. package/dist/controls/action-buttons/ActionButton.css.js +0 -5
  413. package/dist/controls/action-buttons/ActionButton.d.ts +0 -9
  414. package/dist/controls/action-buttons/ActionButton.js +0 -66
  415. package/dist/controls/action-buttons/ActionButtons.d.ts +0 -12
  416. package/dist/controls/action-buttons/ActionButtons.js +0 -99
  417. package/dist/hooks/useDiagramState.d.ts +0 -6
  418. package/dist/hooks/useDiagramState.js +0 -27
  419. package/dist/overlays/OverlayContext.d.ts +0 -10
  420. package/dist/overlays/OverlayContext.js +0 -9
  421. package/dist/overlays/Overlays.css.d.ts +0 -3
  422. package/dist/overlays/Overlays.css.js +0 -7
  423. package/dist/overlays/edge-details/EdgeDetailsXYFlow.d.ts +0 -5
  424. package/dist/overlays/edge-details/EdgeDetailsXYFlow.js +0 -185
  425. package/dist/overlays/edge-details/SelectEdge.css.js +0 -17
  426. package/dist/overlays/edge-details/_types.d.ts +0 -14
  427. package/dist/overlays/edge-details/xyflow/CompoundNode.d.ts +0 -5
  428. package/dist/overlays/edge-details/xyflow/CompoundNode.js +0 -76
  429. package/dist/overlays/edge-details/xyflow/ElementNode.d.ts +0 -5
  430. package/dist/overlays/edge-details/xyflow/ElementNode.js +0 -159
  431. package/dist/overlays/edge-details/xyflow/RelationshipEdge.d.ts +0 -3
  432. package/dist/overlays/edge-details/xyflow/RelationshipEdge.js +0 -84
  433. package/dist/overlays/edge-details/xyflow/styles.css.d.ts +0 -9
  434. package/dist/overlays/edge-details/xyflow/styles.css.js +0 -21
  435. package/dist/overlays/index.d.ts +0 -1
  436. package/dist/overlays/relationships-of/RelationshipsOverlay.d.ts +0 -5
  437. package/dist/overlays/relationships-of/RelationshipsOverlay.js +0 -193
  438. package/dist/overlays/relationships-of/RelationshipsXYFlow.d.ts +0 -19
  439. package/dist/overlays/relationships-of/RelationshipsXYFlow.js +0 -290
  440. package/dist/overlays/relationships-of/SelectElement.css.js +0 -7
  441. package/dist/overlays/relationships-of/SelectElement.d.ts +0 -7
  442. package/dist/overlays/relationships-of/_types.d.ts +0 -28
  443. package/dist/overlays/relationships-of/use-layouted-relationships.d.ts +0 -22
  444. package/dist/overlays/relationships-of/use-layouted-relationships.js +0 -496
  445. package/dist/overlays/relationships-of/xyflow/CompoundNode.d.ts +0 -6
  446. package/dist/overlays/relationships-of/xyflow/CompoundNode.js +0 -120
  447. package/dist/overlays/relationships-of/xyflow/ElementNode.d.ts +0 -6
  448. package/dist/overlays/relationships-of/xyflow/ElementNode.js +0 -194
  449. package/dist/overlays/relationships-of/xyflow/EmptyNode.d.ts +0 -5
  450. package/dist/overlays/relationships-of/xyflow/RelationshipEdge.d.ts +0 -3
  451. package/dist/overlays/relationships-of/xyflow/RelationshipEdge.js +0 -123
  452. package/dist/overlays/relationships-of/xyflow/styles.css.d.ts +0 -14
  453. package/dist/overlays/relationships-of/xyflow/styles.css.js +0 -24
  454. package/dist/overlays/shared/xyflow/RelationshipEdge.css.d.ts +0 -4
  455. package/dist/overlays/shared/xyflow/RelationshipEdge.css.js +0 -12
  456. package/dist/overlays/shared/xyflow/_types.d.ts +0 -77
  457. package/dist/state/DiagramContext.d.ts +0 -1609
  458. package/dist/state/DiagramContext.js +0 -101
  459. package/dist/state/diagram-to-xyflow.d.ts +0 -11
  460. package/dist/state/diagram-to-xyflow.js +0 -113
  461. package/dist/state/diagramStore.d.ts +0 -1705
  462. package/dist/state/diagramStore.js +0 -808
  463. package/dist/state/diagramStore.layout.d.ts +0 -4
  464. package/dist/state/diagramStore.layout.js +0 -56
  465. package/dist/ui/DiagramTitlePanel.css.js +0 -11
  466. package/dist/ui/DiagramTitlePanel.d.ts +0 -1
  467. package/dist/ui/notation/NotationPanel.css.js +0 -16
  468. package/dist/ui/notation/NotationPanel.d.ts +0 -1
  469. package/dist/ui/top-left/TopLeftPanel.d.ts +0 -4
  470. package/dist/ui/top-left/TopLeftPanel.js +0 -211
  471. package/dist/ui/top-left/styles.css.js +0 -17
  472. package/dist/xyflow/FitviewOnDiagramChange.d.ts +0 -4
  473. package/dist/xyflow/FitviewOnDiagramChange.js +0 -72
  474. package/dist/xyflow/SelectEdgesOnNodeFocus.d.ts +0 -1
  475. package/dist/xyflow/SelectEdgesOnNodeFocus.js +0 -96
  476. package/dist/xyflow/XYFlow.d.ts +0 -8
  477. package/dist/xyflow/XYFlow.js +0 -145
  478. package/dist/xyflow/XYFlowBackground.d.ts +0 -10
  479. package/dist/xyflow/XYFlowInner.d.ts +0 -8
  480. package/dist/xyflow/XYFlowInner.js +0 -41
  481. package/dist/xyflow/edges/EdgeLabel.d.ts +0 -7
  482. package/dist/xyflow/edges/EdgeLabel.js +0 -160
  483. package/dist/xyflow/edges/RelationshipEdge.d.ts +0 -6
  484. package/dist/xyflow/edges/RelationshipEdge.js +0 -443
  485. package/dist/xyflow/edges/edges.css.js +0 -37
  486. package/dist/xyflow/edges/utils.d.ts +0 -16
  487. package/dist/xyflow/edges/utils.js +0 -24
  488. package/dist/xyflow/nodes/AnimateVariants.d.ts +0 -1313
  489. package/dist/xyflow/nodes/AnimateVariants.js +0 -123
  490. package/dist/xyflow/nodes/Node.css.d.ts +0 -3
  491. package/dist/xyflow/nodes/Node.css.js +0 -9
  492. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +0 -14
  493. package/dist/xyflow/nodes/compound/CompoundNode.css.js +0 -27
  494. package/dist/xyflow/nodes/compound/CompoundNode.d.ts +0 -6
  495. package/dist/xyflow/nodes/compound/CompoundNode.js +0 -216
  496. package/dist/xyflow/nodes/compound/index.d.ts +0 -1
  497. package/dist/xyflow/nodes/element/ElementLink.css.d.ts +0 -3
  498. package/dist/xyflow/nodes/element/ElementLink.d.ts +0 -6
  499. package/dist/xyflow/nodes/element/ElementNode.d.ts +0 -6
  500. package/dist/xyflow/nodes/element/ElementNode.js +0 -190
  501. package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +0 -17
  502. package/dist/xyflow/nodes/element/element.css.d.ts +0 -18
  503. package/dist/xyflow/nodes/element/element.css.js +0 -31
  504. package/dist/xyflow/nodes/element/index.d.ts +0 -1
  505. package/dist/xyflow/nodes/shared/ElementIcon.d.ts +0 -8
  506. package/dist/xyflow/nodes/shared/Toolbar.d.ts +0 -9
  507. package/dist/xyflow/nodes/shared/Toolbar.js +0 -436
  508. package/dist/xyflow/types.d.ts +0 -36
  509. package/dist/xyflow/useXYFlowEvents.d.ts +0 -160
  510. package/dist/xyflow/useXYFlowEvents.js +0 -275
  511. package/src/controls/Text.ts +0 -5
  512. package/src/controls/action-button-bar/ActionButtonBar.css.ts +0 -13
  513. package/src/controls/action-button-bar/ActionButtonBar.tsx +0 -138
  514. package/src/controls/action-button-bar/useActionButtonBarCtx.ts +0 -13
  515. package/src/controls/action-buttons/ActionButton.css.ts +0 -29
  516. package/src/controls/action-buttons/ActionButton.tsx +0 -66
  517. package/src/controls/action-buttons/ActionButtons.tsx +0 -138
  518. package/src/hooks/useDiagramState.ts +0 -36
  519. package/src/overlays/OverlayContext.tsx +0 -11
  520. package/src/overlays/Overlays.css.ts +0 -136
  521. package/src/overlays/edge-details/EdgeDetailsXYFlow.tsx +0 -255
  522. package/src/overlays/edge-details/_types.ts +0 -18
  523. package/src/overlays/edge-details/xyflow/CompoundNode.tsx +0 -72
  524. package/src/overlays/edge-details/xyflow/ElementNode.tsx +0 -152
  525. package/src/overlays/edge-details/xyflow/RelationshipEdge.tsx +0 -85
  526. package/src/overlays/edge-details/xyflow/styles.css.ts +0 -144
  527. package/src/overlays/index.tsx +0 -1
  528. package/src/overlays/relationships-of/RelationshipsOverlay.tsx +0 -185
  529. package/src/overlays/relationships-of/RelationshipsXYFlow.tsx +0 -378
  530. package/src/overlays/relationships-of/_types.ts +0 -40
  531. package/src/overlays/relationships-of/use-layouted-relationships.ts +0 -699
  532. package/src/overlays/relationships-of/xyflow/CompoundNode.tsx +0 -124
  533. package/src/overlays/relationships-of/xyflow/ElementNode.tsx +0 -194
  534. package/src/overlays/relationships-of/xyflow/EmptyNode.tsx +0 -19
  535. package/src/overlays/relationships-of/xyflow/RelationshipEdge.tsx +0 -127
  536. package/src/overlays/relationships-of/xyflow/styles.css.ts +0 -214
  537. package/src/overlays/shared/xyflow/RelationshipEdge.css.ts +0 -60
  538. package/src/overlays/shared/xyflow/_types.ts +0 -87
  539. package/src/state/DiagramContext.tsx +0 -107
  540. package/src/state/diagram-to-xyflow.ts +0 -150
  541. package/src/state/diagramStore.layout.ts +0 -66
  542. package/src/state/diagramStore.ts +0 -1099
  543. package/src/ui/top-left/TopLeftPanel.tsx +0 -220
  544. package/src/xyflow/FitviewOnDiagramChange.tsx +0 -83
  545. package/src/xyflow/SelectEdgesOnNodeFocus.tsx +0 -106
  546. package/src/xyflow/XYFlow.tsx +0 -179
  547. package/src/xyflow/XYFlowInner.tsx +0 -48
  548. package/src/xyflow/edges/EdgeLabel.tsx +0 -193
  549. package/src/xyflow/edges/RelationshipEdge.tsx +0 -547
  550. package/src/xyflow/edges/edges.css.ts +0 -288
  551. package/src/xyflow/edges/utils.ts +0 -153
  552. package/src/xyflow/nodes/AnimateVariants.ts +0 -143
  553. package/src/xyflow/nodes/Node.css.ts +0 -44
  554. package/src/xyflow/nodes/compound/CompoundNode.css.ts +0 -258
  555. package/src/xyflow/nodes/compound/CompoundNode.tsx +0 -226
  556. package/src/xyflow/nodes/compound/index.ts +0 -1
  557. package/src/xyflow/nodes/element/ElementLink.css.ts +0 -67
  558. package/src/xyflow/nodes/element/ElementLink.tsx +0 -97
  559. package/src/xyflow/nodes/element/ElementNode.tsx +0 -208
  560. package/src/xyflow/nodes/element/element.css.ts +0 -369
  561. package/src/xyflow/nodes/element/index.ts +0 -1
  562. package/src/xyflow/nodes/shared/ElementIcon.tsx +0 -43
  563. package/src/xyflow/nodes/shared/Toolbar.tsx +0 -496
  564. package/src/xyflow/types.ts +0 -57
  565. package/src/xyflow/useXYFlowEvents.ts +0 -315
  566. /package/dist/{xyflow → base}/const.d.ts +0 -0
  567. /package/dist/{xyflow → base}/const.js +0 -0
  568. /package/dist/{ui → context}/EnsureMantine.d.ts +0 -0
  569. /package/dist/{ui → context}/EnsureMantine.js +0 -0
  570. /package/dist/{ui → context}/FramerMotionConfig.d.ts +0 -0
  571. /package/dist/{xyflow → likec4diagram/custom}/edges/RelationshipsDropdownMenu.css.d.ts +0 -0
  572. /package/dist/{ui/top-left → likec4diagram/ui/controls}/ChangeAutoLayoutButton.d.ts +0 -0
  573. /package/dist/{ui/top-left → likec4diagram/ui/controls}/ManualLayoutToolsButton.d.ts +0 -0
  574. /package/dist/{ui/top-left → likec4diagram/ui/controls}/_shared.d.ts +0 -0
  575. /package/dist/{ui → likec4diagram/ui/diagram-title}/DiagramTitlePanel.css.d.ts +0 -0
  576. /package/dist/{ui → likec4diagram/ui/diagram-title}/Link.js +0 -0
  577. /package/dist/{ui → likec4diagram/ui}/notation/NotationPanel.css.d.ts +0 -0
  578. /package/dist/{ui → likec4diagram/ui}/notation/index.d.ts +0 -0
  579. /package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.css.d.ts +0 -0
  580. /package/dist/{ui → likec4diagram/ui/walkthrough}/DynamicViewWalkthrough.d.ts +0 -0
  581. /package/src/{ui → context}/EnsureMantine.tsx +0 -0
  582. /package/src/{ui → likec4diagram/ui}/notation/index.ts +0 -0
@@ -1,41 +0,0 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { deepEqual } from "fast-equals";
3
- import { memo } from "react";
4
- import { isNonNullish } from "remeda";
5
- import { useDiagramState } from "../hooks/useDiagramState.js";
6
- import DiagramTitlePanel from "../ui/DiagramTitlePanel.js";
7
- import { DynamicViewWalkthrough } from "../ui/DynamicViewWalkthrough.js";
8
- import { TopLeftPanel } from "../ui/top-left/TopLeftPanel.js";
9
- import { XYFlowBackground } from "./XYFlowBackground.js";
10
- import { NotationPanel } from "../ui/notation/NotationPanel.js";
11
- const XYFlowInner = /* @__PURE__ */ memo(function XYFlowInnerR({
12
- background,
13
- showDiagramTitle
14
- }) {
15
- const {
16
- showNotations,
17
- isDynamicView,
18
- showTopLeft,
19
- isDynamicViewActive,
20
- enableDynamicViewWalkthrough
21
- } = useDiagramState((s) => ({
22
- showNotations: s.showNotations,
23
- isDynamicView: s.isDynamicView,
24
- showTopLeft: s.controls || s.showNavigationButtons && !!s.onNavigateTo || !!s.onBurgerMenuClick,
25
- enableDynamicViewWalkthrough: s.enableDynamicViewWalkthrough,
26
- isDynamicViewActive: isNonNullish(s.activeWalkthrough)
27
- }));
28
- const isBgWithPattern = background !== "transparent" && background !== "solid";
29
- const isDiagramTitleVisible = showDiagramTitle && !isDynamicViewActive;
30
- return /* @__PURE__ */ jsxs(Fragment, { children: [
31
- isBgWithPattern && /* @__PURE__ */ jsx(XYFlowBackground, { background }),
32
- showTopLeft && /* @__PURE__ */ jsx(TopLeftPanel, {}),
33
- isDiagramTitleVisible && /* @__PURE__ */ jsx(DiagramTitlePanel, {}),
34
- isDynamicView && enableDynamicViewWalkthrough && /* @__PURE__ */ jsx(DynamicViewWalkthrough, {}),
35
- showNotations && /* @__PURE__ */ jsx(NotationPanel, {})
36
- ] });
37
- }, deepEqual);
38
- XYFlowInner.displayName = "XYFlowInner";
39
- export {
40
- XYFlowInner
41
- };
@@ -1,7 +0,0 @@
1
- import { BoxProps } from '@mantine/core';
2
- import { DiagramFlowTypes } from '../types';
3
- export interface EdgeLabelProps extends Omit<BoxProps, 'label'> {
4
- isDimmed: boolean;
5
- edgeData: DiagramFlowTypes.DiagramEdgeData;
6
- }
7
- export declare const EdgeLabel: ({ isDimmed, edgeData: { label, edge, }, ...props }: EdgeLabelProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,160 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { isStepEdgeId, extractStep } from "@likec4/core";
3
- import { Box, Stack, Text, ActionIcon, Popover, PopoverTarget, PopoverDropdown, ScrollAreaAutosize, CloseButton, Group, Button } from "@mantine/core";
4
- import { useDebouncedEffect } from "@react-hookz/web";
5
- import { IconZoomScan } from "@tabler/icons-react";
6
- import { EdgeLabelRenderer } from "@xyflow/react";
7
- import clsx from "clsx";
8
- import { useState } from "react";
9
- import { isTruthy } from "remeda";
10
- import { useLikeC4Model } from "../../likec4model/useLikeC4Model.js";
11
- import { stopPropagation } from "../utils.js";
12
- import { stepEdgeNumber, edgeLabelText, edgeLabelTechnology, cssNavigateBtn, cssNavigateBtnIcon, edgeNoteText, edgeNoteCloseButton } from "./edges.css.js";
13
- import { RelationshipsDropdownMenu } from "./RelationshipsDropdownMenu.js";
14
- import { useDiagramState, useDiagramStoreApi } from "../../hooks/useDiagramState.js";
15
- import { useMantinePortalProps } from "../../hooks/useMantinePortalProps.js";
16
- const EdgeLabel = ({
17
- isDimmed,
18
- edgeData: {
19
- label,
20
- edge
21
- },
22
- ...props
23
- }) => {
24
- const likec4model = useLikeC4Model();
25
- const {
26
- enableRelationshipDetails,
27
- isActiveWalkthroughStep,
28
- hasOnNavigateTo
29
- } = useDiagramState((s) => {
30
- var _a;
31
- return {
32
- enableRelationshipDetails: s.enableRelationshipDetails,
33
- isActiveWalkthroughStep: ((_a = s.activeWalkthrough) == null ? void 0 : _a.stepId) === edge.id,
34
- hasOnNavigateTo: !!s.onNavigateTo
35
- };
36
- });
37
- const notes = isActiveWalkthroughStep ? edge.notes ?? null : null;
38
- const stepNum = isStepEdgeId(edge.id) ? extractStep(edge.id) : null;
39
- const navigateTo = hasOnNavigateTo ? edge.navigateTo ?? null : null;
40
- const wrapWithPopover = (node) => {
41
- if (isTruthy(notes)) {
42
- return /* @__PURE__ */ jsx(NotePopover, { notes, children: node });
43
- }
44
- if (enableRelationshipDetails && likec4model && edge.relations.length > 0) {
45
- return /* @__PURE__ */ jsx(
46
- RelationshipsDropdownMenu,
47
- {
48
- disabled: isDimmed,
49
- likec4model,
50
- edge,
51
- children: node
52
- }
53
- );
54
- }
55
- return node;
56
- };
57
- return /* @__PURE__ */ jsx(EdgeLabelRenderer, { children: wrapWithPopover(
58
- /* @__PURE__ */ jsxs(Box, { ...props, children: [
59
- stepNum !== null && /* @__PURE__ */ jsx(Box, { className: stepEdgeNumber, children: stepNum }),
60
- /* @__PURE__ */ jsxs(Stack, { gap: 4, align: "center", children: [
61
- isTruthy(label == null ? void 0 : label.text) && /* @__PURE__ */ jsx(Text, { component: "div", className: edgeLabelText, lineClamp: 5, children: label.text }),
62
- isTruthy(edge.technology) && /* @__PURE__ */ jsx(Text, { component: "div", className: edgeLabelTechnology, children: "[ " + edge.technology + " ]" }),
63
- navigateTo && /* @__PURE__ */ jsx(NavigateToBtn, { viewId: navigateTo })
64
- ] })
65
- ] })
66
- ) });
67
- };
68
- const NotePopover = ({ notes, children }) => {
69
- const {
70
- nextDynamicStep,
71
- hasNext,
72
- hasPrevious
73
- } = useDiagramState((s) => {
74
- var _a, _b;
75
- return {
76
- nextDynamicStep: s.nextDynamicStep,
77
- hasNext: ((_a = s.activeWalkthrough) == null ? void 0 : _a.hasNext) ?? false,
78
- hasPrevious: ((_b = s.activeWalkthrough) == null ? void 0 : _b.hasPrevious) ?? false
79
- };
80
- });
81
- const [isOpened, setIsOpened] = useState(false);
82
- const portalProps = useMantinePortalProps();
83
- useDebouncedEffect(
84
- () => {
85
- setIsOpened(true);
86
- },
87
- [],
88
- 300
89
- );
90
- return /* @__PURE__ */ jsxs(
91
- Popover,
92
- {
93
- shadow: "xs",
94
- offset: 16,
95
- opened: isOpened,
96
- closeOnClickOutside: false,
97
- ...portalProps,
98
- children: [
99
- /* @__PURE__ */ jsx(PopoverTarget, { children }),
100
- /* @__PURE__ */ jsxs(
101
- PopoverDropdown,
102
- {
103
- component: Stack,
104
- p: "xs",
105
- onPointerDownCapture: stopPropagation,
106
- onClick: stopPropagation,
107
- onDoubleClick: stopPropagation,
108
- children: [
109
- /* @__PURE__ */ jsx(ScrollAreaAutosize, { maw: 450, mah: 350, type: "scroll", mx: "auto", mt: 2, children: /* @__PURE__ */ jsx(Text, { component: "div", className: edgeNoteText, p: 4, children: notes }) }),
110
- /* @__PURE__ */ jsx(
111
- CloseButton,
112
- {
113
- size: "xs",
114
- className: edgeNoteCloseButton,
115
- onClick: () => setIsOpened(false)
116
- }
117
- ),
118
- (hasPrevious || hasNext) && /* @__PURE__ */ jsxs(Group, { gap: 0, justify: hasPrevious ? "flex-start" : "flex-end", children: [
119
- hasPrevious && /* @__PURE__ */ jsx(
120
- Button,
121
- {
122
- variant: "subtle",
123
- radius: "xs",
124
- size: "compact-xs",
125
- onClick: () => nextDynamicStep(-1),
126
- children: "back"
127
- }
128
- ),
129
- hasNext && /* @__PURE__ */ jsx(Button, { variant: "subtle", radius: "xs", size: "compact-xs", onClick: () => nextDynamicStep(), children: "next" })
130
- ] })
131
- ]
132
- }
133
- )
134
- ]
135
- }
136
- );
137
- };
138
- function NavigateToBtn({ viewId }) {
139
- const diagramApi = useDiagramStoreApi();
140
- return /* @__PURE__ */ jsx(
141
- ActionIcon,
142
- {
143
- className: clsx("nodrag nopan", cssNavigateBtn),
144
- size: "sm",
145
- radius: "sm",
146
- onPointerDownCapture: stopPropagation,
147
- onClick: (event) => {
148
- var _a, _b;
149
- event.stopPropagation();
150
- (_b = (_a = diagramApi.getState()).onNavigateTo) == null ? void 0 : _b.call(_a, viewId, event);
151
- },
152
- role: "button",
153
- onDoubleClick: stopPropagation,
154
- children: /* @__PURE__ */ jsx(IconZoomScan, { className: cssNavigateBtnIcon })
155
- }
156
- );
157
- }
158
- export {
159
- EdgeLabel
160
- };
@@ -1,6 +0,0 @@
1
- import { EdgeProps } from '@xyflow/react';
2
- import { DiagramFlowTypes } from '../types';
3
- import { NamedExoticComponent } from 'react';
4
- type DiagramEdgeProps = EdgeProps<DiagramFlowTypes.Edge>;
5
- export declare const RelationshipEdge: NamedExoticComponent<DiagramEdgeProps>;
6
- export {};
@@ -1,443 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { nonNullable, isStepEdgeId, nonexhaustive, invariant } from "@likec4/core";
3
- import { useDebouncedEffect } from "@react-hookz/web";
4
- import { assignInlineVars } from "../../node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js";
5
- import clsx from "clsx";
6
- import { line, curveCatmullRomOpen } from "d3-shape";
7
- import { deepEqual } from "fast-equals";
8
- import { memo, useState, useRef, useEffect } from "react";
9
- import { isTruthy, first, last, hasAtLeast, isArray } from "remeda";
10
- import { useDiagramStoreApi, useDiagramState } from "../../hooks/useDiagramState.js";
11
- import { useXYStoreApi } from "../../hooks/useXYFlow.js";
12
- import { VectorImpl, vector } from "../../utils/vector.js";
13
- import { ZIndexes } from "../const.js";
14
- import { EdgeMarkers } from "../EdgeMarkers.js";
15
- import { bezierControlPoints } from "../utils.js";
16
- import { EdgeLabel } from "./EdgeLabel.js";
17
- import { container, dimmed, controlDragging, markerContext, edgePathBg, cssEdgePath, controlPoint, edgeLabel, varLabelX, varLabelY } from "./edges.css.js";
18
- import { getNodeIntersectionFromCenterToPoint } from "./utils.js";
19
- const toMarker = (arrowType) => {
20
- if (!arrowType || arrowType === "none") {
21
- return void 0;
22
- }
23
- switch (arrowType) {
24
- case "normal":
25
- return "Arrow";
26
- case "crow":
27
- return "Crow";
28
- case "onormal":
29
- return "OArrow";
30
- case "diamond":
31
- return "Diamond";
32
- case "odiamond":
33
- return "ODiamond";
34
- case "open":
35
- case "vee":
36
- return "Open";
37
- case "dot":
38
- return "Dot";
39
- case "odot":
40
- return `ODot`;
41
- default:
42
- nonexhaustive(arrowType);
43
- }
44
- };
45
- function bezierPath(bezierSpline) {
46
- let [start, ...points] = bezierSpline;
47
- invariant(start, "start should be defined");
48
- let path = `M ${start[0]},${start[1]}`;
49
- while (hasAtLeast(points, 3)) {
50
- const [cp1, cp2, end, ...rest] = points;
51
- path = path + ` C ${cp1[0]},${cp1[1]} ${cp2[0]},${cp2[1]} ${end[0]},${end[1]}`;
52
- points = rest;
53
- }
54
- invariant(points.length === 0, "all points should be consumed");
55
- return path;
56
- }
57
- const isSame = (a, b) => {
58
- return Math.abs(a - b) < 2.5;
59
- };
60
- const isSamePoint = (a, b) => {
61
- return isSame(isArray(a) ? a[0] : a.x, isArray(b) ? b[0] : b.x) && isSame(isArray(a) ? a[1] : a.y, isArray(b) ? b[1] : b.y);
62
- };
63
- const sameControlPoints = (a, b) => {
64
- if (a === b) return true;
65
- if (!a || !b || a.length !== b.length) return false;
66
- return a.every((ap, i) => isSamePoint(ap, b[i]));
67
- };
68
- const isEqualProps = (prev, next) => prev.id === next.id && deepEqual(prev.source, next.source) && deepEqual(prev.target, next.target) && deepEqual(prev.selected ?? false, next.selected ?? false) && isSame(prev.sourceX, next.sourceX) && isSame(prev.sourceY, next.sourceY) && isSame(prev.targetX, next.targetX) && isSame(prev.targetY, next.targetY) && deepEqual(prev.data.label, next.data.label) && sameControlPoints(prev.data.controlPoints, next.data.controlPoints) && deepEqual(prev.data.edge, next.data.edge);
69
- const curve = line().curve(curveCatmullRomOpen).x((d) => d.x).y((d) => d.y);
70
- const RelationshipEdge = memo(function RelationshipEdgeR({
71
- id,
72
- data,
73
- sourceX,
74
- sourceY,
75
- targetX,
76
- targetY,
77
- style,
78
- source,
79
- target,
80
- interactionWidth
81
- }) {
82
- const [isControlPointDragging, setIsControlPointDragging] = useState(false);
83
- const diagramStore = useDiagramStoreApi();
84
- const xyflowStore = useXYStoreApi();
85
- const {
86
- connectedToFocusedNode,
87
- isActiveWalkthroughStep,
88
- isEdgePathEditable,
89
- isHovered,
90
- isDimmed,
91
- isActiveAsParallel
92
- } = useDiagramState((s) => {
93
- var _a, _b;
94
- return {
95
- isEdgePathEditable: s.readonly !== true && s.experimentalEdgeEditing === true && s.focusedNodeId === null && s.activeWalkthrough === null,
96
- connectedToFocusedNode: s.focusedNodeId === source || s.focusedNodeId === target,
97
- isActiveWalkthroughStep: ((_a = s.activeWalkthrough) == null ? void 0 : _a.stepId) === data.edge.id,
98
- // If activeWalkthrough and this edge is part of the parallel group
99
- isActiveAsParallel: !!((_b = s.activeWalkthrough) == null ? void 0 : _b.parallelPrefix) && id.startsWith(s.activeWalkthrough.parallelPrefix),
100
- isHovered: s.hoveredEdgeId === id,
101
- isDimmed: s.dimmed.has(id)
102
- };
103
- });
104
- const isActive = connectedToFocusedNode || isActiveWalkthroughStep;
105
- const { nodeLookup, edgeLookup } = xyflowStore.getState();
106
- const sourceNode = nonNullable(nodeLookup.get(source), `source node ${source} not found`);
107
- const targetNode = nonNullable(nodeLookup.get(target), `target node ${target} not found`);
108
- const isModified = isTruthy(data.controlPoints) || !isSamePoint(sourceNode.internals.positionAbsolute, sourceNode.data.element.position) || !isSamePoint(targetNode.internals.positionAbsolute, targetNode.data.element.position);
109
- const {
110
- label,
111
- edge: {
112
- points: diagramEdgePoints,
113
- line: line2 = "dashed",
114
- color = "gray",
115
- labelBBox,
116
- ...diagramEdge
117
- }
118
- } = data;
119
- let controlPoints = data.controlPoints ?? bezierControlPoints(data.edge);
120
- const isStepEdge = isStepEdgeId(data.edge.id);
121
- const isDotted = line2 === "dotted";
122
- const isDashed = isDotted || line2 === "dashed";
123
- let strokeDasharray;
124
- if (isDotted) {
125
- strokeDasharray = "1,8";
126
- } else if (isDashed) {
127
- strokeDasharray = "8,10";
128
- }
129
- let labelX = (labelBBox == null ? void 0 : labelBBox.x) ?? 0, labelY = (labelBBox == null ? void 0 : labelBBox.y) ?? 0;
130
- const [labelPos, setLabelPos] = useState({
131
- x: (label == null ? void 0 : label.bbox.x) ?? labelX,
132
- y: (label == null ? void 0 : label.bbox.y) ?? labelY
133
- });
134
- let edgePath;
135
- if (isModified) {
136
- const sourceCenterPos = { x: sourceX, y: sourceY };
137
- const targetCenterPos = { x: targetX, y: targetY };
138
- const points = diagramEdge.dir === "back" ? [
139
- targetCenterPos,
140
- getNodeIntersectionFromCenterToPoint(targetNode, first(controlPoints) ?? sourceCenterPos),
141
- ...controlPoints,
142
- getNodeIntersectionFromCenterToPoint(sourceNode, last(controlPoints) ?? targetCenterPos),
143
- sourceCenterPos
144
- ] : [
145
- sourceCenterPos,
146
- getNodeIntersectionFromCenterToPoint(sourceNode, first(controlPoints) ?? targetCenterPos),
147
- ...controlPoints,
148
- getNodeIntersectionFromCenterToPoint(targetNode, last(controlPoints) ?? sourceCenterPos),
149
- targetCenterPos
150
- ];
151
- edgePath = nonNullable(curve(points));
152
- } else {
153
- edgePath = bezierPath(diagramEdgePoints);
154
- }
155
- const svgPathRef = useRef(null);
156
- useEffect(() => {
157
- const path = svgPathRef.current;
158
- if (!path) return;
159
- const dompoint = path.getPointAtLength(path.getTotalLength() * 0.5);
160
- const point = {
161
- x: Math.round(dompoint.x),
162
- y: Math.round(dompoint.y)
163
- };
164
- setLabelPos((current) => isSamePoint(current, point) ? current : point);
165
- }, [edgePath]);
166
- useDebouncedEffect(
167
- () => {
168
- if (!label || label.bbox.x === labelPos.x && label.bbox.y === labelPos.y) {
169
- return;
170
- }
171
- diagramStore.getState().xyflow.updateEdgeData(id, {
172
- label: {
173
- ...label,
174
- bbox: {
175
- ...label.bbox,
176
- ...labelPos
177
- }
178
- }
179
- });
180
- },
181
- [labelPos],
182
- 50,
183
- 300
184
- );
185
- if (isModified || isControlPointDragging) {
186
- labelX = labelPos.x;
187
- labelY = labelPos.y;
188
- }
189
- const onLmbControlPointerDown = (index, e, domNode) => {
190
- const { addSelectedEdges } = xyflowStore.getState();
191
- const { xyflow } = diagramStore.getState();
192
- addSelectedEdges([id]);
193
- const wasCanceled = diagramStore.getState().cancelSaveManualLayout();
194
- e.stopPropagation();
195
- let hasMoved = false;
196
- let pointer = { x: e.clientX, y: e.clientY };
197
- const onPointerMove = (e2) => {
198
- const clientPoint = {
199
- x: e2.clientX,
200
- y: e2.clientY
201
- };
202
- if (!isSamePoint(pointer, clientPoint)) {
203
- setIsControlPointDragging(true);
204
- hasMoved = true;
205
- pointer = clientPoint;
206
- const { x, y } = xyflow.screenToFlowPosition(pointer, { snapToGrid: false });
207
- xyflow.updateEdgeData(id, (xyedge) => {
208
- const cp = (xyedge.data.controlPoints ?? controlPoints).slice();
209
- cp[index] = {
210
- x: Math.round(x),
211
- y: Math.round(y)
212
- };
213
- return {
214
- controlPoints: cp
215
- };
216
- });
217
- }
218
- e2.stopPropagation();
219
- };
220
- const onPointerUp = (e2) => {
221
- domNode.removeEventListener("pointermove", onPointerMove, {
222
- capture: true
223
- });
224
- if (hasMoved) {
225
- e2.stopPropagation();
226
- }
227
- if (hasMoved || wasCanceled) {
228
- diagramStore.getState().scheduleSaveManualLayout();
229
- }
230
- setIsControlPointDragging(false);
231
- };
232
- domNode.addEventListener("pointermove", onPointerMove, {
233
- capture: true
234
- });
235
- domNode.addEventListener("pointerup", onPointerUp, {
236
- once: true,
237
- capture: true
238
- });
239
- };
240
- const onRmbControlPointerDown = (index, e, domNode) => {
241
- const { xyflow } = diagramStore.getState();
242
- if (controlPoints.length <= 1) {
243
- return;
244
- }
245
- const onPointerUp = (e2) => {
246
- const newControlPoints = controlPoints.slice();
247
- newControlPoints.splice(index, 1);
248
- e2.stopPropagation();
249
- setTimeout(() => {
250
- xyflow.updateEdgeData(id, { controlPoints: newControlPoints });
251
- diagramStore.getState().scheduleSaveManualLayout();
252
- }, 10);
253
- domNode.removeEventListener("pointerup", onPointerUp, {
254
- capture: true
255
- });
256
- e2.stopPropagation();
257
- };
258
- domNode.addEventListener("pointerup", onPointerUp, {
259
- once: true,
260
- capture: true
261
- });
262
- e.stopPropagation();
263
- };
264
- const onControlPointerDown = (index, e) => {
265
- const { domNode } = xyflowStore.getState();
266
- if (!domNode || e.pointerType !== "mouse") {
267
- return;
268
- }
269
- switch (e.button) {
270
- case 0:
271
- onLmbControlPointerDown(index, e, domNode);
272
- break;
273
- case 2:
274
- onRmbControlPointerDown(index, e, domNode);
275
- break;
276
- }
277
- };
278
- const onEdgePointerDown = (e) => {
279
- const { domNode } = xyflowStore.getState();
280
- const { xyflow, scheduleSaveManualLayout } = diagramStore.getState();
281
- if (!domNode || e.pointerType !== "mouse") {
282
- return;
283
- }
284
- if (e.button !== 2) {
285
- return;
286
- }
287
- xyflow.updateEdgeData(id, (edge) => {
288
- var _a;
289
- const points = [
290
- new VectorImpl(sourceX, sourceY),
291
- ...controlPoints.map(vector) || [],
292
- new VectorImpl(targetX, targetY)
293
- ];
294
- let pointer = { x: e.clientX, y: e.clientY };
295
- const newPoint = vector(xyflow.screenToFlowPosition(pointer, { snapToGrid: false }));
296
- let insertionIndex = 0;
297
- let minDistance = Infinity;
298
- for (let i = 0; i < points.length - 1; i++) {
299
- const a = points[i], b = points[i + 1];
300
- const fromCurrentToNext = b.sub(a);
301
- const fromCurrentToNew = newPoint.sub(a);
302
- const fromNextToNew = newPoint.sub(b);
303
- if (fromCurrentToNext.dot(fromCurrentToNew) * fromCurrentToNext.dot(fromNextToNew) < 0) {
304
- const distanceToEdge = Math.abs(fromCurrentToNext.cross(fromCurrentToNew).abs() / fromCurrentToNext.abs());
305
- if (distanceToEdge < minDistance) {
306
- minDistance = distanceToEdge;
307
- insertionIndex = i;
308
- }
309
- }
310
- }
311
- const newControlPoints = ((_a = edge.data.controlPoints) == null ? void 0 : _a.slice()) || [];
312
- newControlPoints.splice(insertionIndex, 0, newPoint);
313
- return { controlPoints: newControlPoints };
314
- });
315
- scheduleSaveManualLayout();
316
- e.stopPropagation();
317
- };
318
- let markerStartName = toMarker(diagramEdge.tail);
319
- let markerEndName = toMarker(diagramEdge.head ?? "normal");
320
- if (diagramEdge.dir === "back") {
321
- [markerStartName, markerEndName] = [markerEndName, markerStartName];
322
- }
323
- const MarkerStart = markerStartName ? EdgeMarkers[markerStartName] : null;
324
- const MarkerEnd = markerEndName ? EdgeMarkers[markerEndName] : null;
325
- const edgeZIndex = edgeLookup.get(id).zIndex ?? ZIndexes.Edge;
326
- let labelZIndex;
327
- if (isEdgePathEditable) {
328
- labelZIndex = edgeZIndex - 1;
329
- } else if (isHovered) {
330
- labelZIndex = ZIndexes.Element + 1;
331
- } else {
332
- labelZIndex = edgeZIndex + 1;
333
- }
334
- return /* @__PURE__ */ jsxs(
335
- "g",
336
- {
337
- className: clsx(
338
- container,
339
- isDimmed && dimmed,
340
- isControlPointDragging && controlDragging
341
- ),
342
- "data-likec4-color": color,
343
- "data-edge-dir": diagramEdge.dir,
344
- "data-edge-active": isActive,
345
- "data-edge-animated": isActive || isActiveAsParallel,
346
- "data-edge-hovered": isHovered,
347
- children: [
348
- /* @__PURE__ */ jsx(
349
- "path",
350
- {
351
- className: clsx("react-flow__edge-interaction"),
352
- d: edgePath,
353
- fill: "none",
354
- stroke: "transparent",
355
- strokeWidth: interactionWidth ?? 10
356
- }
357
- ),
358
- /* @__PURE__ */ jsxs("g", { className: markerContext, onPointerDown: (e) => onEdgePointerDown(e), children: [
359
- /* @__PURE__ */ jsxs("defs", { children: [
360
- MarkerStart && /* @__PURE__ */ jsx(MarkerStart, { id: "start" + id }),
361
- MarkerEnd && /* @__PURE__ */ jsx(MarkerEnd, { id: "end" + id })
362
- ] }),
363
- /* @__PURE__ */ jsx(
364
- "path",
365
- {
366
- className: clsx("react-flow__edge-path", edgePathBg),
367
- d: edgePath,
368
- style,
369
- strokeLinecap: "round"
370
- }
371
- ),
372
- /* @__PURE__ */ jsx(
373
- "path",
374
- {
375
- ref: svgPathRef,
376
- className: clsx("react-flow__edge-path", cssEdgePath),
377
- d: edgePath,
378
- style,
379
- strokeLinecap: "round",
380
- strokeDasharray,
381
- markerStart: MarkerStart ? `url(#start${id})` : void 0,
382
- markerEnd: MarkerEnd ? `url(#end${id})` : void 0
383
- }
384
- )
385
- ] }),
386
- isEdgePathEditable && /* @__PURE__ */ jsx(
387
- "g",
388
- {
389
- onContextMenu: (e) => {
390
- e.preventDefault();
391
- e.stopPropagation();
392
- },
393
- children: controlPoints.map((p, i) => /* @__PURE__ */ jsx(
394
- "circle",
395
- {
396
- onPointerDown: (e) => onControlPointerDown(i, e),
397
- className: controlPoint,
398
- cx: p.x,
399
- cy: p.y,
400
- r: 3
401
- },
402
- i
403
- ))
404
- }
405
- ),
406
- (data.label || isStepEdge) && /* @__PURE__ */ jsx(
407
- EdgeLabel,
408
- {
409
- isDimmed,
410
- edgeData: data,
411
- className: clsx(
412
- "nodrag nopan",
413
- container,
414
- edgeLabel,
415
- isDimmed && dimmed
416
- ),
417
- style: {
418
- ...assignInlineVars({
419
- [varLabelX]: isModified ? `calc(${labelX}px - 10%)` : `${labelX}px`,
420
- [varLabelY]: isModified ? `${labelY - 5}px` : `${labelY}px`
421
- }),
422
- // ...(isEdgePathEditable && selected && {
423
- // pointerEvents: 'none'
424
- // }),
425
- ...label && {
426
- maxWidth: label.bbox.width + 18
427
- },
428
- zIndex: labelZIndex
429
- },
430
- mod: {
431
- "data-likec4-color": color,
432
- "data-edge-hovered": isHovered && !isActiveWalkthroughStep,
433
- "data-edge-active": isActive
434
- }
435
- }
436
- )
437
- ]
438
- }
439
- );
440
- }, isEqualProps);
441
- export {
442
- RelationshipEdge
443
- };
@@ -1,37 +0,0 @@
1
- /* empty css */
2
- var container = "bexn7q1";
3
- var dimmed = "bexn7q2";
4
- var edgePathBg = "bexn7q3";
5
- var markerContext = "bexn7q4";
6
- var controlPoint = "bexn7q5";
7
- var controlDragging = "bexn7q6";
8
- var cssEdgePath = "bexn7q8";
9
- var stepEdgeNumber = "bexn7q9";
10
- var varLabelX = "var(--bexn7qa)";
11
- var varLabelY = "var(--bexn7qb)";
12
- var edgeLabel = "bexn7qd";
13
- var edgeLabelText = "bexn7qe";
14
- var edgeLabelTechnology = "bexn7qf";
15
- var edgeNoteCloseButton = "bexn7qg";
16
- var edgeNoteText = "bexn7qh";
17
- var cssNavigateBtn = "bexn7qi";
18
- var cssNavigateBtnIcon = "bexn7qj";
19
- export {
20
- container,
21
- controlDragging,
22
- controlPoint,
23
- cssEdgePath,
24
- cssNavigateBtn,
25
- cssNavigateBtnIcon,
26
- dimmed,
27
- edgeLabel,
28
- edgeLabelTechnology,
29
- edgeLabelText,
30
- edgeNoteCloseButton,
31
- edgeNoteText,
32
- edgePathBg,
33
- markerContext,
34
- stepEdgeNumber,
35
- varLabelX,
36
- varLabelY
37
- };