@likec4/diagram 1.57.0 → 1.59.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 (329) hide show
  1. package/dist/LikeC4Diagram.js +1 -1
  2. package/dist/LikeC4Diagram.props.d.ts +1 -1
  3. package/dist/LikeC4Styles.js +1 -1
  4. package/dist/LikeC4View.js +2 -2
  5. package/dist/ReactLikeC4.d.ts +1 -1
  6. package/dist/base/Base.d.ts +3 -2
  7. package/dist/base/Base.js +14 -26
  8. package/dist/base/BaseXYFlow.d.ts +2 -1
  9. package/dist/base/BaseXYFlow.js +63 -4
  10. package/dist/base/keyboardZoom.d.ts +3 -0
  11. package/dist/base/keyboardZoom.js +20 -0
  12. package/dist/base/updateEdges.js +7 -16
  13. package/dist/base/updateNodes.js +3 -9
  14. package/dist/base-primitives/Markdown.d.ts +1 -1
  15. package/dist/base-primitives/NodeHandles.d.ts +1 -1
  16. package/dist/base-primitives/compound/CompoundActionButton.d.ts +2 -1
  17. package/dist/base-primitives/compound/CompoundActionButton.js +5 -2
  18. package/dist/base-primitives/compound/CompoundDetailsButton.d.ts +2 -1
  19. package/dist/base-primitives/compound/CompoundDetailsButton.js +5 -2
  20. package/dist/base-primitives/compound/CompoundNodeContainer.d.ts +1 -1
  21. package/dist/base-primitives/compound/CompoundTitle.d.ts +7 -1
  22. package/dist/base-primitives/compound/CompoundTitle.js +2 -1
  23. package/dist/base-primitives/compound/actionbtns.css.d.ts +1 -1
  24. package/dist/base-primitives/edge/EdgeActionButton.d.ts +2 -1
  25. package/dist/base-primitives/edge/EdgeActionButton.js +2 -1
  26. package/dist/base-primitives/edge/EdgeContainer.d.ts +1 -1
  27. package/dist/base-primitives/edge/EdgeContainer.js +4 -2
  28. package/dist/base-primitives/edge/EdgeLabel.d.ts +2 -0
  29. package/dist/base-primitives/edge/EdgeLabel.js +2 -5
  30. package/dist/base-primitives/edge/EdgeLabelContainer.d.ts +1 -1
  31. package/dist/base-primitives/edge/EdgeMarkers.d.ts +8 -8
  32. package/dist/base-primitives/element/ElementActionButtons.d.ts +2 -1
  33. package/dist/base-primitives/element/ElementActionButtons.js +4 -1
  34. package/dist/base-primitives/element/ElementData.d.ts +4 -2
  35. package/dist/base-primitives/element/ElementData.js +2 -1
  36. package/dist/base-primitives/element/ElementDetailsButton.d.ts +2 -1
  37. package/dist/base-primitives/element/ElementDetailsButton.js +5 -2
  38. package/dist/base-primitives/element/ElementNodeContainer.js +1 -1
  39. package/dist/base-primitives/element/ElementShape.d.ts +1 -1
  40. package/dist/base-primitives/element/ElementShape.js +3 -0
  41. package/dist/base-primitives/element/ElementTags.d.ts +1 -1
  42. package/dist/base-primitives/element/ElementTags.js +1 -3
  43. package/dist/components/ErrorFallback.d.ts +2 -2
  44. package/dist/components/ErrorFallback.js +3 -5
  45. package/dist/components/Link.js +6 -6
  46. package/dist/components/NavigationPanel.d.ts +2 -2
  47. package/dist/components/NavigationPanel.js +1 -1
  48. package/dist/components/PortalToContainer.d.ts +1 -1
  49. package/dist/components/RootContainer.d.ts +1 -1
  50. package/dist/components/SearchControl.css.js +11 -11
  51. package/dist/components/SearchControl.d.ts +2 -2
  52. package/dist/components/ViewNotFound.d.ts +2 -2
  53. package/dist/context/CurrentViewModelProvider.d.ts +1 -1
  54. package/dist/context/DefaultMantineProvider.d.ts +1 -1
  55. package/dist/context/DiagramEventHandlers.d.ts +1 -1
  56. package/dist/context/EnsureMantine.d.ts +1 -1
  57. package/dist/context/FramerMotionConfig.d.ts +3 -3
  58. package/dist/context/FramerMotionConfig.js +2 -2
  59. package/dist/context/IconRenderer.d.ts +2 -2
  60. package/dist/context/IconRenderer.js +32 -12
  61. package/dist/context/LikeC4ModelContext.d.ts +1 -1
  62. package/dist/context/TagStylesContext.d.ts +4 -3
  63. package/dist/context/TagStylesContext.js +20 -22
  64. package/dist/custom/index.d.ts +1 -0
  65. package/dist/custom/index.js +3 -2
  66. package/dist/editor/LikeC4EditorProvider.d.ts +2 -2
  67. package/dist/editor/actor/actions.d.ts +74 -15
  68. package/dist/editor/actor/actions.js +91 -25
  69. package/dist/editor/actor/hotkey.d.ts +1 -1
  70. package/dist/editor/actor/hotkey.js +7 -0
  71. package/dist/editor/actor/machine.d.ts +4 -6
  72. package/dist/editor/actor/machine.js +1 -0
  73. package/dist/editor/actor/setup.d.ts +25 -4
  74. package/dist/editor/actor/setup.js +8 -6
  75. package/dist/editor/actor/state.editor.d.ts +64 -14
  76. package/dist/editor/actor/state.editor.js +12 -11
  77. package/dist/editor/actor/state.sync-queue.d.ts +283 -91
  78. package/dist/editor/actor/state.sync-queue.js +93 -56
  79. package/dist/editor/actor/types.d.ts +6 -1
  80. package/dist/editor/actor/types.js +1 -1
  81. package/dist/editor/useEditorActorLogic.js +14 -2
  82. package/dist/hooks/index.d.ts +1 -1
  83. package/dist/hooks/safeContext.d.ts +156 -3
  84. package/dist/hooks/safeContext.js +60 -12
  85. package/dist/hooks/useCurrentViewModel.js +1 -1
  86. package/dist/hooks/useDiagram.d.ts +8 -0
  87. package/dist/hooks/useDiagram.js +9 -2
  88. package/dist/hooks/useEditorActor.d.ts +5 -0
  89. package/dist/hooks/useEditorActor.js +4 -3
  90. package/dist/hooks/useLikeC4ElementsTree.js +1 -1
  91. package/dist/hooks/useLikeC4Model.js +1 -1
  92. package/dist/hooks/useXYFlow.d.ts +1 -0
  93. package/dist/hooks/useXYFlow.js +5 -3
  94. package/dist/index.d.ts +3 -1
  95. package/dist/index.js +4 -2
  96. package/dist/likec4diagram/DiagramUI.d.ts +1 -1
  97. package/dist/likec4diagram/DiagramUI.js +19 -6
  98. package/dist/likec4diagram/DiagramXYFlow.js +54 -17
  99. package/dist/likec4diagram/convert-to-xyflow.d.ts +3 -5
  100. package/dist/likec4diagram/convert-to-xyflow.js +29 -10
  101. package/dist/likec4diagram/custom/edges/EdgeDrifts.d.ts +1 -1
  102. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +140 -18
  103. package/dist/likec4diagram/custom/edges/SequenceStepEdge.d.ts +1 -1
  104. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +11 -4
  105. package/dist/likec4diagram/custom/edges/edges.css.d.ts +1 -0
  106. package/dist/likec4diagram/custom/edges/edges.css.js +6 -2
  107. package/dist/likec4diagram/custom/index.d.ts +2 -1
  108. package/dist/likec4diagram/custom/index.js +5 -3
  109. package/dist/likec4diagram/custom/nodes/CompoundActions.d.ts +1 -1
  110. package/dist/likec4diagram/custom/nodes/CompoundActions.js +1 -0
  111. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +4 -4
  112. package/dist/likec4diagram/custom/nodes/ElementActions.js +13 -3
  113. package/dist/likec4diagram/custom/nodes/NodeDrifts.d.ts +1 -1
  114. package/dist/likec4diagram/custom/nodes/NodeNotes.d.ts +1 -1
  115. package/dist/likec4diagram/custom/nodes/NodeNotes.js +0 -4
  116. package/dist/likec4diagram/custom/nodes/SequenceActorNode.d.ts +2 -2
  117. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +32 -19
  118. package/dist/likec4diagram/custom/nodes/SequenceSubFlow.d.ts +2 -0
  119. package/dist/likec4diagram/custom/nodes/SequenceSubFlow.js +234 -0
  120. package/dist/likec4diagram/custom/nodes/index.d.ts +1 -0
  121. package/dist/likec4diagram/custom/nodes/nodes.d.ts +7 -7
  122. package/dist/likec4diagram/custom/nodes/nodes.js +20 -5
  123. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.d.ts +3 -3
  124. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +1 -1
  125. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.d.ts +2 -2
  126. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.d.ts +2 -2
  127. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +1 -1
  128. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -3
  129. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +1 -1
  130. package/dist/likec4diagram/relationship-popover/RelationshipPopover.d.ts +1 -1
  131. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +15 -14
  132. package/dist/likec4diagram/relationship-popover/components.d.ts +2 -2
  133. package/dist/likec4diagram/state/DiagramActorProvider.d.ts +1 -1
  134. package/dist/likec4diagram/state/DiagramActorProvider.js +11 -20
  135. package/dist/likec4diagram/state/aligners.js +1 -1
  136. package/dist/likec4diagram/state/assign.d.ts +1 -1
  137. package/dist/likec4diagram/state/assign.js +1 -1
  138. package/dist/likec4diagram/state/createViewChange.js +2 -1
  139. package/dist/likec4diagram/state/diagram-api.d.ts +18 -10
  140. package/dist/likec4diagram/state/diagram-api.js +333 -229
  141. package/dist/likec4diagram/state/machine.actions.d.ts +1026 -332
  142. package/dist/likec4diagram/state/machine.actions.js +118 -46
  143. package/dist/likec4diagram/state/machine.actions.layout.d.ts +123 -51
  144. package/dist/likec4diagram/state/machine.actions.layout.js +40 -33
  145. package/dist/likec4diagram/state/machine.d.ts +154 -16
  146. package/dist/likec4diagram/state/machine.js +5 -41
  147. package/dist/likec4diagram/state/machine.setup.d.ts +84 -19
  148. package/dist/likec4diagram/state/machine.setup.js +65 -12
  149. package/dist/likec4diagram/state/machine.state.initializing.d.ts +59 -33
  150. package/dist/likec4diagram/state/machine.state.navigating.js +7 -3
  151. package/dist/likec4diagram/state/machine.state.ready.d.ts +1540 -476
  152. package/dist/likec4diagram/state/machine.state.ready.focused.d.ts +294 -53
  153. package/dist/likec4diagram/state/machine.state.ready.focused.js +3 -3
  154. package/dist/likec4diagram/state/machine.state.ready.idle.d.ts +264 -73
  155. package/dist/likec4diagram/state/machine.state.ready.idle.js +31 -6
  156. package/dist/likec4diagram/state/machine.state.ready.js +22 -16
  157. package/dist/likec4diagram/state/machine.state.ready.printing.d.ts +23 -9
  158. package/dist/likec4diagram/state/machine.state.ready.walkthrough.d.ts +288 -84
  159. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +135 -66
  160. package/dist/likec4diagram/state/types.d.ts +4 -2
  161. package/dist/likec4diagram/state/utils.d.ts +7 -0
  162. package/dist/likec4diagram/state/utils.js +36 -34
  163. package/dist/likec4diagram/types.d.ts +49 -3
  164. package/dist/likec4diagram/ui/FloatingSequenceActors.d.ts +6 -0
  165. package/dist/likec4diagram/ui/FloatingSequenceActors.js +155 -0
  166. package/dist/likec4diagram/ui/LayoutDriftFrame.d.ts +1 -1
  167. package/dist/likec4diagram/ui/LayoutDriftFrame.js +2 -2
  168. package/dist/likec4diagram/ui/index.d.ts +2 -0
  169. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +5 -5
  170. package/dist/likec4diagram/ui/notation/NotationPanel.d.ts +1 -1
  171. package/dist/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.d.ts +2 -0
  172. package/dist/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.js +519 -0
  173. package/dist/likec4diagram/ui/sequence-outline/state.d.ts +36 -0
  174. package/dist/likec4diagram/ui/sequence-outline/state.js +55 -0
  175. package/dist/likec4diagram/xyflow-diagram/diagram-view.d.ts +1 -1
  176. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +116 -62
  177. package/dist/likec4diagram/xyflow-sequence/_types.d.ts +55 -5
  178. package/dist/likec4diagram/xyflow-sequence/const.d.ts +5 -5
  179. package/dist/likec4diagram/xyflow-sequence/const.js +4 -4
  180. package/dist/likec4diagram/xyflow-sequence/layouter.d.ts +30 -6
  181. package/dist/likec4diagram/xyflow-sequence/layouter.js +561 -0
  182. package/dist/likec4diagram/xyflow-sequence/{sequence-layout.d.ts → sequence-view-to-xy.d.ts} +8 -2
  183. package/dist/likec4diagram/xyflow-sequence/{sequence-layout.js → sequence-view-to-xy.js} +112 -14
  184. package/dist/likec4diagram/xyflow-sequence/sequence-view.d.ts +2 -7
  185. package/dist/likec4diagram/xyflow-sequence/sequence-view.js +144 -0
  186. package/dist/likec4diagram/xyflow-sequence/utils.d.ts +9 -1
  187. package/dist/likec4diagram/xyflow-sequence/utils.js +96 -0
  188. package/dist/navigationpanel/NavigationPanel.d.ts +5 -2
  189. package/dist/navigationpanel/NavigationPanel.js +58 -59
  190. package/dist/navigationpanel/NavigationPanelControls.d.ts +1 -1
  191. package/dist/navigationpanel/NavigationPanelDropdown.d.ts +1 -1
  192. package/dist/navigationpanel/NavigationPanelDropdown.js +47 -40
  193. package/dist/navigationpanel/_common.d.ts +2 -2
  194. package/dist/navigationpanel/_common.js +2 -2
  195. package/dist/navigationpanel/actor.actions.d.ts +19 -0
  196. package/dist/navigationpanel/actor.actions.js +45 -0
  197. package/dist/navigationpanel/actor.d.ts +34 -96
  198. package/dist/navigationpanel/actor.js +21 -84
  199. package/dist/navigationpanel/actor.setup.d.ts +98 -0
  200. package/dist/navigationpanel/actor.setup.js +31 -0
  201. package/dist/navigationpanel/comparepanel/CompareActionsMenu.d.ts +1 -1
  202. package/dist/navigationpanel/comparepanel/ComparePanel.d.ts +1 -1
  203. package/dist/navigationpanel/comparepanel/ComparePanelControls.d.ts +1 -1
  204. package/dist/navigationpanel/comparepanel/DriftsSummary.d.ts +1 -1
  205. package/dist/navigationpanel/comparepanel/DriftsSummary.js +4 -5
  206. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.d.ts +1 -1
  207. package/dist/navigationpanel/controls/DetailsControls.d.ts +1 -1
  208. package/dist/navigationpanel/controls/DetailsControls.js +7 -8
  209. package/dist/navigationpanel/controls/LayoutWarning.d.ts +1 -1
  210. package/dist/navigationpanel/controls/LogoButton.d.ts +1 -1
  211. package/dist/navigationpanel/controls/NavigationButtons.d.ts +1 -1
  212. package/dist/navigationpanel/controls/OpenSource.d.ts +1 -1
  213. package/dist/navigationpanel/controls/SearchControl.d.ts +1 -1
  214. package/dist/navigationpanel/controls/ToggleReadonly.d.ts +1 -1
  215. package/dist/navigationpanel/dropdown/ProjectsMenu.js +1 -1
  216. package/dist/navigationpanel/editorpanel/CenterCamera.d.ts +1 -1
  217. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.d.ts +1 -1
  218. package/dist/navigationpanel/editorpanel/EditorPanel.d.ts +1 -1
  219. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.d.ts +1 -1
  220. package/dist/navigationpanel/editorpanel/ToggleReadonly.d.ts +1 -1
  221. package/dist/navigationpanel/editorpanel/styles.js +8 -8
  222. package/dist/navigationpanel/hooks.d.ts +20 -5
  223. package/dist/navigationpanel/hooks.js +4 -18
  224. package/dist/navigationpanel/styles.css.d.ts +1 -1
  225. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.d.ts +1 -1
  226. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +2 -2
  227. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +5 -5
  228. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +23 -25
  229. package/dist/navigationpanel/walkthrough/WalkthroughPanel.d.ts +1 -1
  230. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +5 -5
  231. package/dist/overlays/Overlays.d.ts +4 -2
  232. package/dist/overlays/Overlays.js +10 -10
  233. package/dist/overlays/element-details/ElementDetails.d.ts +1 -1
  234. package/dist/overlays/element-details/ElementDetailsCard.css.js +17 -17
  235. package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
  236. package/dist/overlays/element-details/MetadataValue.d.ts +2 -2
  237. package/dist/overlays/element-details/MetadataValue.js +15 -15
  238. package/dist/overlays/element-details/TabPanelDeployments.css.js +5 -5
  239. package/dist/overlays/element-details/TabPanelRelationships.css.js +11 -11
  240. package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
  241. package/dist/overlays/element-details/TabPanelRelationships.js +1 -1
  242. package/dist/overlays/element-details/TabPanelStructure.css.js +2 -2
  243. package/dist/overlays/element-details/TabPanelStructure.d.ts +2 -2
  244. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  245. package/dist/overlays/element-details/actor.d.ts +2 -3
  246. package/dist/overlays/hooks.d.ts +28 -0
  247. package/dist/overlays/hooks.js +5 -0
  248. package/dist/overlays/overlay/Overlay.js +34 -25
  249. package/dist/overlays/overlaysActor.js +0 -1
  250. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +1 -1
  251. package/dist/overlays/relationship-details/SelectEdge.d.ts +1 -1
  252. package/dist/overlays/relationship-details/custom/ElementActions.d.ts +1 -1
  253. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +4 -4
  254. package/dist/overlays/relationship-details/custom/nodeTypes.js +1 -1
  255. package/dist/overlays/relationship-details/layout.js +1 -1
  256. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +1 -1
  257. package/dist/overlays/relationships-browser/SelectElement.css.js +2 -2
  258. package/dist/overlays/relationships-browser/SelectElement.d.ts +1 -1
  259. package/dist/overlays/relationships-browser/actor.js +79 -78
  260. package/dist/overlays/relationships-browser/custom/ElementActions.d.ts +1 -1
  261. package/dist/overlays/relationships-browser/custom/EmptyNode.d.ts +1 -1
  262. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +4 -4
  263. package/dist/overlays/relationships-browser/custom/nodeTypes.js +1 -1
  264. package/dist/overlays/relationships-browser/hooks.js +1 -1
  265. package/dist/overlays/relationships-browser/layout.js +2 -2
  266. package/dist/projects-overview/ProjectsOverview.d.ts +1 -1
  267. package/dist/projects-overview/actor.js +4 -4
  268. package/dist/projects-overview/custom/nodeTypes.d.ts +1 -1
  269. package/dist/projects-overview/panel/ProjectsOverviewPanel.d.ts +1 -1
  270. package/dist/search/Search.d.ts +1 -1
  271. package/dist/search/Search.js +1 -1
  272. package/dist/search/XStateSearchAdapter.d.ts +1 -1
  273. package/dist/search/components/ElementsColumn.css.js +2 -2
  274. package/dist/search/components/ElementsColumn.d.ts +1 -1
  275. package/dist/search/components/PickView.d.ts +1 -1
  276. package/dist/search/components/SearchByTags.d.ts +1 -1
  277. package/dist/search/components/SearchInput.d.ts +1 -1
  278. package/dist/search/components/ViewsColum.d.ts +3 -3
  279. package/dist/search/components/ViewsColum.js +1 -1
  280. package/dist/search/components/_shared.css.d.ts +1 -1
  281. package/dist/search/components/_shared.css.js +23 -23
  282. package/dist/search/components/styles.css.js +4 -4
  283. package/dist/shadowroot/ShadowRoot.d.ts +2 -3
  284. package/dist/shadowroot/ShadowRoot.js +95 -41
  285. package/dist/shadowroot/index.d.ts +1 -0
  286. package/dist/styles2.js +1 -1
  287. package/dist/utils/defineActors.d.ts +21 -0
  288. package/dist/utils/defineActors.js +13 -0
  289. package/dist/utils/index.d.ts +1 -0
  290. package/dist/utils/index.js +5 -4
  291. package/dist/utils/readableText.d.ts +11 -0
  292. package/dist/utils/readableText.js +18 -0
  293. package/package.json +30 -43
  294. package/panda.buildinfo.json +271 -295
  295. package/styles-min.css +1 -1
  296. package/styles-xyflow.css +1 -1
  297. package/styles.css +1 -1
  298. package/adhoc-editor/package.json +0 -4
  299. package/dist/adhoc-editor/EditorPanel.d.ts +0 -1
  300. package/dist/adhoc-editor/EditorPanel.js +0 -106
  301. package/dist/adhoc-editor/ElementsTree.d.ts +0 -2
  302. package/dist/adhoc-editor/ElementsTree.js +0 -112
  303. package/dist/adhoc-editor/LikeC4AdHocViewEditor.d.ts +0 -4
  304. package/dist/adhoc-editor/LikeC4AdHocViewEditor.js +0 -83
  305. package/dist/adhoc-editor/components/Tree.d.ts +0 -48
  306. package/dist/adhoc-editor/components/Tree.js +0 -213
  307. package/dist/adhoc-editor/hooks.d.ts +0 -14
  308. package/dist/adhoc-editor/hooks.js +0 -34
  309. package/dist/adhoc-editor/index.d.ts +0 -2
  310. package/dist/adhoc-editor/index.js +0 -2
  311. package/dist/adhoc-editor/state/ActorProvider.d.ts +0 -5
  312. package/dist/adhoc-editor/state/ActorProvider.js +0 -37
  313. package/dist/adhoc-editor/state/actor.d.ts +0 -13
  314. package/dist/adhoc-editor/state/actor.editor.d.ts +0 -56
  315. package/dist/adhoc-editor/state/actor.editor.js +0 -167
  316. package/dist/adhoc-editor/state/actor.js +0 -14
  317. package/dist/adhoc-editor/state/actor.layouter.d.ts +0 -51
  318. package/dist/adhoc-editor/state/actor.layouter.js +0 -54
  319. package/dist/adhoc-editor/state/actor.types.d.ts +0 -63
  320. package/dist/adhoc-editor/state/actor.types.js +0 -25
  321. package/dist/adhoc-editor/state/panel.d.ts +0 -95
  322. package/dist/adhoc-editor/state/panel.js +0 -124
  323. package/dist/adhoc-editor/state/utils.d.ts +0 -17
  324. package/dist/adhoc-editor/state/utils.js +0 -25
  325. package/dist/adhoc-editor/useElementsTree.d.ts +0 -18
  326. package/dist/adhoc-editor/useElementsTree.js +0 -98
  327. package/dist/adhoc-editor/viewrules/ViewRulesPanel.d.ts +0 -6
  328. package/dist/shadowroot/styles.css.d.ts +0 -12
  329. package/dist/shadowroot/styles.css.js +0 -59
