@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
@@ -0,0 +1,519 @@
1
+ import "../../../_virtual/_rolldown/runtime.js";
2
+ import { selectDiagramContext, useDiagram, useDiagramSelector } from "../../../hooks/safeContext.js";
3
+ import { useOnDiagramEvent } from "../../../hooks/useDiagram.js";
4
+ import { Markdown } from "../../../base-primitives/Markdown.js";
5
+ import { PortalToContainer } from "../../../components/PortalToContainer.js";
6
+ import { useTreeData } from "./state.js";
7
+ import { css, cx } from "@likec4/styles/css";
8
+ import { IconAlertTriangle, IconArrowFork, IconArrowGuide, IconArrowRight, IconChevronRight, IconCornerDownRight, IconDirectionSignFilled, IconListTree, IconPlayerSkipBackFilled, IconPlayerSkipForwardFilled, IconPlayerStop, IconRepeat } from "@tabler/icons-react";
9
+ import { memo, useMemo } from "react";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ import { mapToObj, only } from "remeda";
12
+ import { RichText, dynamicViewFlow, flowAncestors, hasProp, isDynamicView } from "@likec4/core";
13
+ import { ActionIcon, Button, CloseButton, ScrollArea, Spoiler, Tooltip, Tree, useTree } from "@mantine/core";
14
+ import { AnimatePresence, m } from "motion/react";
15
+ import { Box as Box$1, HStack, Txt, VStack, styled } from "@likec4/styles/jsx";
16
+ import { vstack } from "@likec4/styles/patterns";
17
+ import { extractViewTitleFromPath } from "@likec4/core/model";
18
+ //#region src/likec4diagram/ui/sequence-outline/SequenceOutlinePanel.tsx
19
+ /**
20
+ * PandaCSS `colorPalette` classes for each sub-flow palette.
21
+ * Declared as literals so the static analyzer can extract them.
22
+ */
23
+ var palette = {
24
+ loop: css({ colorPalette: "subflow.loop" }),
25
+ opt: css({ colorPalette: "subflow.opt" }),
26
+ par: css({ colorPalette: "subflow.par" }),
27
+ break: css({ colorPalette: "subflow.break" }),
28
+ alt: css({ colorPalette: "subflow.alt" }),
29
+ try: css({ colorPalette: "subflow.try" })
30
+ };
31
+ var flowPresentation = {
32
+ loop: {
33
+ paletteClass: palette.loop,
34
+ tag: "loop",
35
+ Icon: IconRepeat
36
+ },
37
+ opt: {
38
+ paletteClass: palette.opt,
39
+ tag: "opt",
40
+ Icon: IconArrowGuide
41
+ },
42
+ par: {
43
+ paletteClass: palette.par,
44
+ tag: "par",
45
+ Icon: IconArrowFork
46
+ },
47
+ break: {
48
+ paletteClass: palette.break,
49
+ tag: "break",
50
+ Icon: IconPlayerStop
51
+ },
52
+ alt: {
53
+ paletteClass: palette.alt,
54
+ tag: "alt",
55
+ Icon: IconArrowFork
56
+ },
57
+ "alt-when": {
58
+ paletteClass: palette.alt,
59
+ tag: "when",
60
+ Icon: IconCornerDownRight
61
+ },
62
+ "alt-else": {
63
+ paletteClass: palette.alt,
64
+ tag: "else",
65
+ Icon: IconCornerDownRight
66
+ },
67
+ "alt-if": {
68
+ paletteClass: palette.alt,
69
+ tag: "if",
70
+ Icon: IconCornerDownRight
71
+ },
72
+ try: {
73
+ paletteClass: palette.try,
74
+ tag: "try",
75
+ Icon: IconAlertTriangle
76
+ },
77
+ "try-block": {
78
+ paletteClass: palette.try,
79
+ tag: "block",
80
+ Icon: IconCornerDownRight
81
+ },
82
+ "try-catch": {
83
+ paletteClass: palette.break,
84
+ tag: "catch",
85
+ Icon: IconCornerDownRight
86
+ },
87
+ "try-finally": {
88
+ paletteClass: palette.break,
89
+ tag: "finally",
90
+ Icon: IconCornerDownRight
91
+ }
92
+ };
93
+ var SectionLabel = styled("div", { base: {
94
+ textStyle: "dimmed.xs",
95
+ fontWeight: "semibold",
96
+ letterSpacing: "wider",
97
+ textTransform: "uppercase",
98
+ userSelect: "none"
99
+ } });
100
+ /** Numeric step badge (e.g. `12`). */
101
+ var StepNum = styled("div", { base: {
102
+ flex: "none",
103
+ display: "flex",
104
+ alignItems: "center",
105
+ justifyContent: "center",
106
+ minWidth: "22px",
107
+ height: "18px",
108
+ paddingInline: "1",
109
+ rounded: "sm",
110
+ bg: "surface.sunken",
111
+ color: "text.dimmed",
112
+ fontSize: "[10px]",
113
+ fontWeight: "bold",
114
+ fontVariantNumeric: "tabular-nums",
115
+ userSelect: "none"
116
+ } });
117
+ /** Small pill tag for the sub-flow operator (`loop`, `par`, `try`, …). */
118
+ var FlowTag = styled("div", { base: {
119
+ flex: "none",
120
+ paddingInline: "1.5",
121
+ paddingBlock: "0.5",
122
+ rounded: "sm",
123
+ bg: "colorPalette.label",
124
+ color: "colorPalette.text",
125
+ fontSize: "[9px]",
126
+ fontWeight: "bold",
127
+ lineHeight: "xs",
128
+ letterSpacing: "tight",
129
+ textTransform: "uppercase",
130
+ userSelect: "none"
131
+ } });
132
+ var rowBase = css.raw({
133
+ display: "flex",
134
+ alignItems: "center",
135
+ gap: "2",
136
+ width: "100%",
137
+ paddingInline: "1.5",
138
+ paddingBlock: "1",
139
+ rounded: "md",
140
+ cursor: "pointer",
141
+ color: "text",
142
+ userSelect: "none",
143
+ transition: "background-color 120ms ease",
144
+ _hover: { bg: "surface.sunken/60" },
145
+ "&[data-selected=\"true\"]": {
146
+ bg: "mantine.primary.light",
147
+ color: "mantine.primary.lightColor"
148
+ }
149
+ });
150
+ var labelText = css.raw({
151
+ flex: "1",
152
+ minWidth: "0",
153
+ fontSize: "xs",
154
+ whiteSpace: "nowrap",
155
+ overflow: "hidden",
156
+ textOverflow: "ellipsis"
157
+ });
158
+ var LabelSpan = styled("span", { base: labelText });
159
+ var selectFlow = selectDiagramContext((s) => {
160
+ const title = extractViewTitleFromPath(s.view.title ?? "Untitled");
161
+ const description = s.view.description;
162
+ const activeStep = s.activeWalkthrough?.stepId ?? null;
163
+ if (activeStep) return {
164
+ flow: isDynamicView(s.view) && hasProp(s.view, "flow") ? dynamicViewFlow(s.view) : null,
165
+ activeStep,
166
+ title,
167
+ description,
168
+ outlinePanelWidth: s.activeWalkthrough?.outlinePanelWidth ?? 0,
169
+ collapsed: s.collapsedSequenceFlows
170
+ };
171
+ return {
172
+ flow: null,
173
+ activeStep: null,
174
+ title,
175
+ description
176
+ };
177
+ });
178
+ var SequenceOutlinePanel = memo(() => {
179
+ const props = useDiagramSelector(selectFlow);
180
+ return /* @__PURE__ */ jsx(PortalToContainer, { children: /* @__PURE__ */ jsx(AnimatePresence, {
181
+ propagate: true,
182
+ children: props.activeStep && props.flow && /* @__PURE__ */ jsx(m.div, {
183
+ layout: "position",
184
+ className: vstack({
185
+ position: "absolute",
186
+ top: "0",
187
+ left: "0",
188
+ layerStyle: "likec4.panel",
189
+ rounded: "0",
190
+ gap: "0",
191
+ padding: "0",
192
+ pointerEvents: "all",
193
+ maxWidth: "85cqw",
194
+ height: "100cqh",
195
+ maxHeight: "100cqh",
196
+ cursor: "default",
197
+ overflow: "hidden"
198
+ }),
199
+ style: { width: props.outlinePanelWidth },
200
+ initial: {
201
+ opacity: .5,
202
+ translateX: -40
203
+ },
204
+ animate: {
205
+ opacity: 1,
206
+ translateX: 0
207
+ },
208
+ exit: {
209
+ opacity: 0,
210
+ translateX: -props.outlinePanelWidth
211
+ },
212
+ children: /* @__PURE__ */ jsx(SequenceOutlinePanelBody, {
213
+ title: props.title,
214
+ description: props.description,
215
+ activeStep: props.activeStep,
216
+ flow: props.flow,
217
+ collapsed: props.collapsed
218
+ })
219
+ })
220
+ }) });
221
+ });
222
+ SequenceOutlinePanel.displayName = "SequenceOutlinePanel";
223
+ function SequenceOutlinePanelBody(props) {
224
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(OutlineHeader, {
225
+ title: props.title,
226
+ flow: props.flow,
227
+ description: props.description
228
+ }), /* @__PURE__ */ jsx(OutlineBody, {
229
+ activeStep: props.activeStep,
230
+ flow: props.flow,
231
+ collapsed: props.collapsed
232
+ })] });
233
+ }
234
+ var OutlineHeader = ({ title, flow, description }) => {
235
+ const diagram = useDiagram();
236
+ const stepCount = flow.stepsCount;
237
+ return /* @__PURE__ */ jsxs(VStack, {
238
+ css: {
239
+ gap: "2.5",
240
+ width: "100%",
241
+ paddingInline: "2.5",
242
+ paddingBlock: "2",
243
+ borderBottom: "1px solid {colors.likec4.panel.border}"
244
+ },
245
+ children: [/* @__PURE__ */ jsxs(HStack, {
246
+ css: {
247
+ gap: "2.5",
248
+ alignItems: "center",
249
+ width: "100%",
250
+ padding: "0"
251
+ },
252
+ children: [
253
+ /* @__PURE__ */ jsx(Box$1, {
254
+ css: {
255
+ flex: "none",
256
+ display: "flex",
257
+ alignItems: "center",
258
+ justifyContent: "center",
259
+ boxSize: "20px",
260
+ rounded: "sm",
261
+ colorPalette: "subflow.loop",
262
+ bg: "colorPalette.label",
263
+ color: "colorPalette.text"
264
+ },
265
+ children: /* @__PURE__ */ jsx(IconDirectionSignFilled, { size: 14 })
266
+ }),
267
+ /* @__PURE__ */ jsxs(VStack, {
268
+ css: {
269
+ gap: "0",
270
+ alignItems: "stretch",
271
+ flex: "1",
272
+ minWidth: "0"
273
+ },
274
+ children: [/* @__PURE__ */ jsx(styled.div, {
275
+ css: {
276
+ fontSize: "sm",
277
+ fontWeight: "semibold",
278
+ color: "text",
279
+ whiteSpace: "nowrap",
280
+ overflow: "hidden",
281
+ textOverflow: "ellipsis"
282
+ },
283
+ children: title ?? "Sequence"
284
+ }), /* @__PURE__ */ jsxs(Txt, {
285
+ size: "xxs",
286
+ dimmed: true,
287
+ noUserSelect: true,
288
+ children: [
289
+ stepCount,
290
+ " ",
291
+ stepCount === 1 ? "step" : "steps"
292
+ ]
293
+ })]
294
+ }),
295
+ /* @__PURE__ */ jsx(Box$1, {
296
+ css: {
297
+ flex: "none",
298
+ alignItems: "center",
299
+ justifyContent: "center"
300
+ },
301
+ children: /* @__PURE__ */ jsx(CloseButton, {
302
+ size: "sm",
303
+ onClick: () => diagram.stopWalkthrough()
304
+ })
305
+ })
306
+ ]
307
+ }), description && /* @__PURE__ */ jsx(Spoiler, {
308
+ showLabel: /* @__PURE__ */ jsx(Txt, {
309
+ size: "xxs",
310
+ children: "show description"
311
+ }),
312
+ hideLabel: /* @__PURE__ */ jsx(Txt, {
313
+ size: "xxs",
314
+ children: "hide"
315
+ }),
316
+ maxHeight: 16,
317
+ children: /* @__PURE__ */ jsx(Markdown, {
318
+ value: RichText.from(description),
319
+ className: css({ color: "text.dimmed" }),
320
+ fontSize: "xxs"
321
+ })
322
+ })]
323
+ });
324
+ };
325
+ var OutlineBody = ({ activeStep, flow, collapsed }) => {
326
+ const diagram = useDiagram();
327
+ const treeData = useTreeData(flow, collapsed);
328
+ const initialExpandedState = useMemo(() => mapToObj(flowAncestors(activeStep), (id) => [id, true]), []);
329
+ const tree = useTree({
330
+ initialSelectedState: [activeStep],
331
+ initialExpandedState,
332
+ multiple: false,
333
+ onSelectedStateChange(selected) {
334
+ const step = only(selected);
335
+ if (step && flow.isStep(step)) diagram.walkthroughStep({ step });
336
+ }
337
+ });
338
+ useOnDiagramEvent("walkthroughStep", ({ stepId }) => {
339
+ if (!tree.selectedState.includes(stepId)) {
340
+ const ancestors = flowAncestors(stepId);
341
+ if (ancestors.length > 0) {
342
+ const expanded = { ...tree.expandedState };
343
+ for (const parent of ancestors) expanded[parent] = true;
344
+ tree.setExpandedState(expanded);
345
+ }
346
+ tree.setSelectedState([stepId]);
347
+ }
348
+ });
349
+ const allCollapsed = useMemo(() => Object.values(tree.expandedState).every((v) => !v), [tree.expandedState]);
350
+ const { prev, next } = flow.prevAndNext(activeStep, (flowId) => collapsed[flowId] ?? false);
351
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(HStack, {
352
+ css: {
353
+ justifyContent: "space-between",
354
+ alignItems: "center",
355
+ width: "100%",
356
+ paddingInline: "2.5",
357
+ paddingTop: "2",
358
+ paddingBottom: "1"
359
+ },
360
+ children: [
361
+ /* @__PURE__ */ jsx(SectionLabel, {
362
+ flex: "1",
363
+ children: "Outline"
364
+ }),
365
+ /* @__PURE__ */ jsx(Tooltip, {
366
+ label: allCollapsed ? "Expand all" : "Collapse all",
367
+ fz: "xs",
368
+ openDelay: 500,
369
+ withinPortal: false,
370
+ children: /* @__PURE__ */ jsx(ActionIcon, {
371
+ tabIndex: -1,
372
+ variant: "subtle",
373
+ size: "sm",
374
+ onClick: () => allCollapsed ? tree.expandAllNodes() : tree.collapseAllNodes(),
375
+ children: /* @__PURE__ */ jsx(IconListTree, { size: 14 })
376
+ })
377
+ }),
378
+ /* @__PURE__ */ jsx(Button, {
379
+ tabIndex: -1,
380
+ size: "compact-xs",
381
+ variant: "light",
382
+ className: css({ fontSize: "xxs" }),
383
+ leftSection: /* @__PURE__ */ jsx(IconPlayerSkipBackFilled, { size: 10 }),
384
+ onClick: () => prev && diagram.walkthroughStep({ step: prev }),
385
+ disabled: !prev,
386
+ children: "Back"
387
+ }),
388
+ /* @__PURE__ */ jsx(Button, {
389
+ tabIndex: -1,
390
+ size: "compact-xs",
391
+ variant: "light",
392
+ className: css({ fontSize: "xxs" }),
393
+ rightSection: /* @__PURE__ */ jsx(IconPlayerSkipForwardFilled, { size: 10 }),
394
+ onClick: () => next && diagram.walkthroughStep({ step: next }),
395
+ disabled: !next,
396
+ children: "Next"
397
+ })
398
+ ]
399
+ }), /* @__PURE__ */ jsx(ScrollArea, {
400
+ type: "auto",
401
+ overscrollBehavior: "contain",
402
+ className: css({
403
+ flex: "1",
404
+ width: "100%",
405
+ minHeight: "0"
406
+ }),
407
+ children: /* @__PURE__ */ jsx(Tree, {
408
+ levelOffset: "var(--spacing-2\\.5)",
409
+ data: treeData,
410
+ tree,
411
+ selectOnClick: true,
412
+ classNames: { root: css({
413
+ paddingInline: "2",
414
+ paddingBottom: "3"
415
+ }) },
416
+ styles: { node: { paddingInlineStart: "var(--label-offset)" } },
417
+ renderNode: renderTreeNode
418
+ })
419
+ })] });
420
+ };
421
+ var renderTreeNode = ((payload) => {
422
+ return payload.node.nodeProps.type === "step" ? /* @__PURE__ */ jsx(StepRow, { ...payload }) : /* @__PURE__ */ jsx(FlowRow, { ...payload });
423
+ });
424
+ var StepRow = ({ node, elementProps, selected }) => {
425
+ const { stepnum, source, target, label, notes } = node.nodeProps;
426
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(Box$1, {
427
+ ...elementProps,
428
+ className: cx(elementProps.className, css(rowBase)),
429
+ children: [
430
+ /* @__PURE__ */ jsx(StepNum, { children: stepnum }),
431
+ /* @__PURE__ */ jsx(IconArrowRight, {
432
+ size: 13,
433
+ className: css({
434
+ flex: "none",
435
+ color: "text.dimmed"
436
+ })
437
+ }),
438
+ label ? /* @__PURE__ */ jsx(LabelSpan, { children: label }) : /* @__PURE__ */ jsxs(HStack, {
439
+ css: {
440
+ gap: "1",
441
+ minWidth: "0",
442
+ flex: "1"
443
+ },
444
+ children: [
445
+ /* @__PURE__ */ jsx(LabelSpan, {
446
+ css: {
447
+ flex: "none",
448
+ color: "text.dimmed"
449
+ },
450
+ children: source
451
+ }),
452
+ /* @__PURE__ */ jsx(IconArrowRight, {
453
+ size: 11,
454
+ className: css({
455
+ flex: "none",
456
+ color: "text.dimmed"
457
+ })
458
+ }),
459
+ /* @__PURE__ */ jsx(LabelSpan, { children: target })
460
+ ]
461
+ })
462
+ ]
463
+ }), notes && /* @__PURE__ */ jsx(Markdown, {
464
+ value: RichText.from(notes),
465
+ fontSize: "sm",
466
+ textScale: .9,
467
+ className: css({
468
+ background: "surface.sunken",
469
+ border: "1px solid {colors.surface.sunken.border}",
470
+ rounded: "md",
471
+ cursor: "default",
472
+ marginBlockStart: "1",
473
+ marginBlockEnd: "2",
474
+ paddingInline: "4",
475
+ paddingBlock: "2"
476
+ }),
477
+ style: {
478
+ marginInlineStart: "calc(-1 * var(--label-offset))",
479
+ display: selected ? "block" : "none"
480
+ }
481
+ })] });
482
+ };
483
+ var FlowRow = ({ node, expanded, elementProps }) => {
484
+ const { type, title } = node.nodeProps;
485
+ const { paletteClass, tag, Icon } = flowPresentation[type];
486
+ return /* @__PURE__ */ jsxs(Box$1, {
487
+ ...elementProps,
488
+ className: cx(elementProps.className, paletteClass, css(rowBase)),
489
+ children: [
490
+ /* @__PURE__ */ jsx(IconChevronRight, {
491
+ size: 14,
492
+ className: css({
493
+ flex: "none",
494
+ color: "text.dimmed",
495
+ transition: "transform 150ms ease",
496
+ "&[data-expanded=\"true\"]": { transform: "rotate(90deg)" }
497
+ }),
498
+ "data-expanded": expanded
499
+ }),
500
+ /* @__PURE__ */ jsx(Icon, {
501
+ size: 14,
502
+ className: css({
503
+ flex: "none",
504
+ color: "colorPalette.text"
505
+ })
506
+ }),
507
+ /* @__PURE__ */ jsx(styled.span, {
508
+ css: {
509
+ ...labelText,
510
+ fontWeight: "medium"
511
+ },
512
+ children: title ?? tag
513
+ }),
514
+ /* @__PURE__ */ jsx(FlowTag, { children: tag })
515
+ ]
516
+ });
517
+ };
518
+ //#endregion
519
+ export { SequenceOutlinePanel };
@@ -0,0 +1,36 @@
1
+ import { DynamicViewFlow, scalar, StepPath } from '@likec4/core';
2
+ import { TreeNodeData } from '@mantine/core';
3
+ import { DiagramContext } from '../../state/types';
4
+ export interface OutlineTreeNodeStep extends TreeNodeData {
5
+ readonly value: StepPath;
6
+ readonly nodeProps: Readonly<{
7
+ readonly type: 'step';
8
+ /** Global step number (1-based) across all flows */
9
+ readonly stepnum: number;
10
+ /** Title of the source actor */
11
+ readonly source: string;
12
+ /** Title of the target actor */
13
+ readonly target: string;
14
+ /** Relationship label, if any */
15
+ readonly label: string | null;
16
+ readonly notes: scalar.MarkdownOrString | null;
17
+ }>;
18
+ }
19
+ export interface OutlineTreeNodeFlow extends TreeNodeData {
20
+ readonly value: StepPath;
21
+ readonly nodeProps: Readonly<{
22
+ readonly type: DynamicViewFlow.SubFlowType;
23
+ /** Friendly title of the sub-flow, if defined */
24
+ readonly title: string | undefined;
25
+ }>;
26
+ children: OutlineTreeNodeData[];
27
+ }
28
+ export type OutlineTreeNodeData = OutlineTreeNodeStep | OutlineTreeNodeFlow;
29
+ export type OutlineTreeNodes = OutlineTreeNodeData[];
30
+ /**
31
+ * Type guard narrowing a tree node to a sub-flow node.
32
+ * (The discriminant lives on the nested `nodeProps.type`, so an explicit guard
33
+ * is needed for reliable narrowing.)
34
+ */
35
+ export declare function isOutlineFlowNode(node: OutlineTreeNodeData): node is OutlineTreeNodeFlow;
36
+ export declare function useTreeData(flow: DynamicViewFlow, collapsed: DiagramContext['collapsedSequenceFlows']): OutlineTreeNodes;
@@ -0,0 +1,55 @@
1
+ import "../../../_virtual/_rolldown/runtime.js";
2
+ import { useMemo } from "react";
3
+ import "@likec4/core";
4
+ //#region src/likec4diagram/ui/sequence-outline/state.ts
5
+ function buildTree(flow, collapsedFlows) {
6
+ const tree = [];
7
+ let currentFlow = tree;
8
+ let isCollapsed = false;
9
+ flow.walk({
10
+ step: ({ step, stepnum, source, target, edge }) => {
11
+ if (isCollapsed) return;
12
+ currentFlow.push({
13
+ label: edge.label ?? `${source.title} → ${target.title}`,
14
+ value: step,
15
+ nodeProps: {
16
+ type: "step",
17
+ stepnum: stepnum.global,
18
+ source: source.title,
19
+ target: target.title,
20
+ label: edge.label,
21
+ notes: edge.notes ?? null
22
+ }
23
+ });
24
+ },
25
+ subflow: ({ subflow }) => {
26
+ if (collapsedFlows[subflow.id]) {
27
+ isCollapsed = true;
28
+ return () => {
29
+ isCollapsed = false;
30
+ };
31
+ }
32
+ const node = {
33
+ label: subflow.title ?? subflow._type,
34
+ value: subflow.id,
35
+ nodeProps: {
36
+ type: subflow._type,
37
+ title: subflow.title
38
+ },
39
+ children: []
40
+ };
41
+ const parent = currentFlow;
42
+ parent.push(node);
43
+ currentFlow = node.children;
44
+ return () => {
45
+ currentFlow = parent;
46
+ };
47
+ }
48
+ });
49
+ return tree;
50
+ }
51
+ function useTreeData(flow, collapsed) {
52
+ return useMemo(() => buildTree(flow, collapsed), [flow, collapsed]);
53
+ }
54
+ //#endregion
55
+ export { useTreeData };
@@ -9,7 +9,7 @@ import { Types } from '../types';
9
9
  * @returns An object containing an array of XY flow nodes and an array of XY flow edges.
10
10
  */
11
11
  export declare function diagramToXY(opts: {
12
- view: Pick<DiagramView, 'id' | 'nodes' | 'edges' | '_type' | 'autoLayout'>;
12
+ view: Pick<DiagramView, 'id' | 'nodes' | 'bounds' | 'edges' | '_type' | 'autoLayout'>;
13
13
  currentViewId: ViewId | undefined;
14
14
  where: WhereOperator | null;
15
15
  }): {