@likec4/diagram 1.31.0 → 1.32.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/bundle/{chunk-BBzMXzCg.js → chunk-DlHyKoeo.js} +1700 -1206
- package/bundle/custom.js +51 -47
- package/bundle/index.js +5495 -5428
- package/dist/LikeC4CustomColors.d.ts +2 -7
- package/dist/LikeC4CustomColors.js +17 -6
- package/dist/LikeC4Diagram.d.ts +3 -2
- package/dist/LikeC4Diagram.js +10 -14
- package/dist/LikeC4Diagram.props.d.ts +41 -24
- package/dist/LikeC4ModelProvider.d.ts +5 -4
- package/dist/StaticLikeC4Diagram.d.ts +3 -2
- package/dist/StaticLikeC4Diagram.js +2 -2
- package/dist/base/BaseXYFlow.js +5 -5
- package/dist/base/const.d.ts +1 -1
- package/dist/base/const.js +1 -1
- package/dist/base/index.d.ts +2 -1
- package/dist/base/primitives/compound/CompoundActionButton.js +2 -1
- package/dist/base/primitives/compound/CompoundDetailsButton.js +2 -1
- package/dist/base/primitives/compound/CompoundTitle.d.ts +1 -1
- package/dist/base/primitives/compound/CompoundTitle.js +2 -1
- package/dist/base/primitives/edge/EdgeContainer.d.ts +1 -1
- package/dist/base/primitives/edge/EdgeLabel.css.js +1 -0
- package/dist/base/primitives/edge/EdgeLabel.d.ts +3 -3
- package/dist/base/primitives/edge/EdgeLabel.js +6 -4
- package/dist/base/primitives/edge/EdgeLabelContainer.d.ts +1 -1
- package/dist/base/primitives/edge/EdgeMarkers.d.ts +1 -1
- package/dist/base/primitives/edge/EdgePath.d.ts +1 -1
- package/dist/base/primitives/element/ElementActionButtons.js +10 -9
- package/dist/base/primitives/element/ElementDetailsButton.js +2 -1
- package/dist/base/primitives/element/ElementShape.d.ts +1 -1
- package/dist/base/primitives/element/ElementTags.d.ts +14 -0
- package/dist/base/primitives/element/ElementTags.js +176 -0
- package/dist/base/primitives/element/ElementTitle.d.ts +5 -4
- package/dist/base/primitives/element/ElementTitle.js +6 -6
- package/dist/base/primitives/index.d.ts +1 -0
- package/dist/base/types.Base.d.ts +54 -0
- package/dist/base/types.Base.js +48 -0
- package/dist/base/types.d.ts +2 -52
- package/dist/bundle/LikeC4View.d.ts +2 -1
- package/dist/bundle/LikeC4View.js +22 -19
- package/dist/bundle/LikeC4View.props.d.ts +15 -4
- package/dist/bundle/ReactLikeC4.d.ts +4 -7
- package/dist/bundle/ReactLikeC4.js +10 -8
- package/dist/bundle/index.js +1 -1
- package/dist/components/ErrorFallback.d.ts +2 -0
- package/dist/components/ErrorFallback.js +29 -0
- package/dist/context/DiagramEventHandlers.d.ts +6 -5
- package/dist/context/DiagramFeatures.d.ts +2 -2
- package/dist/context/DiagramFeatures.js +3 -31
- package/dist/context/EnsureMantine.js +1 -1
- package/dist/context/IconRenderer.js +1 -4
- package/dist/context/RootContainer.js +5 -1
- package/dist/context/TagStylesContext.d.ts +7 -0
- package/dist/context/TagStylesContext.js +85 -0
- package/dist/custom/components.d.ts +1 -1
- package/dist/custom/customNodes.d.ts +32 -17
- package/dist/custom/hooks.d.ts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/useDiagram.d.ts +73 -38
- package/dist/hooks/useDiagram.js +7 -3
- package/dist/hooks/useMantinePortalProps.d.ts +2 -2
- package/dist/hooks/useSearchActor.d.ts +2 -0
- package/dist/hooks/useSearchActor.js +10 -0
- package/dist/hooks/useUpdateEffect.js +3 -0
- package/dist/hooks/useXYFlow.d.ts +39 -37
- package/dist/hooks/useXYFlow.js +5 -1
- package/dist/index.js +1 -1
- package/dist/likec4diagram/DiagramUI.js +7 -2
- package/dist/likec4diagram/DiagramXYFlow.d.ts +4 -3
- package/dist/likec4diagram/DiagramXYFlow.js +107 -110
- package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +7 -6
- package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -0
- package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +7 -5
- package/dist/likec4diagram/custom/index.d.ts +7 -6
- package/dist/likec4diagram/custom/nodes/nodes.js +39 -26
- package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +7 -7
- package/dist/likec4diagram/types.d.ts +5 -5
- package/dist/likec4diagram/ui/controls/Controls.js +12 -4
- package/dist/likec4diagram/ui/notation/NotationPanel.js +1 -1
- package/dist/likec4diagram/useViewToNodesEdges.d.ts +5 -3
- package/dist/likec4diagram/useViewToNodesEdges.js +20 -30
- package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
- package/dist/likec4model/index.d.ts +1 -1
- package/dist/likec4model/useLikeC4ElementsTree.js +1 -1
- package/dist/likec4model/useLikeC4Model.d.ts +23 -10
- package/dist/likec4model/useLikeC4Model.js +22 -7
- package/dist/overlays/Overlays.js +4 -27
- package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
- package/dist/overlays/element-details/ElementDetailsCard.js +19 -12
- package/dist/overlays/element-details/TabPanelDeployments.d.ts +1 -1
- package/dist/overlays/element-details/TabPanelDeployments.js +1 -1
- package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
- package/dist/overlays/element-details/TabPanelStructure.d.ts +1 -1
- package/dist/overlays/element-details/actor.d.ts +288 -286
- package/dist/overlays/overlay/Overlay.css.d.ts +57 -2
- package/dist/overlays/overlay/Overlay.css.js +76 -39
- package/dist/overlays/overlay/Overlay.d.ts +12 -0
- package/dist/overlays/overlay/Overlay.js +58 -27
- package/dist/overlays/overlaysActor.d.ts +1 -1
- package/dist/overlays/relationship-details/RelationshipDetails.d.ts +3 -2
- package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
- package/dist/overlays/relationship-details/_types.d.ts +2 -2
- package/dist/overlays/relationship-details/actor.js +7 -7
- package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +3 -2
- package/dist/overlays/relationship-details/custom/nodeTypes.js +4 -0
- package/dist/overlays/relationship-details/hooks.d.ts +10 -9
- package/dist/overlays/relationship-details/layout-to-xyflow.js +1 -0
- package/dist/overlays/relationship-details/layout.js +3 -1
- package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +3 -2
- package/dist/overlays/relationships-browser/SelectElement.js +1 -1
- package/dist/overlays/relationships-browser/_types.d.ts +2 -2
- package/dist/overlays/relationships-browser/actor.d.ts +1 -1
- package/dist/overlays/relationships-browser/actor.js +7 -7
- package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +3 -2
- package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +8 -5
- package/dist/overlays/relationships-browser/custom/nodeTypes.js +4 -0
- package/dist/overlays/relationships-browser/layout.d.ts +2 -2
- package/dist/overlays/relationships-browser/layout.js +10 -6
- package/dist/overlays/relationships-browser/useViewToNodesEdges.js +4 -3
- package/dist/search/Search.d.ts +4 -0
- package/dist/search/Search.js +173 -0
- package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.js +0 -1
- package/dist/search/components/ElementsColumn.d.ts +2 -0
- package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.js +26 -25
- package/dist/search/components/PickView.d.ts +4 -0
- package/dist/search/components/PickView.js +135 -0
- package/dist/search/components/SearchByTags.d.ts +1 -0
- package/dist/search/components/SearchByTags.js +119 -0
- package/dist/search/components/SearchInput.d.ts +2 -0
- package/dist/{likec4diagram/ui/search → search/components}/SearchInput.js +61 -40
- package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.d.ts +3 -2
- package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.js +25 -17
- package/dist/{likec4diagram/ui/search → search/components}/_shared.css.js +26 -35
- package/dist/{likec4diagram/ui/search/LikeC4Search.css.d.ts → search/components/styles.css.d.ts} +0 -2
- package/dist/search/components/styles.css.js +60 -0
- package/dist/search/components/utils.d.ts +5 -0
- package/dist/search/components/utils.js +58 -0
- package/dist/search/hooks.d.ts +10 -0
- package/dist/search/hooks.js +35 -0
- package/dist/search/searchActor.d.ts +90 -0
- package/dist/search/searchActor.js +75 -0
- package/dist/state/DiagramActorProvider.d.ts +9 -7
- package/dist/state/DiagramActorProvider.js +24 -18
- package/dist/state/assign.d.ts +0 -1
- package/dist/state/assign.js +9 -19
- package/dist/state/diagram-machine.d.ts +645 -183
- package/dist/state/diagram-machine.js +127 -60
- package/dist/state/syncManualLayoutActor.d.ts +2 -2
- package/dist/state/types.d.ts +2 -0
- package/dist/state/utils.d.ts +2 -0
- package/dist/state/utils.js +3 -0
- package/dist/styles-min.css +1 -1
- package/dist/styles-xyflow.css +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css2.js +1 -1
- package/package.json +20 -19
- package/panda.buildinfo.json +171 -148
- package/src/LikeC4CustomColors.tsx +21 -6
- package/src/LikeC4Diagram.props.ts +48 -32
- package/src/LikeC4Diagram.tsx +19 -20
- package/src/LikeC4ModelProvider.tsx +6 -5
- package/src/StaticLikeC4Diagram.tsx +8 -6
- package/src/base/const.ts +1 -1
- package/src/base/index.ts +2 -1
- package/src/base/primitives/compound/CompoundActionButton.tsx +2 -1
- package/src/base/primitives/compound/CompoundDetailsButton.tsx +2 -1
- package/src/base/primitives/compound/CompoundTitle.tsx +3 -2
- package/src/base/primitives/edge/EdgeContainer.tsx +2 -1
- package/src/base/primitives/edge/EdgeLabel.css.ts +1 -0
- package/src/base/primitives/edge/EdgeLabel.tsx +20 -15
- package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -1
- package/src/base/primitives/edge/EdgeMarkers.tsx +2 -1
- package/src/base/primitives/edge/EdgePath.tsx +1 -1
- package/src/base/primitives/element/ElementActionButtons.tsx +11 -10
- package/src/base/primitives/element/ElementDetailsButton.tsx +2 -1
- package/src/base/primitives/element/ElementShape.tsx +2 -1
- package/src/base/primitives/element/ElementTags.tsx +182 -0
- package/src/base/primitives/element/ElementTitle.tsx +21 -15
- package/src/base/primitives/index.ts +1 -0
- package/src/base/types.Base.ts +104 -0
- package/src/base/types.ts +2 -99
- package/src/bundle/LikeC4View.props.ts +17 -4
- package/src/bundle/LikeC4View.tsx +27 -36
- package/src/bundle/ReactLikeC4.tsx +16 -36
- package/src/components/ErrorFallback.tsx +30 -0
- package/src/context/DiagramEventHandlers.tsx +5 -4
- package/src/context/DiagramFeatures.tsx +3 -22
- package/src/context/EnsureMantine.tsx +1 -1
- package/src/context/IconRenderer.tsx +1 -4
- package/src/context/RootContainer.tsx +9 -3
- package/src/context/TagStylesContext.tsx +96 -0
- package/src/custom/components.ts +2 -0
- package/src/custom/customNodes.tsx +29 -14
- package/src/custom/hooks.ts +2 -0
- package/src/hooks/index.ts +1 -1
- package/src/hooks/useCurrentViewId.ts +1 -4
- package/src/hooks/useDiagram.ts +104 -12
- package/src/hooks/useMantinePortalProps.ts +10 -1
- package/src/hooks/useSearchActor.ts +11 -0
- package/src/hooks/useUpdateEffect.ts +7 -4
- package/src/hooks/useXYFlow.ts +5 -0
- package/src/likec4diagram/DiagramUI.tsx +5 -0
- package/src/likec4diagram/DiagramXYFlow.tsx +118 -121
- package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +9 -0
- package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +10 -9
- package/src/likec4diagram/custom/nodes/nodes.tsx +45 -43
- package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +11 -3
- package/src/likec4diagram/types.ts +5 -3
- package/src/likec4diagram/ui/controls/Controls.tsx +11 -4
- package/src/likec4diagram/ui/notation/NotationPanel.tsx +2 -2
- package/src/likec4diagram/useViewToNodesEdges.ts +34 -36
- package/src/likec4model/LikeC4ModelContext.ts +2 -2
- package/src/likec4model/index.ts +2 -0
- package/src/likec4model/useLikeC4ElementsTree.ts +1 -1
- package/src/likec4model/useLikeC4Model.ts +32 -16
- package/src/overlays/Overlays.tsx +5 -32
- package/src/overlays/element-details/ElementDetailsCard.tsx +25 -18
- package/src/overlays/element-details/TabPanelDeployments.tsx +3 -2
- package/src/overlays/element-details/TabPanelRelationships.tsx +2 -1
- package/src/overlays/element-details/TabPanelStructure.tsx +1 -1
- package/src/overlays/element-details/actor.ts +2 -2
- package/src/overlays/overlay/Overlay.css.ts +75 -38
- package/src/overlays/overlay/Overlay.tsx +61 -29
- package/src/overlays/overlaysActor.ts +1 -1
- package/src/overlays/relationship-details/RelationshipDetails.tsx +4 -4
- package/src/overlays/relationship-details/_types.ts +2 -1
- package/src/overlays/relationship-details/custom/nodeTypes.tsx +4 -0
- package/src/overlays/relationship-details/layout-to-xyflow.ts +1 -0
- package/src/overlays/relationship-details/layout.ts +3 -1
- package/src/overlays/relationships-browser/SelectElement.tsx +1 -1
- package/src/overlays/relationships-browser/_types.ts +2 -1
- package/src/overlays/relationships-browser/custom/nodeTypes.tsx +4 -0
- package/src/overlays/relationships-browser/layout.ts +12 -7
- package/src/overlays/relationships-browser/useViewToNodesEdges.ts +4 -4
- package/src/search/Search.tsx +220 -0
- package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.css.ts +0 -29
- package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.tsx +28 -29
- package/src/search/components/PickView.tsx +134 -0
- package/src/search/components/SearchByTags.tsx +112 -0
- package/src/{likec4diagram/ui/search → search/components}/SearchInput.tsx +72 -42
- package/src/{likec4diagram/ui/search → search/components}/ViewsColum.tsx +29 -22
- package/src/{likec4diagram/ui/search → search/components}/_shared.css.ts +26 -37
- package/src/{likec4diagram/ui/search/LikeC4Search.css.ts → search/components/styles.css.ts} +9 -36
- package/src/search/components/utils.ts +64 -0
- package/src/search/hooks.ts +38 -0
- package/src/search/searchActor.ts +99 -0
- package/src/state/DiagramActorProvider.tsx +37 -25
- package/src/state/assign.ts +10 -10
- package/src/state/diagram-machine.ts +123 -58
- package/src/state/syncManualLayoutActor.ts +1 -1
- package/src/state/types.ts +2 -0
- package/src/state/utils.ts +4 -0
- package/dist/base/types.js +0 -54
- package/dist/likec4diagram/ui/search/ElementsColumn.d.ts +0 -1
- package/dist/likec4diagram/ui/search/LikeC4Search.css.js +0 -87
- package/dist/likec4diagram/ui/search/LikeC4Search.d.ts +0 -2
- package/dist/likec4diagram/ui/search/LikeC4Search.js +0 -267
- package/dist/likec4diagram/ui/search/SearchInput.d.ts +0 -1
- package/dist/likec4diagram/ui/search/state.d.ts +0 -19
- package/dist/likec4diagram/ui/search/state.js +0 -63
- package/dist/likec4diagram/ui/search/utils.d.ts +0 -3
- package/dist/likec4diagram/ui/search/utils.js +0 -20
- package/src/likec4diagram/ui/search/LikeC4Search.tsx +0 -301
- package/src/likec4diagram/ui/search/state.ts +0 -78
- package/src/likec4diagram/ui/search/utils.ts +0 -20
- /package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.d.ts +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.d.ts +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.js +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/_shared.css.d.ts +0 -0
- /package/src/{likec4diagram/ui/search → search/components}/ViewsColumn.css.ts +0 -0
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
interface LikeC4CustomColorsProperties {
|
|
4
|
-
customColors: CustomColorDefinitions;
|
|
5
|
-
}
|
|
6
|
-
export declare const LikeC4CustomColors: NamedExoticComponent<LikeC4CustomColorsProperties>;
|
|
7
|
-
export {};
|
|
1
|
+
import { MemoExoticComponent } from 'react';
|
|
2
|
+
export declare const LikeC4CustomColors: MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import '@likec4/core';
|
|
3
3
|
import { useMantineStyleNonce } from '@mantine/core';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { memo, useState } from 'react';
|
|
5
|
+
import { isEmpty, entries } from 'remeda';
|
|
6
|
+
import { useLikeC4Specification } from './likec4model/useLikeC4Model.js';
|
|
7
|
+
import { useUpdateEffect } from './hooks/useUpdateEffect.js';
|
|
7
8
|
|
|
8
9
|
function toStyle(name, colors) {
|
|
9
10
|
const darken = (color) => `color-mix(in srgb, ${color} 80%, black)`;
|
|
@@ -24,11 +25,21 @@ function toStyle(name, colors) {
|
|
|
24
25
|
}
|
|
25
26
|
`;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
function generateCustomColorStyles(customColors) {
|
|
29
|
+
return entries(customColors).map(([name, color]) => toStyle(name, color)).join("\n").trim();
|
|
30
|
+
}
|
|
31
|
+
const LikeC4CustomColors = memo(() => {
|
|
32
|
+
const customColors = useLikeC4Specification().customColors ?? {};
|
|
33
|
+
const [styles, setStyles] = useState(() => generateCustomColorStyles(customColors));
|
|
34
|
+
useUpdateEffect(() => {
|
|
35
|
+
setStyles(generateCustomColorStyles(customColors));
|
|
36
|
+
}, [customColors]);
|
|
29
37
|
const nonce = useMantineStyleNonce()?.();
|
|
38
|
+
if (isEmpty(customColors)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
30
41
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("style", { type: "text/css", dangerouslySetInnerHTML: { __html: styles }, nonce }) });
|
|
31
|
-
}
|
|
42
|
+
});
|
|
32
43
|
LikeC4CustomColors.displayName = "LikeC4CustomColors";
|
|
33
44
|
|
|
34
45
|
export { LikeC4CustomColors };
|
package/dist/LikeC4Diagram.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { Any } from '@likec4/core/types';
|
|
1
2
|
import { PropsWithChildren } from 'react';
|
|
2
3
|
import { LikeC4DiagramEventHandlers, LikeC4DiagramProperties } from './LikeC4Diagram.props';
|
|
3
|
-
export type LikeC4DiagramProps = PropsWithChildren<LikeC4DiagramProperties & LikeC4DiagramEventHandlers
|
|
4
|
-
export declare function LikeC4Diagram({ onCanvasClick, onCanvasContextMenu, onCanvasDblClick, onEdgeClick, onChange, onEdgeContextMenu, onNavigateTo, onNodeClick, onNodeContextMenu, onOpenSource, onBurgerMenuClick, view, className, fitView, fitViewPadding, readonly, pannable, zoomable, background, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, controls, showDiagramTitle, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, renderControls, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export type LikeC4DiagramProps<A extends Any = Any> = PropsWithChildren<LikeC4DiagramProperties<A> & LikeC4DiagramEventHandlers<A>>;
|
|
5
|
+
export declare function LikeC4Diagram<A extends Any = Any>({ onCanvasClick, onCanvasContextMenu, onCanvasDblClick, onEdgeClick, onChange, onEdgeContextMenu, onNavigateTo, onNodeClick, onNodeContextMenu, onOpenSource, onBurgerMenuClick, view, className, fitView, fitViewPadding, readonly, pannable, zoomable, background, enableElementTags, enableFocusMode, enableElementDetails, enableRelationshipDetails, enableRelationshipBrowser, nodesDraggable, nodesSelectable, controls, showDiagramTitle, showNotations, showNavigationButtons, enableDynamicViewWalkthrough, enableSearch, initialWidth, initialHeight, experimentalEdgeEditing, reduceGraphics, renderIcon, renderControls, where, reactFlowProps, renderNodes, children, }: LikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
|
package/dist/LikeC4Diagram.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { ReactFlowProvider } from '@xyflow/react';
|
|
3
3
|
import { useRef } from 'react';
|
|
4
|
-
import { isEmpty } from 'remeda';
|
|
5
4
|
import { ControlsCustomLayoutProvider } from './context/ControlsCustomLayout.js';
|
|
6
5
|
import { ReduceGraphicsContext } from './context/ReduceGraphics.js';
|
|
7
6
|
import { LikeC4CustomColors } from './LikeC4CustomColors.js';
|
|
8
7
|
import { LikeC4DiagramXYFlow } from './likec4diagram/DiagramXYFlow.js';
|
|
9
8
|
import { DiagramActorProvider } from './state/DiagramActorProvider.js';
|
|
10
|
-
import { useLikeC4Model } from './likec4model/useLikeC4Model.js';
|
|
11
9
|
import { EnsureMantine } from './context/EnsureMantine.js';
|
|
12
10
|
import { FramerMotionConfig } from './context/FramerMotionConfig.js';
|
|
13
11
|
import { IconRendererProvider } from './context/IconRenderer.js';
|
|
@@ -35,6 +33,7 @@ function LikeC4Diagram({
|
|
|
35
33
|
pannable = true,
|
|
36
34
|
zoomable = true,
|
|
37
35
|
background = "dots",
|
|
36
|
+
enableElementTags = false,
|
|
38
37
|
enableFocusMode = false,
|
|
39
38
|
enableElementDetails = false,
|
|
40
39
|
enableRelationshipDetails = enableElementDetails,
|
|
@@ -58,9 +57,7 @@ function LikeC4Diagram({
|
|
|
58
57
|
renderNodes,
|
|
59
58
|
children
|
|
60
59
|
}) {
|
|
61
|
-
const hasLikec4model = !!useLikeC4Model();
|
|
62
60
|
const initialRef = useRef(null);
|
|
63
|
-
const isDynamicView = view.__ === "dynamic";
|
|
64
61
|
if (initialRef.current == null) {
|
|
65
62
|
initialRef.current = {
|
|
66
63
|
defaultEdges: [],
|
|
@@ -87,13 +84,13 @@ function LikeC4Diagram({
|
|
|
87
84
|
enableRelationshipBrowser,
|
|
88
85
|
enableSearch,
|
|
89
86
|
enableNavigationButtons: showNavigationButtons && !!onNavigateTo,
|
|
90
|
-
enableDynamicViewWalkthrough:
|
|
87
|
+
enableDynamicViewWalkthrough: view._type === "dynamic" && enableDynamicViewWalkthrough,
|
|
91
88
|
enableEdgeEditing: experimentalEdgeEditing,
|
|
92
89
|
enableNotations: showNotations,
|
|
93
90
|
enableVscode: !!onOpenSource,
|
|
94
91
|
enableControls: controls,
|
|
95
92
|
enableViewTitle: showDiagramTitle,
|
|
96
|
-
|
|
93
|
+
enableElementTags
|
|
97
94
|
},
|
|
98
95
|
children: /* @__PURE__ */ jsx(
|
|
99
96
|
DiagramEventHandlers,
|
|
@@ -112,7 +109,7 @@ function LikeC4Diagram({
|
|
|
112
109
|
onBurgerMenuClick
|
|
113
110
|
},
|
|
114
111
|
children: /* @__PURE__ */ jsx(ReduceGraphicsContext, { reduceGraphics: isReducedGraphicsMode, children: /* @__PURE__ */ jsxs(RootContainer, { className, reduceGraphics: isReducedGraphicsMode, children: [
|
|
115
|
-
|
|
112
|
+
/* @__PURE__ */ jsx(LikeC4CustomColors, {}),
|
|
116
113
|
/* @__PURE__ */ jsx(
|
|
117
114
|
ReactFlowProvider,
|
|
118
115
|
{
|
|
@@ -121,13 +118,12 @@ function LikeC4Diagram({
|
|
|
121
118
|
children: /* @__PURE__ */ jsx(
|
|
122
119
|
DiagramActorProvider,
|
|
123
120
|
{
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
},
|
|
121
|
+
view,
|
|
122
|
+
zoomable,
|
|
123
|
+
pannable,
|
|
124
|
+
fitViewPadding,
|
|
125
|
+
nodesSelectable,
|
|
126
|
+
where: where ?? null,
|
|
131
127
|
children: /* @__PURE__ */ jsx(ControlsCustomLayoutProvider, { value: renderControls ?? null, children: /* @__PURE__ */ jsx(
|
|
132
128
|
LikeC4DiagramXYFlow,
|
|
133
129
|
{
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { DiagramEdge, DiagramNode,
|
|
1
|
+
import { Any, DiagramEdge, DiagramNode, LayoutedView, ViewChange, WhereOperator } from '@likec4/core/types';
|
|
2
2
|
import { ReactFlowProps as XYFlowProps } from '@xyflow/react';
|
|
3
3
|
import { MouseEvent as ReactMouseEvent, ReactNode } from 'react';
|
|
4
|
+
import { SetRequired } from 'type-fest';
|
|
4
5
|
import { ControlsCustomLayout } from './context/ControlsCustomLayout';
|
|
5
6
|
import { CustomNodes } from './custom/customNodes';
|
|
7
|
+
import type * as aux from '@likec4/core/types/aux';
|
|
6
8
|
export type { CustomNodes, WhereOperator };
|
|
7
|
-
export type DiagramNodeWithNavigate<
|
|
8
|
-
navigateTo: ID;
|
|
9
|
-
};
|
|
9
|
+
export type DiagramNodeWithNavigate<A extends Any> = SetRequired<DiagramNode<A>, 'navigateTo'>;
|
|
10
10
|
type ElementIconRendererProps = {
|
|
11
11
|
node: {
|
|
12
12
|
id: string;
|
|
13
13
|
title: string;
|
|
14
14
|
icon?: string | null | undefined;
|
|
15
15
|
};
|
|
16
|
+
className?: string;
|
|
16
17
|
};
|
|
17
18
|
export type ElementIconRenderer = (props: ElementIconRendererProps) => ReactNode;
|
|
18
|
-
export type OnNavigateTo<
|
|
19
|
-
export type OnNodeClick = (node: DiagramNode
|
|
20
|
-
export type OnEdgeClick = (edge: DiagramEdge
|
|
19
|
+
export type OnNavigateTo<A extends Any> = (to: aux.ViewId<A>, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<A>) => void;
|
|
20
|
+
export type OnNodeClick<A extends Any> = (node: DiagramNode<A>, event: ReactMouseEvent) => void;
|
|
21
|
+
export type OnEdgeClick<A extends Any> = (edge: DiagramEdge<A>, event: ReactMouseEvent) => void;
|
|
21
22
|
/**
|
|
22
23
|
* On pane/canvas click (not on any node or edge)
|
|
23
24
|
*/
|
|
@@ -30,8 +31,8 @@ export type LikeC4ColorScheme = 'light' | 'dark';
|
|
|
30
31
|
export type OverrideReactFlowProps = Pick<XYFlowProps, 'paneClickDistance' | 'nodeClickDistance' | 'selectionKeyCode' | 'panActivationKeyCode' | 'multiSelectionKeyCode' | 'zoomActivationKeyCode' | 'snapToGrid' | 'snapGrid' | 'onlyRenderVisibleElements' | 'nodesDraggable' | 'nodesFocusable' | 'elementsSelectable' | 'selectNodesOnDrag' | 'panOnDrag' | 'preventScrolling' | 'zoomOnScroll' | 'zoomOnPinch' | 'panOnScroll' | 'panOnScrollSpeed' | 'panOnScrollMode' | 'zoomOnDoubleClick' | 'nodeDragThreshold'>;
|
|
31
32
|
export type PaddingUnit = 'px' | '%';
|
|
32
33
|
export type PaddingWithUnit = `${number}${PaddingUnit}` | number;
|
|
33
|
-
export interface LikeC4DiagramProperties {
|
|
34
|
-
view:
|
|
34
|
+
export interface LikeC4DiagramProperties<A extends aux.Any> {
|
|
35
|
+
view: LayoutedView<A>;
|
|
35
36
|
className?: string | undefined;
|
|
36
37
|
/**
|
|
37
38
|
* Enable/disable panning
|
|
@@ -72,7 +73,15 @@ export interface LikeC4DiagramProperties {
|
|
|
72
73
|
* @default false if readonly
|
|
73
74
|
*/
|
|
74
75
|
nodesDraggable?: boolean | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Initial width of the diagram
|
|
78
|
+
* (supposed to be used during SSR)
|
|
79
|
+
*/
|
|
75
80
|
initialWidth?: number | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Initial height of the diagram
|
|
83
|
+
* (supposed to be used during SSR)
|
|
84
|
+
*/
|
|
76
85
|
initialHeight?: number | undefined;
|
|
77
86
|
/**
|
|
78
87
|
* Background pattern
|
|
@@ -90,7 +99,9 @@ export interface LikeC4DiagramProperties {
|
|
|
90
99
|
*/
|
|
91
100
|
showNavigationButtons?: undefined | boolean;
|
|
92
101
|
/**
|
|
93
|
-
* Display notations
|
|
102
|
+
* Display notations in the bottom right corner
|
|
103
|
+
* (Active if only notations are present)
|
|
104
|
+
*
|
|
94
105
|
* @default true
|
|
95
106
|
*/
|
|
96
107
|
showNotations?: boolean | undefined;
|
|
@@ -125,6 +136,11 @@ export interface LikeC4DiagramProperties {
|
|
|
125
136
|
* @default false
|
|
126
137
|
*/
|
|
127
138
|
enableDynamicViewWalkthrough?: boolean | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* Display element tags in the bottom left corner
|
|
141
|
+
* @default false
|
|
142
|
+
*/
|
|
143
|
+
enableElementTags?: boolean | undefined;
|
|
128
144
|
/**
|
|
129
145
|
* Experimental feature to enable edge editing
|
|
130
146
|
* @default false
|
|
@@ -132,8 +148,9 @@ export interface LikeC4DiagramProperties {
|
|
|
132
148
|
experimentalEdgeEditing?: boolean | undefined;
|
|
133
149
|
/**
|
|
134
150
|
* Improve performance by hiding certain elements and reducing visual effects (disable mix-blend, shadows, animations)
|
|
151
|
+
* Enable it if you have a large or static view
|
|
135
152
|
*
|
|
136
|
-
* @default 'auto' - will be
|
|
153
|
+
* @default 'auto' - will be `true` if view has more then 3000 * 2000 pixels
|
|
137
154
|
*/
|
|
138
155
|
reduceGraphics?: 'auto' | boolean | undefined;
|
|
139
156
|
/**
|
|
@@ -152,33 +169,33 @@ export interface LikeC4DiagramProperties {
|
|
|
152
169
|
/**
|
|
153
170
|
* Dynamic filter, applies both to nodes and edges
|
|
154
171
|
*/
|
|
155
|
-
where?: WhereOperator<
|
|
172
|
+
where?: WhereOperator<A> | undefined;
|
|
156
173
|
/**
|
|
157
174
|
* Override ReactFlow props
|
|
158
175
|
*/
|
|
159
176
|
reactFlowProps?: OverrideReactFlowProps | undefined;
|
|
160
177
|
}
|
|
161
|
-
export type OpenSourceParams = {
|
|
162
|
-
element: Fqn
|
|
178
|
+
export type OpenSourceParams<A extends aux.Any = aux.Any> = {
|
|
179
|
+
element: aux.Fqn<A>;
|
|
163
180
|
property?: string;
|
|
164
181
|
} | {
|
|
165
|
-
relation: RelationId;
|
|
182
|
+
relation: aux.RelationId;
|
|
166
183
|
} | {
|
|
167
|
-
deployment:
|
|
184
|
+
deployment: aux.DeploymentFqn<A>;
|
|
168
185
|
property?: string;
|
|
169
186
|
} | {
|
|
170
|
-
view:
|
|
187
|
+
view: aux.StrictViewId<A>;
|
|
171
188
|
};
|
|
172
|
-
export interface LikeC4DiagramEventHandlers {
|
|
189
|
+
export interface LikeC4DiagramEventHandlers<A extends aux.Any> {
|
|
173
190
|
onChange?: OnChange | null | undefined;
|
|
174
|
-
onNavigateTo?: OnNavigateTo | null | undefined;
|
|
175
|
-
onNodeClick?: OnNodeClick | null | undefined;
|
|
176
|
-
onNodeContextMenu?: OnNodeClick | null | undefined;
|
|
191
|
+
onNavigateTo?: OnNavigateTo<A> | null | undefined;
|
|
192
|
+
onNodeClick?: OnNodeClick<A> | null | undefined;
|
|
193
|
+
onNodeContextMenu?: OnNodeClick<A> | null | undefined;
|
|
177
194
|
onCanvasContextMenu?: OnCanvasClick | null | undefined;
|
|
178
|
-
onEdgeClick?: OnEdgeClick | null | undefined;
|
|
179
|
-
onEdgeContextMenu?: OnEdgeClick | null | undefined;
|
|
195
|
+
onEdgeClick?: OnEdgeClick<A> | null | undefined;
|
|
196
|
+
onEdgeContextMenu?: OnEdgeClick<A> | null | undefined;
|
|
180
197
|
onCanvasClick?: OnCanvasClick | null | undefined;
|
|
181
198
|
onCanvasDblClick?: OnCanvasClick | null | undefined;
|
|
182
199
|
onBurgerMenuClick?: null | undefined | (() => void);
|
|
183
|
-
onOpenSource?: null | undefined | ((params: OpenSourceParams) => void);
|
|
200
|
+
onOpenSource?: null | undefined | ((params: OpenSourceParams<A>) => void);
|
|
184
201
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LikeC4Model } from '@likec4/core/model';
|
|
2
|
+
import { Any, Unknown } from '@likec4/core/types';
|
|
2
3
|
import { PropsWithChildren } from 'react';
|
|
3
|
-
export type LikeC4ModelProviderProps = PropsWithChildren<{
|
|
4
|
-
likec4model: LikeC4Model<
|
|
4
|
+
export type LikeC4ModelProviderProps<A extends Any> = PropsWithChildren<{
|
|
5
|
+
likec4model: LikeC4Model<A>;
|
|
5
6
|
}>;
|
|
6
7
|
/**
|
|
7
8
|
* Ensures LikeC4Model context
|
|
8
9
|
*/
|
|
9
|
-
export declare function LikeC4ModelProvider({ children, likec4model, }: LikeC4ModelProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function LikeC4ModelProvider<A extends Any = Unknown>({ children, likec4model, }: LikeC4ModelProviderProps<A>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { LikeC4DiagramProperties } from './LikeC4Diagram.props';
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
import type * as aux from '@likec4/core/types/aux';
|
|
3
|
+
export type StaticLikeC4DiagramProps<A extends aux.Any> = Pick<LikeC4DiagramProperties<A>, 'view' | 'className' | 'fitView' | 'fitViewPadding' | 'background' | 'enableElementDetails' | 'enableRelationshipDetails' | 'enableRelationshipBrowser' | 'enableElementTags' | 'reduceGraphics' | 'initialWidth' | 'initialHeight' | 'renderIcon' | 'renderNodes' | 'where'>;
|
|
4
|
+
export declare function StaticLikeC4Diagram<A extends aux.Any = aux.UnknownLayouted>({ view, fitView, fitViewPadding, enableRelationshipDetails, enableRelationshipBrowser, background, ...rest }: StaticLikeC4DiagramProps<A>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -5,7 +5,6 @@ function StaticLikeC4Diagram({
|
|
|
5
5
|
view,
|
|
6
6
|
fitView = true,
|
|
7
7
|
fitViewPadding = "8px",
|
|
8
|
-
enableElementDetails = false,
|
|
9
8
|
enableRelationshipDetails = false,
|
|
10
9
|
enableRelationshipBrowser = enableRelationshipDetails,
|
|
11
10
|
background = "transparent",
|
|
@@ -24,7 +23,7 @@ function StaticLikeC4Diagram({
|
|
|
24
23
|
background,
|
|
25
24
|
showDiagramTitle: false,
|
|
26
25
|
showNotations: false,
|
|
27
|
-
enableElementDetails,
|
|
26
|
+
enableElementDetails: false,
|
|
28
27
|
enableRelationshipDetails,
|
|
29
28
|
enableRelationshipBrowser,
|
|
30
29
|
enableDynamicViewWalkthrough: false,
|
|
@@ -34,6 +33,7 @@ function StaticLikeC4Diagram({
|
|
|
34
33
|
enableSearch: false,
|
|
35
34
|
nodesSelectable: false,
|
|
36
35
|
nodesDraggable: false,
|
|
36
|
+
enableElementTags: false,
|
|
37
37
|
...rest
|
|
38
38
|
}
|
|
39
39
|
);
|
package/dist/base/BaseXYFlow.js
CHANGED
|
@@ -8,7 +8,7 @@ import { useIsZoomTooSmall, useXYStoreApi } from '../hooks/useXYFlow.js';
|
|
|
8
8
|
import { stopPropagation } from '../utils/xyflow.js';
|
|
9
9
|
import { Background } from './Background.js';
|
|
10
10
|
import { MinZoom, MaxZoom } from './const.js';
|
|
11
|
-
import {
|
|
11
|
+
import { setHovered } from './types.Base.js';
|
|
12
12
|
|
|
13
13
|
const cssTransparentBg = css({
|
|
14
14
|
background: "transparent !important",
|
|
@@ -121,7 +121,7 @@ const BaseXYFlow = ({
|
|
|
121
121
|
onNodesChange([{
|
|
122
122
|
id: node.id,
|
|
123
123
|
type: "replace",
|
|
124
|
-
item:
|
|
124
|
+
item: setHovered(node, true)
|
|
125
125
|
}]);
|
|
126
126
|
}
|
|
127
127
|
}),
|
|
@@ -130,7 +130,7 @@ const BaseXYFlow = ({
|
|
|
130
130
|
onNodesChange([{
|
|
131
131
|
id: node.id,
|
|
132
132
|
type: "replace",
|
|
133
|
-
item:
|
|
133
|
+
item: setHovered(node, false)
|
|
134
134
|
}]);
|
|
135
135
|
}
|
|
136
136
|
}),
|
|
@@ -139,7 +139,7 @@ const BaseXYFlow = ({
|
|
|
139
139
|
onEdgesChange([{
|
|
140
140
|
id: edge.id,
|
|
141
141
|
type: "replace",
|
|
142
|
-
item:
|
|
142
|
+
item: setHovered(edge, true)
|
|
143
143
|
}]);
|
|
144
144
|
}
|
|
145
145
|
}),
|
|
@@ -148,7 +148,7 @@ const BaseXYFlow = ({
|
|
|
148
148
|
onEdgesChange([{
|
|
149
149
|
id: edge.id,
|
|
150
150
|
type: "replace",
|
|
151
|
-
item:
|
|
151
|
+
item: setHovered(edge, false)
|
|
152
152
|
}]);
|
|
153
153
|
}
|
|
154
154
|
}),
|
package/dist/base/const.d.ts
CHANGED
package/dist/base/const.js
CHANGED
package/dist/base/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { BaseXYFlow, type BaseXYFlowProps } from './BaseXYFlow';
|
|
2
|
-
export {
|
|
2
|
+
export { type EdgeProps, type NodeProps, type NonOptional, type ReactFlowEdge, type ReactFlowNode, } from './types';
|
|
3
|
+
export * as Base from './types.Base';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx, css } from '@likec4/styles/css';
|
|
3
|
+
import { Box } from '@likec4/styles/jsx';
|
|
3
4
|
import { actionBtn } from '@likec4/styles/recipes';
|
|
4
|
-
import {
|
|
5
|
+
import { ActionIcon } from '@mantine/core';
|
|
5
6
|
import { useDebouncedValue } from '@mantine/hooks';
|
|
6
7
|
import { IconZoomScan } from '@tabler/icons-react';
|
|
7
8
|
import * as m from 'motion/react-m';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx, css } from '@likec4/styles/css';
|
|
3
|
+
import { Box } from '@likec4/styles/jsx';
|
|
3
4
|
import { actionBtn } from '@likec4/styles/recipes';
|
|
4
|
-
import {
|
|
5
|
+
import { ActionIcon } from '@mantine/core';
|
|
5
6
|
import { useDebouncedValue } from '@mantine/hooks';
|
|
6
7
|
import { IconId } from '@tabler/icons-react';
|
|
7
8
|
import * as m from 'motion/react-m';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx, css } from '@likec4/styles/css';
|
|
3
|
-
import { Box
|
|
3
|
+
import { Box } from '@likec4/styles/jsx';
|
|
4
|
+
import { Text } from '@mantine/core';
|
|
4
5
|
import { IconRenderer } from '../../../context/IconRenderer.js';
|
|
5
6
|
|
|
6
7
|
const titleContainer = css({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { DiagramEdge } from '@likec4/core';
|
|
1
|
+
import { DiagramEdge } from '@likec4/core/types';
|
|
2
2
|
import { BoxProps } from '@likec4/styles/jsx';
|
|
3
|
-
import { PropsWithChildren } from 'react';
|
|
3
|
+
import { PropsWithChildren, ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
4
4
|
import { UndefinedOnPartialDeep } from 'type-fest';
|
|
5
5
|
import { EdgeProps } from '../../types';
|
|
6
6
|
type Data = UndefinedOnPartialDeep<Pick<DiagramEdge, 'label' | 'technology'>>;
|
|
7
7
|
type EdgeLabelProps = PropsWithChildren<BoxProps & {
|
|
8
8
|
edgeProps: EdgeProps<Data>;
|
|
9
9
|
}>;
|
|
10
|
-
export declare
|
|
10
|
+
export declare const EdgeLabel: ForwardRefExoticComponent<Omit<EdgeLabelProps, "ref"> & RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export {};
|
|
@@ -3,10 +3,11 @@ import { isStepEdgeId, extractStep } from '@likec4/core';
|
|
|
3
3
|
import { cx } from '@likec4/styles/css';
|
|
4
4
|
import { Box } from '@likec4/styles/jsx';
|
|
5
5
|
import { Text } from '@mantine/core';
|
|
6
|
+
import { forwardRef } from 'react';
|
|
6
7
|
import { isTruthy } from 'remeda';
|
|
7
8
|
import { labelsva } from './EdgeLabel.css.js';
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
const EdgeLabel = forwardRef(({
|
|
10
11
|
edgeProps: {
|
|
11
12
|
id,
|
|
12
13
|
data: {
|
|
@@ -18,12 +19,12 @@ function EdgeLabel({
|
|
|
18
19
|
style,
|
|
19
20
|
children,
|
|
20
21
|
...rest
|
|
21
|
-
}) {
|
|
22
|
+
}, ref) => {
|
|
22
23
|
const stepNum = isStepEdgeId(id) ? extractStep(id) : null;
|
|
23
24
|
const classes = labelsva({
|
|
24
25
|
isStepEdge: stepNum !== null
|
|
25
26
|
});
|
|
26
|
-
return /* @__PURE__ */ jsxs(Box, { className: cx(classes.root, className), ...rest, children: [
|
|
27
|
+
return /* @__PURE__ */ jsxs(Box, { ref, className: cx(classes.root, className), ...rest, children: [
|
|
27
28
|
stepNum !== null && /* @__PURE__ */ jsx(Box, { className: classes.stepNumber, children: stepNum }),
|
|
28
29
|
/* @__PURE__ */ jsxs(Box, { className: classes.labelContents, children: [
|
|
29
30
|
isTruthy(label) && /* @__PURE__ */ jsx(Text, { component: "div", className: classes.labelText, lineClamp: 5, children: label }),
|
|
@@ -31,6 +32,7 @@ function EdgeLabel({
|
|
|
31
32
|
children
|
|
32
33
|
] })
|
|
33
34
|
] });
|
|
34
|
-
}
|
|
35
|
+
});
|
|
36
|
+
EdgeLabel.displayName = "EdgeLabel";
|
|
35
37
|
|
|
36
38
|
export { EdgeLabel };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RelationshipArrowType } from '@likec4/core';
|
|
1
|
+
import { RelationshipArrowType } from '@likec4/core/types';
|
|
2
2
|
import { SVGProps } from 'react';
|
|
3
3
|
export declare const EdgeMarkers: {
|
|
4
4
|
Arrow: (props: SVGProps<SVGMarkerElement>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DiagramEdge } from '@likec4/core';
|
|
1
|
+
import { DiagramEdge } from '@likec4/core/types';
|
|
2
2
|
import { PointerEventHandler, ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
3
3
|
import { UndefinedOnPartialDeep } from 'type-fest';
|
|
4
4
|
import { EdgeProps } from '../../types';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { css, cx } from '@likec4/styles/css';
|
|
3
|
+
import { Box } from '@likec4/styles/jsx';
|
|
3
4
|
import { actionBtn } from '@likec4/styles/recipes';
|
|
4
|
-
import {
|
|
5
|
+
import { ActionIcon } from '@mantine/core';
|
|
5
6
|
import { useId } from '@mantine/hooks';
|
|
6
7
|
import * as m from 'motion/react-m';
|
|
7
8
|
import { useIsZoomTooSmall } from '../../../hooks/useXYFlow.js';
|
|
@@ -9,11 +10,12 @@ import { stopPropagation } from '../../../utils/xyflow.js';
|
|
|
9
10
|
|
|
10
11
|
const container = css({
|
|
11
12
|
position: "absolute",
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
zIndex: 1,
|
|
14
|
+
top: `calc(100% - 30px)`,
|
|
15
|
+
transform: "translateX(-50%)",
|
|
16
|
+
left: `50%`,
|
|
17
|
+
width: "auto",
|
|
18
|
+
minHeight: "30px",
|
|
17
19
|
display: "flex",
|
|
18
20
|
justifyContent: "center",
|
|
19
21
|
alignItems: "center",
|
|
@@ -40,14 +42,13 @@ function ElementActionButtons({
|
|
|
40
42
|
return null;
|
|
41
43
|
}
|
|
42
44
|
return /* @__PURE__ */ jsx(Box, { className: container, children: /* @__PURE__ */ jsx(
|
|
43
|
-
|
|
45
|
+
m.div,
|
|
44
46
|
{
|
|
45
|
-
component: m.div,
|
|
46
47
|
layoutRoot: true,
|
|
47
48
|
initial: false,
|
|
48
49
|
style: {
|
|
49
50
|
originY: 0,
|
|
50
|
-
gap:
|
|
51
|
+
gap: 6
|
|
51
52
|
},
|
|
52
53
|
animate: {
|
|
53
54
|
opacity: isHovered || selected ? 1 : 0.75,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx, css } from '@likec4/styles/css';
|
|
3
|
+
import { Box } from '@likec4/styles/jsx';
|
|
3
4
|
import { actionBtn } from '@likec4/styles/recipes';
|
|
4
|
-
import {
|
|
5
|
+
import { ActionIcon } from '@mantine/core';
|
|
5
6
|
import { useId } from '@mantine/hooks';
|
|
6
7
|
import { IconId } from '@tabler/icons-react';
|
|
7
8
|
import * as m from 'motion/react-m';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BoxProps } from '@likec4/styles/jsx';
|
|
2
|
+
import { NodeProps } from '../../types';
|
|
3
|
+
import { ForwardRefExoticComponent, RefAttributes, MemoExoticComponent } from 'react';
|
|
4
|
+
export type ElementTagProps = {
|
|
5
|
+
tag: string;
|
|
6
|
+
} & Omit<BoxProps, 'children'>;
|
|
7
|
+
export declare const ElementTag: ForwardRefExoticComponent<Omit<ElementTagProps, "ref"> & RefAttributes<HTMLDivElement>>;
|
|
8
|
+
type Data = {
|
|
9
|
+
tags: readonly string[] | null | undefined;
|
|
10
|
+
width: number;
|
|
11
|
+
};
|
|
12
|
+
type ElementTagsProps = NodeProps<Data>;
|
|
13
|
+
export declare const ElementTags: MemoExoticComponent<({ id, data: { tags, width } }: ElementTagsProps) => import("react/jsx-runtime").JSX.Element | null>;
|
|
14
|
+
export {};
|