@likec4/diagram 1.29.1 → 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 +4 -2
- 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
package/dist/base/types.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type NonOptional<T extends object, Keys extends OptionalKeysOf<T> = Optio
|
|
|
29
29
|
/**
|
|
30
30
|
* ReactFlow Custom Node properties with BaseNodeData at least
|
|
31
31
|
*/
|
|
32
|
-
export type NodeProps<T extends Record<string, unknown> = {}> = ReactFlowNodeProps<RFNode<Base.NodeData & T,
|
|
32
|
+
export type NodeProps<T extends Record<string, unknown> = {}, NodeType extends string = string> = ReactFlowNodeProps<RFNode<Base.NodeData & T, NodeType>>;
|
|
33
33
|
/**
|
|
34
34
|
* ReactFlow Custom Edge properties with BaseEdgeData at least
|
|
35
35
|
*/
|
|
@@ -38,7 +38,7 @@ export type ReactFlowNode<Data extends Record<string, unknown>, NodeType extends
|
|
|
38
38
|
export type ReactFlowEdge<Data extends Record<string, unknown>, EdgeType extends string> = SetRequired<RFEdge<Data, EdgeType>, 'type' | 'data'>;
|
|
39
39
|
export declare namespace Base {
|
|
40
40
|
export type Dimmed = 'immediate' | boolean;
|
|
41
|
-
export type NodeData
|
|
41
|
+
export type NodeData = {
|
|
42
42
|
/**
|
|
43
43
|
* Whether the cursor is hovering over the node
|
|
44
44
|
*/
|
|
@@ -48,10 +48,10 @@ export declare namespace Base {
|
|
|
48
48
|
* 'immediate' means that the node is dimmed without delay
|
|
49
49
|
*/
|
|
50
50
|
dimmed?: Dimmed;
|
|
51
|
-
}
|
|
51
|
+
};
|
|
52
52
|
export type Node = RFNode<NodeData>;
|
|
53
53
|
export type NodeProps = ReactFlowNodeProps<RFNode<Base.NodeData, any>>;
|
|
54
|
-
export type EdgeData
|
|
54
|
+
export type EdgeData = {
|
|
55
55
|
/**
|
|
56
56
|
* Whether the cursor is hovering over the edge
|
|
57
57
|
*/
|
|
@@ -65,7 +65,7 @@ export declare namespace Base {
|
|
|
65
65
|
* 'immediate' means that the edge is dimmed without delay
|
|
66
66
|
*/
|
|
67
67
|
dimmed?: Dimmed;
|
|
68
|
-
}
|
|
68
|
+
};
|
|
69
69
|
export type Edge = SetRequired<RFEdge<EdgeData>, 'data'>;
|
|
70
70
|
type WithDimmed = {
|
|
71
71
|
data: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { memo, useState } from 'react';
|
|
3
3
|
import { ShadowRoot } from './ShadowRoot.js';
|
|
4
4
|
import { cx } from '@likec4/styles/css';
|
|
5
5
|
import { Box, ActionIcon } from '@mantine/core';
|
|
@@ -30,7 +30,7 @@ function LikeC4View({
|
|
|
30
30
|
}
|
|
31
31
|
return /* @__PURE__ */ jsx(LikeC4ViewInner, { view: view.$view, ...props });
|
|
32
32
|
}
|
|
33
|
-
const LikeC4ViewInner =
|
|
33
|
+
const LikeC4ViewInner = memo(({
|
|
34
34
|
view,
|
|
35
35
|
className,
|
|
36
36
|
pannable = false,
|
|
@@ -56,12 +56,13 @@ const LikeC4ViewInner = reactExports.memo(({
|
|
|
56
56
|
styleNonce,
|
|
57
57
|
style,
|
|
58
58
|
reactFlowProps = {},
|
|
59
|
+
renderNodes,
|
|
59
60
|
...props
|
|
60
61
|
}) => {
|
|
61
62
|
const likec4model = useLikeC4Model(true, "layouted");
|
|
62
63
|
const colorScheme = useColorScheme(explicitColorScheme);
|
|
63
64
|
const [shadowRootProps, cssstyle] = useShadowRootStyle(keepAspectRatio, view);
|
|
64
|
-
const [browserViewId, onNavigateTo] =
|
|
65
|
+
const [browserViewId, onNavigateTo] = useState(null);
|
|
65
66
|
const browserView = browserViewId ? likec4model.findView(browserViewId)?.$view : null;
|
|
66
67
|
const notations = view.notation?.elements ?? [];
|
|
67
68
|
const hasNotations = notations.length > 0;
|
|
@@ -128,6 +129,7 @@ const LikeC4ViewInner = reactExports.memo(({
|
|
|
128
129
|
onNodeClick: () => onNavigateTo(view.id)
|
|
129
130
|
},
|
|
130
131
|
reactFlowProps,
|
|
132
|
+
renderNodes,
|
|
131
133
|
...props
|
|
132
134
|
}
|
|
133
135
|
),
|
|
@@ -148,6 +150,7 @@ const LikeC4ViewInner = reactExports.memo(({
|
|
|
148
150
|
readonly: true,
|
|
149
151
|
fitView: true,
|
|
150
152
|
fitViewPadding: "16px",
|
|
153
|
+
renderNodes,
|
|
151
154
|
...props,
|
|
152
155
|
...browserProps,
|
|
153
156
|
showNotations: (browserProps.showNotations ?? true) && (browserView.notation?.elements.length ?? 0) > 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WhereOperator } from '@likec4/core';
|
|
2
2
|
import { CSSProperties } from 'react';
|
|
3
|
-
import { ElementIconRenderer, OverrideReactFlowProps, PaddingWithUnit } from '../LikeC4Diagram.props';
|
|
3
|
+
import { CustomNodes, ElementIconRenderer, OverrideReactFlowProps, PaddingWithUnit } from '../LikeC4Diagram.props';
|
|
4
4
|
export interface LikeC4ViewProps<ViewId = string, Tag = string, Kind = string> {
|
|
5
5
|
/**
|
|
6
6
|
* View to display.
|
|
@@ -122,6 +122,10 @@ export interface LikeC4ViewProps<ViewId = string, Tag = string, Kind = string> {
|
|
|
122
122
|
mantineTheme?: any;
|
|
123
123
|
/** Function to generate nonce attribute added to all generated `<style />` tags */
|
|
124
124
|
styleNonce?: string | (() => string) | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* Override node renderers
|
|
127
|
+
*/
|
|
128
|
+
renderNodes?: CustomNodes | undefined;
|
|
125
129
|
/**
|
|
126
130
|
* Render custom icon for a node
|
|
127
131
|
* By default, if icon is http:// or https://, it will be rendered as an image
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import '../_virtual/index.js';
|
|
3
2
|
import { ShadowRoot } from './ShadowRoot.js';
|
|
4
3
|
import { cx } from '@likec4/styles/css';
|
|
5
4
|
import { isString, isFunction } from 'remeda';
|
|
@@ -85,6 +84,6 @@ function ReactLikeC4Inner({
|
|
|
85
84
|
)
|
|
86
85
|
] });
|
|
87
86
|
}
|
|
88
|
-
ReactLikeC4.displayName = "
|
|
87
|
+
ReactLikeC4.displayName = "ReactLikeC4";
|
|
89
88
|
|
|
90
89
|
export { ReactLikeC4 };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx, css } from '@likec4/styles/css';
|
|
3
3
|
import { MantineProvider } from '@mantine/core';
|
|
4
|
-
import {
|
|
4
|
+
import { useRef, useCallback } from 'react';
|
|
5
5
|
import root from 'react-shadow';
|
|
6
6
|
import { isDefined } from 'remeda';
|
|
7
7
|
import { useBundledStyleSheet, DefaultTheme } from './styles.css.js';
|
|
@@ -15,9 +15,9 @@ function ShadowRoot({
|
|
|
15
15
|
colorScheme,
|
|
16
16
|
...props
|
|
17
17
|
}) {
|
|
18
|
-
const rootRef =
|
|
18
|
+
const rootRef = useRef(null);
|
|
19
19
|
const styleSheets = useBundledStyleSheet(injectFontCss, styleNonce);
|
|
20
|
-
const getRootElement =
|
|
20
|
+
const getRootElement = useCallback(() => rootRef.current ?? void 0, [rootRef]);
|
|
21
21
|
let getStyleNonce;
|
|
22
22
|
if (isDefined(styleNonce)) {
|
|
23
23
|
getStyleNonce = typeof styleNonce === "function" ? styleNonce : () => styleNonce;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../custom';
|
package/dist/bundle/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export type { ChangeEvent, CustomNodes, DiagramNodeWithNavigate, ElementIconRenderer, LikeC4ColorScheme, LikeC4DiagramEventHandlers, OnCanvasClick, OnChange, OnEdgeClick, OnNavigateTo, OnNodeClick, OpenSourceParams, PaddingUnit, PaddingWithUnit, WhereOperator, } from '../LikeC4Diagram.props';
|
|
1
2
|
export { LikeC4View } from './LikeC4View';
|
|
2
|
-
export type { LikeC4ViewProps } from './LikeC4View.props';
|
|
3
|
+
export type { LikeC4BrowserProps, LikeC4ViewProps } from './LikeC4View.props';
|
|
3
4
|
export { ReactLikeC4, type ReactLikeC4Props } from './ReactLikeC4';
|
|
4
5
|
export { LikeC4ModelProvider } from './LikeC4ModelProvider';
|
|
5
6
|
export { ViewNotFound } from './ViewNotFound';
|
|
7
|
+
export * from '../custom/hooks';
|
package/dist/bundle/index.js
CHANGED
|
@@ -2,3 +2,12 @@ export { LikeC4View } from './LikeC4View.js';
|
|
|
2
2
|
export { ReactLikeC4 } from './ReactLikeC4.js';
|
|
3
3
|
export { LikeC4ModelProvider } from './LikeC4ModelProvider.js';
|
|
4
4
|
export { ViewNotFound } from './ViewNotFound.js';
|
|
5
|
+
export { useDiagramEventHandlers } from '../context/DiagramEventHandlers.js';
|
|
6
|
+
export { useEnabledFeatures } from '../context/DiagramFeatures.js';
|
|
7
|
+
export { useCurrentViewId } from '../hooks/useCurrentViewId.js';
|
|
8
|
+
export { useDiagram, useDiagramContext } from '../hooks/useDiagram.js';
|
|
9
|
+
export { useXYFlow, useXYInternalNode, useXYStore, useXYStoreApi } from '../hooks/useXYFlow.js';
|
|
10
|
+
export { useLikeC4Model } from '../likec4model/useLikeC4Model.js';
|
|
11
|
+
export { useMantinePortalProps } from '../hooks/useMantinePortalProps.js';
|
|
12
|
+
export { useSetState } from '../hooks/useSetState.js';
|
|
13
|
+
export { useUpdateEffect } from '../hooks/useUpdateEffect.js';
|
|
@@ -2,10 +2,10 @@ import { css } from '@likec4/styles/css';
|
|
|
2
2
|
import { createTheme, Portal } from '@mantine/core';
|
|
3
3
|
import { useColorScheme as useColorScheme$1, useMutationObserver, useDebouncedCallback, useId } from '@mantine/hooks';
|
|
4
4
|
import { useIsomorphicLayoutEffect } from '@react-hookz/web';
|
|
5
|
-
import {
|
|
5
|
+
import { useState } from 'react';
|
|
6
6
|
import { first, isString, isFunction } from 'remeda';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import fontsCss from '../styles-font.css2.js';
|
|
8
|
+
import inlinedStyles from '../styles.css2.js';
|
|
9
9
|
|
|
10
10
|
const DefaultTheme = createTheme({
|
|
11
11
|
autoContrast: true,
|
|
@@ -42,7 +42,7 @@ const cssInteractive = css({
|
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
function useBundledStyleSheet(injectFontCss, styleNonce) {
|
|
45
|
-
const [styleSheets, setStyleSheets] =
|
|
45
|
+
const [styleSheets, setStyleSheets] = useState([]);
|
|
46
46
|
useIsomorphicLayoutEffect(() => {
|
|
47
47
|
if (injectFontCss && !document.querySelector(`style[data-likec4-font]`)) {
|
|
48
48
|
const style = document.createElement("style");
|
|
@@ -83,7 +83,7 @@ const getComputedColorScheme = () => {
|
|
|
83
83
|
};
|
|
84
84
|
function useColorScheme(explicit) {
|
|
85
85
|
const preferred = useColorScheme$1();
|
|
86
|
-
const [computed, setComputed] =
|
|
86
|
+
const [computed, setComputed] = useState(getComputedColorScheme);
|
|
87
87
|
useMutationObserver(
|
|
88
88
|
useDebouncedCallback(() => setComputed(getComputedColorScheme), 100),
|
|
89
89
|
{
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { cx } from '@likec4/styles/css';
|
|
2
3
|
import { UnstyledButton, Group, Text } from '@mantine/core';
|
|
3
4
|
import { IconSearch } from '@tabler/icons-react';
|
|
4
5
|
import { isMacOs } from '@xyflow/system';
|
|
5
|
-
import clsx from 'clsx';
|
|
6
6
|
import { placeholder, shortcut, root } from './SearchControl.css.js';
|
|
7
7
|
|
|
8
8
|
function SearchControl({ className, ...others }) {
|
|
9
9
|
const isMac = isMacOs();
|
|
10
|
-
return /* @__PURE__ */ jsx(UnstyledButton, { ...others, className:
|
|
10
|
+
return /* @__PURE__ */ jsx(UnstyledButton, { ...others, className: cx("group", root, className), children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
11
11
|
/* @__PURE__ */ jsx(IconSearch, { style: { width: "15px", height: "15px" }, stroke: 2 }),
|
|
12
12
|
/* @__PURE__ */ jsx(Text, { component: "div", className: placeholder, children: "Search" }),
|
|
13
13
|
/* @__PURE__ */ jsx(Text, { component: "div", className: shortcut, children: isMac ? "⌘ + K" : "Ctrl + K" })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useSyncedRef } from '@react-hookz/web';
|
|
3
|
-
import {
|
|
3
|
+
import { useContext, createContext, useMemo } from 'react';
|
|
4
4
|
import { isFunction, mapToObj } from 'remeda';
|
|
5
5
|
|
|
6
6
|
const HandlerNames = [
|
|
@@ -16,7 +16,7 @@ const HandlerNames = [
|
|
|
16
16
|
"onChange",
|
|
17
17
|
"onCanvasDblClick"
|
|
18
18
|
];
|
|
19
|
-
const DiagramEventHandlersContext =
|
|
19
|
+
const DiagramEventHandlersContext = createContext({
|
|
20
20
|
...mapToObj(HandlerNames, (name) => [name, null]),
|
|
21
21
|
handlersRef: {
|
|
22
22
|
current: {}
|
|
@@ -28,7 +28,7 @@ function DiagramEventHandlers({
|
|
|
28
28
|
}) {
|
|
29
29
|
const handlersRef = useSyncedRef(handlers);
|
|
30
30
|
const deps = HandlerNames.map((name) => isFunction(handlers[name]));
|
|
31
|
-
const value =
|
|
31
|
+
const value = useMemo(() => ({
|
|
32
32
|
...mapToObj(HandlerNames, (name) => {
|
|
33
33
|
if (handlersRef.current[name]) {
|
|
34
34
|
return [name, (...args) => handlersRef.current[name]?.(...args)];
|
|
@@ -40,10 +40,10 @@ function DiagramEventHandlers({
|
|
|
40
40
|
return /* @__PURE__ */ jsx(DiagramEventHandlersContext.Provider, { value, children });
|
|
41
41
|
}
|
|
42
42
|
function useDiagramEventHandlers() {
|
|
43
|
-
return
|
|
43
|
+
return useContext(DiagramEventHandlersContext);
|
|
44
44
|
}
|
|
45
45
|
function useDiagramEventHandlersRef() {
|
|
46
|
-
return
|
|
46
|
+
return useContext(DiagramEventHandlersContext).handlersRef;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
export { DiagramEventHandlers, useDiagramEventHandlers, useDiagramEventHandlersRef };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExclusiveUnion
|
|
1
|
+
import { ExclusiveUnion } from '@likec4/core';
|
|
2
2
|
import { PropsWithChildren } from 'react';
|
|
3
3
|
declare const FeatureNames: readonly ["Controls", "ReadOnly", "FocusMode", "NavigateTo", "ElementDetails", "RelationshipDetails", "RelationshipBrowser", "Search", "NavigationButtons", "Notations", "DynamicViewWalkthrough", "EdgeEditing", "ViewTitle", "FitView", "LikeC4Model", "Vscode"];
|
|
4
4
|
export type FeatureName = typeof FeatureNames[number];
|
|
@@ -17,9 +17,6 @@ export declare function DiagramFeatures({ children, features, overrides, }: Prop
|
|
|
17
17
|
export declare namespace DiagramFeatures {
|
|
18
18
|
var Overlays: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
}
|
|
20
|
-
export declare function useEnabledFeature<F extends NonEmptyArray<FeatureName>>(...names: F): {
|
|
21
|
-
[P in `enable${F[number]}`]: boolean;
|
|
22
|
-
};
|
|
23
20
|
export declare function useEnabledFeatures(): EnabledFeatures;
|
|
24
21
|
export declare function IfEnabled({ feature, children, and, }: PropsWithChildren<{
|
|
25
22
|
feature: FeatureName;
|
|
@@ -28,4 +25,5 @@ export declare function IfEnabled({ feature, children, and, }: PropsWithChildren
|
|
|
28
25
|
export declare function IfNotEnabled({ feature, children, }: PropsWithChildren<{
|
|
29
26
|
feature: FeatureName;
|
|
30
27
|
}>): import("react/jsx-runtime").JSX.Element | null;
|
|
28
|
+
export declare function IfNotReadOnly({ children, }: PropsWithChildren): import("react/jsx-runtime").JSX.Element | null;
|
|
31
29
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { shallowEqual } from 'fast-equals';
|
|
3
|
-
import {
|
|
4
|
-
import { mapToObj
|
|
3
|
+
import { useContext, createContext, useState, useEffect } from 'react';
|
|
4
|
+
import { mapToObj } from 'remeda';
|
|
5
5
|
|
|
6
6
|
const FeatureNames = [
|
|
7
7
|
"Controls",
|
|
@@ -31,7 +31,7 @@ const AllDisabled = mapToObj(
|
|
|
31
31
|
FeatureNames,
|
|
32
32
|
(name) => [`enable${name}`, false]
|
|
33
33
|
);
|
|
34
|
-
const DiagramFeaturesContext =
|
|
34
|
+
const DiagramFeaturesContext = createContext(AllDisabled);
|
|
35
35
|
const validate = (features) => {
|
|
36
36
|
let {
|
|
37
37
|
enableReadOnly,
|
|
@@ -68,9 +68,9 @@ function DiagramFeatures({
|
|
|
68
68
|
features,
|
|
69
69
|
overrides
|
|
70
70
|
}) {
|
|
71
|
-
const outerScope =
|
|
72
|
-
const [scope, setScope] =
|
|
73
|
-
|
|
71
|
+
const outerScope = useContext(DiagramFeaturesContext);
|
|
72
|
+
const [scope, setScope] = useState(outerScope);
|
|
73
|
+
useEffect(
|
|
74
74
|
() => {
|
|
75
75
|
setScope((current) => {
|
|
76
76
|
const next = validate({
|
|
@@ -98,26 +98,25 @@ DiagramFeatures.Overlays = ({ children }) => {
|
|
|
98
98
|
}
|
|
99
99
|
);
|
|
100
100
|
};
|
|
101
|
-
function useEnabledFeature(...names) {
|
|
102
|
-
return pick(reactExports.useContext(DiagramFeaturesContext), map(names, (name) => `enable${name}`));
|
|
103
|
-
}
|
|
104
101
|
function useEnabledFeatures() {
|
|
105
|
-
return
|
|
102
|
+
return useContext(DiagramFeaturesContext);
|
|
106
103
|
}
|
|
107
104
|
function IfEnabled({
|
|
108
105
|
feature,
|
|
109
106
|
children,
|
|
110
107
|
and = true
|
|
111
108
|
}) {
|
|
112
|
-
const enabled =
|
|
109
|
+
const enabled = useEnabledFeatures()[`enable${feature}`] === true;
|
|
113
110
|
return enabled && and ? /* @__PURE__ */ jsx(Fragment, { children }) : null;
|
|
114
111
|
}
|
|
115
|
-
function
|
|
116
|
-
feature,
|
|
112
|
+
function IfNotReadOnly({
|
|
117
113
|
children
|
|
118
114
|
}) {
|
|
119
|
-
const
|
|
120
|
-
|
|
115
|
+
const isReadOnly = useEnabledFeatures()[`enableReadOnly`] === true;
|
|
116
|
+
if (isReadOnly) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
121
120
|
}
|
|
122
121
|
|
|
123
|
-
export { AllDisabled, DiagramFeatures, IfEnabled,
|
|
122
|
+
export { AllDisabled, DiagramFeatures, IfEnabled, IfNotReadOnly, useEnabledFeatures };
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { MantineContext } from '@mantine/core';
|
|
3
|
-
import {
|
|
2
|
+
import { MantineContext, MantineProvider } from '@mantine/core';
|
|
3
|
+
import { useContext, useEffect } from 'react';
|
|
4
4
|
|
|
5
5
|
function EnsureMantine({ children }) {
|
|
6
|
-
const mantineCtx =
|
|
6
|
+
const mantineCtx = useContext(MantineContext);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (!mantineCtx) {
|
|
9
|
+
console.warn("LikeC4Diagram must be a child of MantineProvider");
|
|
10
|
+
}
|
|
11
|
+
}, []);
|
|
7
12
|
if (!mantineCtx) {
|
|
8
|
-
|
|
13
|
+
return /* @__PURE__ */ jsx(MantineProvider, { children });
|
|
9
14
|
}
|
|
10
15
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
11
16
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { cx } from '@likec4/styles/css';
|
|
2
3
|
import { IconCylinder, IconRectangularPrism, IconReorder, IconUser, IconDeviceMobile, IconBrowser } from '@tabler/icons-react';
|
|
3
|
-
import
|
|
4
|
-
import { r as reactExports } from '../_virtual/index.js';
|
|
4
|
+
import { useContext, createContext } from 'react';
|
|
5
5
|
|
|
6
|
-
const IconRendererContext =
|
|
6
|
+
const IconRendererContext = createContext(null);
|
|
7
7
|
function IconRendererProvider({
|
|
8
8
|
value,
|
|
9
9
|
children
|
|
10
10
|
}) {
|
|
11
|
-
const outerScope =
|
|
11
|
+
const outerScope = useContext(IconRendererContext);
|
|
12
12
|
if (outerScope) {
|
|
13
13
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
14
14
|
}
|
|
@@ -18,7 +18,7 @@ function IconRenderer({
|
|
|
18
18
|
element,
|
|
19
19
|
className
|
|
20
20
|
}) {
|
|
21
|
-
const RenderIcon =
|
|
21
|
+
const RenderIcon = useContext(IconRendererContext);
|
|
22
22
|
if (!element || !element.icon || element.icon === "none") {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
@@ -34,7 +34,7 @@ function IconRenderer({
|
|
|
34
34
|
return /* @__PURE__ */ jsx(
|
|
35
35
|
"div",
|
|
36
36
|
{
|
|
37
|
-
className:
|
|
37
|
+
className: cx(
|
|
38
38
|
className,
|
|
39
39
|
"likec4-element-icon"
|
|
40
40
|
),
|
|
@@ -67,7 +67,7 @@ function IconOrShapeRenderer({
|
|
|
67
67
|
return /* @__PURE__ */ jsx(
|
|
68
68
|
"div",
|
|
69
69
|
{
|
|
70
|
-
className:
|
|
70
|
+
className: cx(
|
|
71
71
|
className,
|
|
72
72
|
"likec4-shape-icon"
|
|
73
73
|
),
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { createSafeContext
|
|
2
|
+
import { createSafeContext } from '@mantine/core';
|
|
3
3
|
import { useStore } from '@nanostores/react';
|
|
4
4
|
import { atom } from 'nanostores';
|
|
5
|
-
import {
|
|
5
|
+
import { useRef, createContext, useContext } from 'react';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const ReduceGraphicsModeCtx = createContext(null);
|
|
8
8
|
function useIsReducedGraphics() {
|
|
9
|
-
const isReduced =
|
|
9
|
+
const isReduced = useContext(ReduceGraphicsModeCtx);
|
|
10
10
|
if (isReduced === null) {
|
|
11
11
|
console.warn("ReduceGraphicsMode is not provided");
|
|
12
12
|
}
|
|
@@ -16,11 +16,11 @@ const [PanningAtomSafeCtx, usePanningAtom] = createSafeContext(
|
|
|
16
16
|
"PanningAtomSafeCtx is not provided"
|
|
17
17
|
);
|
|
18
18
|
function ReduceGraphicsContext({ reduceGraphics, children }) {
|
|
19
|
-
const $isPanningRef =
|
|
19
|
+
const $isPanningRef = useRef(null);
|
|
20
20
|
if (!$isPanningRef.current) {
|
|
21
21
|
$isPanningRef.current = atom(reduceGraphics);
|
|
22
22
|
}
|
|
23
|
-
return /* @__PURE__ */ jsx(PanningAtomSafeCtx, { value: $isPanningRef.current, children: /* @__PURE__ */ jsx(ReduceGraphicsModeCtx, { value: reduceGraphics, children }) });
|
|
23
|
+
return /* @__PURE__ */ jsx(PanningAtomSafeCtx, { value: $isPanningRef.current, children: /* @__PURE__ */ jsx(ReduceGraphicsModeCtx.Provider, { value: reduceGraphics, children }) });
|
|
24
24
|
}
|
|
25
25
|
function useIsPanning() {
|
|
26
26
|
return useStore(usePanningAtom());
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { cx } from '@likec4/styles/css';
|
|
3
3
|
import { Box } from '@likec4/styles/jsx';
|
|
4
|
-
import {
|
|
4
|
+
import { useRef, useEffect, createContext, useContext, createRef } from 'react';
|
|
5
5
|
import { usePanningAtom } from './ReduceGraphics.js';
|
|
6
6
|
|
|
7
|
-
const RootContainerContext =
|
|
7
|
+
const RootContainerContext = createContext(createRef());
|
|
8
8
|
function RootContainer({
|
|
9
9
|
className,
|
|
10
10
|
reduceGraphics = false,
|
|
11
11
|
children
|
|
12
12
|
}) {
|
|
13
|
-
const ref =
|
|
13
|
+
const ref = useRef(null);
|
|
14
14
|
const $isPanning = usePanningAtom();
|
|
15
|
-
|
|
15
|
+
useEffect(() => {
|
|
16
16
|
return $isPanning.listen((isPanning) => {
|
|
17
17
|
if (isPanning) {
|
|
18
18
|
ref.current?.setAttribute("data-likec4-diagram-panning", "true");
|
|
@@ -34,7 +34,7 @@ function RootContainer({
|
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
36
|
function useRootContainer() {
|
|
37
|
-
return
|
|
37
|
+
return useContext(RootContainerContext).current;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
export { RootContainer, useRootContainer };
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DiagramEventHandlers, useDiagramEventHandlers } from './DiagramEventHandlers';
|
|
2
|
-
export { AllDisabled, DiagramFeatures, IfEnabled, IfNotEnabled,
|
|
2
|
+
export { AllDisabled, DiagramFeatures, IfEnabled, IfNotEnabled, useEnabledFeatures, } from './DiagramFeatures';
|
|
3
3
|
export type { EnabledFeatures } from './DiagramFeatures';
|
|
4
4
|
export { EnsureMantine } from './EnsureMantine';
|
|
5
5
|
export { FramerMotionConfig } from './FramerMotionConfig';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CompoundActionButton, CompoundDetailsButton, CompoundNodeContainer, CompoundTitle, DefaultHandles, ElementActionButtons, ElementDetailsButton, ElementNodeContainer, ElementShape, ElementTitle, } from '../base/primitives';
|
|
2
|
+
export { IconOrShapeRenderer, IconRenderer, IconRendererProvider, } from '../context/IconRenderer';
|
|
3
|
+
export { CompoundActions, CompoundDeploymentNode, CompoundDeploymentToolbar, CompoundDetailsButtonWithHandler, CompoundElementNode, CompoundElementToolbar, DeploymentElementActions, DeploymentElementToolbar, DeploymentNode, ElementActions, ElementDetailsButtonWithHandler, ElementNode, ElementToolbar, Toolbar, ViewGroupNode, } from '../likec4diagram/custom/nodes';
|
|
4
|
+
export { IfEnabled, IfNotEnabled, IfNotReadOnly, } from '../context/DiagramFeatures';
|
|
5
|
+
export { Overlay, type OverlayProps, } from '../overlays/overlay/Overlay';
|