@likec4/diagram 1.55.1 → 1.56.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 (343) hide show
  1. package/dist/LikeC4Diagram.js +148 -194
  2. package/dist/LikeC4ModelProvider.js +13 -9
  3. package/dist/LikeC4ProjectsOverview.js +24 -30
  4. package/dist/LikeC4ProjectsProvider.js +33 -26
  5. package/dist/LikeC4Styles.js +40 -57
  6. package/dist/LikeC4View.js +156 -196
  7. package/dist/ReactLikeC4.js +43 -65
  8. package/dist/StaticLikeC4Diagram.js +36 -41
  9. package/dist/_virtual/_rolldown/runtime.js +17 -0
  10. package/dist/adhoc-editor/EditorPanel.js +102 -101
  11. package/dist/adhoc-editor/ElementsTree.js +113 -139
  12. package/dist/adhoc-editor/LikeC4AdHocViewEditor.js +77 -70
  13. package/dist/adhoc-editor/components/Tree.d.ts +2 -2
  14. package/dist/adhoc-editor/components/Tree.js +205 -288
  15. package/dist/adhoc-editor/hooks.js +28 -23
  16. package/dist/adhoc-editor/index.js +2 -1
  17. package/dist/adhoc-editor/state/ActorProvider.js +33 -36
  18. package/dist/adhoc-editor/state/actor.editor.js +148 -186
  19. package/dist/adhoc-editor/state/actor.js +12 -14
  20. package/dist/adhoc-editor/state/actor.layouter.js +49 -65
  21. package/dist/adhoc-editor/state/actor.types.js +19 -23
  22. package/dist/adhoc-editor/state/panel.js +112 -127
  23. package/dist/adhoc-editor/state/utils.js +22 -29
  24. package/dist/adhoc-editor/useElementsTree.js +89 -121
  25. package/dist/base/Background.js +26 -29
  26. package/dist/base/Base.js +34 -41
  27. package/dist/base/BaseXYFlow.js +135 -165
  28. package/dist/base/const.js +18 -19
  29. package/dist/base/updateEdges.js +38 -57
  30. package/dist/base/updateNodes.js +46 -65
  31. package/dist/base-primitives/Markdown.d.ts +1 -1
  32. package/dist/base-primitives/Markdown.js +32 -47
  33. package/dist/base-primitives/NodeHandles.js +39 -49
  34. package/dist/base-primitives/compound/CompoundActionButton.js +49 -69
  35. package/dist/base-primitives/compound/CompoundDetailsButton.js +39 -64
  36. package/dist/base-primitives/compound/CompoundNodeContainer.js +46 -66
  37. package/dist/base-primitives/compound/CompoundTitle.js +15 -12
  38. package/dist/base-primitives/compound/actionbtns.css.js +9 -18
  39. package/dist/base-primitives/edge/EdgeActionButton.js +17 -19
  40. package/dist/base-primitives/edge/EdgeContainer.js +29 -48
  41. package/dist/base-primitives/edge/EdgeLabel.js +44 -65
  42. package/dist/base-primitives/edge/EdgeLabelContainer.js +35 -73
  43. package/dist/base-primitives/edge/EdgeMarkers.js +157 -215
  44. package/dist/base-primitives/edge/EdgePath.js +62 -115
  45. package/dist/base-primitives/element/ElementActionButtons.js +92 -81
  46. package/dist/base-primitives/element/ElementData.js +107 -126
  47. package/dist/base-primitives/element/ElementDetailsButton.js +78 -98
  48. package/dist/base-primitives/element/ElementNodeContainer.js +51 -82
  49. package/dist/base-primitives/element/ElementShape.js +331 -317
  50. package/dist/base-primitives/element/ElementTags.d.ts +1 -1
  51. package/dist/base-primitives/element/ElementTags.js +133 -193
  52. package/dist/base-primitives/memoEdge.js +11 -10
  53. package/dist/base-primitives/memoNode.js +16 -20
  54. package/dist/components/ErrorFallback.js +111 -75
  55. package/dist/components/GithubIcon.js +14 -16
  56. package/dist/components/Link.js +99 -113
  57. package/dist/components/Logo.js +38 -41
  58. package/dist/components/NavigationLink.js +15 -23
  59. package/dist/components/NavigationPanel.js +26 -47
  60. package/dist/components/PortalToContainer.js +16 -10
  61. package/dist/components/RootContainer.js +35 -31
  62. package/dist/components/SearchControl.css.js +65 -75
  63. package/dist/components/SearchControl.js +36 -14
  64. package/dist/components/ViewNotFound.js +22 -29
  65. package/dist/context/CurrentViewModelProvider.js +11 -9
  66. package/dist/context/DefaultMantineProvider.js +45 -72
  67. package/dist/context/DiagramEventHandlers.js +43 -48
  68. package/dist/context/DiagramFeatures.js +73 -69
  69. package/dist/context/EnsureMantine.js +13 -16
  70. package/dist/context/FramerMotionConfig.js +17 -11
  71. package/dist/context/IconRenderer.js +90 -106
  72. package/dist/context/LikeC4ModelContext.js +14 -10
  73. package/dist/context/LikeC4ProjectsContext.js +7 -6
  74. package/dist/context/RootContainerContext.d.ts +2 -5
  75. package/dist/context/RootContainerContext.js +24 -26
  76. package/dist/context/TagStylesContext.js +49 -57
  77. package/dist/custom/customNodes.js +224 -28
  78. package/dist/custom/index.js +41 -40
  79. package/dist/editor/LikeC4EditorCallbacks.js +4 -2
  80. package/dist/editor/LikeC4EditorProvider.js +32 -7
  81. package/dist/editor/applyChangesToManualLayout.js +144 -163
  82. package/dist/editor/editorActor.actions.js +122 -138
  83. package/dist/editor/editorActor.setup.js +30 -36
  84. package/dist/editor/editorActor.states.js +209 -263
  85. package/dist/editor/hotkeyActor.js +18 -17
  86. package/dist/editor/useEditorActorLogic.js +31 -43
  87. package/dist/hooks/safeContext.js +17 -17
  88. package/dist/hooks/useCallbackRef.js +18 -11
  89. package/dist/hooks/useCurrentView.js +16 -7
  90. package/dist/hooks/useCurrentViewModel.js +14 -9
  91. package/dist/hooks/useDiagram.js +55 -37
  92. package/dist/hooks/useDiagramCompareLayout.js +77 -81
  93. package/dist/hooks/useId.js +8 -6
  94. package/dist/hooks/useLikeC4ElementsTree.js +22 -21
  95. package/dist/hooks/useLikeC4Model.js +21 -20
  96. package/dist/hooks/useLikeC4Project.js +40 -29
  97. package/dist/hooks/useLikeC4Styles.js +6 -6
  98. package/dist/hooks/useMantinePortalProps.js +10 -6
  99. package/dist/hooks/useOverlaysActor.js +7 -6
  100. package/dist/hooks/useSearchActor.js +7 -6
  101. package/dist/hooks/useSetState.js +21 -19
  102. package/dist/hooks/useUpdateEffect.js +18 -29
  103. package/dist/hooks/useXYFlow.js +13 -15
  104. package/dist/index.js +24 -23
  105. package/dist/likec4diagram/DiagramUI.js +33 -37
  106. package/dist/likec4diagram/DiagramXYFlow.js +215 -224
  107. package/dist/likec4diagram/convert-to-xyflow.js +21 -22
  108. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +22 -32
  109. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +275 -372
  110. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +71 -75
  111. package/dist/likec4diagram/custom/edges/edges.css.js +41 -47
  112. package/dist/likec4diagram/custom/edges/useControlPoints.js +52 -56
  113. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.js +54 -76
  114. package/dist/likec4diagram/custom/index.js +17 -17
  115. package/dist/likec4diagram/custom/nodes/CompoundActions.js +19 -26
  116. package/dist/likec4diagram/custom/nodes/ElementActions.js +131 -82
  117. package/dist/likec4diagram/custom/nodes/NodeDrifts.js +20 -26
  118. package/dist/likec4diagram/custom/nodes/NodeNotes.js +215 -273
  119. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +131 -147
  120. package/dist/likec4diagram/custom/nodes/nodes.js +135 -146
  121. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +155 -159
  122. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +58 -86
  123. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +108 -164
  124. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +56 -68
  125. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -6
  126. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +97 -102
  127. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.js +13 -13
  128. package/dist/likec4diagram/custom/nodes/toolbar/types.js +6 -5
  129. package/dist/likec4diagram/custom/nodes/toolbar/useHandlers.js +36 -41
  130. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +510 -541
  131. package/dist/likec4diagram/relationship-popover/actor.js +113 -152
  132. package/dist/likec4diagram/relationship-popover/components.js +39 -43
  133. package/dist/likec4diagram/state/DiagramActorProvider.js +135 -136
  134. package/dist/likec4diagram/state/aligners.js +283 -360
  135. package/dist/likec4diagram/state/assign.js +84 -108
  136. package/dist/likec4diagram/state/createViewChange.js +72 -92
  137. package/dist/likec4diagram/state/diagram-api.js +224 -152
  138. package/dist/likec4diagram/state/hotkeyActor.js +54 -45
  139. package/dist/likec4diagram/state/machine.actions.js +709 -821
  140. package/dist/likec4diagram/state/machine.actions.layout.js +154 -183
  141. package/dist/likec4diagram/state/machine.js +113 -134
  142. package/dist/likec4diagram/state/machine.setup.js +104 -113
  143. package/dist/likec4diagram/state/machine.state.initializing.js +54 -54
  144. package/dist/likec4diagram/state/machine.state.navigating.js +192 -227
  145. package/dist/likec4diagram/state/machine.state.ready.focused.js +72 -88
  146. package/dist/likec4diagram/state/machine.state.ready.idle.js +79 -98
  147. package/dist/likec4diagram/state/machine.state.ready.js +126 -202
  148. package/dist/likec4diagram/state/machine.state.ready.printing.js +38 -39
  149. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +153 -193
  150. package/dist/likec4diagram/state/mediaPrintActor.js +20 -16
  151. package/dist/likec4diagram/state/persistence.js +20 -21
  152. package/dist/likec4diagram/state/utils.js +131 -162
  153. package/dist/likec4diagram/ui/LayoutDriftFrame.js +53 -64
  154. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +58 -80
  155. package/dist/likec4diagram/ui/notation/NotationPanel.js +183 -214
  156. package/dist/likec4diagram/useLayoutConstraints.js +386 -433
  157. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +216 -227
  158. package/dist/likec4diagram/xyflow-sequence/const.js +11 -7
  159. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +177 -180
  160. package/dist/navigationpanel/NavigationPanel.js +113 -123
  161. package/dist/navigationpanel/NavigationPanelControls.js +124 -150
  162. package/dist/navigationpanel/NavigationPanelDropdown.js +365 -477
  163. package/dist/navigationpanel/_common.d.ts +4 -10
  164. package/dist/navigationpanel/_common.js +57 -70
  165. package/dist/navigationpanel/actor.js +153 -236
  166. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +66 -83
  167. package/dist/navigationpanel/comparepanel/ComparePanel.js +135 -164
  168. package/dist/navigationpanel/comparepanel/ComparePanelControls.js +50 -58
  169. package/dist/navigationpanel/comparepanel/DriftsSummary.js +207 -254
  170. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.js +33 -35
  171. package/dist/navigationpanel/controls/DetailsControls.js +219 -246
  172. package/dist/navigationpanel/controls/LayoutWarning.js +89 -100
  173. package/dist/navigationpanel/controls/LogoButton.js +46 -70
  174. package/dist/navigationpanel/controls/NavigationButtons.js +35 -52
  175. package/dist/navigationpanel/controls/OpenSource.js +27 -25
  176. package/dist/navigationpanel/controls/SearchControl.js +50 -61
  177. package/dist/navigationpanel/controls/ToggleReadonly.js +84 -81
  178. package/dist/navigationpanel/dropdown/ProjectsMenu.js +69 -87
  179. package/dist/navigationpanel/editorpanel/CenterCamera.js +17 -13
  180. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +182 -154
  181. package/dist/navigationpanel/editorpanel/EditorPanel.js +47 -45
  182. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +122 -173
  183. package/dist/navigationpanel/editorpanel/ToggleReadonly.js +20 -13
  184. package/dist/navigationpanel/editorpanel/_common.d.ts +3 -6
  185. package/dist/navigationpanel/editorpanel/_common.js +13 -13
  186. package/dist/navigationpanel/editorpanel/styles.js +58 -75
  187. package/dist/navigationpanel/hooks.js +35 -29
  188. package/dist/navigationpanel/styles.css.js +20 -28
  189. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +107 -134
  190. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +8 -8
  191. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +105 -120
  192. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +75 -83
  193. package/dist/overlays/Overlays.js +94 -112
  194. package/dist/overlays/element-details/ElementDetails.js +22 -28
  195. package/dist/overlays/element-details/ElementDetailsCard.css.js +198 -221
  196. package/dist/overlays/element-details/ElementDetailsCard.js +517 -499
  197. package/dist/overlays/element-details/MetadataValue.js +210 -250
  198. package/dist/overlays/element-details/TabPanelDeployments.css.js +40 -60
  199. package/dist/overlays/element-details/TabPanelDeployments.js +185 -178
  200. package/dist/overlays/element-details/TabPanelRelationships.css.js +63 -71
  201. package/dist/overlays/element-details/TabPanelRelationships.js +155 -140
  202. package/dist/overlays/element-details/TabPanelStructure.css.js +29 -33
  203. package/dist/overlays/element-details/TabPanelStructure.js +93 -93
  204. package/dist/overlays/element-details/actor.js +45 -55
  205. package/dist/overlays/element-details/actorContext.js +12 -10
  206. package/dist/overlays/overlay/Overlay.js +104 -151
  207. package/dist/overlays/overlaysActor.js +213 -264
  208. package/dist/overlays/relationship-details/RelationshipDetails.js +270 -253
  209. package/dist/overlays/relationship-details/SelectEdge.css.js +62 -74
  210. package/dist/overlays/relationship-details/SelectEdge.js +146 -126
  211. package/dist/overlays/relationship-details/actor.js +242 -303
  212. package/dist/overlays/relationship-details/compute.js +109 -135
  213. package/dist/overlays/relationship-details/custom/ElementActions.js +43 -56
  214. package/dist/overlays/relationship-details/custom/edgeTypes.js +43 -49
  215. package/dist/overlays/relationship-details/custom/nodeTypes.js +93 -119
  216. package/dist/overlays/relationship-details/hooks.js +44 -38
  217. package/dist/overlays/relationship-details/layout-to-xyflow.js +119 -141
  218. package/dist/overlays/relationship-details/layout.js +275 -304
  219. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +319 -321
  220. package/dist/overlays/relationships-browser/SelectElement.css.js +18 -21
  221. package/dist/overlays/relationships-browser/SelectElement.js +192 -218
  222. package/dist/overlays/relationships-browser/actor.js +364 -462
  223. package/dist/overlays/relationships-browser/const.js +7 -6
  224. package/dist/overlays/relationships-browser/custom/ElementActions.js +60 -63
  225. package/dist/overlays/relationships-browser/custom/EmptyNode.js +25 -29
  226. package/dist/overlays/relationships-browser/custom/edgeTypes.js +66 -99
  227. package/dist/overlays/relationships-browser/custom/nodeTypes.js +98 -123
  228. package/dist/overlays/relationships-browser/hooks.js +49 -51
  229. package/dist/overlays/relationships-browser/layout.js +413 -465
  230. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +141 -157
  231. package/dist/projects-overview/ProjectsOverview.js +56 -55
  232. package/dist/projects-overview/ProjectsOverviewXY.js +105 -94
  233. package/dist/projects-overview/actor.js +252 -345
  234. package/dist/projects-overview/context.js +8 -7
  235. package/dist/projects-overview/custom/edgeTypes.js +22 -21
  236. package/dist/projects-overview/custom/nodeTypes.js +38 -42
  237. package/dist/projects-overview/hooks.js +9 -9
  238. package/dist/projects-overview/layouted-to-xyflow.js +46 -42
  239. package/dist/projects-overview/panel/ProjectsOverviewPanel.js +7 -9
  240. package/dist/projects-overview/persistence.js +22 -22
  241. package/dist/search/Search.js +199 -181
  242. package/dist/search/SearchContext.js +16 -15
  243. package/dist/search/XStateSearchAdapter.js +68 -62
  244. package/dist/search/components/ElementsColumn.css.js +50 -68
  245. package/dist/search/components/ElementsColumn.js +248 -290
  246. package/dist/search/components/PickView.js +116 -140
  247. package/dist/search/components/SearchByTags.js +76 -94
  248. package/dist/search/components/SearchInput.js +187 -209
  249. package/dist/search/components/ViewsColum.js +151 -141
  250. package/dist/search/components/ViewsColumn.css.js +12 -26
  251. package/dist/search/components/_shared.css.js +127 -153
  252. package/dist/search/components/styles.css.js +47 -53
  253. package/dist/search/components/utils.js +44 -47
  254. package/dist/search/hooks.js +10 -10
  255. package/dist/search/searchActor.js +93 -128
  256. package/dist/shadowroot/ShadowRoot.js +66 -78
  257. package/dist/shadowroot/styles.css.js +56 -66
  258. package/dist/styles-font2.js +4 -0
  259. package/dist/styles2.js +4 -0
  260. package/dist/utils/index.js +5 -0
  261. package/dist/utils/roundDpr.js +19 -15
  262. package/dist/utils/view-bounds.js +48 -55
  263. package/dist/utils/xyflow.js +143 -113
  264. package/package.json +12 -13
  265. package/styles-font.css +1 -1
  266. package/styles-min.css +1 -1
  267. package/styles-xyflow.css +1 -1
  268. package/styles.css +1 -1
  269. package/dist/_virtual/_commonjsHelpers.js +0 -3
  270. package/dist/_virtual/assign-f10db67b.cjs.js +0 -3
  271. package/dist/_virtual/log-30abbb83.cjs.js +0 -3
  272. package/dist/_virtual/raise-f051f097.cjs.js +0 -3
  273. package/dist/_virtual/store-cfe7da62.cjs.js +0 -3
  274. package/dist/_virtual/xstate-actions.cjs.js +0 -5
  275. package/dist/_virtual/xstate-actions.cjs2.js +0 -3
  276. package/dist/_virtual/xstate-dev.cjs.js +0 -3
  277. package/dist/_virtual/xstate-guards.cjs.js +0 -5
  278. package/dist/_virtual/xstate-guards.cjs2.js +0 -3
  279. package/dist/_virtual/xstate-store-react.cjs.js +0 -5
  280. package/dist/_virtual/xstate-store-react.cjs2.js +0 -3
  281. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +0 -41
  282. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +0 -30
  283. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -14
  284. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -14
  285. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +0 -14
  286. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -14
  287. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js +0 -14
  288. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -14
  289. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -14
  290. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +0 -14
  291. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -14
  292. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -14
  293. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -14
  294. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -14
  295. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -14
  296. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.js +0 -14
  297. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -14
  298. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -14
  299. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFileText.js +0 -14
  300. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -14
  301. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +0 -14
  302. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -14
  303. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -14
  304. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -14
  305. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -14
  306. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -14
  307. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -14
  308. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -14
  309. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -14
  310. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -14
  311. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -14
  312. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -14
  313. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -14
  314. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +0 -14
  315. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -14
  316. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -14
  317. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -14
  318. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -14
  319. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -14
  320. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -14
  321. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -14
  322. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -14
  323. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -14
  324. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -14
  325. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -14
  326. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -14
  327. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +0 -14
  328. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -14
  329. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -14
  330. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.js +0 -14
  331. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -14
  332. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -14
  333. package/dist/node_modules/.pnpm/@tabler_icons-react@3.40.0_react@19.2.4/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -14
  334. package/dist/node_modules/.pnpm/@xstate_store@3.17.1_react@19.2.4/node_modules/@xstate/store/dist/store-cfe7da62.cjs.js +0 -761
  335. package/dist/node_modules/.pnpm/@xstate_store@3.17.1_react@19.2.4/node_modules/@xstate/store/react/dist/xstate-store-react.cjs.js +0 -180
  336. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/actions/dist/xstate-actions.cjs.js +0 -37
  337. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dev/dist/xstate-dev.cjs.js +0 -59
  338. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/assign-f10db67b.cjs.js +0 -140
  339. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/log-30abbb83.cjs.js +0 -401
  340. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/raise-f051f097.cjs.js +0 -2830
  341. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/guards/dist/xstate-guards.cjs.js +0 -26
  342. package/dist/styles-font.css2.js +0 -3
  343. package/dist/styles.css2.js +0 -3
