@likec4/diagram 1.8.1 → 1.12.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 (114) hide show
  1. package/package.json +21 -45
  2. package/src/LikeC4CustomColors.props.ts +5 -0
  3. package/src/LikeC4CustomColors.tsx +37 -0
  4. package/src/LikeC4Diagram.css.ts +1 -1
  5. package/src/LikeC4Diagram.props.ts +43 -95
  6. package/src/LikeC4Diagram.tsx +21 -2
  7. package/src/LikeC4ModelProvider.tsx +49 -0
  8. package/src/StaticLikeC4Diagram.tsx +1 -0
  9. package/src/globals.css.ts +2 -3
  10. package/src/hooks/index.ts +1 -0
  11. package/src/hooks/useMantinePortalProps.ts +8 -0
  12. package/src/hooks/useXYFlow.ts +1 -2
  13. package/src/index.ts +3 -0
  14. package/src/likec4model/LikeC4ModelContext.ts +4 -0
  15. package/src/likec4model/index.ts +1 -0
  16. package/src/likec4model/useLikeC4Model.ts +55 -0
  17. package/src/mantine/EnsureMantine.tsx +1 -0
  18. package/src/state/DiagramContext.tsx +1 -0
  19. package/src/state/diagram-to-xyflow.ts +2 -3
  20. package/src/state/diagramStore.ts +185 -66
  21. package/src/{theme.css.ts → theme-vars.ts} +11 -4
  22. package/src/ui/DiagramTitlePanel.css.ts +2 -3
  23. package/src/ui/DiagramTitlePanel.tsx +17 -1
  24. package/src/ui/DynamicViewWalkthrough.css.ts +28 -2
  25. package/src/ui/DynamicViewWalkthrough.tsx +97 -52
  26. package/src/ui/OptionsPanel.css.ts +1 -2
  27. package/src/ui/OptionsPanel.tsx +1 -1
  28. package/src/ui/notation/NotationPanel.css.ts +2 -3
  29. package/src/ui/notation/NotationPanel.tsx +11 -12
  30. package/src/ui/options/NodeOptions.tsx +1 -1
  31. package/src/ui/top-left/ChangeAutoLayoutButton.tsx +20 -32
  32. package/src/ui/top-left/TopLeftPanel.tsx +128 -117
  33. package/src/ui/top-left/_shared.ts +7 -6
  34. package/src/ui/top-left/styles.css.ts +17 -8
  35. package/src/utils/vector.ts +57 -0
  36. package/src/xyflow/FitviewOnDiagramChange.tsx +5 -4
  37. package/src/xyflow/SelectEdgesOnNodeFocus.tsx +7 -5
  38. package/src/xyflow/XYFlow.tsx +10 -11
  39. package/src/xyflow/XYFlowEvents.tsx +59 -60
  40. package/src/xyflow/XYFlowInner.tsx +5 -5
  41. package/src/xyflow/edges/EdgeLabel.tsx +185 -0
  42. package/src/xyflow/edges/RelationshipEdge.tsx +170 -137
  43. package/src/xyflow/edges/RelationshipsDropdownMenu.css.ts +60 -0
  44. package/src/xyflow/edges/RelationshipsDropdownMenu.tsx +214 -0
  45. package/src/xyflow/edges/edges.css.ts +75 -7
  46. package/src/xyflow/nodes/compound/CompoundNode.css.ts +1 -2
  47. package/src/xyflow/nodes/compound/CompoundNode.tsx +4 -4
  48. package/src/xyflow/nodes/element/ElementLink.css.ts +1 -1
  49. package/src/xyflow/nodes/element/ElementLink.tsx +3 -8
  50. package/src/xyflow/nodes/element/ElementNode.tsx +47 -4
  51. package/src/xyflow/nodes/element/element.css.ts +1 -2
  52. package/src/xyflow/types.ts +1 -24
  53. package/src/xyflow/useLayoutConstraints.ts +10 -6
  54. package/src/xyflow/utils.ts +1 -1
  55. package/dist/LikeC4Diagram.css.d.ts +0 -4
  56. package/dist/LikeC4Diagram.d.ts +0 -4
  57. package/dist/LikeC4Diagram.props.d.ts +0 -185
  58. package/dist/StaticLikeC4Diagram.d.ts +0 -4
  59. package/dist/globals.css.d.ts +0 -1
  60. package/dist/hooks/index.d.ts +0 -4
  61. package/dist/hooks/useDiagramState.d.ts +0 -6
  62. package/dist/hooks/useSetState.d.ts +0 -3
  63. package/dist/hooks/useUpdateEffect.d.ts +0 -5
  64. package/dist/hooks/useXYFlow.d.ts +0 -267
  65. package/dist/index.d.ts +0 -9
  66. package/dist/index.mjs +0 -3651
  67. package/dist/mantine/EnsureMantine.d.ts +0 -5
  68. package/dist/mantine.css.d.ts +0 -3
  69. package/dist/state/DiagramContext.d.ts +0 -1189
  70. package/dist/state/diagram-to-xyflow.d.ts +0 -12
  71. package/dist/state/diagramStore.d.ts +0 -1268
  72. package/dist/style.css +0 -2139
  73. package/dist/theme.css.d.ts +0 -63
  74. package/dist/ui/DiagramTitlePanel.css.d.ts +0 -4
  75. package/dist/ui/DiagramTitlePanel.d.ts +0 -1
  76. package/dist/ui/DynamicViewWalkthrough.css.d.ts +0 -3
  77. package/dist/ui/DynamicViewWalkthrough.d.ts +0 -1
  78. package/dist/ui/OptionsPanel.css.d.ts +0 -1
  79. package/dist/ui/OptionsPanel.d.ts +0 -1
  80. package/dist/ui/notation/NotationPanel.css.d.ts +0 -6
  81. package/dist/ui/notation/NotationPanel.d.ts +0 -1
  82. package/dist/ui/notation/index.d.ts +0 -1
  83. package/dist/ui/options/EdgeOptions.d.ts +0 -19
  84. package/dist/ui/options/NodeOptions.d.ts +0 -19
  85. package/dist/ui/top-left/ChangeAutoLayoutButton.d.ts +0 -3
  86. package/dist/ui/top-left/TopLeftPanel.d.ts +0 -4
  87. package/dist/ui/top-left/_shared.d.ts +0 -5
  88. package/dist/ui/top-left/styles.css.d.ts +0 -3
  89. package/dist/xyflow/EdgeMarkers.d.ts +0 -12
  90. package/dist/xyflow/FitviewOnDiagramChange.d.ts +0 -4
  91. package/dist/xyflow/SelectEdgesOnNodeFocus.d.ts +0 -1
  92. package/dist/xyflow/XYFlow.d.ts +0 -9
  93. package/dist/xyflow/XYFlowBackground.d.ts +0 -11
  94. package/dist/xyflow/XYFlowEvents.d.ts +0 -161
  95. package/dist/xyflow/XYFlowInner.d.ts +0 -10
  96. package/dist/xyflow/const.d.ts +0 -7
  97. package/dist/xyflow/edges/RelationshipEdge.d.ts +0 -32
  98. package/dist/xyflow/edges/edges.css.d.ts +0 -12
  99. package/dist/xyflow/edges/utils.d.ts +0 -17
  100. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +0 -11
  101. package/dist/xyflow/nodes/compound/CompoundNode.d.ts +0 -6
  102. package/dist/xyflow/nodes/compound/index.d.ts +0 -1
  103. package/dist/xyflow/nodes/element/ElementLink.css.d.ts +0 -3
  104. package/dist/xyflow/nodes/element/ElementLink.d.ts +0 -7
  105. package/dist/xyflow/nodes/element/ElementNode.d.ts +0 -6
  106. package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +0 -18
  107. package/dist/xyflow/nodes/element/element.css.d.ts +0 -19
  108. package/dist/xyflow/nodes/element/index.d.ts +0 -1
  109. package/dist/xyflow/nodes/shared/NavigateToBtn.d.ts +0 -5
  110. package/dist/xyflow/types.d.ts +0 -50
  111. package/dist/xyflow/useLayoutConstraints.d.ts +0 -9
  112. package/dist/xyflow/utils.d.ts +0 -18
  113. package/src/mantine.css.ts +0 -7
  114. package/src/reset.d.ts +0 -2
