@likec4/diagram 1.30.0 → 1.31.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 (266) hide show
  1. package/README.md +324 -5
  2. package/bundle/chunk-BBzMXzCg.js +21383 -0
  3. package/bundle/custom.js +62 -0
  4. package/bundle/index.js +17459 -38163
  5. package/dist/LikeC4CustomColors.js +2 -2
  6. package/dist/LikeC4Diagram.d.ts +1 -1
  7. package/dist/LikeC4Diagram.js +4 -2
  8. package/dist/LikeC4Diagram.props.d.ts +6 -1
  9. package/dist/LikeC4ModelProvider.d.ts +3 -3
  10. package/dist/LikeC4ModelProvider.js +0 -1
  11. package/dist/StaticLikeC4Diagram.d.ts +1 -1
  12. package/dist/base/BaseXYFlow.js +3 -3
  13. package/dist/base/primitives/compound/CompoundActionButton.d.ts +3 -2
  14. package/dist/base/primitives/compound/CompoundDetailsButton.d.ts +3 -2
  15. package/dist/base/primitives/compound/CompoundNodeContainer.d.ts +7 -3
  16. package/dist/base/primitives/compound/CompoundNodeContainer.js +3 -2
  17. package/dist/base/primitives/customEdge.d.ts +2 -35
  18. package/dist/base/primitives/customEdge.js +2 -2
  19. package/dist/base/primitives/customNode.d.ts +2 -2
  20. package/dist/base/primitives/customNode.js +9 -2
  21. package/dist/base/primitives/edge/EdgeContainer.js +0 -1
  22. package/dist/base/primitives/edge/EdgeLabel.js +0 -1
  23. package/dist/base/primitives/edge/EdgeLabelContainer.js +0 -2
  24. package/dist/base/primitives/edge/EdgePath.js +2 -2
  25. package/dist/base/primitives/element/ElementNodeContainer.d.ts +24 -22
  26. package/dist/base/primitives/element/ElementNodeContainer.js +66 -68
  27. package/dist/base/primitives/element/ElementShape.d.ts +8 -4
  28. package/dist/base/primitives/element/ElementShape.js +4 -3
  29. package/dist/base/primitives/element/ElementTitle.css.d.ts +1 -1
  30. package/dist/base/primitives/element/ElementTitle.js +0 -1
  31. package/dist/base/types.d.ts +5 -5
  32. package/dist/bundle/LikeC4View.js +6 -3
  33. package/dist/bundle/LikeC4View.props.d.ts +5 -1
  34. package/dist/bundle/ReactLikeC4.js +1 -2
  35. package/dist/bundle/ShadowRoot.js +3 -3
  36. package/dist/bundle/custom.d.ts +1 -0
  37. package/dist/bundle/index.d.ts +3 -1
  38. package/dist/bundle/index.js +9 -0
  39. package/dist/bundle/styles.css.js +5 -5
  40. package/dist/components/SearchControl.js +2 -2
  41. package/dist/context/ControlsCustomLayout.js +0 -1
  42. package/dist/context/DiagramEventHandlers.js +5 -5
  43. package/dist/context/DiagramFeatures.d.ts +2 -4
  44. package/dist/context/DiagramFeatures.js +15 -16
  45. package/dist/context/EnsureMantine.js +9 -4
  46. package/dist/context/FramerMotionConfig.js +0 -1
  47. package/dist/context/IconRenderer.js +7 -7
  48. package/dist/context/ReduceGraphics.js +6 -6
  49. package/dist/context/RootContainer.js +5 -5
  50. package/dist/context/index.d.ts +1 -1
  51. package/dist/custom/components.d.ts +5 -0
  52. package/dist/custom/customNodes.d.ts +218 -0
  53. package/dist/custom/hooks.d.ts +10 -0
  54. package/dist/custom/index.d.ts +4 -0
  55. package/dist/hooks/safeContext.js +3 -3
  56. package/dist/hooks/useCurrentViewId.d.ts +5 -1
  57. package/dist/hooks/useCurrentViewId.js +1 -2
  58. package/dist/hooks/useDiagram.d.ts +14 -12544
  59. package/dist/hooks/useDiagram.js +3 -5
  60. package/dist/hooks/useMantinePortalProps.js +2 -2
  61. package/dist/hooks/useSetState.js +3 -3
  62. package/dist/hooks/useUpdateEffect.js +0 -1
  63. package/dist/hooks/useXYFlow.d.ts +64 -64
  64. package/dist/hooks/useXYFlow.js +2 -2
  65. package/dist/index.d.ts +2 -4
  66. package/dist/index.js +8 -3
  67. package/dist/likec4diagram/DiagramUI.js +2 -2
  68. package/dist/likec4diagram/DiagramXYFlow.d.ts +1 -1
  69. package/dist/likec4diagram/DiagramXYFlow.js +25 -7
  70. package/dist/likec4diagram/custom/edges/NotePopover.js +2 -2
  71. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +9 -13
  72. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -8
  73. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +14 -12
  74. package/dist/likec4diagram/custom/index.d.ts +15 -19
  75. package/dist/likec4diagram/custom/index.js +3 -3
  76. package/dist/likec4diagram/custom/nodes/CompoundActions.js +2 -2
  77. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +27 -4
  78. package/dist/likec4diagram/custom/nodes/ElementActions.js +67 -53
  79. package/dist/likec4diagram/custom/nodes/index.d.ts +8 -0
  80. package/dist/likec4diagram/custom/nodes/nodes.d.ts +10 -0
  81. package/dist/likec4diagram/custom/nodes/{nodeTypes.js → nodes.js} +39 -39
  82. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +2 -2
  83. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +6 -7
  84. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +3 -3
  85. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +3 -2
  86. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +2 -2
  87. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +2 -2
  88. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  89. package/dist/likec4diagram/types.d.ts +15 -7
  90. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +4 -4
  91. package/dist/likec4diagram/ui/controls/Controls.js +2 -2
  92. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +2 -2
  93. package/dist/likec4diagram/ui/notation/NotationPanel.js +6 -8
  94. package/dist/likec4diagram/ui/search/ElementsColumn.js +6 -7
  95. package/dist/likec4diagram/ui/search/LikeC4Search.js +3 -3
  96. package/dist/likec4diagram/ui/search/SearchInput.js +0 -1
  97. package/dist/likec4diagram/ui/search/_shared.css.d.ts +1 -1
  98. package/dist/likec4diagram/ui/search/state.js +3 -4
  99. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +4 -4
  100. package/dist/likec4diagram/useLayoutConstraints.js +3 -4
  101. package/dist/likec4diagram/useViewToNodesEdges.js +2 -0
  102. package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
  103. package/dist/likec4model/LikeC4ModelContext.js +2 -2
  104. package/dist/likec4model/useLikeC4ElementsTree.d.ts +1 -1
  105. package/dist/likec4model/useLikeC4ElementsTree.js +3 -3
  106. package/dist/likec4model/useLikeC4Model.d.ts +1 -1
  107. package/dist/likec4model/useLikeC4Model.js +2 -2
  108. package/dist/overlays/Overlays.d.ts +2 -3
  109. package/dist/overlays/Overlays.js +5 -6
  110. package/dist/overlays/element-details/ElementDetailsCard.css.js +13 -9
  111. package/dist/overlays/element-details/ElementDetailsCard.js +98 -105
  112. package/dist/overlays/element-details/TabPanelDeployments.js +4 -4
  113. package/dist/overlays/element-details/TabPanelRelationships.js +2 -2
  114. package/dist/overlays/element-details/TabPanelStructure.js +3 -3
  115. package/dist/overlays/element-details/actor.d.ts +6905 -19690
  116. package/dist/overlays/element-details/actor.js +0 -2
  117. package/dist/overlays/element-details/actorContext.js +3 -3
  118. package/dist/overlays/overlay/Overlay.d.ts +11 -1
  119. package/dist/overlays/overlay/Overlay.js +8 -8
  120. package/dist/overlays/overlaysActor.d.ts +4 -2
  121. package/dist/overlays/overlaysActor.js +2 -1
  122. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +4 -8
  123. package/dist/overlays/relationship-details/RelationshipDetails.js +12 -12
  124. package/dist/overlays/relationship-details/SelectEdge.js +2 -3
  125. package/dist/overlays/relationship-details/_types.d.ts +6 -5
  126. package/dist/overlays/relationship-details/actor.d.ts +3 -3
  127. package/dist/overlays/relationship-details/compute.js +3 -3
  128. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +4 -8
  129. package/dist/overlays/relationship-details/custom/edgeTypes.js +2 -2
  130. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +3 -31
  131. package/dist/overlays/relationship-details/hooks.d.ts +27 -27
  132. package/dist/overlays/relationship-details/hooks.js +4 -4
  133. package/dist/overlays/relationship-details/layout.js +2 -3
  134. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +4 -8
  135. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +8 -8
  136. package/dist/overlays/relationships-browser/SelectElement.js +5 -5
  137. package/dist/overlays/relationships-browser/_types.d.ts +6 -5
  138. package/dist/overlays/relationships-browser/actor.d.ts +63 -428
  139. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +4 -8
  140. package/dist/overlays/relationships-browser/custom/edgeTypes.js +2 -2
  141. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +10 -14
  142. package/dist/overlays/relationships-browser/custom/nodeTypes.js +1 -2
  143. package/dist/overlays/relationships-browser/hooks.d.ts +4 -61
  144. package/dist/overlays/relationships-browser/hooks.js +4 -4
  145. package/dist/overlays/relationships-browser/layout.js +3 -4
  146. package/dist/state/DiagramActorProvider.js +3 -3
  147. package/dist/state/diagram-machine.d.ts +186 -10369
  148. package/dist/state/diagram-machine.js +2 -1
  149. package/dist/state/hotkeyActor.d.ts +4 -2
  150. package/dist/state/syncManualLayoutActor.d.ts +14 -3
  151. package/dist/state/syncManualLayoutActor.js +2 -1
  152. package/dist/state/types.d.ts +5 -4
  153. package/dist/state/utils.d.ts +1 -1
  154. package/dist/styles-font.css +1 -0
  155. package/dist/styles-min.css +1 -0
  156. package/dist/styles-xyflow.css +1 -0
  157. package/dist/styles.css +1 -0
  158. package/dist/styles.css2.js +3 -0
  159. package/package.json +46 -21
  160. package/panda.buildinfo.json +979 -0
  161. package/src/LikeC4Diagram.props.ts +7 -1
  162. package/src/LikeC4Diagram.tsx +2 -0
  163. package/src/LikeC4ModelProvider.tsx +3 -3
  164. package/src/StaticLikeC4Diagram.tsx +1 -0
  165. package/src/base/Background.tsx +0 -4
  166. package/src/base/primitives/compound/CompoundActionButton.tsx +7 -4
  167. package/src/base/primitives/compound/CompoundDetailsButton.tsx +7 -4
  168. package/src/base/primitives/compound/CompoundNodeContainer.tsx +8 -7
  169. package/src/base/primitives/customEdge.ts +1 -1
  170. package/src/base/primitives/{customNode.ts → customNode.tsx} +11 -3
  171. package/src/base/primitives/element/ElementNodeContainer.tsx +87 -80
  172. package/src/base/primitives/element/ElementShape.tsx +11 -10
  173. package/src/base/types.ts +28 -33
  174. package/src/bundle/LikeC4View.props.ts +6 -1
  175. package/src/bundle/LikeC4View.tsx +3 -0
  176. package/src/bundle/ReactLikeC4.tsx +1 -1
  177. package/src/bundle/custom.ts +1 -0
  178. package/src/bundle/index.ts +20 -1
  179. package/src/bundle/styles.css.ts +1 -1
  180. package/src/components/SearchControl.tsx +1 -1
  181. package/src/context/DiagramFeatures.tsx +12 -8
  182. package/src/context/EnsureMantine.tsx +13 -3
  183. package/src/context/IconRenderer.tsx +1 -1
  184. package/src/context/ReduceGraphics.tsx +6 -6
  185. package/src/context/index.ts +0 -1
  186. package/src/custom/components.ts +47 -0
  187. package/src/custom/customNodes.tsx +244 -0
  188. package/src/custom/hooks.ts +35 -0
  189. package/src/custom/index.ts +5 -0
  190. package/src/hooks/useCurrentViewId.ts +9 -1
  191. package/src/hooks/useDiagram.ts +30 -9
  192. package/src/index.ts +4 -8
  193. package/src/likec4diagram/DiagramXYFlow.tsx +28 -5
  194. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +1 -1
  195. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +9 -7
  196. package/src/likec4diagram/custom/{index.tsx → index.ts} +2 -2
  197. package/src/likec4diagram/custom/nodes/CompoundActions.tsx +2 -2
  198. package/src/likec4diagram/custom/nodes/ElementActions.tsx +100 -57
  199. package/src/likec4diagram/custom/nodes/index.ts +17 -0
  200. package/src/likec4diagram/custom/nodes/{nodeTypes.tsx → nodes.tsx} +52 -36
  201. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +3 -4
  202. package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +3 -3
  203. package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +5 -4
  204. package/src/likec4diagram/types.ts +19 -9
  205. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +1 -1
  206. package/src/likec4diagram/ui/notation/NotationPanel.tsx +1 -2
  207. package/src/likec4diagram/ui/search/ElementsColumn.tsx +2 -4
  208. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.tsx +1 -1
  209. package/src/likec4diagram/useViewToNodesEdges.ts +2 -0
  210. package/src/likec4model/LikeC4ModelContext.ts +2 -2
  211. package/src/likec4model/useLikeC4ElementsTree.ts +3 -1
  212. package/src/likec4model/useLikeC4Model.ts +1 -1
  213. package/src/overlays/Overlays.tsx +2 -3
  214. package/src/overlays/element-details/ElementDetailsCard.css.ts +14 -22
  215. package/src/overlays/element-details/ElementDetailsCard.tsx +18 -16
  216. package/src/overlays/overlay/Overlay.tsx +3 -4
  217. package/src/overlays/overlaysActor.ts +4 -3
  218. package/src/overlays/relationship-details/RelationshipDetails.tsx +1 -1
  219. package/src/overlays/relationship-details/SelectEdge.tsx +0 -2
  220. package/src/overlays/relationship-details/_types.ts +16 -13
  221. package/src/overlays/relationship-details/custom/edgeTypes.tsx +2 -2
  222. package/src/overlays/relationships-browser/_types.ts +18 -15
  223. package/src/overlays/relationships-browser/actor.ts +2 -2
  224. package/src/overlays/relationships-browser/custom/edgeTypes.tsx +2 -2
  225. package/src/overlays/relationships-browser/custom/nodeTypes.tsx +1 -2
  226. package/src/state/DiagramActorProvider.tsx +2 -2
  227. package/src/state/diagram-machine.ts +13 -8
  228. package/src/state/hotkeyActor.ts +4 -2
  229. package/src/state/syncManualLayoutActor.ts +9 -3
  230. package/src/state/types.ts +9 -3
  231. package/src/state/utils.ts +3 -3
  232. package/src/styles-min.css +2 -0
  233. package/src/styles-xyflow.css +1 -0
  234. package/dist/_virtual/_commonjsHelpers.js +0 -5
  235. package/dist/_virtual/default-map.js +0 -7
  236. package/dist/_virtual/index.js +0 -5
  237. package/dist/_virtual/index2.js +0 -3
  238. package/dist/_virtual/react.production.js +0 -3
  239. package/dist/_virtual/set.js +0 -5
  240. package/dist/_virtual/set2.js +0 -3
  241. package/dist/base/xyflowMachine.d.ts +0 -212
  242. package/dist/likec4diagram/custom/nodes/nodeTypes.d.ts +0 -8
  243. package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/default-map.js +0 -172
  244. package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/set.js +0 -369
  245. package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react.production.js +0 -556
  246. package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/index.js +0 -15
  247. package/dist/packages/core/src/compute-view/relationships-view/compute.js +0 -123
  248. package/dist/packages/core/src/compute-view/relationships-view/utils.js +0 -68
  249. package/dist/packages/core/src/errors/index.js +0 -15
  250. package/dist/packages/core/src/model/connection/model/ConnectionModel.js +0 -121
  251. package/dist/packages/core/src/model/connection/model/find.js +0 -39
  252. package/dist/packages/core/src/model/connection/ops.js +0 -7
  253. package/dist/packages/core/src/utils/const.js +0 -3
  254. package/dist/packages/core/src/utils/fqn.js +0 -51
  255. package/dist/packages/core/src/utils/guards.js +0 -7
  256. package/dist/packages/core/src/utils/iterable/filter.js +0 -21
  257. package/dist/packages/core/src/utils/iterable/find.js +0 -21
  258. package/dist/packages/core/src/utils/iterable/map.js +0 -18
  259. package/dist/packages/core/src/utils/iterable/some.js +0 -21
  260. package/dist/packages/core/src/utils/iterable/to.js +0 -14
  261. package/dist/packages/core/src/utils/set.js +0 -48
  262. package/dist/packages/core/src/utils/string-hash.js +0 -13
  263. package/dist/styles.css.js +0 -3
  264. package/src/base/xyflowMachine.ts +0 -75
  265. /package/dist/{bundle/font.css.js → styles-font.css2.js} +0 -0
  266. /package/src/{bundle/font.css → styles-font.css} +0 -0