@@ -1,183 +1,164 @@
1
- import { invariant, nonNullable } from '@likec4/core';
2
- import { BBox, convertPoint, vector } from '@likec4/core/geometry';
3
- import { setAutoFreeze, produce, castDraft } from 'immer';
4
- import { map, isNullish } from 'remeda';
5
-
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { isNullish, map } from "remeda";
3
+ import { invariant, nonNullable } from "@likec4/core";
4
+ import { BBox as BBox$1, convertPoint, vector } from "@likec4/core/geometry";
5
+ import "@likec4/core/types";
6
+ import { castDraft, produce, setAutoFreeze } from "immer";
7
+ //#region src/editor/applyChangesToManualLayout.ts
8
+ /**
9
+ * Applies changes to a manual layout.
10
+ *
11
+ * @param manual - The manual layout.
12
+ * @param latest - The latest layout.
13
+ */
6
14
  function applyChangesToManualLayout(manualView, latestView) {
7
- try {
8
- setAutoFreeze(false);
9
- return _applyChangesToManualLayout(manualView, latestView);
10
- } finally {
11
- setAutoFreeze(true);
12
- }
15
+ try {
16
+ setAutoFreeze(false);
17
+ return _applyChangesToManualLayout(manualView, latestView);
18
+ } finally {
19
+ setAutoFreeze(true);
20
+ }
13
21
  }
