@likec4/diagram 1.55.0 → 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 (345) 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.d.ts +1 -1
  43. package/dist/base-primitives/edge/EdgeLabelContainer.js +35 -72
  44. package/dist/base-primitives/edge/EdgeMarkers.js +157 -215
  45. package/dist/base-primitives/edge/EdgePath.js +62 -115
  46. package/dist/base-primitives/element/ElementActionButtons.js +92 -81
  47. package/dist/base-primitives/element/ElementData.js +107 -126
  48. package/dist/base-primitives/element/ElementDetailsButton.js +78 -98
  49. package/dist/base-primitives/element/ElementNodeContainer.js +51 -82
  50. package/dist/base-primitives/element/ElementShape.js +331 -317
  51. package/dist/base-primitives/element/ElementTags.d.ts +1 -1
  52. package/dist/base-primitives/element/ElementTags.js +133 -193
  53. package/dist/base-primitives/memoEdge.js +11 -10
  54. package/dist/base-primitives/memoNode.js +16 -20
  55. package/dist/components/ErrorFallback.js +111 -75
  56. package/dist/components/GithubIcon.js +14 -16
  57. package/dist/components/Link.js +99 -113
  58. package/dist/components/Logo.js +38 -41
  59. package/dist/components/NavigationLink.js +15 -23
  60. package/dist/components/NavigationPanel.js +26 -47
  61. package/dist/components/PortalToContainer.js +16 -10
  62. package/dist/components/RootContainer.js +35 -31
  63. package/dist/components/SearchControl.css.js +65 -75
  64. package/dist/components/SearchControl.js +36 -14
  65. package/dist/components/ViewNotFound.js +22 -29
  66. package/dist/context/CurrentViewModelProvider.js +11 -9
  67. package/dist/context/DefaultMantineProvider.js +45 -72
  68. package/dist/context/DiagramEventHandlers.js +43 -48
  69. package/dist/context/DiagramFeatures.js +73 -69
  70. package/dist/context/EnsureMantine.js +13 -16
  71. package/dist/context/FramerMotionConfig.js +17 -11
  72. package/dist/context/IconRenderer.js +90 -106
  73. package/dist/context/LikeC4ModelContext.js +14 -10
  74. package/dist/context/LikeC4ProjectsContext.js +7 -6
  75. package/dist/context/RootContainerContext.d.ts +2 -5
  76. package/dist/context/RootContainerContext.js +24 -26
  77. package/dist/context/TagStylesContext.js +49 -57
  78. package/dist/custom/customNodes.js +224 -28
  79. package/dist/custom/index.js +41 -40
  80. package/dist/editor/LikeC4EditorCallbacks.js +4 -2
  81. package/dist/editor/LikeC4EditorProvider.js +32 -7
  82. package/dist/editor/applyChangesToManualLayout.js +144 -163
  83. package/dist/editor/editorActor.actions.js +122 -138
  84. package/dist/editor/editorActor.setup.js +30 -36
  85. package/dist/editor/editorActor.states.js +209 -263
  86. package/dist/editor/hotkeyActor.js +18 -17
  87. package/dist/editor/useEditorActorLogic.js +31 -43
  88. package/dist/hooks/safeContext.js +17 -17
  89. package/dist/hooks/useCallbackRef.js +18 -11
  90. package/dist/hooks/useCurrentView.js +16 -7
  91. package/dist/hooks/useCurrentViewModel.js +14 -9
  92. package/dist/hooks/useDiagram.js +55 -37
  93. package/dist/hooks/useDiagramCompareLayout.js +77 -81
  94. package/dist/hooks/useId.js +8 -6
  95. package/dist/hooks/useLikeC4ElementsTree.js +22 -21
  96. package/dist/hooks/useLikeC4Model.js +21 -20
  97. package/dist/hooks/useLikeC4Project.js +40 -29
  98. package/dist/hooks/useLikeC4Styles.js +6 -6
  99. package/dist/hooks/useMantinePortalProps.js +10 -6
  100. package/dist/hooks/useOverlaysActor.js +7 -6
  101. package/dist/hooks/useSearchActor.js +7 -6
  102. package/dist/hooks/useSetState.js +21 -19
  103. package/dist/hooks/useUpdateEffect.js +18 -29
  104. package/dist/hooks/useXYFlow.js +13 -15
  105. package/dist/index.js +24 -23
  106. package/dist/likec4diagram/DiagramUI.js +33 -37
  107. package/dist/likec4diagram/DiagramXYFlow.js +215 -224
  108. package/dist/likec4diagram/convert-to-xyflow.js +21 -22
  109. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +22 -32
  110. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +275 -372
  111. package/dist/likec4diagram/custom/edges/SequenceStepEdge.js +71 -75
  112. package/dist/likec4diagram/custom/edges/edges.css.js +41 -47
  113. package/dist/likec4diagram/custom/edges/useControlPoints.js +52 -56
  114. package/dist/likec4diagram/custom/edges/useRelationshipEdgePath.js +54 -76
  115. package/dist/likec4diagram/custom/index.js +17 -17
  116. package/dist/likec4diagram/custom/nodes/CompoundActions.js +19 -26
  117. package/dist/likec4diagram/custom/nodes/ElementActions.js +131 -82
  118. package/dist/likec4diagram/custom/nodes/NodeDrifts.js +20 -26
  119. package/dist/likec4diagram/custom/nodes/NodeNotes.js +215 -273
  120. package/dist/likec4diagram/custom/nodes/SequenceActorNode.js +131 -147
  121. package/dist/likec4diagram/custom/nodes/nodes.js +135 -146
  122. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +155 -159
  123. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +58 -86
  124. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +108 -164
  125. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +56 -68
  126. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -6
  127. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +97 -102
  128. package/dist/likec4diagram/custom/nodes/toolbar/styles.css.js +13 -13
  129. package/dist/likec4diagram/custom/nodes/toolbar/types.js +6 -5
  130. package/dist/likec4diagram/custom/nodes/toolbar/useHandlers.js +36 -41
  131. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +510 -534
  132. package/dist/likec4diagram/relationship-popover/actor.js +113 -152
  133. package/dist/likec4diagram/relationship-popover/components.js +39 -37
  134. package/dist/likec4diagram/state/DiagramActorProvider.js +135 -136
  135. package/dist/likec4diagram/state/aligners.js +283 -360
  136. package/dist/likec4diagram/state/assign.js +84 -108
  137. package/dist/likec4diagram/state/createViewChange.js +72 -92
  138. package/dist/likec4diagram/state/diagram-api.js +224 -152
  139. package/dist/likec4diagram/state/hotkeyActor.js +54 -45
  140. package/dist/likec4diagram/state/machine.actions.js +709 -821
  141. package/dist/likec4diagram/state/machine.actions.layout.js +154 -183
  142. package/dist/likec4diagram/state/machine.js +113 -134
  143. package/dist/likec4diagram/state/machine.setup.js +104 -113
  144. package/dist/likec4diagram/state/machine.state.initializing.js +54 -54
  145. package/dist/likec4diagram/state/machine.state.navigating.js +192 -227
  146. package/dist/likec4diagram/state/machine.state.ready.focused.js +72 -88
  147. package/dist/likec4diagram/state/machine.state.ready.idle.js +79 -98
  148. package/dist/likec4diagram/state/machine.state.ready.js +126 -202
  149. package/dist/likec4diagram/state/machine.state.ready.printing.js +38 -39
  150. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +153 -193
  151. package/dist/likec4diagram/state/mediaPrintActor.js +20 -16
  152. package/dist/likec4diagram/state/persistence.js +20 -21
  153. package/dist/likec4diagram/state/utils.js +131 -162
  154. package/dist/likec4diagram/ui/LayoutDriftFrame.js +53 -64
  155. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +58 -80
  156. package/dist/likec4diagram/ui/notation/NotationPanel.js +183 -214
  157. package/dist/likec4diagram/useLayoutConstraints.js +386 -433
  158. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +216 -227
  159. package/dist/likec4diagram/xyflow-sequence/const.js +11 -7
  160. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +177 -180
  161. package/dist/navigationpanel/NavigationPanel.js +113 -123
  162. package/dist/navigationpanel/NavigationPanelControls.js +124 -150
  163. package/dist/navigationpanel/NavigationPanelDropdown.js +365 -477
  164. package/dist/navigationpanel/_common.d.ts +4 -10
  165. package/dist/navigationpanel/_common.js +57 -70
  166. package/dist/navigationpanel/actor.js +153 -236
  167. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +66 -83
  168. package/dist/navigationpanel/comparepanel/ComparePanel.js +135 -164
  169. package/dist/navigationpanel/comparepanel/ComparePanelControls.js +50 -58
  170. package/dist/navigationpanel/comparepanel/DriftsSummary.js +207 -254
  171. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.js +33 -35
  172. package/dist/navigationpanel/controls/DetailsControls.js +219 -246
  173. package/dist/navigationpanel/controls/LayoutWarning.js +89 -100
  174. package/dist/navigationpanel/controls/LogoButton.js +46 -70
  175. package/dist/navigationpanel/controls/NavigationButtons.js +35 -52
  176. package/dist/navigationpanel/controls/OpenSource.js +27 -25
  177. package/dist/navigationpanel/controls/SearchControl.js +50 -61
  178. package/dist/navigationpanel/controls/ToggleReadonly.js +84 -81
  179. package/dist/navigationpanel/dropdown/ProjectsMenu.js +69 -87
  180. package/dist/navigationpanel/editorpanel/CenterCamera.js +17 -13
  181. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +182 -154
  182. package/dist/navigationpanel/editorpanel/EditorPanel.js +47 -45
  183. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +122 -173
  184. package/dist/navigationpanel/editorpanel/ToggleReadonly.js +20 -13
  185. package/dist/navigationpanel/editorpanel/_common.d.ts +3 -6
  186. package/dist/navigationpanel/editorpanel/_common.js +13 -13
  187. package/dist/navigationpanel/editorpanel/styles.js +58 -75
  188. package/dist/navigationpanel/hooks.js +35 -29
  189. package/dist/navigationpanel/styles.css.js +20 -28
  190. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +107 -134
  191. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +8 -8
  192. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +105 -120
  193. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +75 -83
  194. package/dist/overlays/Overlays.js +94 -112
  195. package/dist/overlays/element-details/ElementDetails.js +22 -28
  196. package/dist/overlays/element-details/ElementDetailsCard.css.js +198 -219
  197. package/dist/overlays/element-details/ElementDetailsCard.js +517 -490
  198. package/dist/overlays/element-details/MetadataValue.js +210 -250
  199. package/dist/overlays/element-details/TabPanelDeployments.css.js +40 -60
  200. package/dist/overlays/element-details/TabPanelDeployments.js +185 -178
  201. package/dist/overlays/element-details/TabPanelRelationships.css.js +63 -71
  202. package/dist/overlays/element-details/TabPanelRelationships.js +155 -140
  203. package/dist/overlays/element-details/TabPanelStructure.css.js +29 -33
  204. package/dist/overlays/element-details/TabPanelStructure.js +93 -93
  205. package/dist/overlays/element-details/actor.js +45 -55
  206. package/dist/overlays/element-details/actorContext.js +12 -10
  207. package/dist/overlays/overlay/Overlay.js +104 -144
  208. package/dist/overlays/overlaysActor.js +213 -264
  209. package/dist/overlays/relationship-details/RelationshipDetails.js +270 -253
  210. package/dist/overlays/relationship-details/SelectEdge.css.js +62 -74
  211. package/dist/overlays/relationship-details/SelectEdge.js +146 -126
  212. package/dist/overlays/relationship-details/actor.js +242 -303
  213. package/dist/overlays/relationship-details/compute.js +109 -135
  214. package/dist/overlays/relationship-details/custom/ElementActions.js +43 -56
  215. package/dist/overlays/relationship-details/custom/edgeTypes.js +43 -49
  216. package/dist/overlays/relationship-details/custom/nodeTypes.js +93 -119
  217. package/dist/overlays/relationship-details/hooks.js +44 -38
  218. package/dist/overlays/relationship-details/layout-to-xyflow.js +119 -141
  219. package/dist/overlays/relationship-details/layout.js +275 -304
  220. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +319 -321
  221. package/dist/overlays/relationships-browser/SelectElement.css.js +18 -21
  222. package/dist/overlays/relationships-browser/SelectElement.js +192 -218
  223. package/dist/overlays/relationships-browser/actor.js +364 -462
  224. package/dist/overlays/relationships-browser/const.js +7 -6
  225. package/dist/overlays/relationships-browser/custom/ElementActions.js +60 -63
  226. package/dist/overlays/relationships-browser/custom/EmptyNode.js +25 -29
  227. package/dist/overlays/relationships-browser/custom/edgeTypes.js +66 -99
  228. package/dist/overlays/relationships-browser/custom/nodeTypes.js +98 -123
  229. package/dist/overlays/relationships-browser/hooks.js +49 -51
  230. package/dist/overlays/relationships-browser/layout.js +413 -465
  231. package/dist/overlays/relationships-browser/useViewToNodesEdges.js +141 -157
  232. package/dist/projects-overview/ProjectsOverview.js +56 -55
  233. package/dist/projects-overview/ProjectsOverviewXY.js +105 -94
  234. package/dist/projects-overview/actor.js +252 -345
  235. package/dist/projects-overview/context.js +8 -7
  236. package/dist/projects-overview/custom/edgeTypes.js +22 -21
  237. package/dist/projects-overview/custom/nodeTypes.js +38 -42
  238. package/dist/projects-overview/hooks.js +9 -9
  239. package/dist/projects-overview/layouted-to-xyflow.js +46 -42
  240. package/dist/projects-overview/panel/ProjectsOverviewPanel.js +7 -9
  241. package/dist/projects-overview/persistence.js +22 -22
  242. package/dist/search/Search.js +199 -181
  243. package/dist/search/SearchContext.js +16 -15
  244. package/dist/search/XStateSearchAdapter.js +68 -62
  245. package/dist/search/components/ElementsColumn.css.js +50 -68
  246. package/dist/search/components/ElementsColumn.js +248 -290
  247. package/dist/search/components/PickView.js +116 -140
  248. package/dist/search/components/SearchByTags.js +76 -94
  249. package/dist/search/components/SearchInput.js +187 -209
  250. package/dist/search/components/ViewsColum.js +151 -141
  251. package/dist/search/components/ViewsColumn.css.js +12 -26
  252. package/dist/search/components/_shared.css.js +127 -153
  253. package/dist/search/components/styles.css.js +47 -53
  254. package/dist/search/components/utils.js +44 -47
  255. package/dist/search/hooks.js +10 -10
  256. package/dist/search/searchActor.js +93 -128
  257. package/dist/shadowroot/ShadowRoot.js +66 -78
  258. package/dist/shadowroot/styles.css.js +56 -66
  259. package/dist/styles-font2.js +4 -0
  260. package/dist/styles2.js +4 -0
  261. package/dist/utils/index.js +5 -0
  262. package/dist/utils/roundDpr.js +19 -15
  263. package/dist/utils/view-bounds.js +48 -55
  264. package/dist/utils/xyflow.js +143 -113
  265. package/package.json +15 -16
  266. package/panda.buildinfo.json +6 -3
  267. package/styles-font.css +1 -1
  268. package/styles-min.css +1 -1
  269. package/styles-xyflow.css +1 -1
  270. package/styles.css +1 -1
  271. package/dist/_virtual/_commonjsHelpers.js +0 -3
  272. package/dist/_virtual/assign-f10db67b.cjs.js +0 -3
  273. package/dist/_virtual/log-30abbb83.cjs.js +0 -3
  274. package/dist/_virtual/raise-f051f097.cjs.js +0 -3
  275. package/dist/_virtual/store-cfe7da62.cjs.js +0 -3
  276. package/dist/_virtual/xstate-actions.cjs.js +0 -5
  277. package/dist/_virtual/xstate-actions.cjs2.js +0 -3
  278. package/dist/_virtual/xstate-dev.cjs.js +0 -3
  279. package/dist/_virtual/xstate-guards.cjs.js +0 -5
  280. package/dist/_virtual/xstate-guards.cjs2.js +0 -3
  281. package/dist/_virtual/xstate-store-react.cjs.js +0 -5
  282. package/dist/_virtual/xstate-store-react.cjs2.js +0 -3
  283. 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
  284. 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
  285. 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
  286. 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
  287. 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
  288. 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
  289. 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
  290. 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
  291. 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
  292. 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
  293. 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
  294. 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
  295. 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
  296. 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
  297. 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
  298. 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
  299. 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
  300. 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
  301. 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
  302. 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
  303. 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
  304. 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
  305. 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
  306. 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
  307. 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
  308. 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
  309. 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
  310. 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
  311. 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
  312. 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
  313. 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
  314. 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
  315. 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
  316. 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
  317. 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
  318. 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
  319. 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
  320. 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
  321. 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
  322. 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
  323. 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
  324. 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
  325. 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
  326. 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
  327. 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
  328. 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
  329. 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
  330. 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
  331. 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
  332. 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
  333. 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
  334. 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
  335. 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
  336. 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
  337. 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
  338. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/actions/dist/xstate-actions.cjs.js +0 -37
  339. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dev/dist/xstate-dev.cjs.js +0 -59
  340. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/assign-f10db67b.cjs.js +0 -140
  341. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/log-30abbb83.cjs.js +0 -401
  342. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/dist/raise-f051f097.cjs.js +0 -2830
  343. package/dist/node_modules/.pnpm/xstate@5.30.0/node_modules/xstate/guards/dist/xstate-guards.cjs.js +0 -26
  344. package/dist/styles-font.css2.js +0 -3
  345. package/dist/styles.css2.js +0 -3
