@likec4/diagram 1.0.0-next.2 → 1.0.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 (124) hide show
  1. package/dist/LikeC4Diagram.css.d.ts +0 -1
  2. package/dist/LikeC4Diagram.d.ts +1 -2
  3. package/dist/LikeC4Diagram.props.d.ts +24 -25
  4. package/dist/StaticLikeC4Diagram.d.ts +1 -2
  5. package/dist/globals.css.d.ts +1 -0
  6. package/dist/hooks/index.d.ts +2 -3
  7. package/dist/hooks/useSetState.d.ts +3 -0
  8. package/dist/hooks/useUpdateEffect.d.ts +4 -0
  9. package/dist/icons/Clipboard.d.ts +0 -1
  10. package/dist/icons/Link.d.ts +0 -1
  11. package/dist/icons/ZoomIn.d.ts +0 -1
  12. package/dist/icons/index.d.ts +0 -1
  13. package/dist/index.d.ts +1 -4
  14. package/dist/index.mjs +9388 -0
  15. package/dist/mantine/EnsureMantine.d.ts +2 -4
  16. package/dist/mantine/theme.d.ts +3 -0
  17. package/dist/mantine.css.d.ts +1 -0
  18. package/dist/state/DiagramContext.d.ts +386 -0
  19. package/dist/state/WhenInitialized.d.ts +3 -0
  20. package/dist/state/diagramStore.d.ts +428 -0
  21. package/dist/state/index.d.ts +4 -2
  22. package/dist/state/useDiagramStore.d.ts +387 -0
  23. package/dist/style.css +1212 -1
  24. package/dist/theme.css.d.ts +16 -2
  25. package/dist/ui/Camera.d.ts +0 -1
  26. package/dist/ui/KeepAspectRatio.css.d.ts +0 -1
  27. package/dist/ui/KeepAspectRatio.d.ts +0 -1
  28. package/dist/ui/OptionsPanel.css.d.ts +0 -1
  29. package/dist/ui/OptionsPanel.d.ts +0 -1
  30. package/dist/ui/index.d.ts +0 -1
  31. package/dist/ui/options/NodeOptions.d.ts +0 -1
  32. package/dist/xyflow/FitviewOnDiagramChange.d.ts +1 -5
  33. package/dist/xyflow/SyncWithDiagram.d.ts +5 -0
  34. package/dist/xyflow/XYFlowBackground.d.ts +0 -1
  35. package/dist/xyflow/XYFlowEvents.d.ts +5 -15
  36. package/dist/xyflow/XYFlowWrapper.d.ts +4 -5
  37. package/dist/xyflow/const.d.ts +1 -2
  38. package/dist/xyflow/diagram-to-xyflow.d.ts +4 -2
  39. package/dist/xyflow/edges/RelationshipEdge.d.ts +7 -7
  40. package/dist/xyflow/edges/edges.css.d.ts +2 -1
  41. package/dist/xyflow/edges/utils.d.ts +3 -4
  42. package/dist/xyflow/hooks/index.d.ts +2 -37
  43. package/dist/xyflow/hooks/{use-layout-/321/201onstraints.d.ts → useLayoutConstraints.d.ts} +2 -4
  44. package/dist/xyflow/hooks/useXYFlow.d.ts +266 -0
  45. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +0 -1
  46. package/dist/xyflow/nodes/compound/CompoundNode.d.ts +0 -1
  47. package/dist/xyflow/nodes/compound/index.d.ts +0 -1
  48. package/dist/xyflow/nodes/element/ElementIcon.d.ts +1 -2
  49. package/dist/xyflow/nodes/element/ElementLink.css.d.ts +0 -1
  50. package/dist/xyflow/nodes/element/ElementLink.d.ts +1 -2
  51. package/dist/xyflow/nodes/element/ElementNode.d.ts +1 -3
  52. package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +2 -3
  53. package/dist/xyflow/nodes/element/element.css.d.ts +0 -1
  54. package/dist/xyflow/nodes/element/index.d.ts +1 -2
  55. package/dist/xyflow/nodes/shared/NavigateToBtn.d.ts +0 -1
  56. package/dist/xyflow/types.d.ts +20 -8
  57. package/dist/xyflow/utils.d.ts +0 -1
  58. package/package.json +36 -34
  59. package/src/LikeC4Diagram.css.ts +31 -0
  60. package/src/LikeC4Diagram.props.ts +154 -0
  61. package/src/LikeC4Diagram.tsx +119 -0
  62. package/src/StaticLikeC4Diagram.tsx +39 -0
  63. package/src/globals.css.ts +128 -0
  64. package/src/hooks/index.ts +2 -0
  65. package/src/hooks/useSetState.ts +19 -0
  66. package/src/hooks/useUpdateEffect.ts +28 -0
  67. package/src/icons/Clipboard.tsx +24 -0
  68. package/src/icons/Link.tsx +23 -0
  69. package/src/icons/ZoomIn.tsx +25 -0
  70. package/src/icons/index.ts +3 -0
  71. package/src/index.ts +11 -0
  72. package/src/mantine/EnsureMantine.tsx +14 -0
  73. package/src/mantine/theme.ts +19 -0
  74. package/src/mantine.css.ts +4 -0
  75. package/src/reset.d.ts +2 -0
  76. package/src/state/DiagramContext.tsx +42 -0
  77. package/src/state/WhenInitialized.tsx +24 -0
  78. package/src/state/diagramStore.ts +358 -0
  79. package/src/state/index.ts +4 -0
  80. package/src/state/useDiagramStore.ts +39 -0
  81. package/src/theme.css.ts +64 -0
  82. package/src/ui/Camera.tsx +174 -0
  83. package/src/ui/KeepAspectRatio.css.ts +7 -0
  84. package/src/ui/KeepAspectRatio.tsx +35 -0
  85. package/src/ui/OptionsPanel.css.ts +10 -0
  86. package/src/ui/OptionsPanel.tsx +65 -0
  87. package/src/ui/index.ts +3 -0
  88. package/src/ui/options/NodeOptions.tsx +253 -0
  89. package/src/xyflow/FitviewOnDiagramChange.tsx +93 -0
  90. package/src/xyflow/SyncWithDiagram.tsx +113 -0
  91. package/src/xyflow/XYFlowBackground.tsx +33 -0
  92. package/src/xyflow/XYFlowEvents.tsx +100 -0
  93. package/src/xyflow/XYFlowWrapper.tsx +166 -0
  94. package/src/xyflow/const.ts +7 -0
  95. package/src/xyflow/diagram-to-xyflow.ts +197 -0
  96. package/src/xyflow/edges/RelationshipEdge.tsx +288 -0
  97. package/src/xyflow/edges/edges.css.ts +124 -0
  98. package/src/xyflow/edges/utils.ts +110 -0
  99. package/src/xyflow/hooks/index.ts +2 -0
  100. package/src/xyflow/hooks/useLayoutConstraints.ts +289 -0
  101. package/src/xyflow/hooks/useXYFlow.ts +20 -0
  102. package/src/xyflow/nodes/compound/CompoundNode.css.ts +191 -0
  103. package/src/xyflow/nodes/compound/CompoundNode.tsx +105 -0
  104. package/src/xyflow/nodes/compound/index.ts +1 -0
  105. package/src/xyflow/nodes/element/ElementIcon.tsx +44 -0
  106. package/src/xyflow/nodes/element/ElementLink.css.ts +67 -0
  107. package/src/xyflow/nodes/element/ElementLink.tsx +94 -0
  108. package/src/xyflow/nodes/element/ElementNode.tsx +225 -0
  109. package/src/xyflow/nodes/element/ElementShapeSvg.tsx +181 -0
  110. package/src/xyflow/nodes/element/element.css.ts +261 -0
  111. package/src/xyflow/nodes/element/index.ts +1 -0
  112. package/src/xyflow/nodes/shared/NavigateToBtn.tsx +25 -0
  113. package/src/xyflow/types.ts +100 -0
  114. package/src/xyflow/utils.ts +12 -0
  115. package/dist/EmbeddedLikeC4Diagram.css.d.ts +0 -6
  116. package/dist/EmbeddedLikeC4Diagram.d.ts +0 -18
  117. package/dist/bundle.d.ts +0 -3
  118. package/dist/hooks/use-set-state.d.ts +0 -2
  119. package/dist/hooks/use-update-effect.d.ts +0 -4
  120. package/dist/index.css.d.ts +0 -2
  121. package/dist/index.js +0 -13043
  122. package/dist/mantine/index.d.ts +0 -3
  123. package/dist/state/DiagramState.d.ts +0 -162
  124. package/dist/xyflow/UpdateOnDiagramChange.d.ts +0 -10
