@likec4/diagram 1.30.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +324 -5
- package/bundle/chunk-BBzMXzCg.js +21383 -0
- package/bundle/custom.js +62 -0
- package/bundle/index.js +17459 -38163
- package/dist/LikeC4CustomColors.js +2 -2
- package/dist/LikeC4Diagram.d.ts +1 -1
- package/dist/LikeC4Diagram.js +4 -2
- package/dist/LikeC4Diagram.props.d.ts +6 -1
- package/dist/LikeC4ModelProvider.d.ts +3 -3
- package/dist/LikeC4ModelProvider.js +0 -1
- package/dist/StaticLikeC4Diagram.d.ts +1 -1
- package/dist/base/BaseXYFlow.js +3 -3
- package/dist/base/primitives/compound/CompoundActionButton.d.ts +3 -2
- package/dist/base/primitives/compound/CompoundDetailsButton.d.ts +3 -2
- package/dist/base/primitives/compound/CompoundNodeContainer.d.ts +7 -3
- package/dist/base/primitives/compound/CompoundNodeContainer.js +3 -2
- package/dist/base/primitives/customEdge.d.ts +2 -35
- package/dist/base/primitives/customEdge.js +2 -2
- package/dist/base/primitives/customNode.d.ts +2 -2
- package/dist/base/primitives/customNode.js +9 -2
- package/dist/base/primitives/edge/EdgeContainer.js +0 -1
- package/dist/base/primitives/edge/EdgeLabel.js +0 -1
- package/dist/base/primitives/edge/EdgeLabelContainer.js +0 -2
- package/dist/base/primitives/edge/EdgePath.js +2 -2
- package/dist/base/primitives/element/ElementNodeContainer.d.ts +24 -22
- package/dist/base/primitives/element/ElementNodeContainer.js +66 -68
- package/dist/base/primitives/element/ElementShape.d.ts +8 -4
- package/dist/base/primitives/element/ElementShape.js +4 -3
- package/dist/base/primitives/element/ElementTitle.css.d.ts +1 -1
- package/dist/base/primitives/element/ElementTitle.js +0 -1
- package/dist/base/types.d.ts +5 -5
- package/dist/bundle/LikeC4View.js +6 -3
- package/dist/bundle/LikeC4View.props.d.ts +5 -1
- package/dist/bundle/ReactLikeC4.js +1 -2
- package/dist/bundle/ShadowRoot.js +3 -3
- package/dist/bundle/custom.d.ts +1 -0
- package/dist/bundle/index.d.ts +3 -1
- package/dist/bundle/index.js +9 -0
- package/dist/bundle/styles.css.js +5 -5
- package/dist/components/SearchControl.js +2 -2
- package/dist/context/ControlsCustomLayout.js +0 -1
- package/dist/context/DiagramEventHandlers.js +5 -5
- package/dist/context/DiagramFeatures.d.ts +2 -4
- package/dist/context/DiagramFeatures.js +15 -16
- package/dist/context/EnsureMantine.js +9 -4
- package/dist/context/FramerMotionConfig.js +0 -1
- package/dist/context/IconRenderer.js +7 -7
- package/dist/context/ReduceGraphics.js +6 -6
- package/dist/context/RootContainer.js +5 -5
- package/dist/context/index.d.ts +1 -1
- package/dist/custom/components.d.ts +5 -0
- package/dist/custom/customNodes.d.ts +218 -0
- package/dist/custom/hooks.d.ts +10 -0
- package/dist/custom/index.d.ts +4 -0
- package/dist/hooks/safeContext.js +3 -3
- package/dist/hooks/useCurrentViewId.d.ts +5 -1
- package/dist/hooks/useCurrentViewId.js +1 -2
- package/dist/hooks/useDiagram.d.ts +14 -12544
- package/dist/hooks/useDiagram.js +3 -5
- package/dist/hooks/useMantinePortalProps.js +2 -2
- package/dist/hooks/useSetState.js +3 -3
- package/dist/hooks/useUpdateEffect.js +0 -1
- package/dist/hooks/useXYFlow.d.ts +64 -64
- package/dist/hooks/useXYFlow.js +2 -2
- package/dist/index.d.ts +2 -4
- package/dist/index.js +8 -3
- package/dist/likec4diagram/DiagramUI.js +2 -2
- package/dist/likec4diagram/DiagramXYFlow.d.ts +1 -1
- package/dist/likec4diagram/DiagramXYFlow.js +25 -7
- package/dist/likec4diagram/custom/edges/NotePopover.js +2 -2
- package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +9 -13
- package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -8
- package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +14 -12
- package/dist/likec4diagram/custom/index.d.ts +15 -19
- package/dist/likec4diagram/custom/index.js +3 -3
- package/dist/likec4diagram/custom/nodes/CompoundActions.js +2 -2
- package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +27 -4
- package/dist/likec4diagram/custom/nodes/ElementActions.js +67 -53
- package/dist/likec4diagram/custom/nodes/index.d.ts +8 -0
- package/dist/likec4diagram/custom/nodes/nodes.d.ts +10 -0
- package/dist/likec4diagram/custom/nodes/{nodeTypes.js → nodes.js} +39 -39
- package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.js +2 -2
- package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +6 -7
- package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +3 -3
- package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +3 -2
- package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.js +2 -2
- package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +2 -2
- package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
- package/dist/likec4diagram/types.d.ts +15 -7
- package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +4 -4
- package/dist/likec4diagram/ui/controls/Controls.js +2 -2
- package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +2 -2
- package/dist/likec4diagram/ui/notation/NotationPanel.js +6 -8
- package/dist/likec4diagram/ui/search/ElementsColumn.js +6 -7
- package/dist/likec4diagram/ui/search/LikeC4Search.js +3 -3
- package/dist/likec4diagram/ui/search/SearchInput.js +0 -1
- package/dist/likec4diagram/ui/search/_shared.css.d.ts +1 -1
- package/dist/likec4diagram/ui/search/state.js +3 -4
- package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +4 -4
- package/dist/likec4diagram/useLayoutConstraints.js +3 -4
- package/dist/likec4diagram/useViewToNodesEdges.js +2 -0
- package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
- package/dist/likec4model/LikeC4ModelContext.js +2 -2
- package/dist/likec4model/useLikeC4ElementsTree.d.ts +1 -1
- package/dist/likec4model/useLikeC4ElementsTree.js +3 -3
- package/dist/likec4model/useLikeC4Model.d.ts +1 -1
- package/dist/likec4model/useLikeC4Model.js +2 -2
- package/dist/overlays/Overlays.d.ts +2 -3
- package/dist/overlays/Overlays.js +5 -6
- package/dist/overlays/element-details/ElementDetailsCard.css.js +13 -9
- package/dist/overlays/element-details/ElementDetailsCard.js +98 -105
- package/dist/overlays/element-details/TabPanelDeployments.js +4 -4
- package/dist/overlays/element-details/TabPanelRelationships.js +2 -2
- package/dist/overlays/element-details/TabPanelStructure.js +3 -3
- package/dist/overlays/element-details/actor.d.ts +6905 -19690
- package/dist/overlays/element-details/actor.js +0 -2
- package/dist/overlays/element-details/actorContext.js +3 -3
- package/dist/overlays/overlay/Overlay.d.ts +11 -1
- package/dist/overlays/overlay/Overlay.js +8 -8
- package/dist/overlays/overlaysActor.d.ts +4 -2
- package/dist/overlays/overlaysActor.js +2 -1
- package/dist/overlays/relationship-details/RelationshipDetails.d.ts +4 -8
- package/dist/overlays/relationship-details/RelationshipDetails.js +12 -12
- package/dist/overlays/relationship-details/SelectEdge.js +2 -3
- package/dist/overlays/relationship-details/_types.d.ts +6 -5
- package/dist/overlays/relationship-details/actor.d.ts +3 -3
- package/dist/overlays/relationship-details/compute.js +3 -3
- package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +4 -8
- package/dist/overlays/relationship-details/custom/edgeTypes.js +2 -2
- package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +3 -31
- package/dist/overlays/relationship-details/hooks.d.ts +27 -27
- package/dist/overlays/relationship-details/hooks.js +4 -4
- package/dist/overlays/relationship-details/layout.js +2 -3
- package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +4 -8
- package/dist/overlays/relationships-browser/RelationshipsBrowser.js +8 -8
- package/dist/overlays/relationships-browser/SelectElement.js +5 -5
- package/dist/overlays/relationships-browser/_types.d.ts +6 -5
- package/dist/overlays/relationships-browser/actor.d.ts +63 -428
- package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +4 -8
- package/dist/overlays/relationships-browser/custom/edgeTypes.js +2 -2
- package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +10 -14
- package/dist/overlays/relationships-browser/custom/nodeTypes.js +1 -2
- package/dist/overlays/relationships-browser/hooks.d.ts +4 -61
- package/dist/overlays/relationships-browser/hooks.js +4 -4
- package/dist/overlays/relationships-browser/layout.js +3 -4
- package/dist/state/DiagramActorProvider.js +3 -3
- package/dist/state/diagram-machine.d.ts +186 -10369
- package/dist/state/diagram-machine.js +2 -1
- package/dist/state/hotkeyActor.d.ts +4 -2
- package/dist/state/syncManualLayoutActor.d.ts +14 -3
- package/dist/state/syncManualLayoutActor.js +2 -1
- package/dist/state/types.d.ts +5 -4
- package/dist/state/utils.d.ts +1 -1
- package/dist/styles-font.css +1 -0
- package/dist/styles-min.css +1 -0
- package/dist/styles-xyflow.css +1 -0
- package/dist/styles.css +1 -0
- package/dist/styles.css2.js +3 -0
- package/package.json +46 -21
- package/panda.buildinfo.json +979 -0
- package/src/LikeC4Diagram.props.ts +7 -1
- package/src/LikeC4Diagram.tsx +2 -0
- package/src/LikeC4ModelProvider.tsx +3 -3
- package/src/StaticLikeC4Diagram.tsx +1 -0
- package/src/base/Background.tsx +0 -4
- package/src/base/primitives/compound/CompoundActionButton.tsx +7 -4
- package/src/base/primitives/compound/CompoundDetailsButton.tsx +7 -4
- package/src/base/primitives/compound/CompoundNodeContainer.tsx +8 -7
- package/src/base/primitives/customEdge.ts +1 -1
- package/src/base/primitives/{customNode.ts → customNode.tsx} +11 -3
- package/src/base/primitives/element/ElementNodeContainer.tsx +87 -80
- package/src/base/primitives/element/ElementShape.tsx +11 -10
- package/src/base/types.ts +28 -33
- package/src/bundle/LikeC4View.props.ts +6 -1
- package/src/bundle/LikeC4View.tsx +3 -0
- package/src/bundle/ReactLikeC4.tsx +1 -1
- package/src/bundle/custom.ts +1 -0
- package/src/bundle/index.ts +20 -1
- package/src/bundle/styles.css.ts +1 -1
- package/src/components/SearchControl.tsx +1 -1
- package/src/context/DiagramFeatures.tsx +12 -8
- package/src/context/EnsureMantine.tsx +13 -3
- package/src/context/IconRenderer.tsx +1 -1
- package/src/context/ReduceGraphics.tsx +6 -6
- package/src/context/index.ts +0 -1
- package/src/custom/components.ts +47 -0
- package/src/custom/customNodes.tsx +244 -0
- package/src/custom/hooks.ts +35 -0
- package/src/custom/index.ts +5 -0
- package/src/hooks/useCurrentViewId.ts +9 -1
- package/src/hooks/useDiagram.ts +30 -9
- package/src/index.ts +4 -8
- package/src/likec4diagram/DiagramXYFlow.tsx +28 -5
- package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +1 -1
- package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +9 -7
- package/src/likec4diagram/custom/{index.tsx → index.ts} +2 -2
- package/src/likec4diagram/custom/nodes/CompoundActions.tsx +2 -2
- package/src/likec4diagram/custom/nodes/ElementActions.tsx +100 -57
- package/src/likec4diagram/custom/nodes/index.ts +17 -0
- package/src/likec4diagram/custom/nodes/{nodeTypes.tsx → nodes.tsx} +52 -36
- package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +3 -4
- package/src/likec4diagram/custom/nodes/toolbar/ElementToolbar.tsx +3 -3
- package/src/likec4diagram/custom/nodes/toolbar/Toolbar.tsx +5 -4
- package/src/likec4diagram/types.ts +19 -9
- package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +1 -1
- package/src/likec4diagram/ui/notation/NotationPanel.tsx +1 -2
- package/src/likec4diagram/ui/search/ElementsColumn.tsx +2 -4
- package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.tsx +1 -1
- package/src/likec4diagram/useViewToNodesEdges.ts +2 -0
- package/src/likec4model/LikeC4ModelContext.ts +2 -2
- package/src/likec4model/useLikeC4ElementsTree.ts +3 -1
- package/src/likec4model/useLikeC4Model.ts +1 -1
- package/src/overlays/Overlays.tsx +2 -3
- package/src/overlays/element-details/ElementDetailsCard.css.ts +14 -22
- package/src/overlays/element-details/ElementDetailsCard.tsx +18 -16
- package/src/overlays/overlay/Overlay.tsx +3 -4
- package/src/overlays/overlaysActor.ts +4 -3
- package/src/overlays/relationship-details/RelationshipDetails.tsx +1 -1
- package/src/overlays/relationship-details/SelectEdge.tsx +0 -2
- package/src/overlays/relationship-details/_types.ts +16 -13
- package/src/overlays/relationship-details/custom/edgeTypes.tsx +2 -2
- package/src/overlays/relationships-browser/_types.ts +18 -15
- package/src/overlays/relationships-browser/actor.ts +2 -2
- package/src/overlays/relationships-browser/custom/edgeTypes.tsx +2 -2
- package/src/overlays/relationships-browser/custom/nodeTypes.tsx +1 -2
- package/src/state/DiagramActorProvider.tsx +2 -2
- package/src/state/diagram-machine.ts +13 -8
- package/src/state/hotkeyActor.ts +4 -2
- package/src/state/syncManualLayoutActor.ts +9 -3
- package/src/state/types.ts +9 -3
- package/src/state/utils.ts +3 -3
- package/src/styles-min.css +2 -0
- package/src/styles-xyflow.css +1 -0
- package/dist/_virtual/_commonjsHelpers.js +0 -5
- package/dist/_virtual/default-map.js +0 -7
- package/dist/_virtual/index.js +0 -5
- package/dist/_virtual/index2.js +0 -3
- package/dist/_virtual/react.production.js +0 -3
- package/dist/_virtual/set.js +0 -5
- package/dist/_virtual/set2.js +0 -3
- package/dist/base/xyflowMachine.d.ts +0 -212
- package/dist/likec4diagram/custom/nodes/nodeTypes.d.ts +0 -8
- package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/default-map.js +0 -172
- package/dist/node_modules/.pnpm/mnemonist@0.40.3_patch_hash_5c12abb43fcff6fd81e53021b89075d53249640d165a2556cc1e58d71201a13a/node_modules/mnemonist/set.js +0 -369
- package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react.production.js +0 -556
- package/dist/node_modules/.pnpm/react@19.1.0/node_modules/react/index.js +0 -15
- package/dist/packages/core/src/compute-view/relationships-view/compute.js +0 -123
- package/dist/packages/core/src/compute-view/relationships-view/utils.js +0 -68
- package/dist/packages/core/src/errors/index.js +0 -15
- package/dist/packages/core/src/model/connection/model/ConnectionModel.js +0 -121
- package/dist/packages/core/src/model/connection/model/find.js +0 -39
- package/dist/packages/core/src/model/connection/ops.js +0 -7
- package/dist/packages/core/src/utils/const.js +0 -3
- package/dist/packages/core/src/utils/fqn.js +0 -51
- package/dist/packages/core/src/utils/guards.js +0 -7
- package/dist/packages/core/src/utils/iterable/filter.js +0 -21
- package/dist/packages/core/src/utils/iterable/find.js +0 -21
- package/dist/packages/core/src/utils/iterable/map.js +0 -18
- package/dist/packages/core/src/utils/iterable/some.js +0 -21
- package/dist/packages/core/src/utils/iterable/to.js +0 -14
- package/dist/packages/core/src/utils/set.js +0 -48
- package/dist/packages/core/src/utils/string-hash.js +0 -13
- package/dist/styles.css.js +0 -3
- package/src/base/xyflowMachine.ts +0 -75
- /package/dist/{bundle/font.css.js → styles-font.css2.js} +0 -0
- /package/src/{bundle/font.css → styles-font.css} +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FunctionComponent, CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { Position } from '@xyflow/system';
|
|
3
3
|
import { Fqn, NonEmptyArray, RelationId, Color, ViewId, RelationshipLineType } from '@likec4/core';
|
|
4
|
-
export declare const RelationshipEdge:
|
|
4
|
+
export declare const RelationshipEdge: FunctionComponent<{
|
|
5
5
|
id: string;
|
|
6
6
|
selected?: boolean;
|
|
7
7
|
selectable?: boolean;
|
|
8
8
|
deletable?: boolean;
|
|
9
9
|
style?: CSSProperties;
|
|
10
|
+
animated?: boolean;
|
|
10
11
|
source: string;
|
|
11
12
|
target: string;
|
|
12
|
-
animated?: boolean;
|
|
13
13
|
sourceX: number;
|
|
14
14
|
sourceY: number;
|
|
15
15
|
targetX: number;
|
|
@@ -28,11 +28,10 @@ export declare const RelationshipEdge: NamedExoticComponent<{
|
|
|
28
28
|
markerEnd?: string;
|
|
29
29
|
pathOptions?: any;
|
|
30
30
|
interactionWidth?: number;
|
|
31
|
-
data: {
|
|
31
|
+
data: import("../../../base").Base.EdgeData & {
|
|
32
32
|
hovered?: boolean;
|
|
33
33
|
active?: boolean;
|
|
34
34
|
dimmed?: import("../../../base").Base.Dimmed;
|
|
35
|
-
} & {
|
|
36
35
|
sourceFqn: Fqn;
|
|
37
36
|
targetFqn: Fqn;
|
|
38
37
|
relations: NonEmptyArray<RelationId>;
|
|
@@ -41,8 +40,5 @@ export declare const RelationshipEdge: NamedExoticComponent<{
|
|
|
41
40
|
navigateTo: ViewId | null;
|
|
42
41
|
line: RelationshipLineType;
|
|
43
42
|
existsInCurrentView: boolean;
|
|
44
|
-
hovered?: boolean;
|
|
45
|
-
active?: boolean;
|
|
46
|
-
dimmed?: import("../../../base").Base.Dimmed;
|
|
47
43
|
};
|
|
48
44
|
}>;
|
|
@@ -5,7 +5,7 @@ import { getBezierPath } from '@xyflow/system';
|
|
|
5
5
|
import { useDiagram } from '../../../hooks/useDiagram.js';
|
|
6
6
|
import { useRelationshipsBrowser } from '../hooks.js';
|
|
7
7
|
import { customEdge } from '../../../base/primitives/customEdge.js';
|
|
8
|
-
import {
|
|
8
|
+
import { useEnabledFeatures } from '../../../context/DiagramFeatures.js';
|
|
9
9
|
import { EdgeLabel } from '../../../base/primitives/edge/EdgeLabel.js';
|
|
10
10
|
import { EdgeActionButton } from '../../../base/primitives/edge/EdgeActionButton.js';
|
|
11
11
|
import { EdgeContainer } from '../../../base/primitives/edge/EdgeContainer.js';
|
|
@@ -14,7 +14,7 @@ import { EdgeLabelContainer } from '../../../base/primitives/edge/EdgeLabelConta
|
|
|
14
14
|
|
|
15
15
|
const RelationshipEdge = customEdge((props) => {
|
|
16
16
|
const browser = useRelationshipsBrowser();
|
|
17
|
-
const { enableNavigateTo } =
|
|
17
|
+
const { enableNavigateTo } = useEnabledFeatures();
|
|
18
18
|
const {
|
|
19
19
|
id,
|
|
20
20
|
data: {
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { NodeProps } from '../../../base';
|
|
2
2
|
import { RelationshipsBrowserTypes } from '../_types';
|
|
3
|
-
import {
|
|
3
|
+
import { MemoExoticComponent } from 'react';
|
|
4
4
|
import { ElementStyle, Color, ViewId, Fqn, IconUrl } from '@likec4/core';
|
|
5
|
-
export declare const ElementNode:
|
|
5
|
+
export declare const ElementNode: MemoExoticComponent<(props: NodeProps<{
|
|
6
|
+
hovered?: boolean;
|
|
7
|
+
dimmed?: import("../../../base").Base.Dimmed;
|
|
6
8
|
width: number;
|
|
7
9
|
height: number;
|
|
8
10
|
style: ElementStyle;
|
|
11
|
+
color: Color;
|
|
9
12
|
title: string;
|
|
10
13
|
technology: string | null;
|
|
11
14
|
description: string | null;
|
|
12
|
-
color: Color;
|
|
13
15
|
shape: "rectangle" | "person" | "browser" | "mobile" | "cylinder" | "storage" | "queue";
|
|
14
16
|
navigateTo: ViewId<string> | null | undefined;
|
|
15
17
|
column: RelationshipsBrowserTypes.Column;
|
|
@@ -17,13 +19,13 @@ export declare const ElementNode: NamedExoticComponent<NodeProps<{
|
|
|
17
19
|
icon: string | null;
|
|
18
20
|
ports: RelationshipsBrowserTypes.Ports;
|
|
19
21
|
existsInCurrentView: boolean;
|
|
22
|
+
}, string>) => import("react/jsx-runtime").JSX.Element>;
|
|
23
|
+
export declare const CompoundNode: MemoExoticComponent<(props: NodeProps<{
|
|
20
24
|
hovered?: boolean;
|
|
21
25
|
dimmed?: import("../../../base").Base.Dimmed;
|
|
22
|
-
}>>;
|
|
23
|
-
export declare const CompoundNode: NamedExoticComponent<NodeProps<{
|
|
24
26
|
style: ElementStyle;
|
|
25
|
-
title: string;
|
|
26
27
|
color: Color;
|
|
28
|
+
title: string;
|
|
27
29
|
shape: "rectangle" | "person" | "browser" | "mobile" | "cylinder" | "storage" | "queue";
|
|
28
30
|
column: RelationshipsBrowserTypes.Column;
|
|
29
31
|
fqn: Fqn;
|
|
@@ -31,14 +33,8 @@ export declare const CompoundNode: NamedExoticComponent<NodeProps<{
|
|
|
31
33
|
icon: IconUrl;
|
|
32
34
|
ports: RelationshipsBrowserTypes.Ports;
|
|
33
35
|
existsInCurrentView: boolean;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}>>;
|
|
37
|
-
export declare const EmptyNode: NamedExoticComponent<NodeProps<{
|
|
38
|
-
column: RelationshipsBrowserTypes.Column;
|
|
39
|
-
hovered?: boolean;
|
|
40
|
-
dimmed?: import("../../../base").Base.Dimmed;
|
|
41
|
-
}>>;
|
|
36
|
+
}, string>) => import("react/jsx-runtime").JSX.Element>;
|
|
37
|
+
export declare const EmptyNode: MemoExoticComponent<(props: NodeProps<RelationshipsBrowserTypes.EmptyNodeData, string>) => import("react/jsx-runtime").JSX.Element>;
|
|
42
38
|
type ElementPortsProps = NodeProps<Pick<RelationshipsBrowserTypes.ElementNodeData, 'ports' | 'height'>>;
|
|
43
39
|
export declare const ElementPorts: ({ data: { ports, height: h } }: ElementPortsProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
40
|
type CompoundPortsProps = NodeProps<Pick<RelationshipsBrowserTypes.CompoundNodeData, 'ports'>>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { Handle } from '@xyflow/react';
|
|
3
3
|
import { Position } from '@xyflow/system';
|
|
4
|
-
import * as m from 'motion/react-m';
|
|
5
4
|
import { useDiagram } from '../../../hooks/useDiagram.js';
|
|
6
5
|
import { ElementActions } from './ElementActions.js';
|
|
7
6
|
import { EmptyNode as EmptyNode$1 } from './EmptyNode.js';
|
|
@@ -27,7 +26,7 @@ const ElementDetailsButtonWithHandler = (props) => {
|
|
|
27
26
|
);
|
|
28
27
|
};
|
|
29
28
|
const ElementNode = customNode((props) => {
|
|
30
|
-
return /* @__PURE__ */ jsxs(ElementNodeContainer, {
|
|
29
|
+
return /* @__PURE__ */ jsxs(ElementNodeContainer, { layoutId: props.id, nodeProps: props, children: [
|
|
31
30
|
/* @__PURE__ */ jsx(ElementShape, { ...props }),
|
|
32
31
|
/* @__PURE__ */ jsx(ElementTitle, { ...props }),
|
|
33
32
|
/* @__PURE__ */ jsx(ElementDetailsButtonWithHandler, { ...props }),
|
|
@@ -1,71 +1,14 @@
|
|
|
1
|
-
import { Fqn
|
|
2
|
-
import { RelationshipsBrowserActorRef, RelationshipsBrowserSnapshot,
|
|
1
|
+
import { Fqn } from '@likec4/core';
|
|
2
|
+
import { RelationshipsBrowserActorRef, RelationshipsBrowserSnapshot, Context, Events } from './actor';
|
|
3
3
|
import { LayoutRelationshipsViewResult } from './layout';
|
|
4
|
-
import { Context
|
|
5
|
-
import { GeneralHelpers, ViewportHelperFunctions } from '@xyflow/react';
|
|
6
|
-
import { EdgeMarkerType, HandleType } from '@xyflow/system';
|
|
4
|
+
import { Context } from 'react';
|
|
7
5
|
export declare const RelationshipsBrowserActorContext: Context<RelationshipsBrowserActorRef | null>;
|
|
8
6
|
export declare function useRelationshipsBrowserActor(): RelationshipsBrowserActorRef;
|
|
9
7
|
export declare function useRelationshipsBrowserState<T>(selector: (state: RelationshipsBrowserSnapshot) => T, compare?: (a: T, b: T) => boolean): T;
|
|
10
8
|
export declare function useRelationshipsBrowser(): {
|
|
11
9
|
actor: RelationshipsBrowserActorRef;
|
|
12
10
|
readonly rootElementId: string;
|
|
13
|
-
getState: () =>
|
|
14
|
-
subject: Fqn;
|
|
15
|
-
viewId: ViewId | null;
|
|
16
|
-
scope: "global" | "view";
|
|
17
|
-
closeable: boolean;
|
|
18
|
-
enableSelectSubject: boolean;
|
|
19
|
-
enableChangeScope: boolean;
|
|
20
|
-
xyflow: ( GeneralHelpers<import("./_types").RelationshipsBrowserTypes.Node, {
|
|
21
|
-
id: string;
|
|
22
|
-
source: string;
|
|
23
|
-
target: string;
|
|
24
|
-
sourceHandle?: string | null;
|
|
25
|
-
targetHandle?: string | null;
|
|
26
|
-
animated?: boolean;
|
|
27
|
-
hidden?: boolean;
|
|
28
|
-
deletable?: boolean;
|
|
29
|
-
selectable?: boolean;
|
|
30
|
-
selected?: boolean;
|
|
31
|
-
markerStart?: EdgeMarkerType;
|
|
32
|
-
markerEnd?: EdgeMarkerType;
|
|
33
|
-
zIndex?: number;
|
|
34
|
-
ariaLabel?: string;
|
|
35
|
-
interactionWidth?: number;
|
|
36
|
-
label?: ReactNode;
|
|
37
|
-
labelStyle?: CSSProperties;
|
|
38
|
-
labelShowBg?: boolean;
|
|
39
|
-
labelBgStyle?: CSSProperties;
|
|
40
|
-
labelBgPadding?: [number, number];
|
|
41
|
-
labelBgBorderRadius?: number;
|
|
42
|
-
style?: CSSProperties;
|
|
43
|
-
className?: string;
|
|
44
|
-
reconnectable?: boolean | HandleType;
|
|
45
|
-
focusable?: boolean;
|
|
46
|
-
type: "relationship";
|
|
47
|
-
data: {
|
|
48
|
-
sourceFqn: Fqn;
|
|
49
|
-
targetFqn: Fqn;
|
|
50
|
-
relations: NonEmptyArray<RelationId>;
|
|
51
|
-
color: Color | undefined;
|
|
52
|
-
label: string | null;
|
|
53
|
-
navigateTo: ViewId | null;
|
|
54
|
-
line: RelationshipLineType;
|
|
55
|
-
existsInCurrentView: boolean;
|
|
56
|
-
hovered?: boolean;
|
|
57
|
-
active?: boolean;
|
|
58
|
-
dimmed?: import("../../base").Base.Dimmed;
|
|
59
|
-
};
|
|
60
|
-
}> & ViewportHelperFunctions & {
|
|
61
|
-
viewportInitialized: boolean;
|
|
62
|
-
}) | null;
|
|
63
|
-
xystore: XYStoreApi | null;
|
|
64
|
-
layouted: LayoutRelationshipsViewResult | null;
|
|
65
|
-
navigateFromNode: string | null;
|
|
66
|
-
xynodes: import("./_types").RelationshipsBrowserTypes.Node[];
|
|
67
|
-
xyedges: import("./_types").RelationshipsBrowserTypes.Edge[];
|
|
68
|
-
}>;
|
|
11
|
+
getState: () => Context;
|
|
69
12
|
send: (event: Events) => void;
|
|
70
13
|
updateView: (layouted: LayoutRelationshipsViewResult) => void;
|
|
71
14
|
changeScope: (scope: "global" | "view") => void;
|
|
@@ -2,11 +2,11 @@ import { nonNullable } from '@likec4/core';
|
|
|
2
2
|
import { useCallbackRef } from '@mantine/hooks';
|
|
3
3
|
import { useSelector } from '@xstate/react';
|
|
4
4
|
import { shallowEqual } from 'fast-equals';
|
|
5
|
-
import {
|
|
5
|
+
import { createContext, useMemo, useContext } from 'react';
|
|
6
6
|
|
|
7
|
-
const RelationshipsBrowserActorContext =
|
|
7
|
+
const RelationshipsBrowserActorContext = createContext(null);
|
|
8
8
|
function useRelationshipsBrowserActor() {
|
|
9
|
-
return nonNullable(
|
|
9
|
+
return nonNullable(useContext(RelationshipsBrowserActorContext), "No RelationshipsBrowserActorContext");
|
|
10
10
|
}
|
|
11
11
|
function useRelationshipsBrowserState(selector, compare = shallowEqual) {
|
|
12
12
|
const actor = useRelationshipsBrowserActor();
|
|
@@ -14,7 +14,7 @@ function useRelationshipsBrowserState(selector, compare = shallowEqual) {
|
|
|
14
14
|
}
|
|
15
15
|
function useRelationshipsBrowser() {
|
|
16
16
|
const actor = useRelationshipsBrowserActor();
|
|
17
|
-
return
|
|
17
|
+
return useMemo(() => ({
|
|
18
18
|
actor,
|
|
19
19
|
get rootElementId() {
|
|
20
20
|
return `relationships-browser-${actor.sessionId.replaceAll(":", "_")}`;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computeRelationshipsView, treeFromElements } from '@likec4/core/compute-view/relationships';
|
|
2
|
+
import { useMemo } from 'react';
|
|
2
3
|
import dagre from '@dagrejs/dagre';
|
|
3
4
|
import { toArray, invariant, ifind, DefaultMap } from '@likec4/core';
|
|
4
5
|
import { pipe, concat, map, groupBy, prop, forEachObj, filter, mapToObj, find, only, unique, tap, reduce, sortBy } from 'remeda';
|
|
5
6
|
import { useLikeC4Model } from '../../likec4model/useLikeC4Model.js';
|
|
6
|
-
import { computeRelationshipsView } from '../../packages/core/src/compute-view/relationships-view/compute.js';
|
|
7
|
-
import { treeFromElements } from '../../packages/core/src/compute-view/relationships-view/utils.js';
|
|
8
7
|
|
|
9
8
|
const Sizes = {
|
|
10
9
|
dagre: {
|
|
@@ -454,7 +453,7 @@ function layoutRelationshipsView(data, scope) {
|
|
|
454
453
|
}
|
|
455
454
|
function useRelationshipsView(subject, viewId, scope) {
|
|
456
455
|
const model = useLikeC4Model(true);
|
|
457
|
-
return
|
|
456
|
+
return useMemo(() => {
|
|
458
457
|
const view = viewId ? model.findView(viewId) : null;
|
|
459
458
|
const data = layoutRelationshipsView(
|
|
460
459
|
computeRelationshipsView(subject, model, viewId, scope),
|
|
@@ -3,7 +3,7 @@ import { useDeepCompareEffect } from '@react-hookz/web';
|
|
|
3
3
|
import { useActorRef, useSelector } from '@xstate/react';
|
|
4
4
|
import { useStoreApi } from '@xyflow/react';
|
|
5
5
|
import { shallowEqual } from 'fast-equals';
|
|
6
|
-
import {
|
|
6
|
+
import { useEffect } from 'react';
|
|
7
7
|
import { useDiagramEventHandlersRef } from '../context/DiagramEventHandlers.js';
|
|
8
8
|
import { useEnabledFeatures, DiagramFeatures } from '../context/DiagramFeatures.js';
|
|
9
9
|
import { DiagramActorContextProvider } from '../hooks/safeContext.js';
|
|
@@ -29,7 +29,7 @@ function DiagramActorProvider({
|
|
|
29
29
|
"trigger:NavigateTo": (_, { viewId }) => {
|
|
30
30
|
setTimeout(() => {
|
|
31
31
|
handlersRef.current.onNavigateTo?.(viewId);
|
|
32
|
-
},
|
|
32
|
+
}, 50);
|
|
33
33
|
},
|
|
34
34
|
"trigger:OnChange": (_, params) => {
|
|
35
35
|
handlersRef.current.onChange?.(params);
|
|
@@ -63,7 +63,7 @@ function DiagramActorProvider({
|
|
|
63
63
|
useUpdateEffect(() => {
|
|
64
64
|
actorRef.send({ type: "update.inputs", inputs });
|
|
65
65
|
}, [inputs]);
|
|
66
|
-
|
|
66
|
+
useEffect(() => {
|
|
67
67
|
actorRef.send({ type: "update.features", features });
|
|
68
68
|
}, [features]);
|
|
69
69
|
const { xyedges, xynodes } = useViewToNodesEdges({
|