@@ -3,7 +3,7 @@ import { invariant, defaultTheme } from '@likec4/core';
3
3
  import { Tooltip as Tooltip$1, ActionIcon } from '@mantine/core';
4
4
  import { useCallbackRef } from '@mantine/hooks';
5
5
  import { IconFileSymlink, IconTransform } from '@tabler/icons-react';
6
- import { r as reactExports } from '../../../../_virtual/index.js';
6
+ import { useState } from 'react';
7
7
  import { keys } from 'remeda';
8
8
  import { useDiagram } from '../../../../hooks/useDiagram.js';
9
9
  import { useDiagramEventHandlers } from '../../../../context/DiagramEventHandlers.js';
@@ -36,7 +36,7 @@ const Tooltip = Tooltip$1.withProps({
36
36
  function useHandlers(target, props) {
37
37
  const { onChange: triggerOnChange } = useDiagramEventHandlers();
38
38
  const diagram = useDiagram();
39
- const [originalColor, setOriginalColor] = reactExports.useState(null);
39
+ const [originalColor, setOriginalColor] = useState(null);
40
40
  const onColorPreview = useCallbackRef((color) => {
41
41
  if (color === null) {
42
42
  invariant(originalColor, "originalColor is null");
@@ -1,18 +1,21 @@
1
1
  import { DiagramEdge, DiagramNode, Fqn, IconUrl, ViewId } from '@likec4/core';
2
2
  import { XYPosition } from '@xyflow/system';
3
3
  import { OptionalKeysOf, Simplify } from 'type-fest';
4
- import { Base } from '../base';
5
- import { ReactFlowEdge, ReactFlowNode } from '../base/types';
4
+ import { Base, ReactFlowEdge, ReactFlowNode } from '../base/types';
6
5
  type NonOptional<T extends object> = Simplify<{
7
6
  [P in Exclude<keyof T, OptionalKeysOf<T>>]: T[P];
8
7
  } & {
9
8
  [P in OptionalKeysOf<T>]-?: T[P] | undefined;
10
9
  }>;
11
10
  export declare namespace Types {
12
- type LeafNodeData = Base.NodeData<NonOptional<Pick<DiagramNode, 'id' | 'title' | 'technology' | 'description' | 'color' | 'shape' | 'width' | 'level' | 'height' | 'style' | 'position'>> & {
11
+ type LeafNodeData = Base.NodeData & NonOptional<Pick<DiagramNode, 'id' | 'title' | 'technology' | 'description' | 'color' | 'shape' | 'width' | 'level' | 'height' | 'style' | 'position'>> & {
12
+ /**
13
+ * View this node belongs to
14
+ */
15
+ viewId: ViewId;
13
16
  isMultiple?: boolean | undefined;
14
17
  icon: string | null;
15
- }>;
18
+ };
16
19
  /**
17
20
  * Represents element from logical model
18
21
  */
@@ -32,10 +35,14 @@ export declare namespace Types {
32
35
  deploymentFqn: Fqn;
33
36
  modelFqn: Fqn | null;
34
37
  };
35
- type CompoundNodeData = Base.NodeData<NonOptional<Pick<DiagramNode, 'id' | 'title' | 'color' | 'shape' | 'style' | 'position'>> & {
38
+ type CompoundNodeData = Base.NodeData & NonOptional<Pick<DiagramNode, 'id' | 'title' | 'color' | 'shape' | 'style' | 'position'>> & {
39
+ /**
40
+ * View this node belongs to
41
+ */
42
+ viewId: ViewId;
36
43
  depth: number;
37
44
  icon?: IconUrl;
38
- }>;
45
+ };
39
46
  type CompoundElementNodeData = CompoundNodeData & {
40
47
  modelFqn: Fqn;
41
48
  deploymentFqn?: never;
@@ -65,11 +72,12 @@ export declare namespace Types {
65
72
  type ViewGroupNode = ReactFlowNode<ViewGroupNodeData, 'view-group'>;
66
73
  type Node = ElementNode | DeploymentElementNode | CompoundElementNode | CompoundDeploymentNode | ViewGroupNode;
67
74
  type NodeData = Node['data'];
68
- type RelationshipEdgeData = Base.EdgeData<NonOptional<Pick<DiagramEdge, 'id' | 'label' | 'labelBBox' | 'technology' | 'points' | 'dir' | 'color' | 'line' | 'head' | 'tail' | 'navigateTo' | 'notes'>> & {
75
+ type RelationshipEdgeData = Simplify<Base.EdgeData & NonOptional<Pick<DiagramEdge, 'id' | 'label' | 'labelBBox' | 'technology' | 'points' | 'dir' | 'color' | 'line' | 'head' | 'tail' | 'navigateTo' | 'notes'>> & {
69
76
  labelXY: XYPosition | null;
70
77
  controlPoints: XYPosition[] | undefined | null;
71
78
  }>;
72
79
  type RelationshipEdge = ReactFlowEdge<RelationshipEdgeData, 'relationship'>;
73
80
  type Edge = RelationshipEdge;
81
+ type EdgeData = RelationshipEdgeData;
74
82
  }
75
83
  export {};
@@ -3,7 +3,7 @@ import { Popover, PopoverTarget, PopoverDropdown, Box, FloatingIndicator, Text,
3
3
  import { useHover, useUncontrolled, clampUseMovePosition, useMove, useMergedRef } from '@mantine/hooks';
4
4
  import { useDebouncedCallback } from '@react-hookz/web';
5
5
  import { IconLayoutDashboard } from '@tabler/icons-react';
6
- import { r as reactExports } from '../../../_virtual/index.js';
6
+ import { useState, forwardRef } from 'react';
7
7
  import { useDiagram, useDiagramContext } from '../../../hooks/useDiagram.js';
8
8
  import { Tooltip, ActionIcon } from './_shared.js';
9
9
  import { autolayoutIndicator, autolayoutButton, spacingSliderBody, spacingSliderThumb } from './styles.css.js';
@@ -18,8 +18,8 @@ const ChangeAutoLayoutButton = (props) => {
18
18
  onChange
19
19
  } = useDiagramEventHandlers();
20
20
  const diagram = useDiagram();
21
- const [rootRef, setRootRef] = reactExports.useState(null);
22
- const [controlsRefs, setControlsRefs] = reactExports.useState({});
21
+ const [rootRef, setRootRef] = useState(null);
22
+ const [controlsRefs, setControlsRefs] = useState({});
23
23
  const {
24
24
  autoLayout,
25
25
  viewId
@@ -103,7 +103,7 @@ const ChangeAutoLayoutButton = (props) => {
103
103
  );
104
104
  };
105
105
  const MAX_SPACING = 400;
106
- const SpacingSliders = reactExports.forwardRef(({
106
+ const SpacingSliders = forwardRef(({
107
107
  isVertical,
108
108
  nodeSep,
109
109
  rankSep,
@@ -3,7 +3,7 @@ import { cx } from '@likec4/styles/css';
3
3
  import { ActionIconGroup, Group, Stack, Box, Badge, Loader } from '@mantine/core';
4
4
  import { IconFileSymlink, IconFocusCentered, IconMenu2 } from '@tabler/icons-react';
5
5
  import { m, LayoutGroup } from 'motion/react';
6
- import { r as reactExports } from '../../../_virtual/index.js';
6
+ import { memo } from 'react';
7
7
  import { useControlsCustomLayout } from '../../../context/ControlsCustomLayout.js';
8
8
  import { useDiagramContext, useDiagram, useDiagramSyncLayoutState } from '../../../hooks/useDiagram.js';
9
9
  import { LikeC4Search } from '../search/LikeC4Search.js';
@@ -70,7 +70,7 @@ const ControlsDefaultLayout = ({
70
70
  ]
71
71
  }
72
72
  );
73
- const Controls = reactExports.memo(() => {
73
+ const Controls = memo(() => {
74
74
  const { viewId, hasLayoutDrift, viewportChanged, isNotActiveWalkthrough } = useDiagramContext((c) => ({
75
75
  viewId: c.view.id,
76
76
  hasLayoutDrift: c.view.hasLayoutDrift ?? false,
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { cx } from '@likec4/styles/css';
2
3
  import { Card, CardSection, Button, Group, Text, Spoiler, Stack } from '@mantine/core';
3
4
  import { useLocalStorage } from '@mantine/hooks';
4
5
  import { IconMenu } from '@tabler/icons-react';
5
- import clsx from 'clsx';
6
6
  import { AnimatePresence, m } from 'motion/react';
7
7
  import { Link } from '../../../components/Link.js';
8
8
  import { useDiagramContext } from '../../../hooks/useDiagram.js';
@@ -30,7 +30,7 @@ function DiagramTitlePanel() {
30
30
  opacity: 0.05,
31
31
  scale: 0.6
32
32
  },
33
- className: clsx("react-flow__panel", "left", "bottom"),
33
+ className: cx("react-flow__panel", "left", "bottom"),
34
34
  style: {
35
35
  transformOrigin: "left center"
36
36
  },
@@ -1,12 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import '@likec4/core';
3
2
  import { cx, css } from '@likec4/styles/css';
4
3
  import { Tooltip, ThemeIcon, ActionIcon, Paper, Tabs, TabsList, TabsTab, TabsPanel, ScrollAreaAutosize, Stack, Card, Group, Box, Badge, Text } from '@mantine/core';
5
4
  import { useLocalStorage } from '@mantine/hooks';
6
5
  import { IconAlertTriangle, IconHelpCircle, IconArrowDownRight } from '@tabler/icons-react';
7
- import clsx from 'clsx';
8
6
  import { AnimatePresence, m } from 'motion/react';
9
- import { r as reactExports } from '../../../_virtual/index.js';
7
+ import { memo, useState } from 'react';
10
8
  import { ceil, isNonNullish } from 'remeda';
11
9
  import { useDiagramContext, useDiagram } from '../../../hooks/useDiagram.js';
12
10
  import { useXYStore } from '../../../hooks/useXYFlow.js';
@@ -20,7 +18,7 @@ const ElementNotation = ({ value }) => {
20
18
  color = "primary",
21
19
  shape = "rectangle"
22
20
  } = value;
23
- const [onlyKind, setOnlyKind] = reactExports.useState(null);
21
+ const [onlyKind, setOnlyKind] = useState(null);
24
22
  const diagram = useDiagram();
25
23
  const w = 300;
26
24
  const h = 200;
@@ -119,7 +117,7 @@ const selector = (s) => ({
119
117
  isVisible: true
120
118
  // isVisible: isNullish(s.focusedNodeId ?? s.activeWalkthrough),
121
119
  });
122
- const NotationPanel = reactExports.memo(() => {
120
+ const NotationPanel = memo(() => {
123
121
  const height = useXYStore((s) => s.height);
124
122
  const {
125
123
  id,
@@ -142,7 +140,7 @@ const NotationPanel = reactExports.memo(() => {
142
140
  translateX: "100%",
143
141
  opacity: 0.6
144
142
  },
145
- className: clsx("react-flow__panel", container),
143
+ className: cx("react-flow__panel", container),
146
144
  children: /* @__PURE__ */ jsx(Tooltip, { label: "View has no notations", color: "orange", ...portalProps, children: /* @__PURE__ */ jsx(
147
145
  ThemeIcon,
148
146
  {
@@ -165,7 +163,7 @@ const NotationPanel = reactExports.memo(() => {
165
163
  translateX: "100%",
166
164
  opacity: 0.6
167
165
  },
168
- className: clsx("react-flow__panel", container),
166
+ className: cx("react-flow__panel", container),
169
167
  children: /* @__PURE__ */ jsx(Tooltip, { label: "Show notation", color: "dark", fz: "xs", ...portalProps, children: /* @__PURE__ */ jsx(
170
168
  ActionIcon,
171
169
  {
@@ -193,7 +191,7 @@ const NotationPanel = reactExports.memo(() => {
193
191
  opacity: 0,
194
192
  scale: 0.25
195
193
  },
196
- className: clsx("react-flow__panel", container),
194
+ className: cx("react-flow__panel", container),
197
195
  style: {
198
196
  transformOrigin: "bottom right"
199
197
  },
@@ -4,9 +4,8 @@ import { cx } from '@likec4/styles/css';
4
4
  import { useTree, Tree, ActionIcon, UnstyledButton, Box, Group, Highlight, Tooltip, Text } from '@mantine/core';
5
5
  import { useCallbackRef } from '@mantine/hooks';
6
6
  import { IconChevronRight } from '@tabler/icons-react';
7
- import clsx from 'clsx';
8
7
  import * as m from 'motion/react-m';
9
- import { r as reactExports } from '../../../_virtual/index.js';
8
+ import { useMemo, useCallback, useEffect } from 'react';
10
9
  import { isEmpty, pipe, reduce, only, partition, first } from 'remeda';
11
10
  import { IconOrShapeRenderer } from '../../../context/IconRenderer.js';
12
11
  import { sortByLabel } from '../../../likec4model/useLikeC4ElementsTree.js';
@@ -21,7 +20,7 @@ const btn = buttonsva();
21
20
  function ElementsColumn() {
22
21
  const search = useNormalizedSearch();
23
22
  const model = useLikeC4Model(true);
24
- const data = reactExports.useMemo(() => {
23
+ const data = useMemo(() => {
25
24
  const searchTerms = search.split(".");
26
25
  let elements;
27
26
  if (isEmpty(search) || search === "kind:") {
@@ -92,7 +91,7 @@ function ElementsTree({
92
91
  multiple: false
93
92
  });
94
93
  tree.setHoveredNode = setHoveredNode;
95
- reactExports.useEffect(() => {
94
+ useEffect(() => {
96
95
  tree.collapseAllNodes();
97
96
  for (const nd of all) {
98
97
  if (nd.children.length > 0) {
@@ -178,7 +177,7 @@ function ElementTreeNode({ node, elementProps, hasChildren, expanded }) {
178
177
  variant: "transparent",
179
178
  size: 16,
180
179
  tabIndex: -1,
181
- className: clsx(elementExpandIcon),
180
+ className: cx(elementExpandIcon),
182
181
  style: {
183
182
  visibility: hasChildren ? "visible" : "hidden"
184
183
  },
@@ -201,7 +200,7 @@ function ElementTreeNode({ node, elementProps, hasChildren, expanded }) {
201
200
  component: m.button,
202
201
  layout: true,
203
202
  tabIndex: -1,
204
- className: clsx(btn.root, "group", "likec4-element-button"),
203
+ className: cx(btn.root, "group", "likec4-element-button"),
205
204
  ...views.length > 0 && {
206
205
  onClick: (e) => {
207
206
  if (!hasChildren || expanded) {
@@ -239,7 +238,7 @@ function ElementTreeNode({ node, elementProps, hasChildren, expanded }) {
239
238
  }
240
239
  function useHandleElementSelection() {
241
240
  const navigateTo = useCloseSearchAndNavigateTo();
242
- return reactExports.useCallback((element) => {
241
+ return useCallback((element) => {
243
242
  const views = [...element.views()];
244
243
  if (views.length === 0) {
245
244
  return;
@@ -5,7 +5,7 @@ import { Portal, Group, ActionIcon, Grid, GridCol, Title, ScrollArea, ScrollArea
5
5
  import { useDisclosure, useHotkeys, useCallbackRef, useWindowEvent, useFocusTrap, useFocusReturn } from '@mantine/hooks';
6
6
  import { IconX } from '@tabler/icons-react';
7
7
  import { AnimatePresence, m, LayoutGroup } from 'motion/react';
8
- import { r as reactExports } from '../../../_virtual/index.js';
8
+ import { memo, useRef } from 'react';
9
9
  import { SearchControl } from '../../../components/SearchControl.js';
10
10
  import { ElementsColumn } from './ElementsColumn.js';
11
11
  import { backdrop, root, scrollArea, pickviewBackdrop, pickview, pickviewGroup } from './LikeC4Search.css.js';
@@ -15,7 +15,7 @@ import { stopAndPrevent } from './utils.js';
15
15
  import { ViewsColumn, ViewButton } from './ViewsColum.js';
16
16
  import { useMantinePortalProps } from '../../../hooks/useMantinePortalProps.js';
17
17
 
18
- const LikeC4Search = reactExports.memo(() => {
18
+ const LikeC4Search = memo(() => {
19
19
  const [searchOpened, searchOps] = useDisclosure(false);
20
20
  useHotkeys([
21
21
  ["mod+k", () => searchOps.toggle(), {
@@ -25,7 +25,7 @@ const LikeC4Search = reactExports.memo(() => {
25
25
  preventDefault: true
26
26
  }]
27
27
  ]);
28
- const afterCloseCbRef = reactExports.useRef(null);
28
+ const afterCloseCbRef = useRef(null);
29
29
  const close = useCallbackRef((cb) => {
30
30
  afterCloseCbRef.current = cb ?? null;
31
31
  searchOps.close();
@@ -4,7 +4,6 @@ import { useCombobox, ComboboxOption, Text, Combobox, ComboboxTarget, Input, rem
4
4
  import { useFocusWithin, useIsFirstRender, useDebouncedValue, useWindowEvent } from '@mantine/hooks';
5
5
  import { usePreviousDistinct } from '@react-hookz/web';
6
6
  import { IconSearch } from '@tabler/icons-react';
7
- import '../../../_virtual/index.js';
8
7
  import { isString, keys, only } from 'remeda';
9
8
  import { useLikeC4Model } from '../../../likec4model/useLikeC4Model.js';
10
9
  import { input } from './LikeC4Search.css.js';
@@ -1,4 +1,4 @@
1
1
  import { SlotRecipeRuntimeFn, SlotRecipeVariantRecord } from '@likec4/styles/types';
2
2
  export declare const focusable = "likec4-focusable";
3
3
  export declare const emptyBoX: string;
4
- export declare const buttonsva: SlotRecipeRuntimeFn<"title" | "description" | "icon" | "root" | "descriptionColor", SlotRecipeVariantRecord<"title" | "description" | "icon" | "root" | "descriptionColor">>;
4
+ export declare const buttonsva: SlotRecipeRuntimeFn<"root" | "title" | "description" | "icon" | "descriptionColor", SlotRecipeVariantRecord<"root" | "title" | "description" | "icon" | "descriptionColor">>;
@@ -1,9 +1,8 @@
1
1
  import { DiagramNode } from '@likec4/core';
2
2
  import { createSafeContext } from '@mantine/core';
3
- import '@mantine/hooks';
4
3
  import { useStore } from '@nanostores/react';
5
4
  import { computed, atom, onMount } from 'nanostores';
6
- import { r as reactExports } from '../../../_virtual/index.js';
5
+ import { useDeferredValue, useCallback } from 'react';
7
6
  import { useDiagram } from '../../../hooks/useDiagram.js';
8
7
 
9
8
  const $search = atom("");
@@ -18,7 +17,7 @@ const $normalizedSearch = computed($search, (search) => {
18
17
  return v.length > 1 ? v : "";
19
18
  });
20
19
  function useNormalizedSearch() {
21
- return reactExports.useDeferredValue(useStore($normalizedSearch));
20
+ return useDeferredValue(useStore($normalizedSearch));
22
21
  }
23
22
  const [LikeC4SearchContext, useCloseSearch] = createSafeContext("LikeC4Search");
24
23
  const $pickView = atom(null);
@@ -45,7 +44,7 @@ function useIsPickViewActive() {
45
44
  function useCloseSearchAndNavigateTo() {
46
45
  const diagram = useDiagram();
47
46
  const close = useCloseSearch();
48
- return reactExports.useCallback((viewId, fromElementFqn) => {
47
+ return useCallback((viewId, fromElementFqn) => {
49
48
  close(() => {
50
49
  fromElementFqn ??= $pickView.get()?.elementFqn;
51
50
  setPickView(null);
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { cx } from '@likec4/styles/css';
2
3
  import { Box, Button, Badge, ButtonGroup } from '@mantine/core';
3
4
  import { IconPlayerPlayFilled, IconPlayerSkipBackFilled, IconPlayerStopFilled, IconPlayerSkipForwardFilled } from '@tabler/icons-react';
4
- import clsx from 'clsx';
5
5
  import { AnimatePresence, m } from 'motion/react';
6
6
  import { isTruthy, isNonNull } from 'remeda';
7
7
  import { useDiagramContext, useDiagram } from '../../../hooks/useDiagram.js';
@@ -36,14 +36,14 @@ function DynamicViewWalkthrough() {
36
36
  initial: { opacity: 0 },
37
37
  animate: { opacity: 1 },
38
38
  exit: { opacity: 0 },
39
- className: clsx("react-flow__panel", parallelStateFrame)
39
+ className: cx("react-flow__panel", parallelStateFrame)
40
40
  },
41
41
  "parallel-frame"
42
42
  ),
43
43
  /* @__PURE__ */ jsxs(
44
44
  Box,
45
45
  {
46
- className: clsx("react-flow__panel", container),
46
+ className: cx("react-flow__panel", container),
47
47
  onClick: (e) => e.stopPropagation(),
48
48
  onDoubleClick: (e) => e.stopPropagation(),
49
49
  children: [
@@ -51,7 +51,7 @@ function DynamicViewWalkthrough() {
51
51
  Button,
52
52
  {
53
53
  ...buttonProps,
54
- className: clsx(buttons, btn),
54
+ className: cx(buttons, btn),
55
55
  rightSection: /* @__PURE__ */ jsx(IconPlayerPlayFilled, {}),
56
56
  onClick: () => diagram.startWalkthrough(),
57
57
  px: "xl",
@@ -1,7 +1,6 @@
1
1
  import { nonNullable } from '@likec4/core';
2
- import '@xyflow/react';
3
2
  import { getNodeDimensions } from '@xyflow/system';
4
- import { r as reactExports } from '../_virtual/index.js';
3
+ import { useRef, useMemo } from 'react';
5
4
  import { pipe, filter, hasAtLeast, map } from 'remeda';
6
5
  import { useDiagram } from '../hooks/useDiagram.js';
7
6
  import { useXYStoreApi } from '../hooks/useXYFlow.js';
@@ -186,8 +185,8 @@ function createLayoutConstraints(xyflowApi, editingNodeIds) {
186
185
  function useLayoutConstraints() {
187
186
  const xystore = useXYStoreApi();
188
187
  const diagram = useDiagram();
189
- const solverRef = reactExports.useRef(void 0);
190
- return reactExports.useMemo(() => {
188
+ const solverRef = useRef(void 0);
189
+ return useMemo(() => {
191
190
  let wasPending = false;
192
191
  const initial = { x: 0, y: 0 };
193
192
  let moved = false;
@@ -71,6 +71,7 @@ function viewToNodesEdge(opts) {
71
71
  }
72
72
  };
73
73
  const compoundData = {
74
+ viewId: view.id,
74
75
  id: node.id,
75
76
  title: node.title,
76
77
  color: node.color,
@@ -81,6 +82,7 @@ function viewToNodesEdge(opts) {
81
82
  position: node.position
82
83
  };
83
84
  const leafNodeData = {
85
+ viewId: view.id,
84
86
  id: node.id,
85
87
  title: node.title,
86
88
  technology: node.technology,
@@ -1,3 +1,3 @@
1
- import { LikeC4Model } from '@likec4/core';
1
+ import { AnyAux, LikeC4Model } from '@likec4/core/model';
2
2
  import { Context } from 'react';
3
- export declare const LikeC4ModelContext: Context<LikeC4Model<LikeC4Model.Any> | null>;
3
+ export declare const LikeC4ModelContext: Context<LikeC4Model<AnyAux> | null>;
@@ -1,5 +1,5 @@
1
- import { r as reactExports } from '../_virtual/index.js';
1
+ import { createContext } from 'react';
2
2
 
3
- const LikeC4ModelContext = reactExports.createContext(null);
3
+ const LikeC4ModelContext = createContext(null);
4
4
 
5
5
  export { LikeC4ModelContext };
@@ -1,4 +1,4 @@
1
- import { Fqn, ViewId } from '@likec4/core';
1
+ import { Fqn, ViewId } from '@likec4/core/types';
2
2
  interface LikeC4ModelTreeNodeData {
3
3
  label: string;
4
4
  value: Fqn;
@@ -1,5 +1,5 @@
1
- import { compareNatural } from '@likec4/core';
2
- import { r as reactExports } from '../_virtual/index.js';
1
+ import { compareNatural } from '@likec4/core/utils';
2
+ import { useMemo } from 'react';
3
3
  import { useLikeC4Model } from './useLikeC4Model.js';
4
4
 
5
5
  const sortByLabel = (a, b) => compareNatural(a.label, b.label);
@@ -12,7 +12,7 @@ function buildNode(element) {
12
12
  }
13
13
  function useLikeC4ElementsTree(viewId) {
14
14
  const model = useLikeC4Model(true);
15
- return reactExports.useMemo(() => {
15
+ return useMemo(() => {
16
16
  if (viewId) {
17
17
  const view = model.view(viewId);
18
18
  return [...view.roots()].map(buildNode).sort(sortByLabel);
@@ -1,4 +1,4 @@
1
- import { LikeC4Model } from '@likec4/core';
1
+ import { LikeC4Model } from '@likec4/core/model';
2
2
  export declare function useLikeC4Model(): LikeC4Model | null;
3
3
  export declare function useLikeC4Model(strict: true): LikeC4Model;
4
4
  export declare function useLikeC4Model(strict: boolean): LikeC4Model | null;
@@ -1,9 +1,9 @@
1
- import { r as reactExports } from '../_virtual/index.js';
1
+ import { useContext } from 'react';
2
2
  import { isString, isNonNullish, isDefined } from 'remeda';
3
3
  import { LikeC4ModelContext } from './LikeC4ModelContext.js';
4
4
 
5
5
  function useLikeC4Model(strict, type) {
6
- const model = reactExports.useContext(LikeC4ModelContext);
6
+ const model = useContext(LikeC4ModelContext);
7
7
  if (isString(type) && isNonNullish(model) && model.type !== type) {
8
8
  throw new Error(`Invalid LikeC4ModelContext, expected "${type}" but got "${model.type}" in context`);
9
9
  }
@@ -1,5 +1,4 @@
1
1
  import { OverlaysActorRef } from './overlaysActor';
2
- import { MemoExoticComponent } from 'react';
3
- export declare const Overlays: MemoExoticComponent<({ overlaysActorRef }: {
2
+ export declare function Overlays({ overlaysActorRef }: {
4
3
  overlaysActorRef: OverlaysActorRef;
5
- }) => import("react/jsx-runtime").JSX.Element>;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,7 @@ import { IconX } from '@tabler/icons-react';
5
5
  import { useSelector } from '@xstate/react';
6
6
  import { animate } from 'motion';
7
7
  import { useReducedMotionConfig, LayoutGroup, AnimatePresence } from 'motion/react';
8
- import { r as reactExports } from '../_virtual/index.js';
8
+ import { useMemo, useEffect } from 'react';
9
9
  import { ErrorBoundary } from 'react-error-boundary';
10
10
  import { isNonNullish } from 'remeda';
11
11
  import { ElementDetails } from './element-details/ElementDetails.js';
@@ -65,15 +65,15 @@ const compareSelectOverlays = (a, b) => {
65
65
  return overlay.actorRef === b[i].actorRef;
66
66
  });
67
67
  };
68
- const Overlays = reactExports.memo(({ overlaysActorRef }) => {
68
+ function Overlays({ overlaysActorRef }) {
69
69
  const xyflowDomNode = useXYStore((s) => s.domNode);
70
- const xyflowRendererDom = reactExports.useMemo(() => xyflowDomNode?.querySelector(".react-flow__renderer") ?? null, [
70
+ const xyflowRendererDom = useMemo(() => xyflowDomNode?.querySelector(".react-flow__renderer") ?? null, [
71
71
  xyflowDomNode
72
72
  ]);
73
73
  const overlays = useSelector(overlaysActorRef, selectOverlays, compareSelectOverlays);
74
74
  const isMotionReduced = useReducedMotionConfig() ?? false;
75
75
  const isActiveOverlay = overlays.length > 0;
76
- reactExports.useEffect(() => {
76
+ useEffect(() => {
77
77
  if (!xyflowRendererDom || isMotionReduced) return;
78
78
  animate(xyflowRendererDom, {
79
79
  opacity: isActiveOverlay ? 0.7 : 1,
@@ -122,7 +122,6 @@ const Overlays = reactExports.memo(({ overlaysActorRef }) => {
122
122
  }
123
123
  });
124
124
  return /* @__PURE__ */ jsx(DiagramFeatures.Overlays, { children: /* @__PURE__ */ jsx(ErrorBoundary, { FallbackComponent: Fallback, onReset: () => overlaysActorRef.send({ type: "close.all" }), children: /* @__PURE__ */ jsx(LayoutGroup, { children: /* @__PURE__ */ jsx(AnimatePresence, { children: overlaysReact }) }) }) });
125
- });
126
- Overlays.displayName = "Overlays";
125
+ }
127
126
 
128
127
  export { Overlays };
@@ -26,16 +26,20 @@ const card = css({
26
26
  pointerEvents: "all",
27
27
  gap: "lg",
28
28
  justifyContent: "stretch",
29
- backgroundColor: "mantine.colors.body",
30
- backgroundImage: `linear-gradient(180deg, {colors.likec4.palette.fill}, {colors.likec4.palette.fill} 4px, transparent 4px)`,
31
- borderTopColor: "likec4.palette.fill",
32
- _dark: {
33
- backgroundColor: `mantine.colors.dark[6]`,
34
- backgroundImage: `
35
- linear-gradient(180deg, color-mix(in srgb, {colors.likec4.palette.fill} 15%, transparent), transparent 80px),
36
- linear-gradient(180deg, {colors.likec4.palette.fill}, {colors.likec4.palette.fill} 4px, transparent 4px)
37
- `
29
+ backgroundColor: {
30
+ base: "mantine.colors.body",
31
+ _dark: "mantine.colors.dark[6]"
38
32
  },
33
+ border: `none`,
34
+ backgroundImage: `
35
+ linear-gradient(180deg,
36
+ color-mix(in srgb, {colors.likec4.palette.fill} 60%, transparent),
37
+ color-mix(in srgb, {colors.likec4.palette.fill} 20%, transparent) 8px,
38
+ color-mix(in srgb, {colors.likec4.palette.fill} 14%, transparent) 20px,
39
+ transparent 80px
40
+ ),
41
+ linear-gradient(180deg, {colors.likec4.palette.fill}, {colors.likec4.palette.fill} 4px, transparent 4px)
42
+ `,
39
43
  "& .react-flow__attribution": {
40
44
  display: "none"
41
45
  }