@@ -0,0 +1,387 @@
1
+ import { DiagramState } from './diagramStore';
2
+
3
+ declare function useDiagramState<StateSlice = unknown>(selector: (state: DiagramState) => StateSlice, equalityFn?: (a: StateSlice, b: StateSlice) => boolean): StateSlice;
4
+ declare function useDiagramStoreApi(): {
5
+ getState: () => {
6
+ view: import('@likec4/core').DiagramView;
7
+ readonly: boolean;
8
+ showElementLinks: boolean;
9
+ fitViewEnabled: boolean;
10
+ fitViewPadding: number;
11
+ nodesDraggable: boolean;
12
+ nodesSelectable: boolean;
13
+ xyflow: import('..').XYFlowInstance;
14
+ initialized: boolean;
15
+ lastClickedNodeId: string | null;
16
+ lastClickedEdgeId: string | null;
17
+ hoveredNodeId: string | null;
18
+ hoveredEdgeId: string | null;
19
+ previousViews: import('@likec4/core').DiagramView[];
20
+ lastOnNavigate: {
21
+ fromView: import('@likec4/core').ViewID;
22
+ toView: import('@likec4/core').ViewID;
23
+ element: import('@likec4/core').DiagramNode;
24
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
25
+ positionCorrected: boolean;
26
+ } | null;
27
+ viewportChanged: boolean;
28
+ onChange: import('..').OnChange | null | undefined;
29
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
30
+ onNodeClick: import('..').OnNodeClick | null | undefined;
31
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
32
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
33
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
34
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
35
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
36
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
37
+ updateView: (view: import('@likec4/core').DiagramView) => void;
38
+ setHoveredNode: (nodeId: string | null) => void;
39
+ setHoveredEdge: (edgeId: string | null) => void;
40
+ setLastClickedNode: (nodeId: string | null) => void;
41
+ setLastClickedEdge: (edgeId: string | null) => void;
42
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
43
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
44
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
45
+ fitDiagram: () => void;
46
+ };
47
+ setState: <A extends string | {
48
+ type: string;
49
+ }>(partial: {
50
+ view: import('@likec4/core').DiagramView;
51
+ readonly: boolean;
52
+ showElementLinks: boolean;
53
+ fitViewEnabled: boolean;
54
+ fitViewPadding: number;
55
+ nodesDraggable: boolean;
56
+ nodesSelectable: boolean;
57
+ xyflow: import('..').XYFlowInstance;
58
+ initialized: boolean;
59
+ lastClickedNodeId: string | null;
60
+ lastClickedEdgeId: string | null;
61
+ hoveredNodeId: string | null;
62
+ hoveredEdgeId: string | null;
63
+ previousViews: import('@likec4/core').DiagramView[];
64
+ lastOnNavigate: {
65
+ fromView: import('@likec4/core').ViewID;
66
+ toView: import('@likec4/core').ViewID;
67
+ element: import('@likec4/core').DiagramNode;
68
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
69
+ positionCorrected: boolean;
70
+ } | null;
71
+ viewportChanged: boolean;
72
+ onChange: import('..').OnChange | null | undefined;
73
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
74
+ onNodeClick: import('..').OnNodeClick | null | undefined;
75
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
76
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
77
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
78
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
79
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
80
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
81
+ updateView: (view: import('@likec4/core').DiagramView) => void;
82
+ setHoveredNode: (nodeId: string | null) => void;
83
+ setHoveredEdge: (edgeId: string | null) => void;
84
+ setLastClickedNode: (nodeId: string | null) => void;
85
+ setLastClickedEdge: (edgeId: string | null) => void;
86
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
87
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
88
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
89
+ fitDiagram: () => void;
90
+ } | Partial<{
91
+ view: import('@likec4/core').DiagramView;
92
+ readonly: boolean;
93
+ showElementLinks: boolean;
94
+ fitViewEnabled: boolean;
95
+ fitViewPadding: number;
96
+ nodesDraggable: boolean;
97
+ nodesSelectable: boolean;
98
+ xyflow: import('..').XYFlowInstance;
99
+ initialized: boolean;
100
+ lastClickedNodeId: string | null;
101
+ lastClickedEdgeId: string | null;
102
+ hoveredNodeId: string | null;
103
+ hoveredEdgeId: string | null;
104
+ previousViews: import('@likec4/core').DiagramView[];
105
+ lastOnNavigate: {
106
+ fromView: import('@likec4/core').ViewID;
107
+ toView: import('@likec4/core').ViewID;
108
+ element: import('@likec4/core').DiagramNode;
109
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
110
+ positionCorrected: boolean;
111
+ } | null;
112
+ viewportChanged: boolean;
113
+ onChange: import('..').OnChange | null | undefined;
114
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
115
+ onNodeClick: import('..').OnNodeClick | null | undefined;
116
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
117
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
118
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
119
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
120
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
121
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
122
+ updateView: (view: import('@likec4/core').DiagramView) => void;
123
+ setHoveredNode: (nodeId: string | null) => void;
124
+ setHoveredEdge: (edgeId: string | null) => void;
125
+ setLastClickedNode: (nodeId: string | null) => void;
126
+ setLastClickedEdge: (edgeId: string | null) => void;
127
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
128
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
129
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
130
+ fitDiagram: () => void;
131
+ }> | ((state: {
132
+ view: import('@likec4/core').DiagramView;
133
+ readonly: boolean;
134
+ showElementLinks: boolean;
135
+ fitViewEnabled: boolean;
136
+ fitViewPadding: number;
137
+ nodesDraggable: boolean;
138
+ nodesSelectable: boolean;
139
+ xyflow: import('..').XYFlowInstance;
140
+ initialized: boolean;
141
+ lastClickedNodeId: string | null;
142
+ lastClickedEdgeId: string | null;
143
+ hoveredNodeId: string | null;
144
+ hoveredEdgeId: string | null;
145
+ previousViews: import('@likec4/core').DiagramView[];
146
+ lastOnNavigate: {
147
+ fromView: import('@likec4/core').ViewID;
148
+ toView: import('@likec4/core').ViewID;
149
+ element: import('@likec4/core').DiagramNode;
150
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
151
+ positionCorrected: boolean;
152
+ } | null;
153
+ viewportChanged: boolean;
154
+ onChange: import('..').OnChange | null | undefined;
155
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
156
+ onNodeClick: import('..').OnNodeClick | null | undefined;
157
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
158
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
159
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
160
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
161
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
162
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
163
+ updateView: (view: import('@likec4/core').DiagramView) => void;
164
+ setHoveredNode: (nodeId: string | null) => void;
165
+ setHoveredEdge: (edgeId: string | null) => void;
166
+ setLastClickedNode: (nodeId: string | null) => void;
167
+ setLastClickedEdge: (edgeId: string | null) => void;
168
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
169
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
170
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
171
+ fitDiagram: () => void;
172
+ }) => {
173
+ view: import('@likec4/core').DiagramView;
174
+ readonly: boolean;
175
+ showElementLinks: boolean;
176
+ fitViewEnabled: boolean;
177
+ fitViewPadding: number;
178
+ nodesDraggable: boolean;
179
+ nodesSelectable: boolean;
180
+ xyflow: import('..').XYFlowInstance;
181
+ initialized: boolean;
182
+ lastClickedNodeId: string | null;
183
+ lastClickedEdgeId: string | null;
184
+ hoveredNodeId: string | null;
185
+ hoveredEdgeId: string | null;
186
+ previousViews: import('@likec4/core').DiagramView[];
187
+ lastOnNavigate: {
188
+ fromView: import('@likec4/core').ViewID;
189
+ toView: import('@likec4/core').ViewID;
190
+ element: import('@likec4/core').DiagramNode;
191
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
192
+ positionCorrected: boolean;
193
+ } | null;
194
+ viewportChanged: boolean;
195
+ onChange: import('..').OnChange | null | undefined;
196
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
197
+ onNodeClick: import('..').OnNodeClick | null | undefined;
198
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
199
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
200
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
201
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
202
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
203
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
204
+ updateView: (view: import('@likec4/core').DiagramView) => void;
205
+ setHoveredNode: (nodeId: string | null) => void;
206
+ setHoveredEdge: (edgeId: string | null) => void;
207
+ setLastClickedNode: (nodeId: string | null) => void;
208
+ setLastClickedEdge: (edgeId: string | null) => void;
209
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
210
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
211
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
212
+ fitDiagram: () => void;
213
+ } | Partial<{
214
+ view: import('@likec4/core').DiagramView;
215
+ readonly: boolean;
216
+ showElementLinks: boolean;
217
+ fitViewEnabled: boolean;
218
+ fitViewPadding: number;
219
+ nodesDraggable: boolean;
220
+ nodesSelectable: boolean;
221
+ xyflow: import('..').XYFlowInstance;
222
+ initialized: boolean;
223
+ lastClickedNodeId: string | null;
224
+ lastClickedEdgeId: string | null;
225
+ hoveredNodeId: string | null;
226
+ hoveredEdgeId: string | null;
227
+ previousViews: import('@likec4/core').DiagramView[];
228
+ lastOnNavigate: {
229
+ fromView: import('@likec4/core').ViewID;
230
+ toView: import('@likec4/core').ViewID;
231
+ element: import('@likec4/core').DiagramNode;
232
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
233
+ positionCorrected: boolean;
234
+ } | null;
235
+ viewportChanged: boolean;
236
+ onChange: import('..').OnChange | null | undefined;
237
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
238
+ onNodeClick: import('..').OnNodeClick | null | undefined;
239
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
240
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
241
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
242
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
243
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
244
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
245
+ updateView: (view: import('@likec4/core').DiagramView) => void;
246
+ setHoveredNode: (nodeId: string | null) => void;
247
+ setHoveredEdge: (edgeId: string | null) => void;
248
+ setLastClickedNode: (nodeId: string | null) => void;
249
+ setLastClickedEdge: (edgeId: string | null) => void;
250
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
251
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
252
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
253
+ fitDiagram: () => void;
254
+ }>), replace?: boolean | undefined, action?: A | undefined) => void;
255
+ subscribe: {
256
+ (listener: (selectedState: {
257
+ view: import('@likec4/core').DiagramView;
258
+ readonly: boolean;
259
+ showElementLinks: boolean;
260
+ fitViewEnabled: boolean;
261
+ fitViewPadding: number;
262
+ nodesDraggable: boolean;
263
+ nodesSelectable: boolean;
264
+ xyflow: import('..').XYFlowInstance;
265
+ initialized: boolean;
266
+ lastClickedNodeId: string | null;
267
+ lastClickedEdgeId: string | null;
268
+ hoveredNodeId: string | null;
269
+ hoveredEdgeId: string | null;
270
+ previousViews: import('@likec4/core').DiagramView[];
271
+ lastOnNavigate: {
272
+ fromView: import('@likec4/core').ViewID;
273
+ toView: import('@likec4/core').ViewID;
274
+ element: import('@likec4/core').DiagramNode;
275
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
276
+ positionCorrected: boolean;
277
+ } | null;
278
+ viewportChanged: boolean;
279
+ onChange: import('..').OnChange | null | undefined;
280
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
281
+ onNodeClick: import('..').OnNodeClick | null | undefined;
282
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
283
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
284
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
285
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
286
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
287
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
288
+ updateView: (view: import('@likec4/core').DiagramView) => void;
289
+ setHoveredNode: (nodeId: string | null) => void;
290
+ setHoveredEdge: (edgeId: string | null) => void;
291
+ setLastClickedNode: (nodeId: string | null) => void;
292
+ setLastClickedEdge: (edgeId: string | null) => void;
293
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
294
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
295
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
296
+ fitDiagram: () => void;
297
+ }, previousSelectedState: {
298
+ view: import('@likec4/core').DiagramView;
299
+ readonly: boolean;
300
+ showElementLinks: boolean;
301
+ fitViewEnabled: boolean;
302
+ fitViewPadding: number;
303
+ nodesDraggable: boolean;
304
+ nodesSelectable: boolean;
305
+ xyflow: import('..').XYFlowInstance;
306
+ initialized: boolean;
307
+ lastClickedNodeId: string | null;
308
+ lastClickedEdgeId: string | null;
309
+ hoveredNodeId: string | null;
310
+ hoveredEdgeId: string | null;
311
+ previousViews: import('@likec4/core').DiagramView[];
312
+ lastOnNavigate: {
313
+ fromView: import('@likec4/core').ViewID;
314
+ toView: import('@likec4/core').ViewID;
315
+ element: import('@likec4/core').DiagramNode;
316
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
317
+ positionCorrected: boolean;
318
+ } | null;
319
+ viewportChanged: boolean;
320
+ onChange: import('..').OnChange | null | undefined;
321
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
322
+ onNodeClick: import('..').OnNodeClick | null | undefined;
323
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
324
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
325
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
326
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
327
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
328
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
329
+ updateView: (view: import('@likec4/core').DiagramView) => void;
330
+ setHoveredNode: (nodeId: string | null) => void;
331
+ setHoveredEdge: (edgeId: string | null) => void;
332
+ setLastClickedNode: (nodeId: string | null) => void;
333
+ setLastClickedEdge: (edgeId: string | null) => void;
334
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
335
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
336
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
337
+ fitDiagram: () => void;
338
+ }) => void): () => void;
339
+ <U>(selector: (state: {
340
+ view: import('@likec4/core').DiagramView;
341
+ readonly: boolean;
342
+ showElementLinks: boolean;
343
+ fitViewEnabled: boolean;
344
+ fitViewPadding: number;
345
+ nodesDraggable: boolean;
346
+ nodesSelectable: boolean;
347
+ xyflow: import('..').XYFlowInstance;
348
+ initialized: boolean;
349
+ lastClickedNodeId: string | null;
350
+ lastClickedEdgeId: string | null;
351
+ hoveredNodeId: string | null;
352
+ hoveredEdgeId: string | null;
353
+ previousViews: import('@likec4/core').DiagramView[];
354
+ lastOnNavigate: {
355
+ fromView: import('@likec4/core').ViewID;
356
+ toView: import('@likec4/core').ViewID;
357
+ element: import('@likec4/core').DiagramNode;
358
+ elementCenterScreenPosition: import('@xyflow/system').XYPosition;
359
+ positionCorrected: boolean;
360
+ } | null;
361
+ viewportChanged: boolean;
362
+ onChange: import('..').OnChange | null | undefined;
363
+ onNavigateTo: import('..').OnNavigateTo | null | undefined;
364
+ onNodeClick: import('..').OnNodeClick | null | undefined;
365
+ onNodeContextMenu: import('..').OnNodeClick | null | undefined;
366
+ onCanvasContextMenu: import('..').OnCanvasClick | null | undefined;
367
+ onEdgeClick: import('..').OnEdgeClick | null | undefined;
368
+ onEdgeContextMenu: import('..').OnEdgeClick | null | undefined;
369
+ onCanvasClick: import('..').OnCanvasClick | null | undefined;
370
+ onCanvasDblClick: import('..').OnCanvasClick | null | undefined;
371
+ updateView: (view: import('@likec4/core').DiagramView) => void;
372
+ setHoveredNode: (nodeId: string | null) => void;
373
+ setHoveredEdge: (edgeId: string | null) => void;
374
+ setLastClickedNode: (nodeId: string | null) => void;
375
+ setLastClickedEdge: (edgeId: string | null) => void;
376
+ getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
377
+ triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Change>) => void;
378
+ triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
379
+ fitDiagram: () => void;
380
+ }) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
381
+ equalityFn?: (a: U, b: U) => boolean;
382
+ fireImmediately?: boolean;
383
+ } | undefined): () => void;
384
+ };
385
+ };
386
+ export type DiagramStoreApi = ReturnType<typeof useDiagramStoreApi>;
387
+ export { useDiagramState, useDiagramStoreApi };