@likec4/diagram 1.1.0 → 1.1.1
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.
- package/dist/LikeC4Diagram.d.ts +1 -1
- package/dist/LikeC4Diagram.props.d.ts +16 -11
- package/dist/index.mjs +413 -101
- package/dist/state/DiagramContext.d.ts +18 -9
- package/dist/state/diagramStore.d.ts +19 -9
- package/dist/state/useDiagramStore.d.ts +18 -9
- package/dist/style.css +99 -35
- package/dist/ui/DiagramTitlePanel.css.d.ts +4 -0
- package/dist/ui/DiagramTitlePanel.d.ts +2 -0
- package/dist/ui/OptionsPanel.d.ts +1 -2
- package/dist/xyflow/SelectEdgesOnNodeFocus.d.ts +1 -0
- package/dist/xyflow/XYFlowEvents.d.ts +46 -40
- package/dist/xyflow/edges/edges.css.d.ts +1 -0
- package/package.json +4 -2
- package/src/LikeC4Diagram.css.ts +2 -1
- package/src/LikeC4Diagram.props.ts +17 -12
- package/src/LikeC4Diagram.tsx +3 -0
- package/src/StaticLikeC4Diagram.tsx +1 -0
- package/src/globals.css.ts +6 -1
- package/src/state/diagramStore.ts +101 -63
- package/src/ui/DiagramTitlePanel.css.ts +32 -0
- package/src/ui/DiagramTitlePanel.tsx +139 -0
- package/src/ui/OptionsPanel.tsx +4 -23
- package/src/ui/options/NodeOptions.tsx +107 -30
- package/src/xyflow/FitviewOnDiagramChange.tsx +2 -2
- package/src/xyflow/SelectEdgesOnNodeFocus.tsx +57 -0
- package/src/xyflow/SyncWithDiagram.tsx +12 -6
- package/src/xyflow/XYFlow.tsx +7 -3
- package/src/xyflow/XYFlowEvents.tsx +145 -104
- package/src/xyflow/edges/RelationshipEdge.tsx +43 -47
- package/src/xyflow/edges/edges.css.ts +77 -36
- package/src/xyflow/nodes/compound/CompoundNode.css.ts +17 -13
- package/src/xyflow/nodes/element/element.css.ts +1 -0
|
@@ -41,8 +41,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
41
41
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
42
42
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
43
43
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
44
|
+
resetLastClicked: () => void;
|
|
44
45
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
45
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
46
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
46
47
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
47
48
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
48
49
|
}>, "subscribe"> & {
|
|
@@ -87,8 +88,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
87
88
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
88
89
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
89
90
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
91
|
+
resetLastClicked: () => void;
|
|
90
92
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
91
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
93
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
92
94
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
93
95
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
94
96
|
}, previousSelectedState: {
|
|
@@ -131,8 +133,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
131
133
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
132
134
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
133
135
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
136
|
+
resetLastClicked: () => void;
|
|
134
137
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
135
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
138
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
136
139
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
137
140
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
138
141
|
}) => void): () => void;
|
|
@@ -176,8 +179,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
176
179
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
177
180
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
178
181
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
182
|
+
resetLastClicked: () => void;
|
|
179
183
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
180
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
184
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
181
185
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
182
186
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
183
187
|
}) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
@@ -228,8 +232,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
228
232
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
229
233
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
230
234
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
235
|
+
resetLastClicked: () => void;
|
|
231
236
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
232
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
237
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
233
238
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
234
239
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
235
240
|
} | Partial<{
|
|
@@ -272,8 +277,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
272
277
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
273
278
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
274
279
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
280
|
+
resetLastClicked: () => void;
|
|
275
281
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
276
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
282
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
277
283
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
278
284
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
279
285
|
}> | ((state: {
|
|
@@ -316,8 +322,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
316
322
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
317
323
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
318
324
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
325
|
+
resetLastClicked: () => void;
|
|
319
326
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
320
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
327
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
321
328
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
322
329
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
323
330
|
}) => {
|
|
@@ -360,8 +367,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
360
367
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
361
368
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
362
369
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
370
|
+
resetLastClicked: () => void;
|
|
363
371
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
364
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
372
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
365
373
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
366
374
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
367
375
|
} | Partial<{
|
|
@@ -404,8 +412,9 @@ export declare const DiagramContext: import('react').Context<import("zustand/tra
|
|
|
404
412
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
405
413
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
406
414
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
415
|
+
resetLastClicked: () => void;
|
|
407
416
|
getElement: (id: import("@likec4/core").Fqn) => import("@likec4/core").DiagramNode | null;
|
|
408
|
-
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").
|
|
417
|
+
triggerOnChange: (changes: import("@likec4/core").NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
409
418
|
triggerOnNavigateTo: (xynodeId: string, event: import("react").MouseEvent<Element, MouseEvent>) => void;
|
|
410
419
|
fitDiagram: (centerNode?: import("..").XYFlowNode | undefined) => void;
|
|
411
420
|
}>), replace?: boolean | undefined, action?: A | undefined): void;
|
|
@@ -39,6 +39,7 @@ interface DiagramStoreActions {
|
|
|
39
39
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
40
40
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
41
41
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
42
|
+
resetLastClicked: () => void;
|
|
42
43
|
getElement(id: Fqn): DiagramNode | null;
|
|
43
44
|
triggerOnChange: (changes: NonEmptyArray<Change>) => void;
|
|
44
45
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent) => void;
|
|
@@ -86,8 +87,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
86
87
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
87
88
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
88
89
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
90
|
+
resetLastClicked: () => void;
|
|
89
91
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
90
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
92
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
91
93
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
92
94
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
93
95
|
}>, "subscribe"> & {
|
|
@@ -132,8 +134,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
132
134
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
133
135
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
134
136
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
137
|
+
resetLastClicked: () => void;
|
|
135
138
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
136
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
139
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
137
140
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
138
141
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
139
142
|
}, previousSelectedState: {
|
|
@@ -176,8 +179,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
176
179
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
177
180
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
178
181
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
182
|
+
resetLastClicked: () => void;
|
|
179
183
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
180
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
184
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
181
185
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
182
186
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
183
187
|
}) => void): () => void;
|
|
@@ -221,8 +225,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
221
225
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
222
226
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
223
227
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
228
|
+
resetLastClicked: () => void;
|
|
224
229
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
225
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
230
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
226
231
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
227
232
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
228
233
|
}) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
@@ -273,8 +278,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
273
278
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
274
279
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
275
280
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
281
|
+
resetLastClicked: () => void;
|
|
276
282
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
277
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
283
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
278
284
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
279
285
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
280
286
|
} | Partial<{
|
|
@@ -317,8 +323,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
317
323
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
318
324
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
319
325
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
326
|
+
resetLastClicked: () => void;
|
|
320
327
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
321
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
328
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
322
329
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
323
330
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
324
331
|
}> | ((state: {
|
|
@@ -361,8 +368,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
361
368
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
362
369
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
363
370
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
371
|
+
resetLastClicked: () => void;
|
|
364
372
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
365
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
373
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
366
374
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
367
375
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
368
376
|
}) => {
|
|
@@ -405,8 +413,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
405
413
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
406
414
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
407
415
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
416
|
+
resetLastClicked: () => void;
|
|
408
417
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
409
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
418
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
410
419
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
411
420
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
412
421
|
} | Partial<{
|
|
@@ -449,8 +458,9 @@ export declare function createDiagramStore<T extends Exact<CreateDiagramStore, T
|
|
|
449
458
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
450
459
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
451
460
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
461
|
+
resetLastClicked: () => void;
|
|
452
462
|
getElement: (id: Fqn) => DiagramNode | null;
|
|
453
|
-
triggerOnChange: (changes: NonEmptyArray<
|
|
463
|
+
triggerOnChange: (changes: NonEmptyArray<import("../LikeC4Diagram.props").Changes.ChangeElementStyle>) => void;
|
|
454
464
|
triggerOnNavigateTo: (xynodeId: string, event: ReactMouseEvent<Element, MouseEvent>) => void;
|
|
455
465
|
fitDiagram: (centerNode?: XYFlowNode | undefined) => void;
|
|
456
466
|
}>), replace?: boolean | undefined, action?: A | undefined): void;
|
|
@@ -42,8 +42,9 @@ declare function useDiagramStoreApi(): {
|
|
|
42
42
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
43
43
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
44
44
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
45
|
+
resetLastClicked: () => void;
|
|
45
46
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
46
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
47
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
47
48
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
48
49
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
49
50
|
};
|
|
@@ -89,8 +90,9 @@ declare function useDiagramStoreApi(): {
|
|
|
89
90
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
90
91
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
91
92
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
93
|
+
resetLastClicked: () => void;
|
|
92
94
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
93
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
95
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
94
96
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
95
97
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
96
98
|
} | Partial<{
|
|
@@ -133,8 +135,9 @@ declare function useDiagramStoreApi(): {
|
|
|
133
135
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
134
136
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
135
137
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
138
|
+
resetLastClicked: () => void;
|
|
136
139
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
137
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
140
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
138
141
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
139
142
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
140
143
|
}> | ((state: {
|
|
@@ -177,8 +180,9 @@ declare function useDiagramStoreApi(): {
|
|
|
177
180
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
178
181
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
179
182
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
183
|
+
resetLastClicked: () => void;
|
|
180
184
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
181
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
185
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
182
186
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
183
187
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
184
188
|
}) => {
|
|
@@ -221,8 +225,9 @@ declare function useDiagramStoreApi(): {
|
|
|
221
225
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
222
226
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
223
227
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
228
|
+
resetLastClicked: () => void;
|
|
224
229
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
225
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
230
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
226
231
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
227
232
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
228
233
|
} | Partial<{
|
|
@@ -265,8 +270,9 @@ declare function useDiagramStoreApi(): {
|
|
|
265
270
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
266
271
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
267
272
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
273
|
+
resetLastClicked: () => void;
|
|
268
274
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
269
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
275
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
270
276
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
271
277
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
272
278
|
}>), replace?: boolean | undefined, action?: A | undefined) => void;
|
|
@@ -311,8 +317,9 @@ declare function useDiagramStoreApi(): {
|
|
|
311
317
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
312
318
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
313
319
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
320
|
+
resetLastClicked: () => void;
|
|
314
321
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
315
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
322
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
316
323
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
317
324
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
318
325
|
}, previousSelectedState: {
|
|
@@ -355,8 +362,9 @@ declare function useDiagramStoreApi(): {
|
|
|
355
362
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
356
363
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
357
364
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
365
|
+
resetLastClicked: () => void;
|
|
358
366
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
359
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
367
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
360
368
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
361
369
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
362
370
|
}) => void): () => void;
|
|
@@ -400,8 +408,9 @@ declare function useDiagramStoreApi(): {
|
|
|
400
408
|
setHoveredEdge: (edgeId: string | null) => void;
|
|
401
409
|
setLastClickedNode: (nodeId: string | null) => void;
|
|
402
410
|
setLastClickedEdge: (edgeId: string | null) => void;
|
|
411
|
+
resetLastClicked: () => void;
|
|
403
412
|
getElement: (id: import('@likec4/core').Fqn) => import('@likec4/core').DiagramNode | null;
|
|
404
|
-
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").
|
|
413
|
+
triggerOnChange: (changes: import('@likec4/core').NonEmptyArray<import("..").Changes.ChangeElementStyle>) => void;
|
|
405
414
|
triggerOnNavigateTo: (xynodeId: string, event: import('react').MouseEvent<Element, MouseEvent>) => void;
|
|
406
415
|
fitDiagram: (centerNode?: import('..').XYFlowNode | undefined) => void;
|
|
407
416
|
}) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
package/dist/style.css
CHANGED
|
@@ -597,6 +597,10 @@ svg.react-flow__connectionline {
|
|
|
597
597
|
.react-flow__edge-text {
|
|
598
598
|
fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
|
|
599
599
|
}
|
|
600
|
+
.likec4-diagram-root {
|
|
601
|
+
-webkit-font-smoothing: var(--mantine-webkit-font-smoothing);
|
|
602
|
+
-moz-osx-font-smoothing: var(--mantine-moz-font-smoothing);
|
|
603
|
+
}
|
|
600
604
|
.likec4-diagram-root {
|
|
601
605
|
--likec4-font-family: var(--likec4-default-font-family,'ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"');
|
|
602
606
|
--likec4-background-color: var(--mantine-color-body);
|
|
@@ -1262,7 +1266,7 @@ svg.react-flow__connectionline {
|
|
|
1262
1266
|
--xy-background-pattern-color: var(--likec4-background-pattern-color);
|
|
1263
1267
|
}
|
|
1264
1268
|
.react-flow._2h8g8h1 .react-flow__viewport {
|
|
1265
|
-
|
|
1269
|
+
backface-visibility: hidden;
|
|
1266
1270
|
}
|
|
1267
1271
|
.react-flow._2h8g8h1._2h8g8h3 {
|
|
1268
1272
|
--likec4-background-color: transparent !important;
|
|
@@ -1271,28 +1275,66 @@ svg.react-flow__connectionline {
|
|
|
1271
1275
|
}
|
|
1272
1276
|
:where(._2h8g8h4, ._2h8g8h3) .react-flow__attribution {
|
|
1273
1277
|
display: none;
|
|
1278
|
+
}.hbkbtj0 {
|
|
1279
|
+
bottom: 0;
|
|
1280
|
+
left: 0;
|
|
1281
|
+
padding: 8px;
|
|
1282
|
+
margin: 0;
|
|
1283
|
+
}
|
|
1284
|
+
.hbkbtj1 {
|
|
1285
|
+
cursor: default;
|
|
1286
|
+
min-width: 200px;
|
|
1287
|
+
max-width: calc(100vw - 16px);
|
|
1288
|
+
background-color: color-mix(in srgb, var(--mantine-color-body), transparent 20%);
|
|
1289
|
+
backdrop-filter: blur(8px);
|
|
1290
|
+
}
|
|
1291
|
+
.hbkbtj3 {
|
|
1292
|
+
white-space-collapse: preserve-breaks;
|
|
1293
|
+
color: var(--mantine-color-gray-7);
|
|
1294
|
+
}
|
|
1295
|
+
:where([data-mantine-color-scheme="dark"]) .hbkbtj3 {
|
|
1296
|
+
color: var(--mantine-color-gray-5);
|
|
1297
|
+
}
|
|
1298
|
+
@media (min-width: 62em) {
|
|
1299
|
+
.hbkbtj1 {
|
|
1300
|
+
max-width: 45vw;
|
|
1301
|
+
}
|
|
1274
1302
|
}._1lmzt1h0 {
|
|
1275
1303
|
top: var(--likec4-options-panel-top, 1rem);
|
|
1276
1304
|
right: var(--likec4-options-panel-right, 1rem);
|
|
1277
1305
|
margin: 0;
|
|
1278
1306
|
box-shadow: var(--mantine-shadow-xl);
|
|
1279
|
-
}
|
|
1307
|
+
}@keyframes bexn7q5 {
|
|
1308
|
+
from {
|
|
1309
|
+
stroke-dashoffset: 36;
|
|
1310
|
+
}
|
|
1311
|
+
to {
|
|
1312
|
+
stroke-dashoffset: 1;
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
.bexn7q1 {
|
|
1316
|
+
--bexn7q0: black;
|
|
1280
1317
|
--xy-edge-stroke: var(--likec4-relation-lineColor);
|
|
1281
|
-
--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor),
|
|
1318
|
+
--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor), var(--bexn7q0) 35%);
|
|
1282
1319
|
--xy-edge-label-color: color-mix(in srgb, var(--likec4-relation-labelColor), rgba(255 255 255 / 0.85) 20%);
|
|
1283
1320
|
--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 35%);
|
|
1284
|
-
--xy-edge-stroke-width: 2.
|
|
1321
|
+
--xy-edge-stroke-width: 2.2px;
|
|
1285
1322
|
}
|
|
1286
|
-
[data-mantine-color-scheme="dark"] .
|
|
1323
|
+
:where([data-mantine-color-scheme="dark"]) .bexn7q1 {
|
|
1324
|
+
--bexn7q0: white;
|
|
1287
1325
|
--xy-edge-label-color: var(--likec4-relation-labelColor);
|
|
1288
1326
|
--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 55%);
|
|
1289
1327
|
}
|
|
1290
|
-
.
|
|
1291
|
-
--xy-edge-stroke:
|
|
1328
|
+
:where(.react-flow__edge.selected) .bexn7q1 {
|
|
1329
|
+
--xy-edge-stroke: var(--xy-edge-stroke-selected);
|
|
1330
|
+
--xy-edge-stroke-width: 3px;
|
|
1331
|
+
}
|
|
1332
|
+
.bexn7q1[data-edge-hovered='true'] {
|
|
1333
|
+
--xy-edge-stroke: var(--xy-edge-stroke-selected);
|
|
1292
1334
|
--xy-edge-stroke-width: 3px;
|
|
1293
1335
|
}
|
|
1294
|
-
.react-flow__edge.selected .
|
|
1295
|
-
--xy-edge-stroke-width:
|
|
1336
|
+
:where(.react-flow__edge.selected) .bexn7q1[data-edge-hovered='true'] {
|
|
1337
|
+
--xy-edge-stroke-width: 3.6px;
|
|
1296
1338
|
}
|
|
1297
1339
|
.react-flow__edges > svg {
|
|
1298
1340
|
mix-blend-mode: screen;
|
|
@@ -1300,24 +1342,47 @@ svg.react-flow__connectionline {
|
|
|
1300
1342
|
:where([data-mantine-color-scheme="dark"]) .react-flow__edges > svg {
|
|
1301
1343
|
mix-blend-mode: lighten;
|
|
1302
1344
|
}
|
|
1303
|
-
.bexn7q1 {
|
|
1304
|
-
stroke-width: calc(var(--xy-edge-stroke-width) + 8);
|
|
1305
|
-
stroke-opacity: 0.1;
|
|
1306
|
-
}
|
|
1307
1345
|
.bexn7q2 {
|
|
1346
|
+
stroke-width: var(--xy-edge-stroke-width);
|
|
1347
|
+
stroke-opacity: 0.05;
|
|
1348
|
+
transition-property: stroke-width, stroke-opacity;
|
|
1349
|
+
transition-duration: 155ms;
|
|
1350
|
+
transition-timing-function: ease-out;
|
|
1351
|
+
}
|
|
1352
|
+
:where(.react-flow__edge.selected, [data-edge-hovered='true']) .bexn7q2 {
|
|
1353
|
+
stroke-width: calc(var(--xy-edge-stroke-width) + 8px);
|
|
1354
|
+
stroke-opacity: 0.11;
|
|
1355
|
+
}
|
|
1356
|
+
.bexn7q3 {
|
|
1308
1357
|
fill: var(--xy-edge-stroke);
|
|
1309
1358
|
stroke: var(--xy-edge-stroke);
|
|
1310
1359
|
}
|
|
1311
|
-
.
|
|
1360
|
+
.bexn7q4 {
|
|
1361
|
+
fill: var(--xy-edge-stroke);
|
|
1362
|
+
stroke: var(--xy-edge-stroke);
|
|
1363
|
+
}
|
|
1364
|
+
:where(.react-flow__edge.selected) .bexn7q3 {
|
|
1312
1365
|
--xy-edge-stroke: var(--xy-edge-stroke-selected);
|
|
1313
1366
|
}
|
|
1314
|
-
.
|
|
1367
|
+
.bexn7q6 {
|
|
1368
|
+
animation-duration: 800ms;
|
|
1369
|
+
animation-iteration-count: infinite;
|
|
1370
|
+
animation-timing-function: linear;
|
|
1371
|
+
}
|
|
1372
|
+
:where([data-edge-hovered='true']) .bexn7q6 {
|
|
1373
|
+
animation-name: bexn7q5;
|
|
1374
|
+
animation-delay: 500ms;
|
|
1375
|
+
transition: all 130ms ease-out;
|
|
1376
|
+
}
|
|
1377
|
+
:where(.react-flow__edge.selected) .bexn7q6 {
|
|
1378
|
+
animation-name: bexn7q5;
|
|
1379
|
+
animation-delay: 0ms;
|
|
1315
1380
|
transition: all 130ms ease-out;
|
|
1316
1381
|
}
|
|
1317
|
-
.
|
|
1318
|
-
--
|
|
1319
|
-
--
|
|
1320
|
-
--
|
|
1382
|
+
.bexn7qa {
|
|
1383
|
+
--bexn7q9: translate(var(--bexn7q7), var(--bexn7q8));
|
|
1384
|
+
--bexn7q7: 50%;
|
|
1385
|
+
--bexn7q8: 50%;
|
|
1321
1386
|
top: 0;
|
|
1322
1387
|
left: 0;
|
|
1323
1388
|
font-family: var(--likec4-font-family);
|
|
@@ -1331,14 +1396,14 @@ svg.react-flow__connectionline {
|
|
|
1331
1396
|
width: max-content;
|
|
1332
1397
|
background-color: var(--xy-edge-label-background-color);
|
|
1333
1398
|
border-radius: 3px;
|
|
1334
|
-
transform: var(--
|
|
1335
|
-
|
|
1399
|
+
transform: var(--bexn7q9);
|
|
1400
|
+
backface-visibility: hidden;
|
|
1336
1401
|
}
|
|
1337
|
-
.
|
|
1402
|
+
.bexn7qa[data-edge-hovered="true"] {
|
|
1338
1403
|
transition: all 140ms ease-out;
|
|
1339
|
-
transform: var(--
|
|
1404
|
+
transform: var(--bexn7q9) scale(1.1);
|
|
1340
1405
|
}
|
|
1341
|
-
.
|
|
1406
|
+
.bexn7qb {
|
|
1342
1407
|
color: var(--xy-edge-label-color);
|
|
1343
1408
|
font-size: calc(0.78125rem * var(--mantine-scale));
|
|
1344
1409
|
line-height: 1.12;
|
|
@@ -1362,7 +1427,7 @@ svg.react-flow__connectionline {
|
|
|
1362
1427
|
width: 100%;
|
|
1363
1428
|
height: 100%;
|
|
1364
1429
|
position: relative;
|
|
1365
|
-
border-radius:
|
|
1430
|
+
border-radius: 6px;
|
|
1366
1431
|
box-shadow: 0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4);
|
|
1367
1432
|
padding: 8px;
|
|
1368
1433
|
background: var(--likec4-element-fill);
|
|
@@ -1380,7 +1445,6 @@ svg.react-flow__connectionline {
|
|
|
1380
1445
|
--lbtzdo3: calc(var(--lbtzdo1, 80%) - var(--lbtzdo4));
|
|
1381
1446
|
--lbtzdo4: 0%;
|
|
1382
1447
|
--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
|
|
1383
|
-
border-radius: 8px;
|
|
1384
1448
|
border-style: dashed;
|
|
1385
1449
|
border-width: 3px;
|
|
1386
1450
|
padding: 6px;
|
|
@@ -1388,14 +1452,13 @@ svg.react-flow__connectionline {
|
|
|
1388
1452
|
background: color-mix(in srgb , var(--likec4-element-fill), transparent var(--lbtzdo3));
|
|
1389
1453
|
background-clip: padding-box;
|
|
1390
1454
|
}
|
|
1391
|
-
:where(.lbtzdo0[data-hovered]) .lbtzdo5 {
|
|
1392
|
-
--lbtzdo4: 15%;
|
|
1393
|
-
transition-delay: 175ms;
|
|
1394
|
-
}
|
|
1395
1455
|
:where(.react-flow__node.selected) .lbtzdo5 {
|
|
1396
|
-
--lbtzdo4:
|
|
1456
|
+
--lbtzdo4: 5%;
|
|
1397
1457
|
transition-delay: 50ms;
|
|
1398
|
-
|
|
1458
|
+
}
|
|
1459
|
+
:where([data-hovered]) .lbtzdo5 {
|
|
1460
|
+
--lbtzdo4: 15%;
|
|
1461
|
+
transition-delay: 175ms;
|
|
1399
1462
|
}
|
|
1400
1463
|
.lbtzdo6 {
|
|
1401
1464
|
font-family: var(--likec4-compound-font-family);
|
|
@@ -1415,12 +1478,12 @@ svg.react-flow__connectionline {
|
|
|
1415
1478
|
:where([data-likec4-navigable='true']) .lbtzdo6 {
|
|
1416
1479
|
padding-left: 26px;
|
|
1417
1480
|
}
|
|
1418
|
-
:where([data-mantine-color-scheme='light']) .lbtzdo6 {
|
|
1419
|
-
opacity: 1;
|
|
1420
|
-
}
|
|
1421
1481
|
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
|
|
1422
1482
|
--_compound-title-color: var(--likec4-element-stroke);
|
|
1423
1483
|
}
|
|
1484
|
+
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdo6 {
|
|
1485
|
+
opacity: 1;
|
|
1486
|
+
}
|
|
1424
1487
|
.lbtzdoa {
|
|
1425
1488
|
--lbtzdo8: var(--likec4-element-loContrast);
|
|
1426
1489
|
--lbtzdo9: 6;
|
|
@@ -1517,6 +1580,7 @@ svg.react-flow__connectionline {
|
|
|
1517
1580
|
height: 100%;
|
|
1518
1581
|
padding: 0;
|
|
1519
1582
|
margin: 0;
|
|
1583
|
+
backface-visibility: hidden;
|
|
1520
1584
|
}
|
|
1521
1585
|
._1b6tkn4 {
|
|
1522
1586
|
stroke: var(--likec4-element-loContrast);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SelectEdgesOnNodeFocus(): null;
|