package/dist/base/Base.js CHANGED
@@ -1,53 +1,46 @@
1
- import { hasSubObject } from 'remeda';
2
-
3
- const _setDimmed = (v, dimmed) => (v.data.dimmed ?? false) === dimmed ? v : {
4
- ...v,
5
- data: {
6
- ...v.data,
7
- dimmed
8
- }
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { hasSubObject } from "remeda";
3
+ //#region src/base/Base.ts
4
+ var _setDimmed = (v, dimmed) => (v.data.dimmed ?? false) === dimmed ? v : {
5
+ ...v,
6
+ data: {
7
+ ...v.data,
8
+ dimmed
9
+ }
9
10
  };
10
11
  function setDimmed(arg1, arg2) {
11
- if (arg2 !== void 0) {
12
- return _setDimmed(arg1, arg2);
13
- }
14
- return (v) => _setDimmed(v, arg1);
12
+ if (arg2 !== void 0) return _setDimmed(arg1, arg2);
13
+ return (v) => _setDimmed(v, arg1);
15
14
  }
16
- const _setHovered = (v, hovered) => (v.data.hovered ?? false) === hovered ? v : {
17
- ...v,
18
- data: {
19
- ...v.data,
20
- hovered
21
- }
15
+ var _setHovered = (v, hovered) => (v.data.hovered ?? false) === hovered ? v : {
16
+ ...v,
17
+ data: {
18
+ ...v.data,
19
+ hovered
20
+ }
22
21
  };
23
22
  function setHovered(arg1, arg2) {
24
- if (arg2 !== void 0) {
25
- return _setHovered(arg1, arg2);
26
- }
27
- return (v) => _setHovered(v, arg1);
23
+ if (arg2 !== void 0) return _setHovered(arg1, arg2);
24
+ return (v) => _setHovered(v, arg1);
28
25
  }
29
26
  function _setData(value, state) {
30
- if (hasSubObject(value.data, state)) {
31
- return value;
32
- }
33
- return {
34
- ...value,
35
- data: {
36
- ...value.data,
37
- ...state
38
- }
39
- };
27
+ if (hasSubObject(value.data, state)) return value;
28
+ return {
29
+ ...value,
30
+ data: {
31
+ ...value.data,
32
+ ...state
33
+ }
34
+ };
40
35
  }
41
36
  function setData(arg1, arg2) {
42
- if (arg2 !== void 0) {
43
- return _setData(arg1, arg2);
44
- }
45
- return (edge) => _setData(edge, arg1);
37
+ if (arg2 !== void 0) return _setData(arg1, arg2);
38
+ return (edge) => _setData(edge, arg1);
46
39
  }
47
- const Base = {
48
- setDimmed,
49
- setHovered,
50
- setData
40
+ var Base = {
41
+ setDimmed,
42
+ setHovered,
43
+ setData
51
44
  };
52
-
45
+ //#endregion
53
46
  export { Base };
@@ -1,168 +1,138 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { cx } from '@likec4/styles/css';
3
- import { useMantineColorScheme } from '@mantine/core';
4
- import { ReactFlow, useStore } from '@xyflow/react';
5
- import { useMemo } from 'react';
6
- import { useCallbackRef } from '../hooks/useCallbackRef.js';
7
- import { useUpdateEffect } from '../hooks/useUpdateEffect.js';
8
- import { useIsZoomTooSmall, useXYStoreApi } from '../hooks/useXYFlow.js';
9
- import { roundDpr } from '../utils/roundDpr.js';
10
- import { stopPropagation } from '../utils/xyflow.js';
11
- import { Background } from './Background.js';
12
- import { Base } from './Base.js';
13
- import { MinZoom, MaxZoom } from './const.js';
14
-
15
- function BaseXYFlow({
16
- nodes,
17
- edges,
18
- onEdgesChange,
19
- onNodesChange,
20
- className,
21
- pannable = true,
22
- zoomable = true,
23
- nodesSelectable = true,
24
- nodesDraggable = false,
25
- background = "dots",
26
- children,
27
- colorMode,
28
- fitViewPadding = 0,
29
- fitView = true,
30
- zoomOnDoubleClick = false,
31
- onViewportResize,
32
- onMoveEnd,
33
- onNodeMouseEnter,
34
- onNodeMouseLeave,
35
- onEdgeMouseEnter,
36
- onEdgeMouseLeave,
37
- ...props
38
- }) {
39
- const fitViewOptions = useMemo(() => ({
40
- minZoom: MinZoom,
41
- maxZoom: 1,
42
- padding: fitViewPadding,
43
- includeHiddenNodes: false
44
- }), [fitViewPadding]);
45
- const isBgWithPattern = background !== "transparent" && background !== "solid";
46
- const isZoomTooSmall = useIsZoomTooSmall();
47
- const xystore = useXYStoreApi();
48
- const { colorScheme } = useMantineColorScheme();
49
- if (!colorMode) {
50
- colorMode = colorScheme === "auto" ? "system" : colorScheme;
51
- }
52
- return /* @__PURE__ */ jsxs(
53
- ReactFlow,
54
- {
55
- colorMode,
56
- nodes,
57
- edges,
58
- className: cx(
59
- background === "transparent" && "bg-transparent",
60
- className
61
- ),
62
- ...isZoomTooSmall && {
63
- ["data-likec4-zoom-small"]: true
64
- },
65
- zoomOnPinch: zoomable,
66
- zoomOnScroll: !pannable && zoomable,
67
- ...!zoomable && {
68
- zoomActivationKeyCode: null
69
- },
70
- zoomOnDoubleClick,
71
- maxZoom: zoomable ? MaxZoom : 1,
72
- minZoom: zoomable ? MinZoom : 1,
73
- fitView,
74
- fitViewOptions,
75
- preventScrolling: zoomable || pannable,
76
- defaultMarkerColor: "var(--xy-edge-stroke)",
77
- noDragClassName: "nodrag",
78
- noPanClassName: "nopan",
79
- noWheelClassName: "nowheel",
80
- panOnScroll: pannable,
81
- panOnDrag: pannable,
82
- ...!pannable && {
83
- panActivationKeyCode: null,
84
- selectionKeyCode: null
85
- },
86
- elementsSelectable: nodesSelectable,
87
- nodesFocusable: nodesDraggable || nodesSelectable,
88
- edgesFocusable: false,
89
- nodesDraggable,
90
- nodeDragThreshold: 4,
91
- nodeClickDistance: 3,
92
- paneClickDistance: 3,
93
- elevateNodesOnSelect: false,
94
- selectNodesOnDrag: false,
95
- onNodesChange,
96
- onEdgesChange,
97
- onMoveEnd: useCallbackRef((event, { x, y, zoom }) => {
98
- const roundedX = roundDpr(x), roundedY = roundDpr(y);
99
- if (x !== roundedX || y !== roundedY) {
100
- xystore.setState({ transform: [roundedX, roundedY, zoom] });
101
- }
102
- onMoveEnd?.(event, { x: roundedX, y: roundedY, zoom });
103
- }),
104
- onNodeMouseEnter: useCallbackRef((event, node) => {
105
- if (onNodeMouseEnter) {
106
- onNodeMouseEnter(event, node);
107
- return;
108
- }
109
- onNodesChange([{
110
- id: node.id,
111
- type: "replace",
112
- item: Base.setHovered(node, true)
113
- }]);
114
- }),
115
- onNodeMouseLeave: useCallbackRef((event, node) => {
116
- if (onNodeMouseLeave) {
117
- onNodeMouseLeave(event, node);
118
- return;
119
- }
120
- onNodesChange([{
121
- id: node.id,
122
- type: "replace",
123
- item: Base.setHovered(node, false)
124
- }]);
125
- }),
126
- onEdgeMouseEnter: useCallbackRef((event, edge) => {
127
- if (onEdgeMouseEnter) {
128
- onEdgeMouseEnter(event, edge);
129
- return;
130
- }
131
- onEdgesChange([{
132
- id: edge.id,
133
- type: "replace",
134
- item: Base.setHovered(edge, true)
135
- }]);
136
- }),
137
- onEdgeMouseLeave: useCallbackRef((event, edge) => {
138
- if (onEdgeMouseLeave) {
139
- onEdgeMouseLeave(event, edge);
140
- return;
141
- }
142
- onEdgesChange([{
143
- id: edge.id,
144
- type: "replace",
145
- item: Base.setHovered(edge, false)
146
- }]);
147
- }),
148
- onNodeDoubleClick: stopPropagation,
149
- onEdgeDoubleClick: stopPropagation,
150
- ...props,
151
- children: [
152
- isBgWithPattern && /* @__PURE__ */ jsx(Background, { background }),
153
- onViewportResize && /* @__PURE__ */ jsx(ViewportResizeHanlder, { onViewportResize }),
154
- children
155
- ]
156
- }
157
- );
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { Background as Background$1 } from "./Background.js";
3
+ import { useCallbackRef } from "../hooks/useCallbackRef.js";
4
+ import { useUpdateEffect } from "../hooks/useUpdateEffect.js";
5
+ import { useIsZoomTooSmall, useXYStoreApi } from "../hooks/useXYFlow.js";
6
+ import { roundDpr } from "../utils/roundDpr.js";
7
+ import { stopPropagation } from "../utils/xyflow.js";
8
+ import { Base } from "./Base.js";
9
+ import { MinZoom } from "./const.js";
10
+ import { cx } from "@likec4/styles/css";
11
+ import { useMemo } from "react";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { ReactFlow, useStore } from "@xyflow/react";
14
+ import { useMantineColorScheme } from "@mantine/core";
15
+ //#region src/base/BaseXYFlow.tsx
16
+ function BaseXYFlow({ nodes, edges, onEdgesChange, onNodesChange, className, pannable = true, zoomable = true, nodesSelectable = true, nodesDraggable = false, background = "dots", children, colorMode, fitViewPadding = 0, fitView = true, zoomOnDoubleClick = false, onViewportResize, onMoveEnd, onNodeMouseEnter, onNodeMouseLeave, onEdgeMouseEnter, onEdgeMouseLeave, ...props }) {
17
+ const fitViewOptions = useMemo(() => ({
18
+ minZoom: MinZoom,
19
+ maxZoom: 1,
20
+ padding: fitViewPadding,
21
+ includeHiddenNodes: false
22
+ }), [fitViewPadding]);
23
+ const isBgWithPattern = background !== "transparent" && background !== "solid";
24
+ const isZoomTooSmall = useIsZoomTooSmall();
25
+ const xystore = useXYStoreApi();
26
+ const { colorScheme } = useMantineColorScheme();
27
+ if (!colorMode) colorMode = colorScheme === "auto" ? "system" : colorScheme;
28
+ return /* @__PURE__ */ jsxs(ReactFlow, {
29
+ colorMode,
30
+ nodes,
31
+ edges,
32
+ className: cx(background === "transparent" && "bg-transparent", className),
33
+ ...isZoomTooSmall && { ["data-likec4-zoom-small"]: true },
34
+ zoomOnPinch: zoomable,
35
+ zoomOnScroll: !pannable && zoomable,
36
+ ...!zoomable && { zoomActivationKeyCode: null },
37
+ zoomOnDoubleClick,
38
+ maxZoom: zoomable ? 3 : 1,
39
+ minZoom: zoomable ? MinZoom : 1,
40
+ fitView,
41
+ fitViewOptions,
42
+ preventScrolling: zoomable || pannable,
43
+ defaultMarkerColor: "var(--xy-edge-stroke)",
44
+ noDragClassName: "nodrag",
45
+ noPanClassName: "nopan",
46
+ noWheelClassName: "nowheel",
47
+ panOnScroll: pannable,
48
+ panOnDrag: pannable,
49
+ ...!pannable && {
50
+ panActivationKeyCode: null,
51
+ selectionKeyCode: null
52
+ },
53
+ elementsSelectable: nodesSelectable,
54
+ nodesFocusable: nodesDraggable || nodesSelectable,
55
+ edgesFocusable: false,
56
+ nodesDraggable,
57
+ nodeDragThreshold: 4,
58
+ nodeClickDistance: 3,
59
+ paneClickDistance: 3,
60
+ elevateNodesOnSelect: false,
61
+ selectNodesOnDrag: false,
62
+ onNodesChange,
63
+ onEdgesChange,
64
+ onMoveEnd: useCallbackRef((event, { x, y, zoom }) => {
65
+ const roundedX = roundDpr(x);
66
+ const roundedY = roundDpr(y);
67
+ if (x !== roundedX || y !== roundedY) xystore.setState({ transform: [
68
+ roundedX,
69
+ roundedY,
70
+ zoom
71
+ ] });
72
+ onMoveEnd?.(event, {
73
+ x: roundedX,
74
+ y: roundedY,
75
+ zoom
76
+ });
77
+ }),
78
+ onNodeMouseEnter: useCallbackRef((event, node) => {
79
+ if (onNodeMouseEnter) {
80
+ onNodeMouseEnter(event, node);
81
+ return;
82
+ }
83
+ onNodesChange([{
84
+ id: node.id,
85
+ type: "replace",
86
+ item: Base.setHovered(node, true)
87
+ }]);
88
+ }),
89
+ onNodeMouseLeave: useCallbackRef((event, node) => {
90
+ if (onNodeMouseLeave) {
91
+ onNodeMouseLeave(event, node);
92
+ return;
93
+ }
94
+ onNodesChange([{
95
+ id: node.id,
96
+ type: "replace",
97
+ item: Base.setHovered(node, false)
98
+ }]);
99
+ }),
100
+ onEdgeMouseEnter: useCallbackRef((event, edge) => {
101
+ if (onEdgeMouseEnter) {
102
+ onEdgeMouseEnter(event, edge);
103
+ return;
104
+ }
105
+ onEdgesChange([{
106
+ id: edge.id,
107
+ type: "replace",
108
+ item: Base.setHovered(edge, true)
109
+ }]);
110
+ }),
111
+ onEdgeMouseLeave: useCallbackRef((event, edge) => {
112
+ if (onEdgeMouseLeave) {
113
+ onEdgeMouseLeave(event, edge);
114
+ return;
115
+ }
116
+ onEdgesChange([{
117
+ id: edge.id,
118
+ type: "replace",
119
+ item: Base.setHovered(edge, false)
120
+ }]);
121
+ }),
122
+ onNodeDoubleClick: stopPropagation,
123
+ onEdgeDoubleClick: stopPropagation,
124
+ ...props,
125
+ children: [
126
+ isBgWithPattern && /* @__PURE__ */ jsx(Background$1, { background }),
127
+ onViewportResize && /* @__PURE__ */ jsx(ViewportResizeHanlder, { onViewportResize }),
128
+ children
129
+ ]
130
+ });
158
131
  }
159
- const selectDimensions = ({ width, height }) => (width || 1) * (height || 1);
160
- const ViewportResizeHanlder = ({
161
- onViewportResize
162
- }) => {
163
- const square = useStore(selectDimensions);
164
- useUpdateEffect(onViewportResize, [square]);
165
- return null;
132
+ var selectDimensions = ({ width, height }) => (width || 1) * (height || 1);
133
+ var ViewportResizeHanlder = ({ onViewportResize }) => {
134
+ useUpdateEffect(onViewportResize, [useStore(selectDimensions)]);
135
+ return null;
166
136
  };
167
-
137
+ //#endregion
168
138
  export { BaseXYFlow };
@@ -1,21 +1,20 @@
1
- const ZIndexes = {
2
- Compound: 1,
3
- // XYFlow increments zIndexes of compounds
4
- Edge: 20,
5
- Element: 20,
6
- Max: 30
1
+ //#region src/base/const.ts
2
+ var ZIndexes = {
3
+ Compound: 1,
4
+ Edge: 20,
5
+ EdgeLabel: 25,
6
+ Element: 20,
7
+ Max: 30
7
8
  };
8
- const MinZoom = 0.05;
9
- const MaxZoom = 3;
10
- const FitViewPaddings = {
11
- default: "16px",
12
- withControls: {
13
- top: "58px",
14
- left: "16px",
15
- right: "16px",
16
- bottom: "16px"
17
- }
9
+ var MinZoom = .05;
10
+ var FitViewPaddings = {
11
+ default: "16px",
12
+ withControls: {
13
+ top: "58px",
14
+ left: "16px",
15
+ right: "16px",
16
+ bottom: "16px"
17
+ }
18
18
  };
19
- const MAX_COMPOUND_DEPTH = 5;
20
-
21
- export { FitViewPaddings, MAX_COMPOUND_DEPTH, MaxZoom, MinZoom, ZIndexes };
19
+ //#endregion
20
+ export { FitViewPaddings, MinZoom, ZIndexes };
@@ -1,62 +1,43 @@
1
- import { deepEqual } from 'fast-equals';
2
- import { isDefined, hasSubObject, pickBy, isShallowEqual } from 'remeda';
3
-
4
- const EMPTY_OBJ = {};
1
+ import "../_virtual/_rolldown/runtime.js";
2
+ import { deepEqual } from "fast-equals";
3
+ import { hasSubObject, isDefined, isShallowEqual, pickBy } from "remeda";
4
+ //#region src/base/updateEdges.ts
5
+ var EMPTY_OBJ = {};
5
6
  function _update(current, updated) {
6
- if (current === updated) {
7
- return current;
8
- }
9
- updated = updated.map((update) => {
10
- const existing = current.find(
11
- (n) => n.id === update.id && n.type === update.type && n.source === update.source && n.target === update.target
12
- );
13
- if (!existing) {
14
- return update;
15
- }
16
- if (existing === update) {
17
- return existing;
18
- }
19
- const isSameData = hasSubObject(existing.data, update.data);
20
- let data = isSameData ? existing.data : update.data;
21
- if (!isSameData) {
22
- if (isDefined(existing.data.hovered) && !isDefined(update.data.hovered)) {
23
- data = {
24
- ...data,
25
- hovered: existing.data.hovered
26
- };
27
- }
28
- if (isDefined(existing.data.dimmed) && !isDefined(update.data.dimmed)) {
29
- data = {
30
- ...data,
31
- dimmed: existing.data.dimmed
32
- };
33
- }
34
- if (isDefined(existing.data.active) && !isDefined(update.data.active)) {
35
- data = {
36
- ...data,
37
- active: existing.data.active
38
- };
39
- }
40
- }
41
- if (isSameData && deepEqual(existing.hidden, update.hidden ?? existing.hidden) && deepEqual(existing.selected, update.selected ?? existing.selected) && deepEqual(existing.selectable, update.selectable ?? existing.selectable) && deepEqual(existing.focusable, update.focusable ?? existing.focusable) && deepEqual(existing.animated, update.animated ?? existing.animated) && deepEqual(existing.className, update.className) && deepEqual(existing.zIndex, update.zIndex ?? existing.zIndex) && deepEqual(existing.label, update.label) && deepEqual(existing.sourceHandle, update.sourceHandle) && deepEqual(existing.targetHandle, update.targetHandle) && deepEqual(existing.style ?? EMPTY_OBJ, update.style ?? EMPTY_OBJ)) {
42
- return existing;
43
- }
44
- return {
45
- // Retain existing properties that are defined, except parentId
46
- ...pickBy(existing, isDefined),
47
- // Apply updates, omitting undefined values
48
- ...pickBy(update, isDefined),
49
- data
50
- };
51
- });
52
- return isShallowEqual(current, updated) ? current : updated;
7
+ if (current === updated) return current;
8
+ updated = updated.map((update) => {
9
+ const existing = current.find((n) => n.id === update.id && n.type === update.type && n.source === update.source && n.target === update.target);
10
+ if (!existing) return update;
11
+ if (existing === update) return existing;
12
+ const isSameData = hasSubObject(existing.data, update.data);
13
+ let data = isSameData ? existing.data : update.data;
14
+ if (!isSameData) {
15
+ if (isDefined(existing.data.hovered) && !isDefined(update.data.hovered)) data = {
16
+ ...data,
17
+ hovered: existing.data.hovered
18
+ };
19
+ if (isDefined(existing.data.dimmed) && !isDefined(update.data.dimmed)) data = {
20
+ ...data,
21
+ dimmed: existing.data.dimmed
22
+ };
23
+ if (isDefined(existing.data.active) && !isDefined(update.data.active)) data = {
24
+ ...data,
25
+ active: existing.data.active
26
+ };
27
+ }
28
+ if (isSameData && deepEqual(existing.hidden, update.hidden ?? existing.hidden) && deepEqual(existing.selected, update.selected ?? existing.selected) && deepEqual(existing.selectable, update.selectable ?? existing.selectable) && deepEqual(existing.focusable, update.focusable ?? existing.focusable) && deepEqual(existing.animated, update.animated ?? existing.animated) && deepEqual(existing.className, update.className) && deepEqual(existing.zIndex, update.zIndex ?? existing.zIndex) && deepEqual(existing.label, update.label) && deepEqual(existing.sourceHandle, update.sourceHandle) && deepEqual(existing.targetHandle, update.targetHandle) && deepEqual(existing.style ?? EMPTY_OBJ, update.style ?? EMPTY_OBJ)) return existing;
29
+ return {
30
+ ...pickBy(existing, isDefined),
31
+ ...pickBy(update, isDefined),
32
+ data
33
+ };
34
+ });
35
+ return isShallowEqual(current, updated) ? current : updated;
53
36
  }
54
37
  function updateEdges(current, update) {
55
- if (isDefined(update)) {
56
- return _update(current, update);
57
- }
58
- update = current;
59
- return (current2) => _update(current2, update);
38
+ if (isDefined(update)) return _update(current, update);
39
+ update = current;
40
+ return (current) => _update(current, update);
60
41
  }
61
-
42
+ //#endregion
62
43
  export { updateEdges };