@@ -1,233 +1,337 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
2
  import { findDiagramEdge, findDiagramNode, findNodeByModelFqn, typedSystem } from "./utils.js";
3
- import { invariant, nonNullable } from "@likec4/core/utils";
3
+ import { DefaultWeakMap, invariant, nonNullable } from "@likec4/core/utils";
4
4
  //#region src/likec4diagram/state/diagram-api.ts
5
- function makeDiagramApi(actorRef) {
6
- return {
7
- ref: actorRef,
8
- get actor() {
9
- return actorRef.current;
10
- },
11
- editorActor() {
12
- const editorActor = typedSystem(actorRef.current.system).editorActorRef;
13
- return nonNullable(editorActor, "Editor actor not found in actor system");
14
- },
15
- overlays() {
16
- const overlaysActor = typedSystem(actorRef.current.system).overlaysActorRef;
17
- return nonNullable(overlaysActor, "Overlays actor not found in actor system");
18
- },
19
- searchActor() {
20
- const searchActor = typedSystem(actorRef.current.system).searchActorRef;
21
- return nonNullable(searchActor, "Search actor not found in actor system");
22
- },
23
- send: (event) => actorRef.current.send(event),
24
- navigateTo: (viewId, fromNode, focusOnElement) => {
25
- actorRef.current.send({
26
- type: "navigate.to",
27
- viewId,
28
- ...fromNode && { fromNode },
29
- ...focusOnElement && { focusOnElement }
30
- });
31
- },
32
- navigate: (direction) => {
33
- actorRef.current.send({ type: `navigate.${direction}` });
34
- },
35
- fitDiagram: (duration = 350) => {
36
- actorRef.current.send({
37
- type: "xyflow.fitDiagram",
38
- duration
39
- });
40
- },
41
- openRelationshipsBrowser: (fqn) => {
42
- actorRef.current.send({
43
- type: "open.relationshipsBrowser",
44
- fqn
45
- });
46
- },
47
- openSource: (params) => {
48
- actorRef.current.send({
49
- type: "open.source",
50
- ...params
51
- });
52
- },
53
- openElementDetails: (fqn, fromNode) => {
54
- actorRef.current.send({
55
- type: "open.elementDetails",
56
- fqn,
57
- fromNode
58
- });
59
- },
60
- openRelationshipDetails: (...params) => {
61
- if (params.length === 1) actorRef.current.send({
62
- type: "open.relationshipDetails",
63
- params: { edgeId: params[0] }
64
- });
65
- else actorRef.current.send({
66
- type: "open.relationshipDetails",
67
- params: {
68
- source: params[0],
69
- target: params[1]
70
- }
71
- });
72
- },
73
- updateNodeData: (nodeId, data) => {
74
- actorRef.current.send({
75
- type: "update.nodeData",
76
- nodeId,
77
- data
78
- });
79
- },
80
- updateEdgeData: (edgeId, data) => {
81
- actorRef.current.send({
82
- type: "update.edgeData",
83
- edgeId,
84
- data
85
- });
86
- },
87
- startEditing: (subject) => {
88
- const editorActor = typedSystem(actorRef.current.system).editorActorRef;
89
- invariant(editorActor, "No editor actor found in diagram actor system");
90
- editorActor.send({
91
- type: "edit.move.start",
92
- subject
93
- });
94
- },
95
- stopEditing: (wasChanged = false) => {
96
- const editorActor = typedSystem(actorRef.current.system).editorActorRef;
97
- invariant(editorActor, "No editor actor found in diagram actor system");
98
- editorActor.send({ type: wasChanged ? "edit.move.end" : "edit.move.cancel" });
99
- },
100
- undoEditing: () => {
101
- const editorActor = typedSystem(actorRef.current.system).editorActorRef;
102
- invariant(editorActor, "No editor actor found in diagram actor system");
103
- const hasUndo = editorActor.getSnapshot().context.history !== null;
104
- if (hasUndo) editorActor.send({ type: "undo" });
105
- return hasUndo;
106
- },
107
- align: (mode) => {
108
- actorRef.current.send({
109
- type: "layout.align",
110
- mode
111
- });
112
- },
113
- resetEdgeControlPoints: () => {
114
- actorRef.current.send({ type: "layout.resetEdgeControlPoints" });
115
- },
116
- focusNode: (nodeId) => {
117
- actorRef.current.send({
118
- type: "focus.node",
119
- nodeId
120
- });
121
- },
122
- focusOnElement: (elementFqn) => {
123
- const context = actorRef.current.getSnapshot().context;
124
- const node = findNodeByModelFqn(context.xynodes, elementFqn);
125
- if (node) actorRef.current.send({
126
- type: "focus.node",
127
- nodeId: node.id,
128
- autoUnfocus: true
129
- });
130
- },
131
- /**
132
- * @warning Do not use in render phase
133
- */
134
- get currentView() {
135
- return actorRef.current.getSnapshot().context.view;
136
- },
137
- /**
138
- * @warning Do not use in render phase
139
- */
140
- getContext: () => actorRef.current.getSnapshot().context,
141
- /**
142
- * @warning Do not use in render phase
143
- */
144
- findDiagramNode: (xynodeId) => {
145
- return findDiagramNode(actorRef.current.getSnapshot().context, xynodeId);
146
- },
147
- findEdge: (xyedgeId) => {
148
- return actorRef.current.getSnapshot().context.xyedges.find((e) => e.data.id === xyedgeId) ?? null;
149
- },
150
- /**
151
- * @warning Do not use in render phase
152
- */
153
- findDiagramEdge: (xyedgeId) => {
154
- return findDiagramEdge(actorRef.current.getSnapshot().context, xyedgeId);
155
- },
156
- startWalkthrough: () => {
157
- actorRef.current.send({ type: "walkthrough.start" });
158
- },
159
- walkthroughStep: (direction = "next") => {
160
- actorRef.current.send({
161
- type: "walkthrough.step",
162
- direction
163
- });
164
- },
165
- stopWalkthrough: () => {
166
- actorRef.current.send({ type: "walkthrough.end" });
167
- },
168
- toggleFeature: (feature, forceValue) => {
169
- actorRef.current.send({
170
- type: "toggle.feature",
171
- feature,
172
- ...forceValue !== void 0 && { forceValue }
173
- });
174
- },
175
- highlightNotation: (notation, kind) => {
176
- actorRef.current.send({
177
- type: "notations.highlight",
178
- notation,
179
- ...kind && { kind }
180
- });
181
- },
182
- unhighlightNotation: () => {
183
- actorRef.current.send({ type: "notations.unhighlight" });
184
- },
185
- openSearch: (searchValue) => {
186
- actorRef.current.send({
187
- type: "open.search",
188
- ...searchValue && { search: searchValue }
189
- });
190
- },
191
- triggerChange: (change) => {
192
- actorRef.current.send({
193
- type: "trigger.change",
194
- change
195
- });
196
- },
197
- switchDynamicViewVariant: (variant) => {
198
- actorRef.current.send({
199
- type: "switch.dynamicViewVariant",
200
- variant
201
- });
202
- },
203
- highlightNode: (nodeId) => {
204
- actorRef.current.send({
205
- type: "highlight.node",
206
- nodeId
207
- });
208
- },
209
- highlightEdge: (edgeId) => {
210
- actorRef.current.send({
211
- type: "highlight.edge",
212
- edgeId
213
- });
214
- },
215
- unhighlightAll: () => {
216
- actorRef.current.send({ type: "unhighlight.all" });
217
- },
218
- centerViewportOnNode: (nodeId) => {
219
- actorRef.current.send({
220
- type: "xyflow.centerViewport",
221
- nodeId
222
- });
223
- },
224
- centerViewportOnEdge: (edgeId) => {
225
- actorRef.current.send({
226
- type: "xyflow.centerViewport",
227
- edgeId
228
- });
229
- }
230
- };
231
- }
5
+ var DiagramApi = class DiagramApi {
6
+ static cache = new DefaultWeakMap((ref) => new DiagramApi(ref));
7
+ static withActor(actorRef) {
8
+ return this.cache.get(actorRef);
9
+ }
10
+ /**
11
+ * React ref to the diagram actor
12
+ */
13
+ ref;
14
+ constructor(actorRef) {
15
+ this.ref = actorRef;
16
+ }
17
+ /**
18
+ * @warning Do not use in render phase
19
+ */
20
+ get actor() {
21
+ return this.ref.current;
22
+ }
23
+ /**
24
+ * @warning Do not use in render phase
25
+ */
26
+ get currentView() {
27
+ return this.ref.current.getSnapshot().context.view;
28
+ }
29
+ /**
30
+ * Editor actor reference
31
+ * @warning Do not use in render phase
32
+ */
33
+ editorActor() {
34
+ const editorActor = typedSystem(this.ref.current.system).editorActorRef;
35
+ return nonNullable(editorActor, "Editor actor not found in actor system");
36
+ }
37
+ /**
38
+ * Overlays actor reference
39
+ * @warning Do not use in render phase
40
+ */
41
+ overlays() {
42
+ const overlaysActor = typedSystem(this.ref.current.system).overlaysActorRef;
43
+ return nonNullable(overlaysActor, "Overlays actor not found in actor system");
44
+ }
45
+ /**
46
+ * Search actor reference
47
+ * @warning Do not use in render phase
48
+ */
49
+ searchActor() {
50
+ const searchActor = typedSystem(this.ref.current.system).searchActorRef;
51
+ return nonNullable(searchActor, "Search actor not found in actor system");
52
+ }
53
+ /**
54
+ * Send event to diagram actor
55
+ */
56
+ send(event) {
57
+ this.ref.current.send(event);
58
+ }
59
+ /**
60
+ * Navigate to view
61
+ * @param viewId - Target view ID
62
+ * @param fromNode - Node from which navigation was triggered
63
+ * @param focusOnElement - Element FQN to focus after navigation (from search)
64
+ */
65
+ navigateTo(viewId, fromNode, focusOnElement) {
66
+ this.send({
67
+ type: "navigate.to",
68
+ viewId,
69
+ ...fromNode && { fromNode },
70
+ ...focusOnElement && { focusOnElement }
71
+ });
72
+ }
73
+ /**
74
+ * Navigate back or forward in history
75
+ */
76
+ navigate(direction) {
77
+ this.send({ type: `navigate.${direction}` });
78
+ }
79
+ /**
80
+ * Fit diagram to view
81
+ */
82
+ fitDiagram(duration = 350) {
83
+ this.send({
84
+ type: "xyflow.fitDiagram",
85
+ duration
86
+ });
87
+ }
88
+ /**
89
+ * Open relationships browser
90
+ */
91
+ openRelationshipsBrowser(fqn) {
92
+ this.send({
93
+ type: "open.relationshipsBrowser",
94
+ fqn
95
+ });
96
+ }
97
+ /**
98
+ * If running in editor, trigger opening source file
99
+ */
100
+ openSource(params) {
101
+ this.send({
102
+ type: "open.source",
103
+ ...params
104
+ });
105
+ }
106
+ /**
107
+ * Open element details card
108
+ */
109
+ openElementDetails(fqn, fromNode) {
110
+ this.send({
111
+ type: "open.elementDetails",
112
+ fqn,
113
+ fromNode
114
+ });
115
+ }
116
+ openRelationshipDetails(...params) {
117
+ if (params.length === 1) this.send({
118
+ type: "open.relationshipDetails",
119
+ params: { edgeId: params[0] }
120
+ });
121
+ else this.send({
122
+ type: "open.relationshipDetails",
123
+ params: {
124
+ source: params[0],
125
+ target: params[1]
126
+ }
127
+ });
128
+ }
129
+ updateNodeData(nodeId, data) {
130
+ this.send({
131
+ type: "update.nodeData",
132
+ nodeId,
133
+ data
134
+ });
135
+ }
136
+ updateEdgeData(edgeId, data) {
137
+ this.send({
138
+ type: "update.edgeData",
139
+ edgeId,
140
+ data
141
+ });
142
+ }
143
+ highlightNode(nodeId) {
144
+ this.send({
145
+ type: "highlight.node",
146
+ nodeId
147
+ });
148
+ }
149
+ highlightEdge(edgeId) {
150
+ this.send({
151
+ type: "highlight.edge",
152
+ edgeId
153
+ });
154
+ }
155
+ unhighlightAll() {
156
+ this.send({ type: "unhighlight.all" });
157
+ }
158
+ /**
159
+ * Center viewport on a given node
160
+ */
161
+ centerViewportOnNode(target) {
162
+ this.send({
163
+ type: "xyflow.centerViewport",
164
+ nodeId: target
165
+ });
166
+ }
167
+ /**
168
+ * Center viewport on a given edge (centering on edge means including both source and target nodes in view)
169
+ */
170
+ centerViewportOnEdge(target) {
171
+ this.send({
172
+ type: "xyflow.centerViewport",
173
+ edgeId: target
174
+ });
175
+ }
176
+ /**
177
+ * Start editing, either node or edge
178
+ */
179
+ startEditing(subject) {
180
+ const editorActor = typedSystem(this.ref.current.system).editorActorRef;
181
+ invariant(editorActor, "No editor actor found in diagram actor system");
182
+ editorActor.send({
183
+ type: "edit.move.start",
184
+ subject
185
+ });
186
+ }
187
+ /**
188
+ * Stop editing
189
+ * @param wasChanged - whether there were changes made during editing
190
+ * @default false
191
+ */
192
+ stopEditing(wasChanged = false) {
193
+ const editorActor = typedSystem(this.ref.current.system).editorActorRef;
194
+ invariant(editorActor, "No editor actor found in diagram actor system");
195
+ editorActor.send({ type: wasChanged ? "edit.move.end" : "edit.move.cancel" });
196
+ }
197
+ /**
198
+ * Undo last editing operation
199
+ * @returns true if there was something to undo
200
+ */
201
+ undoEditing() {
202
+ const editorActor = typedSystem(this.ref.current.system).editorActorRef;
203
+ invariant(editorActor, "No editor actor found in diagram actor system");
204
+ const hasUndo = editorActor.getSnapshot().context.history !== null;
205
+ if (hasUndo) editorActor.send({ type: "undo" });
206
+ return hasUndo;
207
+ }
208
+ /**
209
+ * Align nodes
210
+ */
211
+ align(mode) {
212
+ this.send({
213
+ type: "layout.align",
214
+ mode
215
+ });
216
+ }
217
+ /**
218
+ * Reset edge control points
219
+ */
220
+ resetEdgeControlPoints() {
221
+ this.send({ type: "layout.resetEdgeControlPoints" });
222
+ }
223
+ /**
224
+ * Focus node
225
+ */
226
+ focusNode(nodeId) {
227
+ this.send({
228
+ type: "focus.node",
229
+ nodeId
230
+ });
231
+ }
232
+ /**
233
+ * Focus on element by FQN (finds the node and focuses on it).
234
+ * Used by search to highlight an element on the current view.
235
+ */
236
+ focusOnElement(elementFqn) {
237
+ const context = this.ref.current.getSnapshot().context;
238
+ const node = findNodeByModelFqn(context.xynodes, elementFqn);
239
+ if (node) this.send({
240
+ type: "focus.node",
241
+ nodeId: node.id,
242
+ autoUnfocus: true
243
+ });
244
+ }
245
+ /**
246
+ * @warning Do not use in render phase
247
+ */
248
+ getContext() {
249
+ return this.ref.current.getSnapshot().context;
250
+ }
251
+ /**
252
+ * @warning Do not use in render phase
253
+ */
254
+ findDiagramNode(xynodeId) {
255
+ return findDiagramNode(this.ref.current.getSnapshot().context, xynodeId);
256
+ }
257
+ /**
258
+ * @warning Do not use in render phase
259
+ */
260
+ findEdge(xyedgeId) {
261
+ return this.ref.current.getSnapshot().context.xyedges.find((e) => e.data.id === xyedgeId) ?? null;
262
+ }
263
+ /**
264
+ * @warning Do not use in render phase
265
+ */
266
+ findDiagramEdge(xyedgeId) {
267
+ return findDiagramEdge(this.ref.current.getSnapshot().context, xyedgeId);
268
+ }
269
+ startWalkthrough(stepId) {
270
+ this.send({
271
+ type: "walkthrough.start",
272
+ stepId
273
+ });
274
+ }
275
+ walkthroughStep(value = "next") {
276
+ if (value === "next" || value === "prev") this.send({
277
+ type: "walkthrough.step",
278
+ direction: value
279
+ });
280
+ else this.send({
281
+ type: "walkthrough.step",
282
+ stepId: value.step
283
+ });
284
+ }
285
+ stopWalkthrough() {
286
+ this.send({ type: "walkthrough.end" });
287
+ }
288
+ toggleFeature(feature, forceValue) {
289
+ this.send({
290
+ type: "toggle.feature",
291
+ feature,
292
+ ...forceValue !== void 0 && { forceValue }
293
+ });
294
+ }
295
+ highlightNotation(notation, kind) {
296
+ this.send({
297
+ type: "notations.highlight",
298
+ notation,
299
+ ...kind && { kind }
300
+ });
301
+ }
302
+ unhighlightNotation() {
303
+ this.send({ type: "notations.unhighlight" });
304
+ }
305
+ openSearch(searchValue) {
306
+ this.send({
307
+ type: "open.search",
308
+ ...searchValue && { search: searchValue }
309
+ });
310
+ }
311
+ triggerChange(change) {
312
+ this.send({
313
+ type: "trigger.change",
314
+ change
315
+ });
316
+ }
317
+ /**
318
+ * Switch dynamic view display variant
319
+ */
320
+ switchDynamicViewVariant(variant) {
321
+ this.send({
322
+ type: "switch.dynamicViewVariant",
323
+ variant
324
+ });
325
+ }
326
+ /**
327
+ * Toggle sequence flow collapse/expand
328
+ */
329
+ toggleSequenceFlow(flowId) {
330
+ this.send({
331
+ type: "sequence.flow.toggle",
332
+ flowId
333
+ });
334
+ }
335
+ };
232
336
  //#endregion
233
- export { makeDiagramApi };
337
+ export { DiagramApi };