14
- const isRootNode = (node) => isNullish(node.parent);
22
+ var isRootNode = (node) => isNullish(node.parent);
15
23
  function _applyChangesToManualLayout(manualView, latestView) {
16
- invariant(manualView.id === latestView.id, "View IDs do not match");
17
- invariant(manualView._type === latestView._type, "View types do not match");
18
- invariant(manualView._layout === "manual" && latestView._layout === "auto", "Views must be manual and auto");
19
- const compounds = /* @__PURE__ */ new Set();
20
- const newnodes = /* @__PURE__ */ new Set();
21
- const isNotCompound = (node) => !compounds.has(typeof node === "string" ? node : node.id);
22
- const isBetweenNewLeafNodes = (edge) => newnodes.has(edge.source) && newnodes.has(edge.target) && isNotCompound(edge.source) && isNotCompound(edge.target);
23
- const nodesMap = new Map(
24
- latestView.nodes.map((latest) => {
25
- if (latest.children && latest.children.length > 0) {
26
- compounds.add(latest.id);
27
- }
28
- const manual = manualView.nodes.find((n) => n.id === latest.id);
29
- if (manual) {
30
- return [latest.id, applyFromManualNode({ latest, manual })];
31
- }
32
- newnodes.add(latest.id);
33
- return [latest.id, removeDrift(latest)];
34
- })
35
- );
36
- const newNodesOnly = newnodes.size === nodesMap.size;
37
- if (newNodesOnly) {
38
- return produce(latestView, (draft) => {
39
- draft._layout = "manual";
40
- draft.nodes = castDraft([...nodesMap.values()]);
41
- draft.edges = castDraft(latestView.edges.map(removeDrift));
42
- delete draft.drifts;
43
- });
44
- }
45
- if (compounds.size > 0) {
46
- expandCompoundNodes(nodesMap);
47
- }
48
- const nodes = [...nodesMap.values()];
49
- const edges = latestView.edges.map((latest) => {
50
- const dir = latest.dir ?? "forward";
51
- const hasSameEndpoints = (candidate) => candidate.source === latest.source && candidate.target === latest.target && (candidate.dir === dir || !candidate.dir && !latest.dir);
52
- let manual = manualView.edges.find((e) => e.id === latest.id && hasSameEndpoints(e));
53
- if (!manual) {
54
- manual = manualView.edges.find((e) => hasSameEndpoints(e));
55
- }
56
- if (manual) {
57
- return applyFromManualEdge({
58
- latest,
59
- manual
60
- });
61
- }
62
- if (isBetweenNewLeafNodes(latest)) {
63
- return removeDrift(latest);
64
- }
65
- const sourceNode = nodesMap.get(latest.source);
66
- const targetNode = nodesMap.get(latest.target);
67
- return makeAsStraightLine(latest, sourceNode, targetNode);
68
- });
69
- const bounds = BBox.merge(...nodes.filter(isRootNode));
70
- return produce(latestView, (draft) => {
71
- draft._layout = "manual";
72
- draft.nodes = castDraft(nodes);
73
- draft.edges = castDraft(edges);
74
- draft.bounds = bounds;
75
- delete draft.drifts;
76
- });
24
+ invariant(manualView.id === latestView.id, "View IDs do not match");
25
+ invariant(manualView._type === latestView._type, "View types do not match");
26
+ invariant(manualView._layout === "manual" && latestView._layout === "auto", "Views must be manual and auto");
27
+ const compounds = /* @__PURE__ */ new Set();
28
+ const newnodes = /* @__PURE__ */ new Set();
29
+ const isNotCompound = (node) => !compounds.has(typeof node === "string" ? node : node.id);
30
+ const isBetweenNewLeafNodes = (edge) => newnodes.has(edge.source) && newnodes.has(edge.target) && isNotCompound(edge.source) && isNotCompound(edge.target);
31
+ const nodesMap = new Map(latestView.nodes.map((latest) => {
32
+ if (latest.children && latest.children.length > 0) compounds.add(latest.id);
33
+ const manual = manualView.nodes.find((n) => n.id === latest.id);
34
+ if (manual) return [latest.id, applyFromManualNode({
35
+ latest,
36
+ manual
37
+ })];
38
+ newnodes.add(latest.id);
39
+ return [latest.id, removeDrift(latest)];
40
+ }));
41
+ if (newnodes.size === nodesMap.size) return produce(latestView, (draft) => {
42
+ draft._layout = "manual";
43
+ draft.nodes = castDraft([...nodesMap.values()]);
44
+ draft.edges = castDraft(latestView.edges.map(removeDrift));
45
+ delete draft.drifts;
46
+ });
47
+ if (compounds.size > 0) expandCompoundNodes(nodesMap);
48
+ const nodes = [...nodesMap.values()];
49
+ const edges = latestView.edges.map((latest) => {
50
+ const dir = latest.dir ?? "forward";
51
+ const hasSameEndpoints = (candidate) => candidate.source === latest.source && candidate.target === latest.target && (candidate.dir === dir || !candidate.dir && !latest.dir);
52
+ let manual = manualView.edges.find((e) => e.id === latest.id && hasSameEndpoints(e));
53
+ if (!manual) manual = manualView.edges.find((e) => hasSameEndpoints(e));
54
+ if (manual) return applyFromManualEdge({
55
+ latest,
56
+ manual
57
+ });
58
+ if (isBetweenNewLeafNodes(latest)) return removeDrift(latest);
59
+ return makeAsStraightLine(latest, nodesMap.get(latest.source), nodesMap.get(latest.target));
60
+ });
61
+ const bounds = BBox$1.merge(...nodes.filter(isRootNode));
62
+ return produce(latestView, (draft) => {
63
+ draft._layout = "manual";
64
+ draft.nodes = castDraft(nodes);
65
+ draft.edges = castDraft(edges);
66
+ draft.bounds = bounds;
67
+ delete draft.drifts;
68
+ });
77
69
  }
