@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,428 @@
1
+ import { XYFlowInstance } from '../xyflow/types';
2
+ import { Change, LikeC4DiagramEventHandlers } from '../LikeC4Diagram.props';
3
+ import { Exact, Simplify } from 'type-fest';
4
+ import { MouseEvent as ReactMouseEvent } from 'react';
5
+ import { XYPosition } from '@xyflow/react';
6
+ import { DiagramNode, DiagramView, Fqn, NonEmptyArray, ViewID } from '@likec4/core';
7
+
8
+ export type DiagramStore = {
9
+ view: DiagramView;
10
+ readonly: boolean;
11
+ showElementLinks: boolean;
12
+ fitViewEnabled: boolean;
13
+ fitViewPadding: number;
14
+ nodesDraggable: boolean;
15
+ nodesSelectable: boolean;
16
+ xyflow: XYFlowInstance;
17
+ initialized: boolean;
18
+ lastClickedNodeId: string | null;
19
+ lastClickedEdgeId: string | null;
20
+ hoveredNodeId: string | null;
21
+ hoveredEdgeId: string | null;
22
+ previousViews: DiagramView[];
23
+ lastOnNavigate: null | {
24
+ fromView: ViewID;
25
+ toView: ViewID;
26
+ element: DiagramNode;
27
+ elementCenterScreenPosition: XYPosition;
28
+ positionCorrected: boolean;
29
+ };
30
+ viewportChanged: boolean;
31
+ } & Required<LikeC4DiagramEventHandlers>;
32
+ export type DiagramInitialState = Pick<DiagramStore, 'view' | 'readonly' | 'showElementLinks' | 'fitViewEnabled' | 'fitViewPadding' | 'nodesDraggable' | 'nodesSelectable'> & LikeC4DiagramEventHandlers;
33
+ interface DiagramStoreActions {
34
+ updateView: (view: DiagramView) => void;
35
+ setHoveredNode: (nodeId: string | null) => void;
36
+ setHoveredEdge: (edgeId: string | null) => void;
37
+ setLastClickedNode: (nodeId: string | null) => void;
38
+ setLastClickedEdge: (edgeId: string | null) => void;
39
+ getElement(id: Fqn): DiagramNode | null;
40
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
41
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
42
+ fitDiagram: () => void;
43
+ }
44
+ export type DiagramState = Simplify<DiagramStore & DiagramStoreActions>;
45
+ type CreateDiagramStore = DiagramInitialState & Pick<DiagramStore, 'xyflow'>;
46
+ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T>>(props: T): import('zustand/traditional').UseBoundStoreWithEqualityFn<Omit<Omit<import("zustand/vanilla").StoreApi<{
47
+ view: DiagramView;
48
+ readonly: boolean;
49
+ showElementLinks: boolean;
50
+ fitViewEnabled: boolean;
51
+ fitViewPadding: number;
52
+ nodesDraggable: boolean;
53
+ nodesSelectable: boolean;
54
+ xyflow: XYFlowInstance;
55
+ initialized: boolean;
56
+ lastClickedNodeId: string | null;
57
+ lastClickedEdgeId: string | null;
58
+ hoveredNodeId: string | null;
59
+ hoveredEdgeId: string | null;
60
+ previousViews: DiagramView[];
61
+ lastOnNavigate: {
62
+ fromView: ViewID;
63
+ toView: ViewID;
64
+ element: DiagramNode;
65
+ elementCenterScreenPosition: XYPosition;
66
+ positionCorrected: boolean;
67
+ } | null;
68
+ viewportChanged: boolean;
69
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
70
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
71
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
72
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
73
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
74
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
75
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
76
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
77
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
78
+ updateView: (view: DiagramView) => void;
79
+ setHoveredNode: (nodeId: string | null) => void;
80
+ setHoveredEdge: (edgeId: string | null) => void;
81
+ setLastClickedNode: (nodeId: string | null) => void;
82
+ setLastClickedEdge: (edgeId: string | null) => void;
83
+ getElement: (id: Fqn) => DiagramNode | null;
84
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
85
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
86
+ fitDiagram: () => void;
87
+ }>, "subscribe"> & {
88
+ subscribe: {
89
+ (listener: (selectedState: {
90
+ view: DiagramView;
91
+ readonly: boolean;
92
+ showElementLinks: boolean;
93
+ fitViewEnabled: boolean;
94
+ fitViewPadding: number;
95
+ nodesDraggable: boolean;
96
+ nodesSelectable: boolean;
97
+ xyflow: XYFlowInstance;
98
+ initialized: boolean;
99
+ lastClickedNodeId: string | null;
100
+ lastClickedEdgeId: string | null;
101
+ hoveredNodeId: string | null;
102
+ hoveredEdgeId: string | null;
103
+ previousViews: DiagramView[];
104
+ lastOnNavigate: {
105
+ fromView: ViewID;
106
+ toView: ViewID;
107
+ element: DiagramNode;
108
+ elementCenterScreenPosition: XYPosition;
109
+ positionCorrected: boolean;
110
+ } | null;
111
+ viewportChanged: boolean;
112
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
113
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
114
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
115
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
116
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
117
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
118
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
119
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
120
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
121
+ updateView: (view: DiagramView) => void;
122
+ setHoveredNode: (nodeId: string | null) => void;
123
+ setHoveredEdge: (edgeId: string | null) => void;
124
+ setLastClickedNode: (nodeId: string | null) => void;
125
+ setLastClickedEdge: (edgeId: string | null) => void;
126
+ getElement: (id: Fqn) => DiagramNode | null;
127
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
128
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
129
+ fitDiagram: () => void;
130
+ }, previousSelectedState: {
131
+ view: DiagramView;
132
+ readonly: boolean;
133
+ showElementLinks: boolean;
134
+ fitViewEnabled: boolean;
135
+ fitViewPadding: number;
136
+ nodesDraggable: boolean;
137
+ nodesSelectable: boolean;
138
+ xyflow: XYFlowInstance;
139
+ initialized: boolean;
140
+ lastClickedNodeId: string | null;
141
+ lastClickedEdgeId: string | null;
142
+ hoveredNodeId: string | null;
143
+ hoveredEdgeId: string | null;
144
+ previousViews: DiagramView[];
145
+ lastOnNavigate: {
146
+ fromView: ViewID;
147
+ toView: ViewID;
148
+ element: DiagramNode;
149
+ elementCenterScreenPosition: XYPosition;
150
+ positionCorrected: boolean;
151
+ } | null;
152
+ viewportChanged: boolean;
153
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
154
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
155
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
156
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
157
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
158
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
159
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
160
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
161
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
162
+ updateView: (view: DiagramView) => void;
163
+ setHoveredNode: (nodeId: string | null) => void;
164
+ setHoveredEdge: (edgeId: string | null) => void;
165
+ setLastClickedNode: (nodeId: string | null) => void;
166
+ setLastClickedEdge: (edgeId: string | null) => void;
167
+ getElement: (id: Fqn) => DiagramNode | null;
168
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
169
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
170
+ fitDiagram: () => void;
171
+ }) => void): () => void;
172
+ <U>(selector: (state: {
173
+ view: DiagramView;
174
+ readonly: boolean;
175
+ showElementLinks: boolean;
176
+ fitViewEnabled: boolean;
177
+ fitViewPadding: number;
178
+ nodesDraggable: boolean;
179
+ nodesSelectable: boolean;
180
+ xyflow: XYFlowInstance;
181
+ initialized: boolean;
182
+ lastClickedNodeId: string | null;
183
+ lastClickedEdgeId: string | null;
184
+ hoveredNodeId: string | null;
185
+ hoveredEdgeId: string | null;
186
+ previousViews: DiagramView[];
187
+ lastOnNavigate: {
188
+ fromView: ViewID;
189
+ toView: ViewID;
190
+ element: DiagramNode;
191
+ elementCenterScreenPosition: XYPosition;
192
+ positionCorrected: boolean;
193
+ } | null;
194
+ viewportChanged: boolean;
195
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
196
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
197
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
198
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
199
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
200
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
201
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
202
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
203
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
204
+ updateView: (view: 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: Fqn) => DiagramNode | null;
210
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
211
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
212
+ fitDiagram: () => void;
213
+ }) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
214
+ equalityFn?: (a: U, b: U) => boolean;
215
+ fireImmediately?: boolean;
216
+ } | undefined): () => void;
217
+ };
218
+ }, "setState"> & {
219
+ setState<A extends string | {
220
+ type: string;
221
+ }>(partial: {
222
+ view: DiagramView;
223
+ readonly: boolean;
224
+ showElementLinks: boolean;
225
+ fitViewEnabled: boolean;
226
+ fitViewPadding: number;
227
+ nodesDraggable: boolean;
228
+ nodesSelectable: boolean;
229
+ xyflow: XYFlowInstance;
230
+ initialized: boolean;
231
+ lastClickedNodeId: string | null;
232
+ lastClickedEdgeId: string | null;
233
+ hoveredNodeId: string | null;
234
+ hoveredEdgeId: string | null;
235
+ previousViews: DiagramView[];
236
+ lastOnNavigate: {
237
+ fromView: ViewID;
238
+ toView: ViewID;
239
+ element: DiagramNode;
240
+ elementCenterScreenPosition: XYPosition;
241
+ positionCorrected: boolean;
242
+ } | null;
243
+ viewportChanged: boolean;
244
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
245
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
246
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
247
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
248
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
249
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
250
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
251
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
252
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
253
+ updateView: (view: DiagramView) => 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
+ getElement: (id: Fqn) => DiagramNode | null;
259
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
260
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
261
+ fitDiagram: () => void;
262
+ } | Partial<{
263
+ view: DiagramView;
264
+ readonly: boolean;
265
+ showElementLinks: boolean;
266
+ fitViewEnabled: boolean;
267
+ fitViewPadding: number;
268
+ nodesDraggable: boolean;
269
+ nodesSelectable: boolean;
270
+ xyflow: XYFlowInstance;
271
+ initialized: boolean;
272
+ lastClickedNodeId: string | null;
273
+ lastClickedEdgeId: string | null;
274
+ hoveredNodeId: string | null;
275
+ hoveredEdgeId: string | null;
276
+ previousViews: DiagramView[];
277
+ lastOnNavigate: {
278
+ fromView: ViewID;
279
+ toView: ViewID;
280
+ element: DiagramNode;
281
+ elementCenterScreenPosition: XYPosition;
282
+ positionCorrected: boolean;
283
+ } | null;
284
+ viewportChanged: boolean;
285
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
286
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
287
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
288
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
289
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
290
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
291
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
292
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
293
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
294
+ updateView: (view: DiagramView) => void;
295
+ setHoveredNode: (nodeId: string | null) => void;
296
+ setHoveredEdge: (edgeId: string | null) => void;
297
+ setLastClickedNode: (nodeId: string | null) => void;
298
+ setLastClickedEdge: (edgeId: string | null) => void;
299
+ getElement: (id: Fqn) => DiagramNode | null;
300
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
301
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
302
+ fitDiagram: () => void;
303
+ }> | ((state: {
304
+ view: DiagramView;
305
+ readonly: boolean;
306
+ showElementLinks: boolean;
307
+ fitViewEnabled: boolean;
308
+ fitViewPadding: number;
309
+ nodesDraggable: boolean;
310
+ nodesSelectable: boolean;
311
+ xyflow: XYFlowInstance;
312
+ initialized: boolean;
313
+ lastClickedNodeId: string | null;
314
+ lastClickedEdgeId: string | null;
315
+ hoveredNodeId: string | null;
316
+ hoveredEdgeId: string | null;
317
+ previousViews: DiagramView[];
318
+ lastOnNavigate: {
319
+ fromView: ViewID;
320
+ toView: ViewID;
321
+ element: DiagramNode;
322
+ elementCenterScreenPosition: XYPosition;
323
+ positionCorrected: boolean;
324
+ } | null;
325
+ viewportChanged: boolean;
326
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
327
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
328
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
329
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
330
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
331
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
332
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
333
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
334
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
335
+ updateView: (view: DiagramView) => void;
336
+ setHoveredNode: (nodeId: string | null) => void;
337
+ setHoveredEdge: (edgeId: string | null) => void;
338
+ setLastClickedNode: (nodeId: string | null) => void;
339
+ setLastClickedEdge: (edgeId: string | null) => void;
340
+ getElement: (id: Fqn) => DiagramNode | null;
341
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
342
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
343
+ fitDiagram: () => void;
344
+ }) => {
345
+ view: DiagramView;
346
+ readonly: boolean;
347
+ showElementLinks: boolean;
348
+ fitViewEnabled: boolean;
349
+ fitViewPadding: number;
350
+ nodesDraggable: boolean;
351
+ nodesSelectable: boolean;
352
+ xyflow: XYFlowInstance;
353
+ initialized: boolean;
354
+ lastClickedNodeId: string | null;
355
+ lastClickedEdgeId: string | null;
356
+ hoveredNodeId: string | null;
357
+ hoveredEdgeId: string | null;
358
+ previousViews: DiagramView[];
359
+ lastOnNavigate: {
360
+ fromView: ViewID;
361
+ toView: ViewID;
362
+ element: DiagramNode;
363
+ elementCenterScreenPosition: XYPosition;
364
+ positionCorrected: boolean;
365
+ } | null;
366
+ viewportChanged: boolean;
367
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
368
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
369
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
370
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
371
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
372
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
373
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
374
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
375
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
376
+ updateView: (view: DiagramView) => void;
377
+ setHoveredNode: (nodeId: string | null) => void;
378
+ setHoveredEdge: (edgeId: string | null) => void;
379
+ setLastClickedNode: (nodeId: string | null) => void;
380
+ setLastClickedEdge: (edgeId: string | null) => void;
381
+ getElement: (id: Fqn) => DiagramNode | null;
382
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
383
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
384
+ fitDiagram: () => void;
385
+ } | Partial<{
386
+ view: DiagramView;
387
+ readonly: boolean;
388
+ showElementLinks: boolean;
389
+ fitViewEnabled: boolean;
390
+ fitViewPadding: number;
391
+ nodesDraggable: boolean;
392
+ nodesSelectable: boolean;
393
+ xyflow: XYFlowInstance;
394
+ initialized: boolean;
395
+ lastClickedNodeId: string | null;
396
+ lastClickedEdgeId: string | null;
397
+ hoveredNodeId: string | null;
398
+ hoveredEdgeId: string | null;
399
+ previousViews: DiagramView[];
400
+ lastOnNavigate: {
401
+ fromView: ViewID;
402
+ toView: ViewID;
403
+ element: DiagramNode;
404
+ elementCenterScreenPosition: XYPosition;
405
+ positionCorrected: boolean;
406
+ } | null;
407
+ viewportChanged: boolean;
408
+ onChange: import("../LikeC4Diagram.props").OnChange | null | undefined;
409
+ onNavigateTo: import("../LikeC4Diagram.props").OnNavigateTo | null | undefined;
410
+ onNodeClick: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
411
+ onNodeContextMenu: import("../LikeC4Diagram.props").OnNodeClick | null | undefined;
412
+ onCanvasContextMenu: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
413
+ onEdgeClick: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
414
+ onEdgeContextMenu: import("../LikeC4Diagram.props").OnEdgeClick | null | undefined;
415
+ onCanvasClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
416
+ onCanvasDblClick: import("../LikeC4Diagram.props").OnCanvasClick | null | undefined;
417
+ updateView: (view: DiagramView) => void;
418
+ setHoveredNode: (nodeId: string | null) => void;
419
+ setHoveredEdge: (edgeId: string | null) => void;
420
+ setLastClickedNode: (nodeId: string | null) => void;
421
+ setLastClickedEdge: (edgeId: string | null) => void;
422
+ getElement: (id: Fqn) => DiagramNode | null;
423
+ triggerOnChange: (changes: NonEmptyArray<Change>) => void;
424
+ triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
425
+ fitDiagram: () => void;
426
+ }>), replace?: boolean | undefined, action?: A | undefined): void;
427
+ }>;
428
+ export {};
@@ -1,2 +1,4 @@
1
- export * from './DiagramState';
2
- //# sourceMappingURL=index.d.ts.map
1
+ export { DiagramContextProvider } from './DiagramContext';
2
+ export type * from './diagramStore';
3
+ export * from './useDiagramStore';
4
+ export { WhenInitialized } from './WhenInitialized';