@@ -1,1268 +0,0 @@
1
- import { DiagramNode, DiagramView, ElementKind, ElementNotation, Fqn, NodeId, ViewChange, ViewID } from '@likec4/core';
2
- import { OnEdgesChange, OnNodesChange } from '@xyflow/react';
3
- import { MouseEvent as ReactMouseEvent } from 'react';
4
- import { Simplify } from 'type-fest';
5
- import { XYStoreApi } from '../hooks/useXYFlow';
6
- import { ElementIconRenderer, LikeC4DiagramEventHandlers, WhereOperator } from '../LikeC4Diagram.props';
7
- import { XYFlowEdge, XYFlowInstance, XYFlowNode } from '../xyflow/types';
8
-
9
- type RequiredOrNull<T> = {
10
- [P in keyof T]-?: NonNullable<T[P]> | null;
11
- };
12
- export type DiagramInitialState = {
13
- view: DiagramView;
14
- readonly: boolean;
15
- showElementLinks: boolean;
16
- showNavigationButtons: boolean;
17
- showNotations: boolean;
18
- fitViewEnabled: boolean;
19
- fitViewPadding: number;
20
- zoomable: boolean;
21
- pannable: boolean;
22
- nodesDraggable: boolean;
23
- nodesSelectable: boolean;
24
- experimentalEdgeEditing: boolean;
25
- enableFocusMode: boolean;
26
- renderIcon: ElementIconRenderer | null;
27
- whereFilter: WhereOperator<string, string> | null;
28
- enableDynamicViewWalkthrough: boolean;
29
- xyflow: XYFlowInstance;
30
- xystore: XYStoreApi;
31
- getContainer: () => HTMLDivElement | null;
32
- } & RequiredOrNull<LikeC4DiagramEventHandlers>;
33
- export type DiagramState = Simplify<DiagramInitialState & {
34
- readonly storeDevId: string;
35
- xynodes: XYFlowNode[];
36
- xyedges: XYFlowEdge[];
37
- viewSyncDebounceTimeout: number | null;
38
- viewportChanged: boolean;
39
- initialized: boolean;
40
- isDynamicView: boolean;
41
- activeDynamicViewStep: number | null;
42
- lastClickedNodeId: string | null;
43
- lastClickedEdgeId: string | null;
44
- focusedNodeId: string | null;
45
- hoveredNodeId: string | null;
46
- hoveredEdgeId: string | null;
47
- dimmed: ReadonlySet<string>;
48
- lastOnNavigate: null | {
49
- fromView: ViewID;
50
- toView: ViewID;
51
- fromNode: NodeId;
52
- };
53
- navigationHistory: Array<{
54
- viewId: ViewID;
55
- nodeId: NodeId | null;
56
- }>;
57
- navigationHistoryIndex: number;
58
- updateView: (view: DiagramView) => void;
59
- focusOnNode: (nodeId: string) => void;
60
- setHoveredNode: (nodeId: string | null) => void;
61
- setHoveredEdge: (edgeId: string | null) => void;
62
- setLastClickedNode: (nodeId: string | null) => void;
63
- setLastClickedEdge: (edgeId: string | null) => void;
64
- resetLastClicked: () => void;
65
- getElement(id: Fqn): DiagramNode | null;
66
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
67
- /**
68
- * @returns true if there was pending save layout
69
- */
70
- cancelSaveManualLayout: () => boolean;
71
- scheduleSaveManualLayout: () => void;
72
- triggerSaveManualLayout: () => void;
73
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
74
- fitDiagram: (duration?: number) => void;
75
- goBack: () => void;
76
- goForward: () => void;
77
- nextDynamicStep: (increment?: number) => void;
78
- activateDynamicStep: (step: number) => void;
79
- stopDynamicView: () => void;
80
- onInit: (xyflow: XYFlowInstance) => void;
81
- onNodesChange: OnNodesChange<XYFlowNode>;
82
- onEdgesChange: OnEdgesChange<XYFlowEdge>;
83
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
84
- }>;
85
- export declare function createDiagramStore(props: DiagramInitialState): import('zustand/traditional').UseBoundStoreWithEqualityFn<Omit<Omit<import('zustand/vanilla').StoreApi<{
86
- view: DiagramView;
87
- readonly: boolean;
88
- showElementLinks: boolean;
89
- showNavigationButtons: boolean;
90
- showNotations: boolean;
91
- fitViewEnabled: boolean;
92
- fitViewPadding: number;
93
- zoomable: boolean;
94
- pannable: boolean;
95
- nodesDraggable: boolean;
96
- nodesSelectable: boolean;
97
- experimentalEdgeEditing: boolean;
98
- enableFocusMode: boolean;
99
- renderIcon: ElementIconRenderer | null;
100
- whereFilter: WhereOperator<string, string> | null;
101
- enableDynamicViewWalkthrough: boolean;
102
- xyflow: XYFlowInstance;
103
- xystore: XYStoreApi;
104
- getContainer: () => HTMLDivElement | null;
105
- onChange: import('../LikeC4Diagram.props').OnChange | null;
106
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
107
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
108
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
109
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
110
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
111
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
112
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
113
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
114
- onBurgerMenuClick: (() => void) | null;
115
- onOpenSourceView: (() => void) | null;
116
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
117
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
118
- readonly storeDevId: string;
119
- xynodes: XYFlowNode[];
120
- xyedges: XYFlowEdge[];
121
- viewSyncDebounceTimeout: number | null;
122
- viewportChanged: boolean;
123
- initialized: boolean;
124
- isDynamicView: boolean;
125
- activeDynamicViewStep: number | null;
126
- lastClickedNodeId: string | null;
127
- lastClickedEdgeId: string | null;
128
- focusedNodeId: string | null;
129
- hoveredNodeId: string | null;
130
- hoveredEdgeId: string | null;
131
- dimmed: ReadonlySet<string>;
132
- lastOnNavigate: null | {
133
- fromView: ViewID;
134
- toView: ViewID;
135
- fromNode: NodeId;
136
- };
137
- navigationHistory: Array<{
138
- viewId: ViewID;
139
- nodeId: NodeId | null;
140
- }>;
141
- navigationHistoryIndex: number;
142
- updateView: (view: DiagramView) => void;
143
- focusOnNode: (nodeId: string) => void;
144
- setHoveredNode: (nodeId: string | null) => void;
145
- setHoveredEdge: (edgeId: string | null) => void;
146
- setLastClickedNode: (nodeId: string | null) => void;
147
- setLastClickedEdge: (edgeId: string | null) => void;
148
- resetLastClicked: () => void;
149
- getElement: (id: Fqn) => DiagramNode | null;
150
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
151
- cancelSaveManualLayout: () => boolean;
152
- scheduleSaveManualLayout: () => void;
153
- triggerSaveManualLayout: () => void;
154
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
155
- fitDiagram: (duration?: number) => void;
156
- goBack: () => void;
157
- goForward: () => void;
158
- nextDynamicStep: (increment?: number) => void;
159
- activateDynamicStep: (step: number) => void;
160
- stopDynamicView: () => void;
161
- onInit: (xyflow: XYFlowInstance) => void;
162
- onNodesChange: OnNodesChange<XYFlowNode>;
163
- onEdgesChange: OnEdgesChange<XYFlowEdge>;
164
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
165
- }>, "subscribe"> & {
166
- subscribe: {
167
- (listener: (selectedState: {
168
- view: DiagramView;
169
- readonly: boolean;
170
- showElementLinks: boolean;
171
- showNavigationButtons: boolean;
172
- showNotations: boolean;
173
- fitViewEnabled: boolean;
174
- fitViewPadding: number;
175
- zoomable: boolean;
176
- pannable: boolean;
177
- nodesDraggable: boolean;
178
- nodesSelectable: boolean;
179
- experimentalEdgeEditing: boolean;
180
- enableFocusMode: boolean;
181
- renderIcon: ElementIconRenderer | null;
182
- whereFilter: WhereOperator<string, string> | null;
183
- enableDynamicViewWalkthrough: boolean;
184
- xyflow: XYFlowInstance;
185
- xystore: XYStoreApi;
186
- getContainer: () => HTMLDivElement | null;
187
- onChange: import('../LikeC4Diagram.props').OnChange | null;
188
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
189
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
190
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
191
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
192
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
193
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
194
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
195
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
196
- onBurgerMenuClick: (() => void) | null;
197
- onOpenSourceView: (() => void) | null;
198
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
199
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
200
- readonly storeDevId: string;
201
- xynodes: XYFlowNode[];
202
- xyedges: {
203
- id: string;
204
- type: "relationship";
205
- source: string;
206
- target: string;
207
- sourceHandle?: string | null;
208
- targetHandle?: string | null;
209
- animated?: boolean;
210
- hidden?: boolean;
211
- deletable?: boolean;
212
- selectable?: boolean;
213
- data: import('../xyflow/types').RelationshipData;
214
- selected?: boolean;
215
- markerStart?: import('@xyflow/react').EdgeMarkerType;
216
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
217
- zIndex?: number;
218
- ariaLabel?: string;
219
- interactionWidth?: number;
220
- label?: string | import('react').ReactNode;
221
- labelStyle?: import('react').CSSProperties;
222
- labelShowBg?: boolean;
223
- labelBgStyle?: import('react').CSSProperties;
224
- labelBgPadding?: [number, number];
225
- labelBgBorderRadius?: number;
226
- style?: import('react').CSSProperties;
227
- className?: string;
228
- reconnectable?: boolean | import('@xyflow/react').HandleType;
229
- focusable?: boolean;
230
- }[];
231
- viewSyncDebounceTimeout: number | null;
232
- viewportChanged: boolean;
233
- initialized: boolean;
234
- isDynamicView: boolean;
235
- activeDynamicViewStep: number | null;
236
- lastClickedNodeId: string | null;
237
- lastClickedEdgeId: string | null;
238
- focusedNodeId: string | null;
239
- hoveredNodeId: string | null;
240
- hoveredEdgeId: string | null;
241
- dimmed: ReadonlySet<string>;
242
- lastOnNavigate: null | {
243
- fromView: ViewID;
244
- toView: ViewID;
245
- fromNode: NodeId;
246
- };
247
- navigationHistory: Array<{
248
- viewId: ViewID;
249
- nodeId: NodeId | null;
250
- }>;
251
- navigationHistoryIndex: number;
252
- updateView: (view: DiagramView) => void;
253
- focusOnNode: (nodeId: string) => void;
254
- setHoveredNode: (nodeId: string | null) => void;
255
- setHoveredEdge: (edgeId: string | null) => void;
256
- setLastClickedNode: (nodeId: string | null) => void;
257
- setLastClickedEdge: (edgeId: string | null) => void;
258
- resetLastClicked: () => void;
259
- getElement: (id: Fqn) => DiagramNode | null;
260
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
261
- cancelSaveManualLayout: () => boolean;
262
- scheduleSaveManualLayout: () => void;
263
- triggerSaveManualLayout: () => void;
264
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
265
- fitDiagram: (duration?: number) => void;
266
- goBack: () => void;
267
- goForward: () => void;
268
- nextDynamicStep: (increment?: number) => void;
269
- activateDynamicStep: (step: number) => void;
270
- stopDynamicView: () => void;
271
- onInit: (xyflow: XYFlowInstance) => void;
272
- onNodesChange: OnNodesChange<XYFlowNode>;
273
- onEdgesChange: OnEdgesChange<{
274
- id: string;
275
- type: "relationship";
276
- source: string;
277
- target: string;
278
- sourceHandle?: string | null;
279
- targetHandle?: string | null;
280
- animated?: boolean;
281
- hidden?: boolean;
282
- deletable?: boolean;
283
- selectable?: boolean;
284
- data: import('../xyflow/types').RelationshipData;
285
- selected?: boolean;
286
- markerStart?: import('@xyflow/react').EdgeMarkerType;
287
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
288
- zIndex?: number;
289
- ariaLabel?: string;
290
- interactionWidth?: number;
291
- label?: string | import('react').ReactNode;
292
- labelStyle?: import('react').CSSProperties;
293
- labelShowBg?: boolean;
294
- labelBgStyle?: import('react').CSSProperties;
295
- labelBgPadding?: [number, number];
296
- labelBgBorderRadius?: number;
297
- style?: import('react').CSSProperties;
298
- className?: string;
299
- reconnectable?: boolean | import('@xyflow/react').HandleType;
300
- focusable?: boolean;
301
- }>;
302
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
303
- }, previousSelectedState: {
304
- view: DiagramView;
305
- readonly: boolean;
306
- showElementLinks: boolean;
307
- showNavigationButtons: boolean;
308
- showNotations: boolean;
309
- fitViewEnabled: boolean;
310
- fitViewPadding: number;
311
- zoomable: boolean;
312
- pannable: boolean;
313
- nodesDraggable: boolean;
314
- nodesSelectable: boolean;
315
- experimentalEdgeEditing: boolean;
316
- enableFocusMode: boolean;
317
- renderIcon: ElementIconRenderer | null;
318
- whereFilter: WhereOperator<string, string> | null;
319
- enableDynamicViewWalkthrough: boolean;
320
- xyflow: XYFlowInstance;
321
- xystore: XYStoreApi;
322
- getContainer: () => HTMLDivElement | null;
323
- onChange: import('../LikeC4Diagram.props').OnChange | null;
324
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
325
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
326
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
327
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
328
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
329
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
330
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
331
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
332
- onBurgerMenuClick: (() => void) | null;
333
- onOpenSourceView: (() => void) | null;
334
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
335
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
336
- readonly storeDevId: string;
337
- xynodes: XYFlowNode[];
338
- xyedges: {
339
- id: string;
340
- type: "relationship";
341
- source: string;
342
- target: string;
343
- sourceHandle?: string | null;
344
- targetHandle?: string | null;
345
- animated?: boolean;
346
- hidden?: boolean;
347
- deletable?: boolean;
348
- selectable?: boolean;
349
- data: import('../xyflow/types').RelationshipData;
350
- selected?: boolean;
351
- markerStart?: import('@xyflow/react').EdgeMarkerType;
352
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
353
- zIndex?: number;
354
- ariaLabel?: string;
355
- interactionWidth?: number;
356
- label?: string | import('react').ReactNode;
357
- labelStyle?: import('react').CSSProperties;
358
- labelShowBg?: boolean;
359
- labelBgStyle?: import('react').CSSProperties;
360
- labelBgPadding?: [number, number];
361
- labelBgBorderRadius?: number;
362
- style?: import('react').CSSProperties;
363
- className?: string;
364
- reconnectable?: boolean | import('@xyflow/react').HandleType;
365
- focusable?: boolean;
366
- }[];
367
- viewSyncDebounceTimeout: number | null;
368
- viewportChanged: boolean;
369
- initialized: boolean;
370
- isDynamicView: boolean;
371
- activeDynamicViewStep: number | null;
372
- lastClickedNodeId: string | null;
373
- lastClickedEdgeId: string | null;
374
- focusedNodeId: string | null;
375
- hoveredNodeId: string | null;
376
- hoveredEdgeId: string | null;
377
- dimmed: ReadonlySet<string>;
378
- lastOnNavigate: null | {
379
- fromView: ViewID;
380
- toView: ViewID;
381
- fromNode: NodeId;
382
- };
383
- navigationHistory: Array<{
384
- viewId: ViewID;
385
- nodeId: NodeId | null;
386
- }>;
387
- navigationHistoryIndex: number;
388
- updateView: (view: DiagramView) => void;
389
- focusOnNode: (nodeId: string) => void;
390
- setHoveredNode: (nodeId: string | null) => void;
391
- setHoveredEdge: (edgeId: string | null) => void;
392
- setLastClickedNode: (nodeId: string | null) => void;
393
- setLastClickedEdge: (edgeId: string | null) => void;
394
- resetLastClicked: () => void;
395
- getElement: (id: Fqn) => DiagramNode | null;
396
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
397
- cancelSaveManualLayout: () => boolean;
398
- scheduleSaveManualLayout: () => void;
399
- triggerSaveManualLayout: () => void;
400
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
401
- fitDiagram: (duration?: number) => void;
402
- goBack: () => void;
403
- goForward: () => void;
404
- nextDynamicStep: (increment?: number) => void;
405
- activateDynamicStep: (step: number) => void;
406
- stopDynamicView: () => void;
407
- onInit: (xyflow: XYFlowInstance) => void;
408
- onNodesChange: OnNodesChange<XYFlowNode>;
409
- onEdgesChange: OnEdgesChange<{
410
- id: string;
411
- type: "relationship";
412
- source: string;
413
- target: string;
414
- sourceHandle?: string | null;
415
- targetHandle?: string | null;
416
- animated?: boolean;
417
- hidden?: boolean;
418
- deletable?: boolean;
419
- selectable?: boolean;
420
- data: import('../xyflow/types').RelationshipData;
421
- selected?: boolean;
422
- markerStart?: import('@xyflow/react').EdgeMarkerType;
423
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
424
- zIndex?: number;
425
- ariaLabel?: string;
426
- interactionWidth?: number;
427
- label?: string | import('react').ReactNode;
428
- labelStyle?: import('react').CSSProperties;
429
- labelShowBg?: boolean;
430
- labelBgStyle?: import('react').CSSProperties;
431
- labelBgPadding?: [number, number];
432
- labelBgBorderRadius?: number;
433
- style?: import('react').CSSProperties;
434
- className?: string;
435
- reconnectable?: boolean | import('@xyflow/react').HandleType;
436
- focusable?: boolean;
437
- }>;
438
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
439
- }) => void): () => void;
440
- <U>(selector: (state: {
441
- view: DiagramView;
442
- readonly: boolean;
443
- showElementLinks: boolean;
444
- showNavigationButtons: boolean;
445
- showNotations: boolean;
446
- fitViewEnabled: boolean;
447
- fitViewPadding: number;
448
- zoomable: boolean;
449
- pannable: boolean;
450
- nodesDraggable: boolean;
451
- nodesSelectable: boolean;
452
- experimentalEdgeEditing: boolean;
453
- enableFocusMode: boolean;
454
- renderIcon: ElementIconRenderer | null;
455
- whereFilter: WhereOperator<string, string> | null;
456
- enableDynamicViewWalkthrough: boolean;
457
- xyflow: XYFlowInstance;
458
- xystore: XYStoreApi;
459
- getContainer: () => HTMLDivElement | null;
460
- onChange: import('../LikeC4Diagram.props').OnChange | null;
461
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
462
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
463
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
464
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
465
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
466
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
467
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
468
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
469
- onBurgerMenuClick: (() => void) | null;
470
- onOpenSourceView: (() => void) | null;
471
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
472
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
473
- readonly storeDevId: string;
474
- xynodes: XYFlowNode[];
475
- xyedges: {
476
- id: string;
477
- type: "relationship";
478
- source: string;
479
- target: string;
480
- sourceHandle?: string | null;
481
- targetHandle?: string | null;
482
- animated?: boolean;
483
- hidden?: boolean;
484
- deletable?: boolean;
485
- selectable?: boolean;
486
- data: import('../xyflow/types').RelationshipData;
487
- selected?: boolean;
488
- markerStart?: import('@xyflow/react').EdgeMarkerType;
489
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
490
- zIndex?: number;
491
- ariaLabel?: string;
492
- interactionWidth?: number;
493
- label?: string | import('react').ReactNode;
494
- labelStyle?: import('react').CSSProperties;
495
- labelShowBg?: boolean;
496
- labelBgStyle?: import('react').CSSProperties;
497
- labelBgPadding?: [number, number];
498
- labelBgBorderRadius?: number;
499
- style?: import('react').CSSProperties;
500
- className?: string;
501
- reconnectable?: boolean | import('@xyflow/react').HandleType;
502
- focusable?: boolean;
503
- }[];
504
- viewSyncDebounceTimeout: number | null;
505
- viewportChanged: boolean;
506
- initialized: boolean;
507
- isDynamicView: boolean;
508
- activeDynamicViewStep: number | null;
509
- lastClickedNodeId: string | null;
510
- lastClickedEdgeId: string | null;
511
- focusedNodeId: string | null;
512
- hoveredNodeId: string | null;
513
- hoveredEdgeId: string | null;
514
- dimmed: ReadonlySet<string>;
515
- lastOnNavigate: null | {
516
- fromView: ViewID;
517
- toView: ViewID;
518
- fromNode: NodeId;
519
- };
520
- navigationHistory: Array<{
521
- viewId: ViewID;
522
- nodeId: NodeId | null;
523
- }>;
524
- navigationHistoryIndex: number;
525
- updateView: (view: DiagramView) => void;
526
- focusOnNode: (nodeId: string) => void;
527
- setHoveredNode: (nodeId: string | null) => void;
528
- setHoveredEdge: (edgeId: string | null) => void;
529
- setLastClickedNode: (nodeId: string | null) => void;
530
- setLastClickedEdge: (edgeId: string | null) => void;
531
- resetLastClicked: () => void;
532
- getElement: (id: Fqn) => DiagramNode | null;
533
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
534
- cancelSaveManualLayout: () => boolean;
535
- scheduleSaveManualLayout: () => void;
536
- triggerSaveManualLayout: () => void;
537
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
538
- fitDiagram: (duration?: number) => void;
539
- goBack: () => void;
540
- goForward: () => void;
541
- nextDynamicStep: (increment?: number) => void;
542
- activateDynamicStep: (step: number) => void;
543
- stopDynamicView: () => void;
544
- onInit: (xyflow: XYFlowInstance) => void;
545
- onNodesChange: OnNodesChange<XYFlowNode>;
546
- onEdgesChange: OnEdgesChange<{
547
- id: string;
548
- type: "relationship";
549
- source: string;
550
- target: string;
551
- sourceHandle?: string | null;
552
- targetHandle?: string | null;
553
- animated?: boolean;
554
- hidden?: boolean;
555
- deletable?: boolean;
556
- selectable?: boolean;
557
- data: import('../xyflow/types').RelationshipData;
558
- selected?: boolean;
559
- markerStart?: import('@xyflow/react').EdgeMarkerType;
560
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
561
- zIndex?: number;
562
- ariaLabel?: string;
563
- interactionWidth?: number;
564
- label?: string | import('react').ReactNode;
565
- labelStyle?: import('react').CSSProperties;
566
- labelShowBg?: boolean;
567
- labelBgStyle?: import('react').CSSProperties;
568
- labelBgPadding?: [number, number];
569
- labelBgBorderRadius?: number;
570
- style?: import('react').CSSProperties;
571
- className?: string;
572
- reconnectable?: boolean | import('@xyflow/react').HandleType;
573
- focusable?: boolean;
574
- }>;
575
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
576
- }) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
577
- equalityFn?: (a: U, b: U) => boolean;
578
- fireImmediately?: boolean;
579
- } | undefined): () => void;
580
- };
581
- }, "setState"> & {
582
- setState<A extends string | {
583
- type: string;
584
- }>(partial: {
585
- view: DiagramView;
586
- readonly: boolean;
587
- showElementLinks: boolean;
588
- showNavigationButtons: boolean;
589
- showNotations: boolean;
590
- fitViewEnabled: boolean;
591
- fitViewPadding: number;
592
- zoomable: boolean;
593
- pannable: boolean;
594
- nodesDraggable: boolean;
595
- nodesSelectable: boolean;
596
- experimentalEdgeEditing: boolean;
597
- enableFocusMode: boolean;
598
- renderIcon: ElementIconRenderer | null;
599
- whereFilter: WhereOperator<string, string> | null;
600
- enableDynamicViewWalkthrough: boolean;
601
- xyflow: XYFlowInstance;
602
- xystore: XYStoreApi;
603
- getContainer: () => HTMLDivElement | null;
604
- onChange: import('../LikeC4Diagram.props').OnChange | null;
605
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
606
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
607
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
608
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
609
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
610
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
611
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
612
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
613
- onBurgerMenuClick: (() => void) | null;
614
- onOpenSourceView: (() => void) | null;
615
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
616
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
617
- readonly storeDevId: string;
618
- xynodes: XYFlowNode[];
619
- xyedges: {
620
- id: string;
621
- type: "relationship";
622
- source: string;
623
- target: string;
624
- sourceHandle?: string | null;
625
- targetHandle?: string | null;
626
- animated?: boolean;
627
- hidden?: boolean;
628
- deletable?: boolean;
629
- selectable?: boolean;
630
- data: import('../xyflow/types').RelationshipData;
631
- selected?: boolean;
632
- markerStart?: import('@xyflow/react').EdgeMarkerType;
633
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
634
- zIndex?: number;
635
- ariaLabel?: string;
636
- interactionWidth?: number;
637
- label?: string | import('react').ReactNode;
638
- labelStyle?: import('react').CSSProperties;
639
- labelShowBg?: boolean;
640
- labelBgStyle?: import('react').CSSProperties;
641
- labelBgPadding?: [number, number];
642
- labelBgBorderRadius?: number;
643
- style?: import('react').CSSProperties;
644
- className?: string;
645
- reconnectable?: boolean | import('@xyflow/react').HandleType;
646
- focusable?: boolean;
647
- }[];
648
- viewSyncDebounceTimeout: number | null;
649
- viewportChanged: boolean;
650
- initialized: boolean;
651
- isDynamicView: boolean;
652
- activeDynamicViewStep: number | null;
653
- lastClickedNodeId: string | null;
654
- lastClickedEdgeId: string | null;
655
- focusedNodeId: string | null;
656
- hoveredNodeId: string | null;
657
- hoveredEdgeId: string | null;
658
- dimmed: ReadonlySet<string>;
659
- lastOnNavigate: null | {
660
- fromView: ViewID;
661
- toView: ViewID;
662
- fromNode: NodeId;
663
- };
664
- navigationHistory: Array<{
665
- viewId: ViewID;
666
- nodeId: NodeId | null;
667
- }>;
668
- navigationHistoryIndex: number;
669
- updateView: (view: DiagramView) => void;
670
- focusOnNode: (nodeId: string) => void;
671
- setHoveredNode: (nodeId: string | null) => void;
672
- setHoveredEdge: (edgeId: string | null) => void;
673
- setLastClickedNode: (nodeId: string | null) => void;
674
- setLastClickedEdge: (edgeId: string | null) => void;
675
- resetLastClicked: () => void;
676
- getElement: (id: Fqn) => DiagramNode | null;
677
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
678
- cancelSaveManualLayout: () => boolean;
679
- scheduleSaveManualLayout: () => void;
680
- triggerSaveManualLayout: () => void;
681
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
682
- fitDiagram: (duration?: number) => void;
683
- goBack: () => void;
684
- goForward: () => void;
685
- nextDynamicStep: (increment?: number) => void;
686
- activateDynamicStep: (step: number) => void;
687
- stopDynamicView: () => void;
688
- onInit: (xyflow: XYFlowInstance) => void;
689
- onNodesChange: OnNodesChange<XYFlowNode>;
690
- onEdgesChange: OnEdgesChange<{
691
- id: string;
692
- type: "relationship";
693
- source: string;
694
- target: string;
695
- sourceHandle?: string | null;
696
- targetHandle?: string | null;
697
- animated?: boolean;
698
- hidden?: boolean;
699
- deletable?: boolean;
700
- selectable?: boolean;
701
- data: import('../xyflow/types').RelationshipData;
702
- selected?: boolean;
703
- markerStart?: import('@xyflow/react').EdgeMarkerType;
704
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
705
- zIndex?: number;
706
- ariaLabel?: string;
707
- interactionWidth?: number;
708
- label?: string | import('react').ReactNode;
709
- labelStyle?: import('react').CSSProperties;
710
- labelShowBg?: boolean;
711
- labelBgStyle?: import('react').CSSProperties;
712
- labelBgPadding?: [number, number];
713
- labelBgBorderRadius?: number;
714
- style?: import('react').CSSProperties;
715
- className?: string;
716
- reconnectable?: boolean | import('@xyflow/react').HandleType;
717
- focusable?: boolean;
718
- }>;
719
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
720
- } | Partial<{
721
- view: DiagramView;
722
- readonly: boolean;
723
- showElementLinks: boolean;
724
- showNavigationButtons: boolean;
725
- showNotations: boolean;
726
- fitViewEnabled: boolean;
727
- fitViewPadding: number;
728
- zoomable: boolean;
729
- pannable: boolean;
730
- nodesDraggable: boolean;
731
- nodesSelectable: boolean;
732
- experimentalEdgeEditing: boolean;
733
- enableFocusMode: boolean;
734
- renderIcon: ElementIconRenderer | null;
735
- whereFilter: WhereOperator<string, string> | null;
736
- enableDynamicViewWalkthrough: boolean;
737
- xyflow: XYFlowInstance;
738
- xystore: XYStoreApi;
739
- getContainer: () => HTMLDivElement | null;
740
- onChange: import('../LikeC4Diagram.props').OnChange | null;
741
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
742
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
743
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
744
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
745
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
746
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
747
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
748
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
749
- onBurgerMenuClick: (() => void) | null;
750
- onOpenSourceView: (() => void) | null;
751
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
752
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
753
- readonly storeDevId: string;
754
- xynodes: XYFlowNode[];
755
- xyedges: {
756
- id: string;
757
- type: "relationship";
758
- source: string;
759
- target: string;
760
- sourceHandle?: string | null;
761
- targetHandle?: string | null;
762
- animated?: boolean;
763
- hidden?: boolean;
764
- deletable?: boolean;
765
- selectable?: boolean;
766
- data: import('../xyflow/types').RelationshipData;
767
- selected?: boolean;
768
- markerStart?: import('@xyflow/react').EdgeMarkerType;
769
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
770
- zIndex?: number;
771
- ariaLabel?: string;
772
- interactionWidth?: number;
773
- label?: string | import('react').ReactNode;
774
- labelStyle?: import('react').CSSProperties;
775
- labelShowBg?: boolean;
776
- labelBgStyle?: import('react').CSSProperties;
777
- labelBgPadding?: [number, number];
778
- labelBgBorderRadius?: number;
779
- style?: import('react').CSSProperties;
780
- className?: string;
781
- reconnectable?: boolean | import('@xyflow/react').HandleType;
782
- focusable?: boolean;
783
- }[];
784
- viewSyncDebounceTimeout: number | null;
785
- viewportChanged: boolean;
786
- initialized: boolean;
787
- isDynamicView: boolean;
788
- activeDynamicViewStep: number | null;
789
- lastClickedNodeId: string | null;
790
- lastClickedEdgeId: string | null;
791
- focusedNodeId: string | null;
792
- hoveredNodeId: string | null;
793
- hoveredEdgeId: string | null;
794
- dimmed: ReadonlySet<string>;
795
- lastOnNavigate: null | {
796
- fromView: ViewID;
797
- toView: ViewID;
798
- fromNode: NodeId;
799
- };
800
- navigationHistory: Array<{
801
- viewId: ViewID;
802
- nodeId: NodeId | null;
803
- }>;
804
- navigationHistoryIndex: number;
805
- updateView: (view: DiagramView) => void;
806
- focusOnNode: (nodeId: string) => void;
807
- setHoveredNode: (nodeId: string | null) => void;
808
- setHoveredEdge: (edgeId: string | null) => void;
809
- setLastClickedNode: (nodeId: string | null) => void;
810
- setLastClickedEdge: (edgeId: string | null) => void;
811
- resetLastClicked: () => void;
812
- getElement: (id: Fqn) => DiagramNode | null;
813
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
814
- cancelSaveManualLayout: () => boolean;
815
- scheduleSaveManualLayout: () => void;
816
- triggerSaveManualLayout: () => void;
817
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
818
- fitDiagram: (duration?: number) => void;
819
- goBack: () => void;
820
- goForward: () => void;
821
- nextDynamicStep: (increment?: number) => void;
822
- activateDynamicStep: (step: number) => void;
823
- stopDynamicView: () => void;
824
- onInit: (xyflow: XYFlowInstance) => void;
825
- onNodesChange: OnNodesChange<XYFlowNode>;
826
- onEdgesChange: OnEdgesChange<{
827
- id: string;
828
- type: "relationship";
829
- source: string;
830
- target: string;
831
- sourceHandle?: string | null;
832
- targetHandle?: string | null;
833
- animated?: boolean;
834
- hidden?: boolean;
835
- deletable?: boolean;
836
- selectable?: boolean;
837
- data: import('../xyflow/types').RelationshipData;
838
- selected?: boolean;
839
- markerStart?: import('@xyflow/react').EdgeMarkerType;
840
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
841
- zIndex?: number;
842
- ariaLabel?: string;
843
- interactionWidth?: number;
844
- label?: string | import('react').ReactNode;
845
- labelStyle?: import('react').CSSProperties;
846
- labelShowBg?: boolean;
847
- labelBgStyle?: import('react').CSSProperties;
848
- labelBgPadding?: [number, number];
849
- labelBgBorderRadius?: number;
850
- style?: import('react').CSSProperties;
851
- className?: string;
852
- reconnectable?: boolean | import('@xyflow/react').HandleType;
853
- focusable?: boolean;
854
- }>;
855
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
856
- }> | ((state: {
857
- view: DiagramView;
858
- readonly: boolean;
859
- showElementLinks: boolean;
860
- showNavigationButtons: boolean;
861
- showNotations: boolean;
862
- fitViewEnabled: boolean;
863
- fitViewPadding: number;
864
- zoomable: boolean;
865
- pannable: boolean;
866
- nodesDraggable: boolean;
867
- nodesSelectable: boolean;
868
- experimentalEdgeEditing: boolean;
869
- enableFocusMode: boolean;
870
- renderIcon: ElementIconRenderer | null;
871
- whereFilter: WhereOperator<string, string> | null;
872
- enableDynamicViewWalkthrough: boolean;
873
- xyflow: XYFlowInstance;
874
- xystore: XYStoreApi;
875
- getContainer: () => HTMLDivElement | null;
876
- onChange: import('../LikeC4Diagram.props').OnChange | null;
877
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
878
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
879
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
880
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
881
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
882
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
883
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
884
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
885
- onBurgerMenuClick: (() => void) | null;
886
- onOpenSourceView: (() => void) | null;
887
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
888
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
889
- readonly storeDevId: string;
890
- xynodes: XYFlowNode[];
891
- xyedges: {
892
- id: string;
893
- type: "relationship";
894
- source: string;
895
- target: string;
896
- sourceHandle?: string | null;
897
- targetHandle?: string | null;
898
- animated?: boolean;
899
- hidden?: boolean;
900
- deletable?: boolean;
901
- selectable?: boolean;
902
- data: import('../xyflow/types').RelationshipData;
903
- selected?: boolean;
904
- markerStart?: import('@xyflow/react').EdgeMarkerType;
905
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
906
- zIndex?: number;
907
- ariaLabel?: string;
908
- interactionWidth?: number;
909
- label?: string | import('react').ReactNode;
910
- labelStyle?: import('react').CSSProperties;
911
- labelShowBg?: boolean;
912
- labelBgStyle?: import('react').CSSProperties;
913
- labelBgPadding?: [number, number];
914
- labelBgBorderRadius?: number;
915
- style?: import('react').CSSProperties;
916
- className?: string;
917
- reconnectable?: boolean | import('@xyflow/react').HandleType;
918
- focusable?: boolean;
919
- }[];
920
- viewSyncDebounceTimeout: number | null;
921
- viewportChanged: boolean;
922
- initialized: boolean;
923
- isDynamicView: boolean;
924
- activeDynamicViewStep: number | null;
925
- lastClickedNodeId: string | null;
926
- lastClickedEdgeId: string | null;
927
- focusedNodeId: string | null;
928
- hoveredNodeId: string | null;
929
- hoveredEdgeId: string | null;
930
- dimmed: ReadonlySet<string>;
931
- lastOnNavigate: null | {
932
- fromView: ViewID;
933
- toView: ViewID;
934
- fromNode: NodeId;
935
- };
936
- navigationHistory: Array<{
937
- viewId: ViewID;
938
- nodeId: NodeId | null;
939
- }>;
940
- navigationHistoryIndex: number;
941
- updateView: (view: DiagramView) => void;
942
- focusOnNode: (nodeId: string) => void;
943
- setHoveredNode: (nodeId: string | null) => void;
944
- setHoveredEdge: (edgeId: string | null) => void;
945
- setLastClickedNode: (nodeId: string | null) => void;
946
- setLastClickedEdge: (edgeId: string | null) => void;
947
- resetLastClicked: () => void;
948
- getElement: (id: Fqn) => DiagramNode | null;
949
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
950
- cancelSaveManualLayout: () => boolean;
951
- scheduleSaveManualLayout: () => void;
952
- triggerSaveManualLayout: () => void;
953
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
954
- fitDiagram: (duration?: number) => void;
955
- goBack: () => void;
956
- goForward: () => void;
957
- nextDynamicStep: (increment?: number) => void;
958
- activateDynamicStep: (step: number) => void;
959
- stopDynamicView: () => void;
960
- onInit: (xyflow: XYFlowInstance) => void;
961
- onNodesChange: OnNodesChange<XYFlowNode>;
962
- onEdgesChange: OnEdgesChange<{
963
- id: string;
964
- type: "relationship";
965
- source: string;
966
- target: string;
967
- sourceHandle?: string | null;
968
- targetHandle?: string | null;
969
- animated?: boolean;
970
- hidden?: boolean;
971
- deletable?: boolean;
972
- selectable?: boolean;
973
- data: import('../xyflow/types').RelationshipData;
974
- selected?: boolean;
975
- markerStart?: import('@xyflow/react').EdgeMarkerType;
976
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
977
- zIndex?: number;
978
- ariaLabel?: string;
979
- interactionWidth?: number;
980
- label?: string | import('react').ReactNode;
981
- labelStyle?: import('react').CSSProperties;
982
- labelShowBg?: boolean;
983
- labelBgStyle?: import('react').CSSProperties;
984
- labelBgPadding?: [number, number];
985
- labelBgBorderRadius?: number;
986
- style?: import('react').CSSProperties;
987
- className?: string;
988
- reconnectable?: boolean | import('@xyflow/react').HandleType;
989
- focusable?: boolean;
990
- }>;
991
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
992
- }) => {
993
- view: DiagramView;
994
- readonly: boolean;
995
- showElementLinks: boolean;
996
- showNavigationButtons: boolean;
997
- showNotations: boolean;
998
- fitViewEnabled: boolean;
999
- fitViewPadding: number;
1000
- zoomable: boolean;
1001
- pannable: boolean;
1002
- nodesDraggable: boolean;
1003
- nodesSelectable: boolean;
1004
- experimentalEdgeEditing: boolean;
1005
- enableFocusMode: boolean;
1006
- renderIcon: ElementIconRenderer | null;
1007
- whereFilter: WhereOperator<string, string> | null;
1008
- enableDynamicViewWalkthrough: boolean;
1009
- xyflow: XYFlowInstance;
1010
- xystore: XYStoreApi;
1011
- getContainer: () => HTMLDivElement | null;
1012
- onChange: import('../LikeC4Diagram.props').OnChange | null;
1013
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
1014
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
1015
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
1016
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
1017
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
1018
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
1019
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
1020
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
1021
- onBurgerMenuClick: (() => void) | null;
1022
- onOpenSourceView: (() => void) | null;
1023
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
1024
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
1025
- readonly storeDevId: string;
1026
- xynodes: XYFlowNode[];
1027
- xyedges: {
1028
- id: string;
1029
- type: "relationship";
1030
- source: string;
1031
- target: string;
1032
- sourceHandle?: string | null;
1033
- targetHandle?: string | null;
1034
- animated?: boolean;
1035
- hidden?: boolean;
1036
- deletable?: boolean;
1037
- selectable?: boolean;
1038
- data: import('../xyflow/types').RelationshipData;
1039
- selected?: boolean;
1040
- markerStart?: import('@xyflow/react').EdgeMarkerType;
1041
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
1042
- zIndex?: number;
1043
- ariaLabel?: string;
1044
- interactionWidth?: number;
1045
- label?: string | import('react').ReactNode;
1046
- labelStyle?: import('react').CSSProperties;
1047
- labelShowBg?: boolean;
1048
- labelBgStyle?: import('react').CSSProperties;
1049
- labelBgPadding?: [number, number];
1050
- labelBgBorderRadius?: number;
1051
- style?: import('react').CSSProperties;
1052
- className?: string;
1053
- reconnectable?: boolean | import('@xyflow/react').HandleType;
1054
- focusable?: boolean;
1055
- }[];
1056
- viewSyncDebounceTimeout: number | null;
1057
- viewportChanged: boolean;
1058
- initialized: boolean;
1059
- isDynamicView: boolean;
1060
- activeDynamicViewStep: number | null;
1061
- lastClickedNodeId: string | null;
1062
- lastClickedEdgeId: string | null;
1063
- focusedNodeId: string | null;
1064
- hoveredNodeId: string | null;
1065
- hoveredEdgeId: string | null;
1066
- dimmed: ReadonlySet<string>;
1067
- lastOnNavigate: null | {
1068
- fromView: ViewID;
1069
- toView: ViewID;
1070
- fromNode: NodeId;
1071
- };
1072
- navigationHistory: Array<{
1073
- viewId: ViewID;
1074
- nodeId: NodeId | null;
1075
- }>;
1076
- navigationHistoryIndex: number;
1077
- updateView: (view: DiagramView) => void;
1078
- focusOnNode: (nodeId: string) => void;
1079
- setHoveredNode: (nodeId: string | null) => void;
1080
- setHoveredEdge: (edgeId: string | null) => void;
1081
- setLastClickedNode: (nodeId: string | null) => void;
1082
- setLastClickedEdge: (edgeId: string | null) => void;
1083
- resetLastClicked: () => void;
1084
- getElement: (id: Fqn) => DiagramNode | null;
1085
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1086
- cancelSaveManualLayout: () => boolean;
1087
- scheduleSaveManualLayout: () => void;
1088
- triggerSaveManualLayout: () => void;
1089
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1090
- fitDiagram: (duration?: number) => void;
1091
- goBack: () => void;
1092
- goForward: () => void;
1093
- nextDynamicStep: (increment?: number) => void;
1094
- activateDynamicStep: (step: number) => void;
1095
- stopDynamicView: () => void;
1096
- onInit: (xyflow: XYFlowInstance) => void;
1097
- onNodesChange: OnNodesChange<XYFlowNode>;
1098
- onEdgesChange: OnEdgesChange<{
1099
- id: string;
1100
- type: "relationship";
1101
- source: string;
1102
- target: string;
1103
- sourceHandle?: string | null;
1104
- targetHandle?: string | null;
1105
- animated?: boolean;
1106
- hidden?: boolean;
1107
- deletable?: boolean;
1108
- selectable?: boolean;
1109
- data: import('../xyflow/types').RelationshipData;
1110
- selected?: boolean;
1111
- markerStart?: import('@xyflow/react').EdgeMarkerType;
1112
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
1113
- zIndex?: number;
1114
- ariaLabel?: string;
1115
- interactionWidth?: number;
1116
- label?: string | import('react').ReactNode;
1117
- labelStyle?: import('react').CSSProperties;
1118
- labelShowBg?: boolean;
1119
- labelBgStyle?: import('react').CSSProperties;
1120
- labelBgPadding?: [number, number];
1121
- labelBgBorderRadius?: number;
1122
- style?: import('react').CSSProperties;
1123
- className?: string;
1124
- reconnectable?: boolean | import('@xyflow/react').HandleType;
1125
- focusable?: boolean;
1126
- }>;
1127
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
1128
- } | Partial<{
1129
- view: DiagramView;
1130
- readonly: boolean;
1131
- showElementLinks: boolean;
1132
- showNavigationButtons: boolean;
1133
- showNotations: boolean;
1134
- fitViewEnabled: boolean;
1135
- fitViewPadding: number;
1136
- zoomable: boolean;
1137
- pannable: boolean;
1138
- nodesDraggable: boolean;
1139
- nodesSelectable: boolean;
1140
- experimentalEdgeEditing: boolean;
1141
- enableFocusMode: boolean;
1142
- renderIcon: ElementIconRenderer | null;
1143
- whereFilter: WhereOperator<string, string> | null;
1144
- enableDynamicViewWalkthrough: boolean;
1145
- xyflow: XYFlowInstance;
1146
- xystore: XYStoreApi;
1147
- getContainer: () => HTMLDivElement | null;
1148
- onChange: import('../LikeC4Diagram.props').OnChange | null;
1149
- onNavigateTo: import('../LikeC4Diagram.props').OnNavigateTo | null;
1150
- onNodeClick: import('../LikeC4Diagram.props').OnNodeClick | null;
1151
- onNodeContextMenu: import('../LikeC4Diagram.props').OnNodeClick | null;
1152
- onCanvasContextMenu: import('../LikeC4Diagram.props').OnCanvasClick | null;
1153
- onEdgeClick: import('../LikeC4Diagram.props').OnEdgeClick | null;
1154
- onEdgeContextMenu: import('../LikeC4Diagram.props').OnEdgeClick | null;
1155
- onCanvasClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
1156
- onCanvasDblClick: import('../LikeC4Diagram.props').OnCanvasClick | null;
1157
- onBurgerMenuClick: (() => void) | null;
1158
- onOpenSourceView: (() => void) | null;
1159
- onOpenSourceElement: ((fqn: Fqn) => void) | null;
1160
- onOpenSourceRelation: ((id: import('@likec4/core').RelationID) => void) | null;
1161
- readonly storeDevId: string;
1162
- xynodes: XYFlowNode[];
1163
- xyedges: {
1164
- id: string;
1165
- type: "relationship";
1166
- source: string;
1167
- target: string;
1168
- sourceHandle?: string | null;
1169
- targetHandle?: string | null;
1170
- animated?: boolean;
1171
- hidden?: boolean;
1172
- deletable?: boolean;
1173
- selectable?: boolean;
1174
- data: import('../xyflow/types').RelationshipData;
1175
- selected?: boolean;
1176
- markerStart?: import('@xyflow/react').EdgeMarkerType;
1177
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
1178
- zIndex?: number;
1179
- ariaLabel?: string;
1180
- interactionWidth?: number;
1181
- label?: string | import('react').ReactNode;
1182
- labelStyle?: import('react').CSSProperties;
1183
- labelShowBg?: boolean;
1184
- labelBgStyle?: import('react').CSSProperties;
1185
- labelBgPadding?: [number, number];
1186
- labelBgBorderRadius?: number;
1187
- style?: import('react').CSSProperties;
1188
- className?: string;
1189
- reconnectable?: boolean | import('@xyflow/react').HandleType;
1190
- focusable?: boolean;
1191
- }[];
1192
- viewSyncDebounceTimeout: number | null;
1193
- viewportChanged: boolean;
1194
- initialized: boolean;
1195
- isDynamicView: boolean;
1196
- activeDynamicViewStep: number | null;
1197
- lastClickedNodeId: string | null;
1198
- lastClickedEdgeId: string | null;
1199
- focusedNodeId: string | null;
1200
- hoveredNodeId: string | null;
1201
- hoveredEdgeId: string | null;
1202
- dimmed: ReadonlySet<string>;
1203
- lastOnNavigate: null | {
1204
- fromView: ViewID;
1205
- toView: ViewID;
1206
- fromNode: NodeId;
1207
- };
1208
- navigationHistory: Array<{
1209
- viewId: ViewID;
1210
- nodeId: NodeId | null;
1211
- }>;
1212
- navigationHistoryIndex: number;
1213
- updateView: (view: DiagramView) => void;
1214
- focusOnNode: (nodeId: string) => void;
1215
- setHoveredNode: (nodeId: string | null) => void;
1216
- setHoveredEdge: (edgeId: string | null) => void;
1217
- setLastClickedNode: (nodeId: string | null) => void;
1218
- setLastClickedEdge: (edgeId: string | null) => void;
1219
- resetLastClicked: () => void;
1220
- getElement: (id: Fqn) => DiagramNode | null;
1221
- triggerChangeElementStyle: (change: ViewChange.ChangeElementStyle) => void;
1222
- cancelSaveManualLayout: () => boolean;
1223
- scheduleSaveManualLayout: () => void;
1224
- triggerSaveManualLayout: () => void;
1225
- triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
1226
- fitDiagram: (duration?: number) => void;
1227
- goBack: () => void;
1228
- goForward: () => void;
1229
- nextDynamicStep: (increment?: number) => void;
1230
- activateDynamicStep: (step: number) => void;
1231
- stopDynamicView: () => void;
1232
- onInit: (xyflow: XYFlowInstance) => void;
1233
- onNodesChange: OnNodesChange<XYFlowNode>;
1234
- onEdgesChange: OnEdgesChange<{
1235
- id: string;
1236
- type: "relationship";
1237
- source: string;
1238
- target: string;
1239
- sourceHandle?: string | null;
1240
- targetHandle?: string | null;
1241
- animated?: boolean;
1242
- hidden?: boolean;
1243
- deletable?: boolean;
1244
- selectable?: boolean;
1245
- data: import('../xyflow/types').RelationshipData;
1246
- selected?: boolean;
1247
- markerStart?: import('@xyflow/react').EdgeMarkerType;
1248
- markerEnd?: import('@xyflow/react').EdgeMarkerType;
1249
- zIndex?: number;
1250
- ariaLabel?: string;
1251
- interactionWidth?: number;
1252
- label?: string | import('react').ReactNode;
1253
- labelStyle?: import('react').CSSProperties;
1254
- labelShowBg?: boolean;
1255
- labelBgStyle?: import('react').CSSProperties;
1256
- labelBgPadding?: [number, number];
1257
- labelBgBorderRadius?: number;
1258
- style?: import('react').CSSProperties;
1259
- className?: string;
1260
- reconnectable?: boolean | import('@xyflow/react').HandleType;
1261
- focusable?: boolean;
1262
- }>;
1263
- highlightByElementNotation: (notation: ElementNotation, onlyOfKind?: ElementKind) => void;
1264
- }>), replace?: boolean | undefined, action?: A | undefined): void;
1265
- }>;
1266
- export type DiagramZustandStore = ReturnType<typeof createDiagramStore>;
1267
- export type DiagramStoreApi = Readonly<Pick<DiagramZustandStore, 'getState' | 'setState' | 'subscribe'>>;
1268
- export {};