78
- const COMPOUND_PADDING = {
79
- Left: 42,
80
- Right: 42,
81
- Top: 60,
82
- Bottom: 42
70
+ /**
71
+ * Padding constants for compound nodes (same as in useLayoutConstraints)
72
+ */
73
+ var COMPOUND_PADDING = {
74
+ Left: 42,
75
+ Right: 42,
76
+ Top: 60,
77
+ Bottom: 42
83
78
  };
79
+ /**
80
+ * Expands compound nodes to wrap all their children with proper padding.
81
+ * Processes nodes recursively from leaves up to ensure correct bounding boxes.
82
+ */
84
83
  function expandCompoundNodes(nodes) {
85
- function expand(nodeId) {
86
- const node = nonNullable(nodes.get(nodeId), `Node ${nodeId} not found`);
87
- if (node.children.length === 0) {
88
- return node;
89
- }
90
- const childBBoxes = [];
91
- for (const childId of node.children) {
92
- childBBoxes.push(
93
- expand(childId)
94
- );
95
- }
96
- const childrenBBox = BBox.merge(...childBBoxes);
97
- node.x = childrenBBox.x - COMPOUND_PADDING.Left;
98
- node.y = childrenBBox.y - COMPOUND_PADDING.Top;
99
- node.width = childrenBBox.width + COMPOUND_PADDING.Left + COMPOUND_PADDING.Right;
100
- node.height = childrenBBox.height + COMPOUND_PADDING.Top + COMPOUND_PADDING.Bottom;
101
- return node;
102
- }
103
- for (const node of nodes.values()) {
104
- if (!isRootNode(node) || node.children.length === 0) {
105
- continue;
106
- }
107
- expand(node.id);
108
- }
84
+ function expand(nodeId) {
85
+ const node = nonNullable(nodes.get(nodeId), `Node ${nodeId} not found`);
86
+ if (node.children.length === 0) return node;
87
+ const childBBoxes = [];
88
+ for (const childId of node.children) childBBoxes.push(expand(childId));
89
+ const childrenBBox = BBox$1.merge(...childBBoxes);
90
+ node.x = childrenBBox.x - COMPOUND_PADDING.Left;
91
+ node.y = childrenBBox.y - COMPOUND_PADDING.Top;
92
+ node.width = childrenBBox.width + COMPOUND_PADDING.Left + COMPOUND_PADDING.Right;
93
+ node.height = childrenBBox.height + COMPOUND_PADDING.Top + COMPOUND_PADDING.Bottom;
94
+ return node;
95
+ }
96
+ for (const node of nodes.values()) {
97
+ if (!isRootNode(node) || node.children.length === 0) continue;
98
+ expand(node.id);
99
+ }
109
100
  }
110
101
  function applyFromManualNode({ latest, manual }) {
111
- invariant(manual.id === latest.id, "Node IDs do not match");
112
- return produce(latest, (next) => {
113
- next.x = manual.x;
114
- next.y = manual.y;
115
- next.drifts = null;
116
- });
102
+ invariant(manual.id === latest.id, "Node IDs do not match");
103
+ return produce(latest, (next) => {
104
+ next.x = manual.x;
105
+ next.y = manual.y;
106
+ next.drifts = null;
107
+ });
117
108
  }
118
109
  function applyFromManualEdge(edges) {
119
- const { manual, latest } = edges;
120
- return produce(latest, (draft) => {
121
- if (manual.controlPoints) {
122
- draft.controlPoints = manual.controlPoints;
123
- } else {
124
- delete draft.controlPoints;
125
- }
126
- draft.points = castDraft(manual.points);
127
- if (manual.labelBBox) {
128
- draft.labelBBox = latest.labelBBox ?? manual.labelBBox;
129
- draft.labelBBox.x = manual.labelBBox.x;
130
- draft.labelBBox.y = manual.labelBBox.y;
131
- }
132
- draft.drifts = null;
133
- });
110
+ const { manual, latest } = edges;
111
+ return produce(latest, (draft) => {
112
+ if (manual.controlPoints) draft.controlPoints = manual.controlPoints;
113
+ else delete draft.controlPoints;
114
+ draft.points = castDraft(manual.points);
115
+ if (manual.labelBBox) {
116
+ draft.labelBBox = latest.labelBBox ?? manual.labelBBox;
117
+ draft.labelBBox.x = manual.labelBBox.x;
118
+ draft.labelBBox.y = manual.labelBBox.y;
119
+ }
120
+ draft.drifts = null;
121
+ });
134
122
  }
135
123
  function removeDrift(object) {
136
- if ("drifts" in object && object.drifts !== null) {
137
- const result = { ...object };
138
- result.drifts = null;
139
- return result;
140
- }
141
- return object;
124
+ if ("drifts" in object && object.drifts !== null) {
125
+ const result = { ...object };
126
+ result.drifts = null;
127
+ return result;
128
+ }
129
+ return object;
142
130
  }
143
131
  function makeAsStraightLine(edge, sourceNode, targetNode) {
144
- const controlPoints = edgeControlPoints(sourceNode, targetNode);
145
- const labelPos = controlPoints[0];
146
- return produce(edge, (draft) => {
147
- draft.points = castDraft(map(controlPoints, convertPoint));
148
- draft.controlPoints = controlPoints;
149
- if (edge.labelBBox) {
150
- draft.labelBBox.x = labelPos.x;
151
- draft.labelBBox.y = labelPos.y;
152
- }
153
- delete draft.drifts;
154
- });
132
+ const controlPoints = edgeControlPoints(sourceNode, targetNode);
133
+ const labelPos = controlPoints[0];
134
+ return produce(edge, (draft) => {
135
+ draft.points = castDraft(map(controlPoints, convertPoint));
136
+ draft.controlPoints = controlPoints;
137
+ if (edge.labelBBox) {
138
+ draft.labelBBox.x = labelPos.x;
139
+ draft.labelBBox.y = labelPos.y;
140
+ }
141
+ delete draft.drifts;
142
+ });
155
143
  }
156
144
  function getBorderPointOnVector(node, nodeCenter, v) {
157
- const xScale = node.width / 2 / v.x;
158
- const yScale = node.height / 2 / v.y;
159
- const scale = Math.min(Math.abs(xScale), Math.abs(yScale));
160
- return vector(v).multiply(scale).add(nodeCenter);
145
+ const xScale = node.width / 2 / v.x;
146
+ const yScale = node.height / 2 / v.y;
147
+ const scale = Math.min(Math.abs(xScale), Math.abs(yScale));
148
+ return vector(v).multiply(scale).add(nodeCenter);
161
149
  }
162
150
  function edgeControlPoints(source, target) {
163
- const sourceCenter = vector(BBox.center(source));
164
- const targetCenter = vector(BBox.center(target));
165
- if (source === target) {
166
- const loopSize = 80;
167
- const centerOfTopBoundary = vector(0, source.height || 0).multiply(-0.5).add(sourceCenter);
168
- return [
169
- centerOfTopBoundary.add(vector(-loopSize / 2.5, -loopSize)).trunc().toObject(),
170
- centerOfTopBoundary.add(vector(loopSize / 2.5, -loopSize)).trunc().toObject()
171
- ];
172
- }
173
- const sourceToTargetVector = targetCenter.subtract(sourceCenter);
174
- const sourceBorderPoint = getBorderPointOnVector(source, sourceCenter, sourceToTargetVector);
175
- const targetBorderPoint = getBorderPointOnVector(target, targetCenter, sourceToTargetVector.multiply(-1));
176
- const sourceToTarget = targetBorderPoint.subtract(sourceBorderPoint);
177
- return [
178
- sourceBorderPoint.add(sourceToTarget.multiply(0.4)).trunc().toObject(),
179
- sourceBorderPoint.add(sourceToTarget.multiply(0.6)).trunc().toObject()
180
- ];
151
+ const sourceCenter = vector(BBox$1.center(source));
152
+ const targetCenter = vector(BBox$1.center(target));
153
+ if (source === target) {
154
+ const loopSize = 80;
155
+ const centerOfTopBoundary = vector(0, source.height || 0).multiply(-.5).add(sourceCenter);
156
+ return [centerOfTopBoundary.add(vector(-loopSize / 2.5, -loopSize)).trunc().toObject(), centerOfTopBoundary.add(vector(loopSize / 2.5, -loopSize)).trunc().toObject()];
157
+ }
158
+ const sourceToTargetVector = targetCenter.subtract(sourceCenter);
159
+ const sourceBorderPoint = getBorderPointOnVector(source, sourceCenter, sourceToTargetVector);
160
+ const sourceToTarget = getBorderPointOnVector(target, targetCenter, sourceToTargetVector.multiply(-1)).subtract(sourceBorderPoint);
161
+ return [sourceBorderPoint.add(sourceToTarget.multiply(.4)).trunc().toObject(), sourceBorderPoint.add(sourceToTarget.multiply(.6)).trunc().toObject()];
181
162
  }
182
-
163
+ //#endregion
183
164
  export { applyChangesToManualLayout };
@@ -1,149 +1,133 @@
1
- import { last, filter, isNot, omit } from 'remeda';
2
- import { createViewChange } from '../likec4diagram/state/createViewChange.js';
3
- import { machine } from './editorActor.setup.js';
4
-
5
- const diagramActorRef = (system) => {
6
- return system.get("diagram");
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { createViewChange } from "../likec4diagram/state/createViewChange.js";
3
+ import { machine } from "./editorActor.setup.js";
4
+ import { filter, isNot, last, omit } from "remeda";
5
+ //#region src/editor/editorActor.actions.ts
6
+ /**
7
+ * Actually this is DiagramActorRef
8
+ * But we can't use it here due to circular type inference
9
+ */
10
+ var diagramActorRef = (system) => {
11
+ return system.get("diagram");
7
12
  };
8
- const getDiagramContext = function(system) {
9
- return system.get("diagram").getSnapshot().context;
13
+ /**
14
+ * Actually this is DiagramActorRef
15
+ * But we can't use it here due to circular type inference
16
+ */
17
+ var getDiagramContext = function(system) {
18
+ return system.get("diagram").getSnapshot().context;
10
19
  };
11
- const raiseSync = () => machine.raise({ type: "sync" }, { delay: 200, id: "sync" });
12
- const cancelSync = () => machine.cancel("sync");
13
- const reschedule = (delay = 350) => machine.raise(({ event }) => event, { delay });
14
- const isLayoutChange = (change) => change.op === "reset-manual-layout" || change.op === "save-view-snapshot";
15
- const withoutSnapshotChanges = filter(isNot(isLayoutChange));
16
- const saveStateBeforeEdit = () => machine.assign(({ system }) => {
17
- const parentContext = getDiagramContext(system);
18
- return {
19
- beforeEditing: {
20
- xynodes: parentContext.xynodes.map(({ measured, data, ...n }) => ({
21
- ...omit(n, ["selected", "dragging", "resizing"]),
22
- data: omit(data, ["dimmed", "hovered"]),
23
- measured,
24
- initialWidth: measured?.width ?? n.width ?? n.initialWidth,
25
- initialHeight: measured?.height ?? n.height ?? n.initialHeight
26
- })),
27
- xyedges: parentContext.xyedges.map(({ data, ...e }) => ({
28
- ...omit(e, ["selected"]),
29
- data: omit(data, ["active", "dimmed", "hovered"])
30
- })),
31
- change: createViewChange(parentContext),
32
- view: parentContext.view,
33
- synched: false
34
- }
35
- };
20
+ var raiseSync = () => machine.raise({ type: "sync" }, {
21
+ delay: 200,
22
+ id: "sync"
36
23
  });
37
- const startEditing = () => machine.enqueueActions(({ enqueue, event }) => {
38
- enqueue(saveStateBeforeEdit());
39
- if (event.type === "edit.start") {
40
- enqueue.assign({
41
- editing: event.subject
42
- });
43
- }
24
+ var cancelSync = () => machine.cancel("sync");
25
+ var reschedule = (delay = 350) => machine.raise(({ event }) => event, { delay });
26
+ var isLayoutChange = (change) => change.op === "reset-manual-layout" || change.op === "save-view-snapshot";
27
+ var withoutSnapshotChanges = filter(isNot(isLayoutChange));
28
+ var saveStateBeforeEdit = () => machine.assign(({ system }) => {
29
+ const parentContext = getDiagramContext(system);
30
+ return { beforeEditing: {
31
+ xynodes: parentContext.xynodes.map(({ measured, data, ...n }) => ({
32
+ ...omit(n, [
33
+ "selected",
34
+ "dragging",
35
+ "resizing"
36
+ ]),
37
+ data: omit(data, ["dimmed", "hovered"]),
38
+ measured,
39
+ initialWidth: measured?.width ?? n.width ?? n.initialWidth,
40
+ initialHeight: measured?.height ?? n.height ?? n.initialHeight
41
+ })),
42
+ xyedges: parentContext.xyedges.map(({ data, ...e }) => ({
43
+ ...omit(e, ["selected"]),
44
+ data: omit(data, [
45
+ "active",
46
+ "dimmed",
47
+ "hovered"
48
+ ])
49
+ })),
50
+ change: createViewChange(parentContext),
51
+ view: parentContext.view,
52
+ synched: false
53
+ } };
44
54
  });
45
- const stopHotkey = () => machine.stopChild("hotkey");
46
- const ensureHotKey = () => machine.enqueueActions(({ check, enqueue, self }) => {
47
- const hasUndo = check("can undo");
48
- const hotkey = self.getSnapshot().children["hotkey"];
49
- if (!hasUndo && hotkey) {
50
- enqueue.stopChild(hotkey);
51
- return;
52
- }
53
- if (hasUndo && !hotkey) {
54
- enqueue.spawnChild("hotkey", {
55
- id: "hotkey"
56
- });
57
- }
55
+ var startEditing = () => machine.enqueueActions(({ enqueue, event }) => {
56
+ enqueue(saveStateBeforeEdit());
57
+ if (event.type === "edit.start") enqueue.assign({ editing: event.subject });
58
58
  });
59
- const pushHistory = () => machine.assign(({ context }) => {
60
- const snapshot = context.beforeEditing;
61
- if (!snapshot) {
62
- return {
63
- editing: null
64
- };
65
- }
66
- const history = [
67
- ...context.history,
68
- snapshot
69
- ];
70
- if (history.length > 50) {
71
- history.shift();
72
- }
73
- return {
74
- beforeEditing: null,
75
- editing: null,
76
- history
77
- };
59
+ var stopHotkey = () => machine.stopChild("hotkey");
60
+ var ensureHotKey = () => machine.enqueueActions(({ check, enqueue, self }) => {
61
+ const hasUndo = check("can undo");
62
+ const hotkey = self.getSnapshot().children["hotkey"];
63
+ if (!hasUndo && hotkey) {
64
+ enqueue.stopChild(hotkey);
65
+ return;
66
+ }
67
+ if (hasUndo && !hotkey) enqueue.spawnChild("hotkey", { id: "hotkey" });
78
68
  });
79
- const stopEditing = () => machine.enqueueActions(({ event, enqueue }) => {
80
- if (event.type === "edit.finish" && event.wasChanged) {
81
- enqueue(pushHistory());
82
- enqueue(raiseSync());
83
- return;
84
- }
85
- enqueue.assign({
86
- beforeEditing: null,
87
- editing: null
88
- });
69
+ var pushHistory = () => machine.assign(({ context }) => {
70
+ const snapshot = context.beforeEditing;
71
+ if (!snapshot) return { editing: null };
72
+ const history = [...context.history, snapshot];
73
+ if (history.length > 50) history.shift();
74
+ return {
75
+ beforeEditing: null,
76
+ editing: null,
77
+ history
78
+ };
89
79
  });
90
- const markHistoryAsSynched = () => machine.assign(({ context }) => {
91
- return {
92
- beforeEditing: context.beforeEditing && context.beforeEditing.synched === false ? {
93
- ...context.beforeEditing,
94
- synched: true
95
- } : context.beforeEditing,
96
- history: context.history.map((i) => ({
97
- ...i,
98
- synched: true
99
- }))
100
- };
80
+ var stopEditing = () => machine.enqueueActions(({ event, enqueue }) => {
81
+ if (event.type === "edit.finish" && event.wasChanged) {
82
+ enqueue(pushHistory());
83
+ enqueue(raiseSync());
84
+ return;
85
+ }
86
+ enqueue.assign({
87
+ beforeEditing: null,
88
+ editing: null
89
+ });
101
90
  });
102
- const popHistory = () => machine.assign(({ context }) => {
103
- if (context.history.length <= 1) {
104
- return {
105
- history: []
106
- };
107
- }
108
- return {
109
- history: context.history.slice(0, context.history.length - 1)
110
- };
91
+ var markHistoryAsSynched = () => machine.assign(({ context }) => {
92
+ return {
93
+ beforeEditing: context.beforeEditing && context.beforeEditing.synched === false ? {
94
+ ...context.beforeEditing,
95
+ synched: true
96
+ } : context.beforeEditing,
97
+ history: context.history.map((i) => ({
98
+ ...i,
99
+ synched: true
100
+ }))
101
+ };
111
102
  });
112
- const undo = () => machine.enqueueActions(({ context, enqueue, system }) => {
113
- const lastHistoryItem = last(context.history);
114
- if (!lastHistoryItem) {
115
- return;
116
- }
117
- enqueue(cancelSync());
118
- enqueue(popHistory());
119
- enqueue(ensureHotKey());
120
- const diagramActor = diagramActorRef(system);
121
- enqueue.sendTo(diagramActor, {
122
- type: "update.view",
123
- view: lastHistoryItem.view,
124
- xyedges: lastHistoryItem.xyedges,
125
- xynodes: lastHistoryItem.xynodes,
126
- source: "editor"
127
- });
128
- enqueue.assign({
129
- pendingChanges: []
130
- });
131
- if (lastHistoryItem.synched) {
132
- enqueue.raise({ type: "change", change: lastHistoryItem.change }, { delay: 50 });
133
- } else {
134
- enqueue(raiseSync());
135
- }
103
+ var popHistory = () => machine.assign(({ context }) => {
104
+ if (context.history.length <= 1) return { history: [] };
105
+ return { history: context.history.slice(0, context.history.length - 1) };
136
106
  });
137
- const addSnapshotToPendingChanges = () => machine.assign(({ context, system }) => {
138
- const parentContext = getDiagramContext(system);
139
- const change = createViewChange(parentContext);
140
- return {
141
- pendingChanges: [
142
- // Remove all save-view-snapshot and reset-manual-layout changes
143
- ...withoutSnapshotChanges(context.pendingChanges),
144
- change
145
- ]
146
- };
107
+ var undo = () => machine.enqueueActions(({ context, enqueue, system }) => {
108
+ const lastHistoryItem = last(context.history);
109
+ if (!lastHistoryItem) return;
110
+ enqueue(cancelSync());
111
+ enqueue(popHistory());
112
+ enqueue(ensureHotKey());
113
+ const diagramActor = diagramActorRef(system);
114
+ enqueue.sendTo(diagramActor, {
115
+ type: "update.view",
116
+ view: lastHistoryItem.view,
117
+ xyedges: lastHistoryItem.xyedges,
118
+ xynodes: lastHistoryItem.xynodes,
119
+ source: "editor"
120
+ });
121
+ enqueue.assign({ pendingChanges: [] });
122
+ if (lastHistoryItem.synched) enqueue.raise({
123
+ type: "change",
124
+ change: lastHistoryItem.change
125
+ }, { delay: 50 });
126
+ else enqueue(raiseSync());
147
127
  });
148
-
149
- export { addSnapshotToPendingChanges, cancelSync, ensureHotKey, isLayoutChange, markHistoryAsSynched, popHistory, pushHistory, raiseSync, reschedule, saveStateBeforeEdit, startEditing, stopEditing, stopHotkey, undo, withoutSnapshotChanges };
128
+ var addSnapshotToPendingChanges = () => machine.assign(({ context, system }) => {
129
+ const change = createViewChange(getDiagramContext(system));
130
+ return { pendingChanges: [...withoutSnapshotChanges(context.pendingChanges), change] };
131
+ });
132
+ //#endregion
133
+ export { addSnapshotToPendingChanges, cancelSync, ensureHotKey, isLayoutChange, markHistoryAsSynched, pushHistory, reschedule, saveStateBeforeEdit, startEditing, stopEditing, stopHotkey, undo, withoutSnapshotChanges };