@eventcatalog/visualiser 3.22.1 → 4.0.0-beta.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/dist/index.d.mts +56 -22
- package/dist/index.d.ts +56 -22
- package/dist/index.js +1529 -1189
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1195 -837
- package/dist/index.mjs.map +1 -1
- package/dist/styles-core.css +55 -0
- package/dist/styles.css +55 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
useState as useState15,
|
|
6
6
|
useCallback as useCallback12,
|
|
7
7
|
useRef as useRef7,
|
|
8
|
-
memo as
|
|
8
|
+
memo as memo40
|
|
9
9
|
} from "react";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
import {
|
|
@@ -28,7 +28,21 @@ import {
|
|
|
28
28
|
HistoryIcon,
|
|
29
29
|
CheckIcon as CheckIcon3,
|
|
30
30
|
ClipboardIcon as ClipboardIcon3,
|
|
31
|
-
MoreVertical
|
|
31
|
+
MoreVertical,
|
|
32
|
+
Zap as Zap7,
|
|
33
|
+
Bot as Bot4,
|
|
34
|
+
Wrench as Wrench3,
|
|
35
|
+
ServerIcon as ServerIcon4,
|
|
36
|
+
Workflow as Workflow3,
|
|
37
|
+
MessageSquare as MessageSquare4,
|
|
38
|
+
Search as SearchIcon2,
|
|
39
|
+
ArrowLeftRight,
|
|
40
|
+
Group as GroupIcon3,
|
|
41
|
+
Globe as Globe6,
|
|
42
|
+
User as User6,
|
|
43
|
+
Database as Database7,
|
|
44
|
+
Boxes,
|
|
45
|
+
Box
|
|
32
46
|
} from "lucide-react";
|
|
33
47
|
import * as DropdownMenu2 from "@radix-ui/react-dropdown-menu";
|
|
34
48
|
import { toPng } from "html-to-image";
|
|
@@ -51,6 +65,15 @@ function buildUrl(path) {
|
|
|
51
65
|
}
|
|
52
66
|
return path;
|
|
53
67
|
}
|
|
68
|
+
function navigateTo(url) {
|
|
69
|
+
if (typeof window === "undefined") return;
|
|
70
|
+
const ecNavigate = window.__ecNavigate;
|
|
71
|
+
if (typeof ecNavigate === "function") {
|
|
72
|
+
ecNavigate(url);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
window.location.href = url;
|
|
76
|
+
}
|
|
54
77
|
|
|
55
78
|
// src/utils/custom-icon.tsx
|
|
56
79
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -3968,13 +3991,145 @@ var config_default3 = {
|
|
|
3968
3991
|
}
|
|
3969
3992
|
};
|
|
3970
3993
|
|
|
3971
|
-
// src/nodes/
|
|
3994
|
+
// src/nodes/ContextActor.tsx
|
|
3972
3995
|
import { memo as memo15 } from "react";
|
|
3973
|
-
import {
|
|
3974
|
-
import {
|
|
3996
|
+
import { Handle as Handle11, Position as Position11 } from "@xyflow/react";
|
|
3997
|
+
import { User as User3 } from "lucide-react";
|
|
3975
3998
|
import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3999
|
+
var ContextActor_default = memo15(function ContextActorNode({ data }) {
|
|
4000
|
+
const { name } = data;
|
|
4001
|
+
return /* @__PURE__ */ jsxs14(
|
|
4002
|
+
"div",
|
|
4003
|
+
{
|
|
4004
|
+
className: "relative flex w-44 flex-col items-center rounded-2xl border-2 border-yellow-500 bg-[var(--ec-actor-node-bg,rgb(var(--ec-card-bg)))] px-3 pb-3 pt-5",
|
|
4005
|
+
style: { boxShadow: "0 2px 12px rgba(234, 179, 8, 0.15)" },
|
|
4006
|
+
children: [
|
|
4007
|
+
/* @__PURE__ */ jsx16(
|
|
4008
|
+
Handle11,
|
|
4009
|
+
{
|
|
4010
|
+
type: "target",
|
|
4011
|
+
position: Position11.Left,
|
|
4012
|
+
style: HIDDEN_HANDLE_STYLE
|
|
4013
|
+
}
|
|
4014
|
+
),
|
|
4015
|
+
/* @__PURE__ */ jsx16(
|
|
4016
|
+
Handle11,
|
|
4017
|
+
{
|
|
4018
|
+
type: "source",
|
|
4019
|
+
position: Position11.Right,
|
|
4020
|
+
style: HIDDEN_HANDLE_STYLE
|
|
4021
|
+
}
|
|
4022
|
+
),
|
|
4023
|
+
/* @__PURE__ */ jsx16("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx16("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-yellow-500 bg-[rgb(var(--ec-card-bg))] shadow-sm", children: /* @__PURE__ */ jsx16(User3, { className: "h-4 w-4 text-yellow-500", strokeWidth: 2 }) }) }),
|
|
4024
|
+
/* @__PURE__ */ jsx16(
|
|
4025
|
+
TruncatedResourceName,
|
|
4026
|
+
{
|
|
4027
|
+
as: "div",
|
|
4028
|
+
value: name,
|
|
4029
|
+
className: "mt-1 max-w-full text-center text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))] truncate",
|
|
4030
|
+
children: name
|
|
4031
|
+
}
|
|
4032
|
+
),
|
|
4033
|
+
/* @__PURE__ */ jsx16("span", { className: "mt-0.5 text-[8px] font-bold uppercase tracking-widest text-yellow-600 dark:text-yellow-400", children: "Actor" })
|
|
4034
|
+
]
|
|
4035
|
+
}
|
|
4036
|
+
);
|
|
4037
|
+
});
|
|
4038
|
+
|
|
4039
|
+
// src/nodes/SystemGroupNode.tsx
|
|
4040
|
+
import { memo as memo16 } from "react";
|
|
4041
|
+
import { Group as GroupIcon } from "lucide-react";
|
|
4042
|
+
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4043
|
+
var CONTAINER_STYLE = {
|
|
4044
|
+
width: "100%",
|
|
4045
|
+
height: "100%",
|
|
4046
|
+
borderRadius: 14,
|
|
4047
|
+
border: "2px solid var(--ec-system-group-border, #c4b5fd)",
|
|
4048
|
+
// Slightly gray, translucent body so the grouped children read as "inside".
|
|
4049
|
+
backgroundColor: "var(--ec-system-group-bg, rgba(100, 116, 139, 0.06))",
|
|
4050
|
+
position: "relative",
|
|
4051
|
+
overflow: "visible",
|
|
4052
|
+
boxShadow: "0 2px 16px rgba(139, 92, 246, 0.10)"
|
|
4053
|
+
};
|
|
4054
|
+
var HEADER_STYLE = {
|
|
4055
|
+
position: "absolute",
|
|
4056
|
+
top: 0,
|
|
4057
|
+
left: 0,
|
|
4058
|
+
right: 0,
|
|
4059
|
+
height: 48,
|
|
4060
|
+
borderTopLeftRadius: 12,
|
|
4061
|
+
borderTopRightRadius: 12,
|
|
4062
|
+
// Faint violet wash on the header, separated from the body by a hairline.
|
|
4063
|
+
background: "var(--ec-system-group-header-bg, rgba(139, 92, 246, 0.05))",
|
|
4064
|
+
borderBottom: "1px solid var(--ec-system-group-border, #c4b5fd)",
|
|
4065
|
+
display: "flex",
|
|
4066
|
+
alignItems: "center",
|
|
4067
|
+
padding: "0 16px",
|
|
4068
|
+
overflow: "visible"
|
|
4069
|
+
};
|
|
4070
|
+
var BADGE_STYLE = {
|
|
4071
|
+
position: "absolute",
|
|
4072
|
+
top: -11,
|
|
4073
|
+
left: 14,
|
|
4074
|
+
display: "inline-flex",
|
|
4075
|
+
alignItems: "center",
|
|
4076
|
+
gap: 4,
|
|
4077
|
+
fontSize: 8,
|
|
4078
|
+
fontWeight: 700,
|
|
4079
|
+
letterSpacing: "0.12em",
|
|
4080
|
+
textTransform: "uppercase",
|
|
4081
|
+
color: "white",
|
|
4082
|
+
background: "#8b5cf6",
|
|
4083
|
+
padding: "2px 7px",
|
|
4084
|
+
borderRadius: 5,
|
|
4085
|
+
boxShadow: "0 1px 2px rgba(0,0,0,0.12)",
|
|
4086
|
+
zIndex: 10
|
|
4087
|
+
};
|
|
4088
|
+
var NAME_STYLE = {
|
|
4089
|
+
fontSize: 14,
|
|
4090
|
+
fontWeight: 700,
|
|
4091
|
+
color: "var(--ec-system-group-text, #5b21b6)",
|
|
4092
|
+
whiteSpace: "nowrap"
|
|
4093
|
+
};
|
|
4094
|
+
var VERSION_STYLE = {
|
|
4095
|
+
fontSize: 10,
|
|
4096
|
+
fontWeight: 500,
|
|
4097
|
+
color: "#a78bfa",
|
|
4098
|
+
marginLeft: 6
|
|
4099
|
+
};
|
|
4100
|
+
var SystemGroupNode_default = memo16(function SystemGroupNode({ data }) {
|
|
4101
|
+
const { system } = data;
|
|
4102
|
+
return /* @__PURE__ */ jsxs15("div", { style: CONTAINER_STYLE, children: [
|
|
4103
|
+
/* @__PURE__ */ jsxs15("span", { style: BADGE_STYLE, children: [
|
|
4104
|
+
/* @__PURE__ */ jsx17(GroupIcon, { size: 10, strokeWidth: 2.5 }),
|
|
4105
|
+
"System"
|
|
4106
|
+
] }),
|
|
4107
|
+
/* @__PURE__ */ jsxs15("div", { style: HEADER_STYLE, children: [
|
|
4108
|
+
/* @__PURE__ */ jsx17(
|
|
4109
|
+
TruncatedResourceName,
|
|
4110
|
+
{
|
|
4111
|
+
value: system?.name || "System",
|
|
4112
|
+
tooltipBorderColor: "#8b5cf6",
|
|
4113
|
+
className: "truncate",
|
|
4114
|
+
style: NAME_STYLE,
|
|
4115
|
+
children: system?.name || "System"
|
|
4116
|
+
}
|
|
4117
|
+
),
|
|
4118
|
+
system?.version && /* @__PURE__ */ jsxs15("span", { style: VERSION_STYLE, children: [
|
|
4119
|
+
"v",
|
|
4120
|
+
system.version
|
|
4121
|
+
] })
|
|
4122
|
+
] })
|
|
4123
|
+
] });
|
|
4124
|
+
});
|
|
4125
|
+
|
|
4126
|
+
// src/nodes/external-system/ExternalSystem.tsx
|
|
4127
|
+
import { memo as memo17 } from "react";
|
|
4128
|
+
import { Globe as Globe2 } from "lucide-react";
|
|
4129
|
+
import { Handle as Handle12, Position as Position12, useNodeConnections as useNodeConnections10 } from "@xyflow/react";
|
|
4130
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3976
4131
|
function GlowHandle14({ side }) {
|
|
3977
|
-
return /* @__PURE__ */
|
|
4132
|
+
return /* @__PURE__ */ jsx18(
|
|
3978
4133
|
"div",
|
|
3979
4134
|
{
|
|
3980
4135
|
style: {
|
|
@@ -4000,7 +4155,7 @@ function classNames11(...classes) {
|
|
|
4000
4155
|
function PostItExternalSystem(props) {
|
|
4001
4156
|
const { version, name, summary, deprecated, draft, notes } = props.data.externalSystem;
|
|
4002
4157
|
const mode = props.data.mode || "simple";
|
|
4003
|
-
return /* @__PURE__ */
|
|
4158
|
+
return /* @__PURE__ */ jsxs16(
|
|
4004
4159
|
"div",
|
|
4005
4160
|
{
|
|
4006
4161
|
className: classNames11(
|
|
@@ -4008,24 +4163,24 @@ function PostItExternalSystem(props) {
|
|
|
4008
4163
|
props?.selected ? "ring-2 ring-purple-400/60 ring-offset-1" : ""
|
|
4009
4164
|
),
|
|
4010
4165
|
children: [
|
|
4011
|
-
/* @__PURE__ */
|
|
4012
|
-
|
|
4166
|
+
/* @__PURE__ */ jsx18(
|
|
4167
|
+
Handle12,
|
|
4013
4168
|
{
|
|
4014
4169
|
type: "target",
|
|
4015
|
-
position:
|
|
4170
|
+
position: Position12.Left,
|
|
4016
4171
|
style: HIDDEN_HANDLE_STYLE
|
|
4017
4172
|
}
|
|
4018
4173
|
),
|
|
4019
|
-
/* @__PURE__ */
|
|
4020
|
-
|
|
4174
|
+
/* @__PURE__ */ jsx18(
|
|
4175
|
+
Handle12,
|
|
4021
4176
|
{
|
|
4022
4177
|
type: "source",
|
|
4023
|
-
position:
|
|
4178
|
+
position: Position12.Right,
|
|
4024
4179
|
style: HIDDEN_HANDLE_STYLE
|
|
4025
4180
|
}
|
|
4026
4181
|
),
|
|
4027
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
4028
|
-
/* @__PURE__ */
|
|
4182
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx18(NotesIndicator, { notes, resourceName: name }),
|
|
4183
|
+
/* @__PURE__ */ jsxs16(
|
|
4029
4184
|
"div",
|
|
4030
4185
|
{
|
|
4031
4186
|
className: "absolute inset-0",
|
|
@@ -4036,8 +4191,8 @@ function PostItExternalSystem(props) {
|
|
|
4036
4191
|
border: deprecated ? "2px dashed rgba(239, 68, 68, 0.5)" : draft ? "2px dashed rgba(168, 85, 247, 0.5)" : "none"
|
|
4037
4192
|
},
|
|
4038
4193
|
children: [
|
|
4039
|
-
/* @__PURE__ */
|
|
4040
|
-
/* @__PURE__ */
|
|
4194
|
+
/* @__PURE__ */ jsx18("div", { style: FOLDED_CORNER_SHADOW_STYLE }),
|
|
4195
|
+
/* @__PURE__ */ jsx18(
|
|
4041
4196
|
"div",
|
|
4042
4197
|
{
|
|
4043
4198
|
style: {
|
|
@@ -4056,16 +4211,16 @@ function PostItExternalSystem(props) {
|
|
|
4056
4211
|
]
|
|
4057
4212
|
}
|
|
4058
4213
|
),
|
|
4059
|
-
/* @__PURE__ */
|
|
4060
|
-
/* @__PURE__ */
|
|
4061
|
-
/* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
/* @__PURE__ */
|
|
4214
|
+
/* @__PURE__ */ jsxs16("div", { className: "relative px-3.5 py-3", children: [
|
|
4215
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
|
|
4216
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-1", children: [
|
|
4217
|
+
/* @__PURE__ */ jsx18(Globe2, { className: "w-3 h-3 text-purple-900/50", strokeWidth: 2.5 }),
|
|
4218
|
+
/* @__PURE__ */ jsx18("span", { className: "text-[8px] font-bold text-purple-900/50 uppercase tracking-widest", children: "External" })
|
|
4064
4219
|
] }),
|
|
4065
|
-
draft && /* @__PURE__ */
|
|
4066
|
-
deprecated && /* @__PURE__ */
|
|
4220
|
+
draft && /* @__PURE__ */ jsx18("span", { className: "text-[8px] font-extrabold text-amber-900 bg-amber-100 border border-dashed border-amber-400 px-1.5 py-0.5 rounded uppercase", children: "Draft" }),
|
|
4221
|
+
deprecated && /* @__PURE__ */ jsx18("span", { className: "text-[7px] font-bold text-white bg-red-500 border border-red-600 px-1.5 py-0.5 rounded uppercase", children: "Deprecated" })
|
|
4067
4222
|
] }),
|
|
4068
|
-
/* @__PURE__ */
|
|
4223
|
+
/* @__PURE__ */ jsx18(
|
|
4069
4224
|
TruncatedResourceName,
|
|
4070
4225
|
{
|
|
4071
4226
|
as: "div",
|
|
@@ -4078,11 +4233,11 @@ function PostItExternalSystem(props) {
|
|
|
4078
4233
|
children: name
|
|
4079
4234
|
}
|
|
4080
4235
|
),
|
|
4081
|
-
version && /* @__PURE__ */
|
|
4236
|
+
version && /* @__PURE__ */ jsxs16("div", { className: "text-[9px] text-purple-900/40 font-semibold mt-0.5", children: [
|
|
4082
4237
|
"v",
|
|
4083
4238
|
version
|
|
4084
4239
|
] }),
|
|
4085
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
4240
|
+
mode === "full" && summary && /* @__PURE__ */ jsx18(
|
|
4086
4241
|
"div",
|
|
4087
4242
|
{
|
|
4088
4243
|
className: "mt-2 pt-1.5 border-t border-purple-900/10 text-[9px] text-purple-950/60 leading-relaxed overflow-hidden",
|
|
@@ -4103,7 +4258,7 @@ function DefaultExternalSystem(props) {
|
|
|
4103
4258
|
const sourceConnections = useNodeConnections10({ handleType: "source" });
|
|
4104
4259
|
const isDark = useDarkMode();
|
|
4105
4260
|
const deprecatedStripe = isDark ? "rgba(239,68,68,0.25)" : "rgba(239,68,68,0.1)";
|
|
4106
|
-
return /* @__PURE__ */
|
|
4261
|
+
return /* @__PURE__ */ jsxs16(
|
|
4107
4262
|
"div",
|
|
4108
4263
|
{
|
|
4109
4264
|
className: classNames11(
|
|
@@ -4116,26 +4271,26 @@ function DefaultExternalSystem(props) {
|
|
|
4116
4271
|
boxShadow: "0 2px 12px rgba(168, 85, 247, 0.15)"
|
|
4117
4272
|
},
|
|
4118
4273
|
children: [
|
|
4119
|
-
/* @__PURE__ */
|
|
4120
|
-
|
|
4274
|
+
/* @__PURE__ */ jsx18(
|
|
4275
|
+
Handle12,
|
|
4121
4276
|
{
|
|
4122
4277
|
type: "target",
|
|
4123
|
-
position:
|
|
4278
|
+
position: Position12.Left,
|
|
4124
4279
|
style: HIDDEN_HANDLE_STYLE
|
|
4125
4280
|
}
|
|
4126
4281
|
),
|
|
4127
|
-
/* @__PURE__ */
|
|
4128
|
-
|
|
4282
|
+
/* @__PURE__ */ jsx18(
|
|
4283
|
+
Handle12,
|
|
4129
4284
|
{
|
|
4130
4285
|
type: "source",
|
|
4131
|
-
position:
|
|
4286
|
+
position: Position12.Right,
|
|
4132
4287
|
style: HIDDEN_HANDLE_STYLE
|
|
4133
4288
|
}
|
|
4134
4289
|
),
|
|
4135
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
4136
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
4137
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
4138
|
-
/* @__PURE__ */
|
|
4290
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx18(NotesIndicator, { notes, resourceName: name }),
|
|
4291
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx18(GlowHandle14, { side: "left" }),
|
|
4292
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx18(GlowHandle14, { side: "right" }),
|
|
4293
|
+
/* @__PURE__ */ jsx18("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ jsxs16(
|
|
4139
4294
|
"span",
|
|
4140
4295
|
{
|
|
4141
4296
|
className: classNames11(
|
|
@@ -4143,16 +4298,16 @@ function DefaultExternalSystem(props) {
|
|
|
4143
4298
|
deprecated ? "bg-red-500" : "bg-purple-500"
|
|
4144
4299
|
),
|
|
4145
4300
|
children: [
|
|
4146
|
-
/* @__PURE__ */
|
|
4301
|
+
/* @__PURE__ */ jsx18(Globe2, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
4147
4302
|
"External System",
|
|
4148
4303
|
draft && " (Draft)",
|
|
4149
4304
|
deprecated && " (Deprecated)"
|
|
4150
4305
|
]
|
|
4151
4306
|
}
|
|
4152
4307
|
) }),
|
|
4153
|
-
/* @__PURE__ */
|
|
4154
|
-
/* @__PURE__ */
|
|
4155
|
-
/* @__PURE__ */
|
|
4308
|
+
/* @__PURE__ */ jsxs16("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
4309
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-baseline gap-1 min-w-0", children: [
|
|
4310
|
+
/* @__PURE__ */ jsx18(
|
|
4156
4311
|
TruncatedResourceName,
|
|
4157
4312
|
{
|
|
4158
4313
|
value: name,
|
|
@@ -4161,13 +4316,13 @@ function DefaultExternalSystem(props) {
|
|
|
4161
4316
|
children: name
|
|
4162
4317
|
}
|
|
4163
4318
|
),
|
|
4164
|
-
version && /* @__PURE__ */
|
|
4319
|
+
version && /* @__PURE__ */ jsxs16("span", { className: "text-[10px] font-normal text-[rgb(var(--ec-page-text-muted))] shrink-0", children: [
|
|
4165
4320
|
"(v",
|
|
4166
4321
|
version,
|
|
4167
4322
|
")"
|
|
4168
4323
|
] })
|
|
4169
4324
|
] }),
|
|
4170
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
4325
|
+
mode === "full" && summary && /* @__PURE__ */ jsx18(
|
|
4171
4326
|
"div",
|
|
4172
4327
|
{
|
|
4173
4328
|
className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden",
|
|
@@ -4181,12 +4336,12 @@ function DefaultExternalSystem(props) {
|
|
|
4181
4336
|
}
|
|
4182
4337
|
);
|
|
4183
4338
|
}
|
|
4184
|
-
var ExternalSystem_default =
|
|
4339
|
+
var ExternalSystem_default = memo17(function ExternalSystem(props) {
|
|
4185
4340
|
const nodeStyle = props?.data?.style;
|
|
4186
4341
|
if (nodeStyle === "post-it") {
|
|
4187
|
-
return /* @__PURE__ */
|
|
4342
|
+
return /* @__PURE__ */ jsx18(PostItExternalSystem, { ...props });
|
|
4188
4343
|
}
|
|
4189
|
-
return /* @__PURE__ */
|
|
4344
|
+
return /* @__PURE__ */ jsx18(DefaultExternalSystem, { ...props });
|
|
4190
4345
|
});
|
|
4191
4346
|
|
|
4192
4347
|
// src/nodes/external-system/config.ts
|
|
@@ -4254,9 +4409,9 @@ var config_default4 = {
|
|
|
4254
4409
|
};
|
|
4255
4410
|
|
|
4256
4411
|
// src/nodes/note/NoteNode.tsx
|
|
4257
|
-
import { Handle as
|
|
4258
|
-
import { memo as
|
|
4259
|
-
import { Fragment as Fragment2, jsx as
|
|
4412
|
+
import { Handle as Handle13, Position as Position13 } from "@xyflow/react";
|
|
4413
|
+
import { memo as memo18, useState as useState3, useEffect as useEffect2, useRef as useRef2, useCallback as useCallback2 } from "react";
|
|
4414
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4260
4415
|
function classNames12(...classes) {
|
|
4261
4416
|
return classes.filter(Boolean).join(" ");
|
|
4262
4417
|
}
|
|
@@ -4312,7 +4467,7 @@ var AVAILABLE_COLORS = {
|
|
|
4312
4467
|
};
|
|
4313
4468
|
var POSITION_RELATIVE_STYLE = { position: "relative" };
|
|
4314
4469
|
var TEXTAREA_STYLE = { height: "100%", minHeight: 0 };
|
|
4315
|
-
var NoteNode_default =
|
|
4470
|
+
var NoteNode_default = memo18(function NoteNodeComponent({
|
|
4316
4471
|
id,
|
|
4317
4472
|
data,
|
|
4318
4473
|
selected,
|
|
@@ -4403,24 +4558,24 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4403
4558
|
},
|
|
4404
4559
|
[id, onColorChange]
|
|
4405
4560
|
);
|
|
4406
|
-
return /* @__PURE__ */
|
|
4407
|
-
/* @__PURE__ */
|
|
4408
|
-
|
|
4561
|
+
return /* @__PURE__ */ jsxs17("div", { className: "relative group", style: FULL_SIZE_STYLE, children: [
|
|
4562
|
+
/* @__PURE__ */ jsx19(
|
|
4563
|
+
Handle13,
|
|
4409
4564
|
{
|
|
4410
4565
|
type: "target",
|
|
4411
|
-
position:
|
|
4566
|
+
position: Position13.Left,
|
|
4412
4567
|
className: "!left-[-1px] !w-2 !h-2 !bg-gray-400 !border !border-gray-500 !rounded-full !z-10"
|
|
4413
4568
|
}
|
|
4414
4569
|
),
|
|
4415
|
-
/* @__PURE__ */
|
|
4416
|
-
|
|
4570
|
+
/* @__PURE__ */ jsx19(
|
|
4571
|
+
Handle13,
|
|
4417
4572
|
{
|
|
4418
4573
|
type: "source",
|
|
4419
|
-
position:
|
|
4574
|
+
position: Position13.Right,
|
|
4420
4575
|
className: "!right-[-1px] !w-2 !h-2 !bg-gray-400 !border !border-gray-500 !rounded-full !z-10"
|
|
4421
4576
|
}
|
|
4422
4577
|
),
|
|
4423
|
-
selected && !isEditing && !readOnly && /* @__PURE__ */
|
|
4578
|
+
selected && !isEditing && !readOnly && /* @__PURE__ */ jsx19("div", { className: "absolute -top-10 left-1/2 transform -translate-x-1/2 flex space-x-1 p-1 bg-[rgb(var(--ec-card-bg))] rounded-md shadow-lg border border-[rgb(var(--ec-page-border))] z-20", children: Object.keys(AVAILABLE_COLORS).map((colorKey) => /* @__PURE__ */ jsx19(
|
|
4424
4579
|
"button",
|
|
4425
4580
|
{
|
|
4426
4581
|
onClick: () => handleColorChange(colorKey),
|
|
@@ -4434,7 +4589,7 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4434
4589
|
},
|
|
4435
4590
|
colorKey
|
|
4436
4591
|
)) }),
|
|
4437
|
-
/* @__PURE__ */
|
|
4592
|
+
/* @__PURE__ */ jsxs17(
|
|
4438
4593
|
"div",
|
|
4439
4594
|
{
|
|
4440
4595
|
onDoubleClick: handleDoubleClick,
|
|
@@ -4449,7 +4604,7 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4449
4604
|
),
|
|
4450
4605
|
style: POSITION_RELATIVE_STYLE,
|
|
4451
4606
|
children: [
|
|
4452
|
-
isEditing ? /* @__PURE__ */
|
|
4607
|
+
isEditing ? /* @__PURE__ */ jsx19(
|
|
4453
4608
|
"textarea",
|
|
4454
4609
|
{
|
|
4455
4610
|
ref: textAreaRef,
|
|
@@ -4465,8 +4620,8 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4465
4620
|
style: TEXTAREA_STYLE,
|
|
4466
4621
|
placeholder: "Enter text..."
|
|
4467
4622
|
}
|
|
4468
|
-
) : /* @__PURE__ */
|
|
4469
|
-
/* @__PURE__ */
|
|
4623
|
+
) : /* @__PURE__ */ jsxs17(Fragment2, { children: [
|
|
4624
|
+
/* @__PURE__ */ jsx19(
|
|
4470
4625
|
"div",
|
|
4471
4626
|
{
|
|
4472
4627
|
ref: displayRef,
|
|
@@ -4476,14 +4631,14 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4476
4631
|
}
|
|
4477
4632
|
}
|
|
4478
4633
|
),
|
|
4479
|
-
isTextOverflowing && /* @__PURE__ */
|
|
4634
|
+
isTextOverflowing && /* @__PURE__ */ jsxs17(
|
|
4480
4635
|
"div",
|
|
4481
4636
|
{
|
|
4482
4637
|
className: "pointer-events-none absolute left-1/2 bottom-full z-[9999] mb-4 hidden w-max max-w-[320px] -translate-x-1/2 rounded-md border bg-slate-950 px-2.5 py-1.5 text-[11px] font-medium leading-snug text-white shadow-lg group-hover:block",
|
|
4483
4638
|
style: { borderColor: colorClasses.tooltipBorderColor },
|
|
4484
4639
|
children: [
|
|
4485
|
-
/* @__PURE__ */
|
|
4486
|
-
/* @__PURE__ */
|
|
4640
|
+
/* @__PURE__ */ jsx19("span", { className: "block whitespace-pre-wrap break-words", children: currentText }),
|
|
4641
|
+
/* @__PURE__ */ jsx19(
|
|
4487
4642
|
"span",
|
|
4488
4643
|
{
|
|
4489
4644
|
className: "absolute left-1/2 top-full h-2 w-2 -translate-x-1/2 -translate-y-1/2 rotate-45 border-b border-r bg-slate-950",
|
|
@@ -4497,7 +4652,7 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4497
4652
|
}
|
|
4498
4653
|
)
|
|
4499
4654
|
] }),
|
|
4500
|
-
currentColorName === "yellow" && /* @__PURE__ */
|
|
4655
|
+
currentColorName === "yellow" && /* @__PURE__ */ jsx19("div", { className: "absolute top-0 right-0 w-4 h-4", children: /* @__PURE__ */ jsx19("div", { className: "absolute top-0 right-0 w-0 h-0 border-l-[16px] border-b-[16px] border-l-transparent border-b-yellow-400/30 rounded-br-lg" }) })
|
|
4501
4656
|
]
|
|
4502
4657
|
}
|
|
4503
4658
|
)
|
|
@@ -4505,12 +4660,12 @@ var NoteNode_default = memo16(function NoteNodeComponent({
|
|
|
4505
4660
|
});
|
|
4506
4661
|
|
|
4507
4662
|
// src/nodes/field/FieldNode.tsx
|
|
4508
|
-
import { memo as
|
|
4663
|
+
import { memo as memo19 } from "react";
|
|
4509
4664
|
import { Database as Database3 } from "lucide-react";
|
|
4510
|
-
import { Handle as
|
|
4511
|
-
import { jsx as
|
|
4665
|
+
import { Handle as Handle14, Position as Position14, useNodeConnections as useNodeConnections11 } from "@xyflow/react";
|
|
4666
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4512
4667
|
function GlowHandle15({ side }) {
|
|
4513
|
-
return /* @__PURE__ */
|
|
4668
|
+
return /* @__PURE__ */ jsx20(
|
|
4514
4669
|
"div",
|
|
4515
4670
|
{
|
|
4516
4671
|
style: {
|
|
@@ -4533,13 +4688,13 @@ function GlowHandle15({ side }) {
|
|
|
4533
4688
|
function classNames13(...classes) {
|
|
4534
4689
|
return classes.filter(Boolean).join(" ");
|
|
4535
4690
|
}
|
|
4536
|
-
var FieldNode_default =
|
|
4691
|
+
var FieldNode_default = memo19(function Field(props) {
|
|
4537
4692
|
const { name, type: fieldType } = props.data;
|
|
4538
4693
|
const mode = props.data.mode || "simple";
|
|
4539
4694
|
const targetConnections = useNodeConnections11({ handleType: "target" });
|
|
4540
4695
|
const sourceConnections = useNodeConnections11({ handleType: "source" });
|
|
4541
4696
|
const isDark = useDarkMode();
|
|
4542
|
-
return /* @__PURE__ */
|
|
4697
|
+
return /* @__PURE__ */ jsxs18(
|
|
4543
4698
|
"div",
|
|
4544
4699
|
{
|
|
4545
4700
|
className: classNames13(
|
|
@@ -4552,29 +4707,29 @@ var FieldNode_default = memo17(function Field(props) {
|
|
|
4552
4707
|
boxShadow: "0 2px 12px rgba(6, 182, 212, 0.15)"
|
|
4553
4708
|
},
|
|
4554
4709
|
children: [
|
|
4555
|
-
/* @__PURE__ */
|
|
4556
|
-
|
|
4710
|
+
/* @__PURE__ */ jsx20(
|
|
4711
|
+
Handle14,
|
|
4557
4712
|
{
|
|
4558
4713
|
type: "target",
|
|
4559
|
-
position:
|
|
4714
|
+
position: Position14.Left,
|
|
4560
4715
|
style: HIDDEN_HANDLE_STYLE
|
|
4561
4716
|
}
|
|
4562
4717
|
),
|
|
4563
|
-
/* @__PURE__ */
|
|
4564
|
-
|
|
4718
|
+
/* @__PURE__ */ jsx20(
|
|
4719
|
+
Handle14,
|
|
4565
4720
|
{
|
|
4566
4721
|
type: "source",
|
|
4567
|
-
position:
|
|
4722
|
+
position: Position14.Right,
|
|
4568
4723
|
style: HIDDEN_HANDLE_STYLE
|
|
4569
4724
|
}
|
|
4570
4725
|
),
|
|
4571
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
4572
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
4573
|
-
/* @__PURE__ */
|
|
4574
|
-
/* @__PURE__ */
|
|
4726
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx20(GlowHandle15, { side: "left" }),
|
|
4727
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx20(GlowHandle15, { side: "right" }),
|
|
4728
|
+
/* @__PURE__ */ jsx20("div", { className: "absolute -top-2.5 left-2.5 z-10", children: /* @__PURE__ */ jsxs18("span", { className: "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm bg-cyan-600", children: [
|
|
4729
|
+
/* @__PURE__ */ jsx20(Database3, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
4575
4730
|
"Field"
|
|
4576
4731
|
] }) }),
|
|
4577
|
-
fieldType && /* @__PURE__ */
|
|
4732
|
+
fieldType && /* @__PURE__ */ jsx20(
|
|
4578
4733
|
"span",
|
|
4579
4734
|
{
|
|
4580
4735
|
className: "z-10 text-[7px] font-semibold text-[rgb(var(--ec-page-text))] bg-[rgb(var(--ec-card-bg))] border border-cyan-500 rounded-full px-1.5 py-0.5 uppercase tracking-wide",
|
|
@@ -4582,9 +4737,9 @@ var FieldNode_default = memo17(function Field(props) {
|
|
|
4582
4737
|
children: fieldType
|
|
4583
4738
|
}
|
|
4584
4739
|
),
|
|
4585
|
-
/* @__PURE__ */
|
|
4586
|
-
/* @__PURE__ */
|
|
4587
|
-
mode === "full" && fieldType && /* @__PURE__ */
|
|
4740
|
+
/* @__PURE__ */ jsxs18("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
4741
|
+
/* @__PURE__ */ jsx20("div", { className: "flex items-baseline gap-1", children: /* @__PURE__ */ jsx20("span", { className: "text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))]", children: name }) }),
|
|
4742
|
+
mode === "full" && fieldType && /* @__PURE__ */ jsxs18(
|
|
4588
4743
|
"div",
|
|
4589
4744
|
{
|
|
4590
4745
|
className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed",
|
|
@@ -4631,8 +4786,8 @@ var config_default5 = {
|
|
|
4631
4786
|
};
|
|
4632
4787
|
|
|
4633
4788
|
// src/nodes/Flow.tsx
|
|
4634
|
-
import { memo as
|
|
4635
|
-
import { Handle as
|
|
4789
|
+
import { memo as memo20, useMemo as useMemo8 } from "react";
|
|
4790
|
+
import { Handle as Handle15 } from "@xyflow/react";
|
|
4636
4791
|
import { Maximize2 } from "lucide-react";
|
|
4637
4792
|
import * as ContextMenu from "@radix-ui/react-context-menu";
|
|
4638
4793
|
|
|
@@ -4641,15 +4796,15 @@ import * as HeroIcons from "@heroicons/react/24/outline";
|
|
|
4641
4796
|
|
|
4642
4797
|
// src/utils/protocols.tsx
|
|
4643
4798
|
import { Server, Radio, Wifi, Network, Globe as Globe4, Cloud } from "lucide-react";
|
|
4644
|
-
import { jsx as
|
|
4799
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4645
4800
|
function AwsEventBridge({ className }) {
|
|
4646
|
-
return /* @__PURE__ */
|
|
4647
|
-
/* @__PURE__ */
|
|
4648
|
-
/* @__PURE__ */
|
|
4649
|
-
/* @__PURE__ */
|
|
4801
|
+
return /* @__PURE__ */ jsxs19("svg", { viewBox: "0 0 40 40", className, children: [
|
|
4802
|
+
/* @__PURE__ */ jsx21("defs", { children: /* @__PURE__ */ jsxs19("linearGradient", { x1: "0%", y1: "100%", x2: "100%", y2: "0%", id: "eb-g", children: [
|
|
4803
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#B0084D", offset: "0%" }),
|
|
4804
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#FF4F8B", offset: "100%" })
|
|
4650
4805
|
] }) }),
|
|
4651
|
-
/* @__PURE__ */
|
|
4652
|
-
/* @__PURE__ */
|
|
4806
|
+
/* @__PURE__ */ jsx21("rect", { width: "40", height: "40", rx: "4", fill: "url(#eb-g)" }),
|
|
4807
|
+
/* @__PURE__ */ jsx21(
|
|
4653
4808
|
"path",
|
|
4654
4809
|
{
|
|
4655
4810
|
fill: "#FFF",
|
|
@@ -4659,13 +4814,13 @@ function AwsEventBridge({ className }) {
|
|
|
4659
4814
|
] });
|
|
4660
4815
|
}
|
|
4661
4816
|
function AwsSqs({ className }) {
|
|
4662
|
-
return /* @__PURE__ */
|
|
4663
|
-
/* @__PURE__ */
|
|
4664
|
-
/* @__PURE__ */
|
|
4665
|
-
/* @__PURE__ */
|
|
4817
|
+
return /* @__PURE__ */ jsxs19("svg", { viewBox: "0 0 40 40", className, children: [
|
|
4818
|
+
/* @__PURE__ */ jsx21("defs", { children: /* @__PURE__ */ jsxs19("linearGradient", { x1: "0%", y1: "100%", x2: "100%", y2: "0%", id: "sqs-g", children: [
|
|
4819
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#B0084D", offset: "0%" }),
|
|
4820
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#FF4F8B", offset: "100%" })
|
|
4666
4821
|
] }) }),
|
|
4667
|
-
/* @__PURE__ */
|
|
4668
|
-
/* @__PURE__ */
|
|
4822
|
+
/* @__PURE__ */ jsx21("rect", { width: "40", height: "40", rx: "4", fill: "url(#sqs-g)" }),
|
|
4823
|
+
/* @__PURE__ */ jsx21(
|
|
4669
4824
|
"path",
|
|
4670
4825
|
{
|
|
4671
4826
|
fill: "#FFF",
|
|
@@ -4675,13 +4830,13 @@ function AwsSqs({ className }) {
|
|
|
4675
4830
|
] });
|
|
4676
4831
|
}
|
|
4677
4832
|
function AwsSns({ className }) {
|
|
4678
|
-
return /* @__PURE__ */
|
|
4679
|
-
/* @__PURE__ */
|
|
4680
|
-
/* @__PURE__ */
|
|
4681
|
-
/* @__PURE__ */
|
|
4833
|
+
return /* @__PURE__ */ jsxs19("svg", { viewBox: "0 0 40 40", className, children: [
|
|
4834
|
+
/* @__PURE__ */ jsx21("defs", { children: /* @__PURE__ */ jsxs19("linearGradient", { x1: "0%", y1: "100%", x2: "100%", y2: "0%", id: "sns-g", children: [
|
|
4835
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#B0084D", offset: "0%" }),
|
|
4836
|
+
/* @__PURE__ */ jsx21("stop", { stopColor: "#FF4F8B", offset: "100%" })
|
|
4682
4837
|
] }) }),
|
|
4683
|
-
/* @__PURE__ */
|
|
4684
|
-
/* @__PURE__ */
|
|
4838
|
+
/* @__PURE__ */ jsx21("rect", { width: "40", height: "40", rx: "4", fill: "url(#sns-g)" }),
|
|
4839
|
+
/* @__PURE__ */ jsx21(
|
|
4685
4840
|
"path",
|
|
4686
4841
|
{
|
|
4687
4842
|
fill: "#FFF",
|
|
@@ -4743,11 +4898,11 @@ function getIcon(iconName) {
|
|
|
4743
4898
|
}
|
|
4744
4899
|
|
|
4745
4900
|
// src/nodes/Flow.tsx
|
|
4746
|
-
import { Fragment as Fragment3, jsx as
|
|
4901
|
+
import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4747
4902
|
function classNames14(...classes) {
|
|
4748
4903
|
return classes.filter(Boolean).join(" ");
|
|
4749
4904
|
}
|
|
4750
|
-
var Flow_default =
|
|
4905
|
+
var Flow_default = memo20(function FlowNode({
|
|
4751
4906
|
data,
|
|
4752
4907
|
sourcePosition,
|
|
4753
4908
|
targetPosition
|
|
@@ -4760,15 +4915,15 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4760
4915
|
const portalContainer = usePortalContainer();
|
|
4761
4916
|
const nodeLabel = label || flow?.data?.sidebar?.badge || "Flow";
|
|
4762
4917
|
const fontSize = nodeLabel.length > 10 ? "7px" : "9px";
|
|
4763
|
-
return /* @__PURE__ */
|
|
4764
|
-
/* @__PURE__ */
|
|
4918
|
+
return /* @__PURE__ */ jsxs20(ContextMenu.Root, { children: [
|
|
4919
|
+
/* @__PURE__ */ jsx22(ContextMenu.Trigger, { children: /* @__PURE__ */ jsxs20(
|
|
4765
4920
|
"div",
|
|
4766
4921
|
{
|
|
4767
4922
|
className: "relative",
|
|
4768
4923
|
style: { isolation: "isolate", ...NODE_WIDTH_STYLE },
|
|
4769
4924
|
children: [
|
|
4770
|
-
canExpand && /* @__PURE__ */
|
|
4771
|
-
/* @__PURE__ */
|
|
4925
|
+
canExpand && /* @__PURE__ */ jsxs20(Fragment3, { children: [
|
|
4926
|
+
/* @__PURE__ */ jsx22(
|
|
4772
4927
|
"div",
|
|
4773
4928
|
{
|
|
4774
4929
|
className: `absolute inset-0 rounded-md border border-${color}-400 bg-[rgb(var(--ec-card-bg))]`,
|
|
@@ -4776,7 +4931,7 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4776
4931
|
"aria-hidden": true
|
|
4777
4932
|
}
|
|
4778
4933
|
),
|
|
4779
|
-
/* @__PURE__ */
|
|
4934
|
+
/* @__PURE__ */ jsx22(
|
|
4780
4935
|
"div",
|
|
4781
4936
|
{
|
|
4782
4937
|
className: `absolute inset-0 rounded-md border border-${color}-400 bg-[rgb(var(--ec-card-bg))]`,
|
|
@@ -4785,7 +4940,7 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4785
4940
|
}
|
|
4786
4941
|
)
|
|
4787
4942
|
] }),
|
|
4788
|
-
/* @__PURE__ */
|
|
4943
|
+
/* @__PURE__ */ jsxs20(
|
|
4789
4944
|
"div",
|
|
4790
4945
|
{
|
|
4791
4946
|
className: classNames14(
|
|
@@ -4793,7 +4948,7 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4793
4948
|
),
|
|
4794
4949
|
style: NODE_WIDTH_STYLE,
|
|
4795
4950
|
children: [
|
|
4796
|
-
/* @__PURE__ */
|
|
4951
|
+
/* @__PURE__ */ jsxs20(
|
|
4797
4952
|
"div",
|
|
4798
4953
|
{
|
|
4799
4954
|
className: classNames14(
|
|
@@ -4801,8 +4956,8 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4801
4956
|
`border-r-[1px] border-${color}-500`
|
|
4802
4957
|
),
|
|
4803
4958
|
children: [
|
|
4804
|
-
Icon && /* @__PURE__ */
|
|
4805
|
-
mode === "full" && /* @__PURE__ */
|
|
4959
|
+
Icon && /* @__PURE__ */ jsx22(Icon, { className: "w-4 h-4 opacity-90 text-white mt-1" }),
|
|
4960
|
+
mode === "full" && /* @__PURE__ */ jsx22(
|
|
4806
4961
|
"span",
|
|
4807
4962
|
{
|
|
4808
4963
|
className: `text-center text-[${fontSize}] text-white font-bold uppercase mb-4`,
|
|
@@ -4813,17 +4968,17 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4813
4968
|
]
|
|
4814
4969
|
}
|
|
4815
4970
|
),
|
|
4816
|
-
/* @__PURE__ */
|
|
4817
|
-
targetPosition && /* @__PURE__ */
|
|
4818
|
-
sourcePosition && /* @__PURE__ */
|
|
4819
|
-
/* @__PURE__ */
|
|
4971
|
+
/* @__PURE__ */ jsxs20("div", { className: "p-1 flex-1 min-w-0", children: [
|
|
4972
|
+
targetPosition && /* @__PURE__ */ jsx22(Handle15, { type: "target", position: targetPosition }),
|
|
4973
|
+
sourcePosition && /* @__PURE__ */ jsx22(Handle15, { type: "source", position: sourcePosition }),
|
|
4974
|
+
/* @__PURE__ */ jsxs20(
|
|
4820
4975
|
"div",
|
|
4821
4976
|
{
|
|
4822
4977
|
className: classNames14(
|
|
4823
4978
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4824
4979
|
),
|
|
4825
4980
|
children: [
|
|
4826
|
-
/* @__PURE__ */
|
|
4981
|
+
/* @__PURE__ */ jsx22(
|
|
4827
4982
|
TruncatedResourceName,
|
|
4828
4983
|
{
|
|
4829
4984
|
as: "div",
|
|
@@ -4833,25 +4988,25 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4833
4988
|
children: name
|
|
4834
4989
|
}
|
|
4835
4990
|
),
|
|
4836
|
-
/* @__PURE__ */
|
|
4837
|
-
/* @__PURE__ */
|
|
4991
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex justify-between", children: [
|
|
4992
|
+
/* @__PURE__ */ jsxs20("span", { className: "text-[10px] font-light block pt-0.5 pb-0.5 ", children: [
|
|
4838
4993
|
"v",
|
|
4839
4994
|
version
|
|
4840
4995
|
] }),
|
|
4841
|
-
mode === "simple" && /* @__PURE__ */
|
|
4996
|
+
mode === "simple" && /* @__PURE__ */ jsx22("span", { className: "text-[10px] text-[rgb(var(--ec-page-text-muted))] font-light block pt-0.5 pb-0.5 ", children: nodeLabel })
|
|
4842
4997
|
] })
|
|
4843
4998
|
]
|
|
4844
4999
|
}
|
|
4845
5000
|
),
|
|
4846
|
-
mode === "full" && /* @__PURE__ */
|
|
4847
|
-
/* @__PURE__ */
|
|
4848
|
-
/* @__PURE__ */
|
|
5001
|
+
mode === "full" && /* @__PURE__ */ jsxs20("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: [
|
|
5002
|
+
/* @__PURE__ */ jsx22("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx22("span", { className: "text-[8px] font-light", children: flow.data.summary }) }),
|
|
5003
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-2 gap-x-4 py-1", children: /* @__PURE__ */ jsxs20("span", { className: "text-xs", style: TINY_FONT_STYLE, children: [
|
|
4849
5004
|
"Owners: ",
|
|
4850
5005
|
owners.length
|
|
4851
5006
|
] }) })
|
|
4852
5007
|
] }),
|
|
4853
|
-
canExpand && /* @__PURE__ */
|
|
4854
|
-
/* @__PURE__ */
|
|
5008
|
+
canExpand && /* @__PURE__ */ jsxs20("div", { className: "mt-1 flex items-center gap-1 text-[8px] text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
5009
|
+
/* @__PURE__ */ jsx22(Maximize2, { className: "w-2.5 h-2.5" }),
|
|
4855
5010
|
"Click to explore"
|
|
4856
5011
|
] })
|
|
4857
5012
|
] })
|
|
@@ -4861,25 +5016,25 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4861
5016
|
]
|
|
4862
5017
|
}
|
|
4863
5018
|
) }),
|
|
4864
|
-
/* @__PURE__ */
|
|
4865
|
-
/* @__PURE__ */
|
|
5019
|
+
/* @__PURE__ */ jsx22(ContextMenu.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs20(ContextMenu.Content, { className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]", children: [
|
|
5020
|
+
/* @__PURE__ */ jsx22(
|
|
4866
5021
|
ContextMenu.Item,
|
|
4867
5022
|
{
|
|
4868
5023
|
asChild: true,
|
|
4869
5024
|
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center",
|
|
4870
|
-
children: /* @__PURE__ */
|
|
5025
|
+
children: /* @__PURE__ */ jsx22("a", { href: buildUrl(`/docs/flows/${id}/${version}`), children: "Read documentation" })
|
|
4871
5026
|
}
|
|
4872
5027
|
),
|
|
4873
|
-
/* @__PURE__ */
|
|
5028
|
+
/* @__PURE__ */ jsx22(
|
|
4874
5029
|
ContextMenu.Item,
|
|
4875
5030
|
{
|
|
4876
5031
|
asChild: true,
|
|
4877
5032
|
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center",
|
|
4878
|
-
children: /* @__PURE__ */
|
|
5033
|
+
children: /* @__PURE__ */ jsx22("a", { href: buildUrl(`/visualiser/flows/${id}/${version}`), children: "View in visualiser" })
|
|
4879
5034
|
}
|
|
4880
5035
|
),
|
|
4881
|
-
/* @__PURE__ */
|
|
4882
|
-
/* @__PURE__ */
|
|
5036
|
+
/* @__PURE__ */ jsx22(ContextMenu.Separator, { className: "h-[1px] bg-[rgb(var(--ec-page-border))] m-1" }),
|
|
5037
|
+
/* @__PURE__ */ jsx22(ContextMenu.Item, { asChild: true, children: /* @__PURE__ */ jsx22(
|
|
4883
5038
|
"a",
|
|
4884
5039
|
{
|
|
4885
5040
|
href: buildUrl(`/docs/flows/${id}/${version}/changelog`),
|
|
@@ -4894,10 +5049,10 @@ var Flow_default = memo18(function FlowNode({
|
|
|
4894
5049
|
});
|
|
4895
5050
|
|
|
4896
5051
|
// src/nodes/FlowExpandedNode.tsx
|
|
4897
|
-
import { memo as
|
|
5052
|
+
import { memo as memo21 } from "react";
|
|
4898
5053
|
import { Workflow, Minimize2 } from "lucide-react";
|
|
4899
|
-
import { jsx as
|
|
4900
|
-
var
|
|
5054
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5055
|
+
var CONTAINER_STYLE2 = {
|
|
4901
5056
|
width: "100%",
|
|
4902
5057
|
height: "100%",
|
|
4903
5058
|
borderRadius: 12,
|
|
@@ -4907,7 +5062,7 @@ var CONTAINER_STYLE = {
|
|
|
4907
5062
|
position: "relative",
|
|
4908
5063
|
overflow: "visible"
|
|
4909
5064
|
};
|
|
4910
|
-
var
|
|
5065
|
+
var HEADER_STYLE2 = {
|
|
4911
5066
|
position: "absolute",
|
|
4912
5067
|
top: 0,
|
|
4913
5068
|
left: 0,
|
|
@@ -4919,7 +5074,7 @@ var HEADER_STYLE = {
|
|
|
4919
5074
|
borderBottom: "1px solid rgba(20, 184, 166, 0.3)",
|
|
4920
5075
|
overflow: "visible"
|
|
4921
5076
|
};
|
|
4922
|
-
var
|
|
5077
|
+
var BADGE_STYLE2 = {
|
|
4923
5078
|
position: "absolute",
|
|
4924
5079
|
top: -10,
|
|
4925
5080
|
left: 12,
|
|
@@ -4953,7 +5108,7 @@ var FLOW_NAME_STYLE = {
|
|
|
4953
5108
|
textTransform: "uppercase",
|
|
4954
5109
|
whiteSpace: "nowrap"
|
|
4955
5110
|
};
|
|
4956
|
-
var
|
|
5111
|
+
var VERSION_STYLE2 = {
|
|
4957
5112
|
fontSize: 10,
|
|
4958
5113
|
fontWeight: 500,
|
|
4959
5114
|
color: "#5eead4",
|
|
@@ -4972,17 +5127,17 @@ var COLLAPSE_BUTTON_STYLE = {
|
|
|
4972
5127
|
fontWeight: 600,
|
|
4973
5128
|
color: "white"
|
|
4974
5129
|
};
|
|
4975
|
-
var FlowExpandedNode_default =
|
|
5130
|
+
var FlowExpandedNode_default = memo21(function FlowExpandedNode({
|
|
4976
5131
|
data
|
|
4977
5132
|
}) {
|
|
4978
5133
|
const { flowName, version } = data;
|
|
4979
|
-
return /* @__PURE__ */
|
|
4980
|
-
/* @__PURE__ */
|
|
4981
|
-
/* @__PURE__ */
|
|
5134
|
+
return /* @__PURE__ */ jsx23("div", { style: CONTAINER_STYLE2, children: /* @__PURE__ */ jsxs21("div", { style: HEADER_STYLE2, children: [
|
|
5135
|
+
/* @__PURE__ */ jsxs21("div", { style: BADGE_STYLE2, children: [
|
|
5136
|
+
/* @__PURE__ */ jsx23(Workflow, { size: 10, strokeWidth: 2.5 }),
|
|
4982
5137
|
"Sub-flow"
|
|
4983
5138
|
] }),
|
|
4984
|
-
/* @__PURE__ */
|
|
4985
|
-
/* @__PURE__ */
|
|
5139
|
+
/* @__PURE__ */ jsxs21("div", { style: HEADER_CONTENT_STYLE, children: [
|
|
5140
|
+
/* @__PURE__ */ jsxs21(
|
|
4986
5141
|
"div",
|
|
4987
5142
|
{
|
|
4988
5143
|
style: {
|
|
@@ -4992,7 +5147,7 @@ var FlowExpandedNode_default = memo19(function FlowExpandedNode({
|
|
|
4992
5147
|
flex: 1
|
|
4993
5148
|
},
|
|
4994
5149
|
children: [
|
|
4995
|
-
/* @__PURE__ */
|
|
5150
|
+
/* @__PURE__ */ jsx23(
|
|
4996
5151
|
TruncatedResourceName,
|
|
4997
5152
|
{
|
|
4998
5153
|
value: flowName || "Flow",
|
|
@@ -5002,21 +5157,21 @@ var FlowExpandedNode_default = memo19(function FlowExpandedNode({
|
|
|
5002
5157
|
children: flowName || "Flow"
|
|
5003
5158
|
}
|
|
5004
5159
|
),
|
|
5005
|
-
version && /* @__PURE__ */
|
|
5160
|
+
version && /* @__PURE__ */ jsxs21("span", { style: VERSION_STYLE2, children: [
|
|
5006
5161
|
"v",
|
|
5007
5162
|
version
|
|
5008
5163
|
] })
|
|
5009
5164
|
]
|
|
5010
5165
|
}
|
|
5011
5166
|
),
|
|
5012
|
-
/* @__PURE__ */
|
|
5167
|
+
/* @__PURE__ */ jsxs21(
|
|
5013
5168
|
"button",
|
|
5014
5169
|
{
|
|
5015
5170
|
style: COLLAPSE_BUTTON_STYLE,
|
|
5016
5171
|
className: "ec-collapse-flow-btn nodrag nopan",
|
|
5017
5172
|
onMouseDown: (e) => e.stopPropagation(),
|
|
5018
5173
|
children: [
|
|
5019
|
-
/* @__PURE__ */
|
|
5174
|
+
/* @__PURE__ */ jsx23(Minimize2, { size: 12, strokeWidth: 2.5 }),
|
|
5020
5175
|
"Collapse"
|
|
5021
5176
|
]
|
|
5022
5177
|
}
|
|
@@ -5026,14 +5181,20 @@ var FlowExpandedNode_default = memo19(function FlowExpandedNode({
|
|
|
5026
5181
|
});
|
|
5027
5182
|
|
|
5028
5183
|
// src/nodes/Entity.tsx
|
|
5029
|
-
import { Handle as
|
|
5184
|
+
import { Handle as Handle16, Position as Position15 } from "@xyflow/react";
|
|
5030
5185
|
import * as ContextMenu2 from "@radix-ui/react-context-menu";
|
|
5031
|
-
import { memo as
|
|
5032
|
-
import { Fragment as Fragment4, jsx as
|
|
5186
|
+
import { memo as memo22, useState as useState4, useMemo as useMemo9 } from "react";
|
|
5187
|
+
import { Fragment as Fragment4, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5033
5188
|
function classNames15(...classes) {
|
|
5034
5189
|
return classes.filter(Boolean).join(" ");
|
|
5035
5190
|
}
|
|
5036
|
-
var
|
|
5191
|
+
var getPropertyTypeLabel = (property) => {
|
|
5192
|
+
if (property.type === "array" && property.items?.type) {
|
|
5193
|
+
return `${property.items.type}[]`;
|
|
5194
|
+
}
|
|
5195
|
+
return property.type;
|
|
5196
|
+
};
|
|
5197
|
+
var Entity_default = memo22(function EntityNode({
|
|
5037
5198
|
data,
|
|
5038
5199
|
sourcePosition,
|
|
5039
5200
|
targetPosition
|
|
@@ -5054,8 +5215,8 @@ var Entity_default = memo20(function EntityNode({
|
|
|
5054
5215
|
const Icon = useMemo9(() => getIcon(icon), [icon]);
|
|
5055
5216
|
const [hoveredProperty, setHoveredProperty] = useState4(null);
|
|
5056
5217
|
const portalContainer = usePortalContainer();
|
|
5057
|
-
return /* @__PURE__ */
|
|
5058
|
-
/* @__PURE__ */
|
|
5218
|
+
return /* @__PURE__ */ jsxs22(ContextMenu2.Root, { children: [
|
|
5219
|
+
/* @__PURE__ */ jsx24(ContextMenu2.Trigger, { children: /* @__PURE__ */ jsxs22(
|
|
5059
5220
|
"div",
|
|
5060
5221
|
{
|
|
5061
5222
|
className: classNames15(
|
|
@@ -5063,7 +5224,7 @@ var Entity_default = memo20(function EntityNode({
|
|
|
5063
5224
|
externalToDomain ? "border-amber-500/60" : "border-blue-400/50"
|
|
5064
5225
|
),
|
|
5065
5226
|
children: [
|
|
5066
|
-
/* @__PURE__ */
|
|
5227
|
+
/* @__PURE__ */ jsxs22(
|
|
5067
5228
|
"div",
|
|
5068
5229
|
{
|
|
5069
5230
|
className: classNames15(
|
|
@@ -5071,9 +5232,9 @@ var Entity_default = memo20(function EntityNode({
|
|
|
5071
5232
|
externalToDomain ? "bg-amber-500/20" : "bg-blue-500/15"
|
|
5072
5233
|
),
|
|
5073
5234
|
children: [
|
|
5074
|
-
/* @__PURE__ */
|
|
5075
|
-
Icon && /* @__PURE__ */
|
|
5076
|
-
/* @__PURE__ */
|
|
5235
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
5236
|
+
Icon && /* @__PURE__ */ jsx24(Icon, { className: "w-4 h-4 text-[rgb(var(--ec-page-text-muted))]" }),
|
|
5237
|
+
/* @__PURE__ */ jsx24(
|
|
5077
5238
|
TruncatedResourceName,
|
|
5078
5239
|
{
|
|
5079
5240
|
value: name,
|
|
@@ -5082,91 +5243,91 @@ var Entity_default = memo20(function EntityNode({
|
|
|
5082
5243
|
children: name
|
|
5083
5244
|
}
|
|
5084
5245
|
),
|
|
5085
|
-
aggregateRoot && /* @__PURE__ */
|
|
5246
|
+
aggregateRoot && /* @__PURE__ */ jsx24("span", { className: "text-xs bg-amber-500/20 text-amber-600 dark:text-amber-400 px-1.5 py-0.5 rounded font-medium shrink-0", children: "AR" })
|
|
5086
5247
|
] }),
|
|
5087
|
-
domainName && /* @__PURE__ */
|
|
5248
|
+
domainName && /* @__PURE__ */ jsxs22("div", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] font-medium mt-1", children: [
|
|
5088
5249
|
"from ",
|
|
5089
5250
|
domainName,
|
|
5090
5251
|
" domain"
|
|
5091
5252
|
] }),
|
|
5092
|
-
mode === "full" && /* @__PURE__ */
|
|
5253
|
+
mode === "full" && /* @__PURE__ */ jsxs22("div", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] mt-1", children: [
|
|
5093
5254
|
"v",
|
|
5094
5255
|
version
|
|
5095
5256
|
] })
|
|
5096
5257
|
]
|
|
5097
5258
|
}
|
|
5098
5259
|
),
|
|
5099
|
-
properties.length > 0 ? /* @__PURE__ */
|
|
5260
|
+
properties.length > 0 ? /* @__PURE__ */ jsx24("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] relative", children: properties.map((property, index) => {
|
|
5100
5261
|
const propertyKey = `${property.name}-${index}`;
|
|
5101
5262
|
const isHovered = hoveredProperty === propertyKey;
|
|
5102
|
-
return /* @__PURE__ */
|
|
5263
|
+
return /* @__PURE__ */ jsxs22(
|
|
5103
5264
|
"div",
|
|
5104
5265
|
{
|
|
5105
5266
|
className: "relative flex items-center justify-between px-4 py-2 hover:bg-[rgb(var(--ec-page-border)/0.2)]",
|
|
5106
5267
|
onMouseEnter: () => property.description && setHoveredProperty(propertyKey),
|
|
5107
5268
|
onMouseLeave: () => setHoveredProperty(null),
|
|
5108
5269
|
children: [
|
|
5109
|
-
/* @__PURE__ */
|
|
5110
|
-
|
|
5270
|
+
/* @__PURE__ */ jsx24(
|
|
5271
|
+
Handle16,
|
|
5111
5272
|
{
|
|
5112
5273
|
type: "target",
|
|
5113
|
-
position:
|
|
5274
|
+
position: Position15.Left,
|
|
5114
5275
|
id: `${property.name}-target`,
|
|
5115
5276
|
className: "!w-3 !h-3 !bg-[rgb(var(--ec-card-bg))] !border-2 !border-[rgb(var(--ec-page-border))] !rounded-full !left-[-0px]",
|
|
5116
5277
|
style: HANDLE_LEFT_OFFSET_STYLE
|
|
5117
5278
|
}
|
|
5118
5279
|
),
|
|
5119
|
-
/* @__PURE__ */
|
|
5120
|
-
|
|
5280
|
+
/* @__PURE__ */ jsx24(
|
|
5281
|
+
Handle16,
|
|
5121
5282
|
{
|
|
5122
5283
|
type: "source",
|
|
5123
|
-
position:
|
|
5284
|
+
position: Position15.Right,
|
|
5124
5285
|
id: `${property.name}-source`,
|
|
5125
5286
|
className: "!w-3 !h-3 !bg-[rgb(var(--ec-card-bg))] !border-2 !border-[rgb(var(--ec-page-border))] !rounded-full !right-[-0px]",
|
|
5126
5287
|
style: HANDLE_RIGHT_OFFSET_STYLE
|
|
5127
5288
|
}
|
|
5128
5289
|
),
|
|
5129
|
-
/* @__PURE__ */
|
|
5130
|
-
/* @__PURE__ */
|
|
5131
|
-
/* @__PURE__ */
|
|
5132
|
-
property.required && /* @__PURE__ */
|
|
5290
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex-1 flex items-center justify-between", children: [
|
|
5291
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-1", children: [
|
|
5292
|
+
/* @__PURE__ */ jsx24("span", { className: "text-sm font-medium text-[rgb(var(--ec-page-text))]", children: property.name }),
|
|
5293
|
+
property.required && /* @__PURE__ */ jsx24("span", { className: "text-red-500 text-xs", children: "*" })
|
|
5133
5294
|
] }),
|
|
5134
|
-
/* @__PURE__ */
|
|
5295
|
+
/* @__PURE__ */ jsx24("span", { className: "text-sm text-[rgb(var(--ec-page-text-muted))] font-mono", children: getPropertyTypeLabel(property) })
|
|
5135
5296
|
] }),
|
|
5136
|
-
property.references && /* @__PURE__ */
|
|
5297
|
+
(property.references || property.type === "array" && property.items?.type) && /* @__PURE__ */ jsx24("div", { className: "absolute right-2 top-1/2 transform -translate-y-1/2", children: /* @__PURE__ */ jsx24(
|
|
5137
5298
|
"div",
|
|
5138
5299
|
{
|
|
5139
5300
|
className: "w-2 h-2 bg-blue-500 rounded-full",
|
|
5140
|
-
title: `References ${property.references}`
|
|
5301
|
+
title: `References ${property.references || property.items.type}`
|
|
5141
5302
|
}
|
|
5142
5303
|
) }),
|
|
5143
|
-
isHovered && property.description && /* @__PURE__ */
|
|
5144
|
-
/* @__PURE__ */
|
|
5145
|
-
/* @__PURE__ */
|
|
5304
|
+
isHovered && property.description && /* @__PURE__ */ jsxs22("div", { className: "absolute left-full ml-2 top-1/2 transform -translate-y-1/2 z-[9999] w-[200px] bg-gray-900 text-white text-xs rounded-lg py-2 px-3 pointer-events-none shadow-xl max-w-xl opacity-100", children: [
|
|
5305
|
+
/* @__PURE__ */ jsx24("div", { className: "text-gray-200 whitespace-normal break-words", children: property.description }),
|
|
5306
|
+
/* @__PURE__ */ jsx24("div", { className: "absolute right-full top-1/2 transform -translate-y-1/2 border-4 border-transparent border-r-gray-900" })
|
|
5146
5307
|
] })
|
|
5147
5308
|
]
|
|
5148
5309
|
},
|
|
5149
5310
|
propertyKey
|
|
5150
5311
|
);
|
|
5151
|
-
}) }) : /* @__PURE__ */
|
|
5152
|
-
properties.length === 0 && /* @__PURE__ */
|
|
5153
|
-
targetPosition && /* @__PURE__ */
|
|
5154
|
-
sourcePosition && /* @__PURE__ */
|
|
5312
|
+
}) }) : /* @__PURE__ */ jsx24("div", { className: "px-4 py-3 text-sm text-[rgb(var(--ec-page-text-muted))] text-center", children: "No properties defined" }),
|
|
5313
|
+
properties.length === 0 && /* @__PURE__ */ jsxs22(Fragment4, { children: [
|
|
5314
|
+
targetPosition && /* @__PURE__ */ jsx24(Handle16, { type: "target", position: targetPosition }),
|
|
5315
|
+
sourcePosition && /* @__PURE__ */ jsx24(Handle16, { type: "source", position: sourcePosition })
|
|
5155
5316
|
] })
|
|
5156
5317
|
]
|
|
5157
5318
|
}
|
|
5158
5319
|
) }),
|
|
5159
|
-
/* @__PURE__ */
|
|
5320
|
+
/* @__PURE__ */ jsx24(ContextMenu2.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx24(
|
|
5160
5321
|
ContextMenu2.Content,
|
|
5161
5322
|
{
|
|
5162
5323
|
className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]",
|
|
5163
5324
|
onClick: (e) => e.stopPropagation(),
|
|
5164
|
-
children: /* @__PURE__ */
|
|
5325
|
+
children: /* @__PURE__ */ jsx24(
|
|
5165
5326
|
ContextMenu2.Item,
|
|
5166
5327
|
{
|
|
5167
5328
|
asChild: true,
|
|
5168
5329
|
className: "text-sm text-[rgb(var(--ec-page-text))] px-2 py-1.5 outline-none cursor-pointer hover:bg-[rgb(var(--ec-accent-subtle))] rounded-sm flex items-center",
|
|
5169
|
-
children: /* @__PURE__ */
|
|
5330
|
+
children: /* @__PURE__ */ jsx24("a", { href: buildUrl(`/docs/entities/${entity.data.id}/${version}`), children: "Read documentation" })
|
|
5170
5331
|
}
|
|
5171
5332
|
)
|
|
5172
5333
|
}
|
|
@@ -5175,14 +5336,14 @@ var Entity_default = memo20(function EntityNode({
|
|
|
5175
5336
|
});
|
|
5176
5337
|
|
|
5177
5338
|
// src/nodes/User.tsx
|
|
5178
|
-
import { memo as
|
|
5339
|
+
import { memo as memo23 } from "react";
|
|
5179
5340
|
import { UserIcon as UserIcon2 } from "@heroicons/react/20/solid";
|
|
5180
|
-
import { Handle as
|
|
5181
|
-
import { jsx as
|
|
5341
|
+
import { Handle as Handle17 } from "@xyflow/react";
|
|
5342
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5182
5343
|
function classNames16(...classes) {
|
|
5183
5344
|
return classes.filter(Boolean).join(" ");
|
|
5184
5345
|
}
|
|
5185
|
-
var User_default =
|
|
5346
|
+
var User_default = memo23(function UserNode({
|
|
5186
5347
|
data,
|
|
5187
5348
|
sourcePosition,
|
|
5188
5349
|
targetPosition
|
|
@@ -5195,7 +5356,7 @@ var User_default = memo21(function UserNode({
|
|
|
5195
5356
|
} = data;
|
|
5196
5357
|
const { summary, actor: { name } = {} } = step;
|
|
5197
5358
|
const displayName = name || step.name || step.title || "Actor";
|
|
5198
|
-
return /* @__PURE__ */
|
|
5359
|
+
return /* @__PURE__ */ jsxs23(
|
|
5199
5360
|
"div",
|
|
5200
5361
|
{
|
|
5201
5362
|
className: classNames16(
|
|
@@ -5204,7 +5365,7 @@ var User_default = memo21(function UserNode({
|
|
|
5204
5365
|
),
|
|
5205
5366
|
style: NODE_WIDTH_STYLE,
|
|
5206
5367
|
children: [
|
|
5207
|
-
/* @__PURE__ */
|
|
5368
|
+
/* @__PURE__ */ jsxs23(
|
|
5208
5369
|
"div",
|
|
5209
5370
|
{
|
|
5210
5371
|
className: classNames16(
|
|
@@ -5212,8 +5373,8 @@ var User_default = memo21(function UserNode({
|
|
|
5212
5373
|
`border-r-[1px] border-yellow-500`
|
|
5213
5374
|
),
|
|
5214
5375
|
children: [
|
|
5215
|
-
/* @__PURE__ */
|
|
5216
|
-
mode === "full" && /* @__PURE__ */
|
|
5376
|
+
/* @__PURE__ */ jsx25(UserIcon2, { className: "w-4 h-4 opacity-90 text-white mt-1" }),
|
|
5377
|
+
mode === "full" && /* @__PURE__ */ jsx25(
|
|
5217
5378
|
"span",
|
|
5218
5379
|
{
|
|
5219
5380
|
className: "text-center text-[9px] text-white font-bold uppercase mb-4",
|
|
@@ -5224,11 +5385,11 @@ var User_default = memo21(function UserNode({
|
|
|
5224
5385
|
]
|
|
5225
5386
|
}
|
|
5226
5387
|
),
|
|
5227
|
-
/* @__PURE__ */
|
|
5228
|
-
targetPosition && /* @__PURE__ */
|
|
5229
|
-
sourcePosition && /* @__PURE__ */
|
|
5230
|
-
(!summary || mode !== "full") && /* @__PURE__ */
|
|
5231
|
-
/* @__PURE__ */
|
|
5388
|
+
/* @__PURE__ */ jsxs23("div", { className: "p-1 flex-1 min-w-0", children: [
|
|
5389
|
+
targetPosition && /* @__PURE__ */ jsx25(Handle17, { type: "target", position: targetPosition }),
|
|
5390
|
+
sourcePosition && /* @__PURE__ */ jsx25(Handle17, { type: "source", position: sourcePosition }),
|
|
5391
|
+
(!summary || mode !== "full") && /* @__PURE__ */ jsxs23("div", { className: "h-full min-w-0", children: [
|
|
5392
|
+
/* @__PURE__ */ jsx25(
|
|
5232
5393
|
TruncatedResourceName,
|
|
5233
5394
|
{
|
|
5234
5395
|
as: "div",
|
|
@@ -5238,16 +5399,16 @@ var User_default = memo21(function UserNode({
|
|
|
5238
5399
|
children: displayName
|
|
5239
5400
|
}
|
|
5240
5401
|
),
|
|
5241
|
-
mode === "simple" && /* @__PURE__ */
|
|
5402
|
+
mode === "simple" && /* @__PURE__ */ jsx25("div", { className: "w-full text-right", children: /* @__PURE__ */ jsx25("span", { className: " w-full text-[10px] text-[rgb(var(--ec-page-text-muted))] font-light block pt-0.5 pb-0.5 ", children: "Event" }) })
|
|
5242
5403
|
] }),
|
|
5243
|
-
summary && mode === "full" && /* @__PURE__ */
|
|
5244
|
-
/* @__PURE__ */
|
|
5404
|
+
summary && mode === "full" && /* @__PURE__ */ jsxs23("div", { children: [
|
|
5405
|
+
/* @__PURE__ */ jsx25(
|
|
5245
5406
|
"div",
|
|
5246
5407
|
{
|
|
5247
5408
|
className: classNames16(
|
|
5248
5409
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
5249
5410
|
),
|
|
5250
|
-
children: /* @__PURE__ */
|
|
5411
|
+
children: /* @__PURE__ */ jsx25(
|
|
5251
5412
|
TruncatedResourceName,
|
|
5252
5413
|
{
|
|
5253
5414
|
as: "div",
|
|
@@ -5259,7 +5420,7 @@ var User_default = memo21(function UserNode({
|
|
|
5259
5420
|
)
|
|
5260
5421
|
}
|
|
5261
5422
|
),
|
|
5262
|
-
mode === "full" && /* @__PURE__ */
|
|
5423
|
+
mode === "full" && /* @__PURE__ */ jsx25("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: /* @__PURE__ */ jsx25("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx25("span", { className: "text-[8px] font-light", children: summary }) }) })
|
|
5263
5424
|
] })
|
|
5264
5425
|
] })
|
|
5265
5426
|
]
|
|
@@ -5268,20 +5429,20 @@ var User_default = memo21(function UserNode({
|
|
|
5268
5429
|
});
|
|
5269
5430
|
|
|
5270
5431
|
// src/nodes/Step.tsx
|
|
5271
|
-
import { memo as
|
|
5272
|
-
import { Handle as
|
|
5273
|
-
import { jsx as
|
|
5432
|
+
import { memo as memo24 } from "react";
|
|
5433
|
+
import { Handle as Handle18, Position as Position16 } from "@xyflow/react";
|
|
5434
|
+
import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5274
5435
|
function classNames17(...classes) {
|
|
5275
5436
|
return classes.filter(Boolean).join(" ");
|
|
5276
5437
|
}
|
|
5277
|
-
var Step_default =
|
|
5438
|
+
var Step_default = memo24(function StepNode({
|
|
5278
5439
|
data,
|
|
5279
5440
|
sourcePosition,
|
|
5280
5441
|
targetPosition
|
|
5281
5442
|
}) {
|
|
5282
5443
|
const { mode, step } = data;
|
|
5283
5444
|
const { title, summary } = step;
|
|
5284
|
-
return /* @__PURE__ */
|
|
5445
|
+
return /* @__PURE__ */ jsxs24(
|
|
5285
5446
|
"div",
|
|
5286
5447
|
{
|
|
5287
5448
|
className: classNames17(
|
|
@@ -5289,14 +5450,14 @@ var Step_default = memo22(function StepNode({
|
|
|
5289
5450
|
),
|
|
5290
5451
|
style: NODE_WIDTH_STYLE,
|
|
5291
5452
|
children: [
|
|
5292
|
-
/* @__PURE__ */
|
|
5453
|
+
/* @__PURE__ */ jsx26(
|
|
5293
5454
|
"div",
|
|
5294
5455
|
{
|
|
5295
5456
|
className: classNames17(
|
|
5296
5457
|
"bg-gradient-to-b from-gray-700 to-gray-700 relative flex flex-col items-center w-5 justify-end rounded-l-sm text-orange-100-500",
|
|
5297
5458
|
`border-r-[1px] border-gray-500`
|
|
5298
5459
|
),
|
|
5299
|
-
children: mode === "full" && /* @__PURE__ */
|
|
5460
|
+
children: mode === "full" && /* @__PURE__ */ jsx26(
|
|
5300
5461
|
"span",
|
|
5301
5462
|
{
|
|
5302
5463
|
className: "text-center text-[9px] text-white font-bold uppercase mb-4",
|
|
@@ -5306,24 +5467,24 @@ var Step_default = memo22(function StepNode({
|
|
|
5306
5467
|
)
|
|
5307
5468
|
}
|
|
5308
5469
|
),
|
|
5309
|
-
/* @__PURE__ */
|
|
5310
|
-
/* @__PURE__ */
|
|
5311
|
-
|
|
5470
|
+
/* @__PURE__ */ jsxs24("div", { className: "p-1 flex-1 min-w-0", children: [
|
|
5471
|
+
/* @__PURE__ */ jsx26(
|
|
5472
|
+
Handle18,
|
|
5312
5473
|
{
|
|
5313
5474
|
type: "target",
|
|
5314
|
-
position: targetPosition ||
|
|
5475
|
+
position: targetPosition || Position16.Left,
|
|
5315
5476
|
style: HIDDEN_HANDLE_STYLE
|
|
5316
5477
|
}
|
|
5317
5478
|
),
|
|
5318
|
-
/* @__PURE__ */
|
|
5319
|
-
|
|
5479
|
+
/* @__PURE__ */ jsx26(
|
|
5480
|
+
Handle18,
|
|
5320
5481
|
{
|
|
5321
5482
|
type: "source",
|
|
5322
|
-
position: sourcePosition ||
|
|
5483
|
+
position: sourcePosition || Position16.Right,
|
|
5323
5484
|
style: HIDDEN_HANDLE_STYLE
|
|
5324
5485
|
}
|
|
5325
5486
|
),
|
|
5326
|
-
!summary && /* @__PURE__ */
|
|
5487
|
+
!summary && /* @__PURE__ */ jsx26("div", { className: "h-full flex items-center min-w-0", children: /* @__PURE__ */ jsx26(
|
|
5327
5488
|
TruncatedResourceName,
|
|
5328
5489
|
{
|
|
5329
5490
|
as: "div",
|
|
@@ -5333,14 +5494,14 @@ var Step_default = memo22(function StepNode({
|
|
|
5333
5494
|
children: title
|
|
5334
5495
|
}
|
|
5335
5496
|
) }),
|
|
5336
|
-
summary && /* @__PURE__ */
|
|
5337
|
-
/* @__PURE__ */
|
|
5497
|
+
summary && /* @__PURE__ */ jsxs24("div", { children: [
|
|
5498
|
+
/* @__PURE__ */ jsx26(
|
|
5338
5499
|
"div",
|
|
5339
5500
|
{
|
|
5340
5501
|
className: classNames17(
|
|
5341
5502
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
5342
5503
|
),
|
|
5343
|
-
children: /* @__PURE__ */
|
|
5504
|
+
children: /* @__PURE__ */ jsx26(
|
|
5344
5505
|
TruncatedResourceName,
|
|
5345
5506
|
{
|
|
5346
5507
|
as: "div",
|
|
@@ -5352,7 +5513,7 @@ var Step_default = memo22(function StepNode({
|
|
|
5352
5513
|
)
|
|
5353
5514
|
}
|
|
5354
5515
|
),
|
|
5355
|
-
mode === "full" && /* @__PURE__ */
|
|
5516
|
+
mode === "full" && /* @__PURE__ */ jsx26("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: /* @__PURE__ */ jsx26("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx26("span", { className: "text-[8px] font-light", children: summary }) }) })
|
|
5356
5517
|
] })
|
|
5357
5518
|
] })
|
|
5358
5519
|
]
|
|
@@ -5362,15 +5523,15 @@ var Step_default = memo22(function StepNode({
|
|
|
5362
5523
|
|
|
5363
5524
|
// src/nodes/Domain.tsx
|
|
5364
5525
|
import {
|
|
5365
|
-
Handle as
|
|
5526
|
+
Handle as Handle19,
|
|
5366
5527
|
useReactFlow,
|
|
5367
5528
|
useOnSelectionChange,
|
|
5368
|
-
Position as
|
|
5529
|
+
Position as Position17
|
|
5369
5530
|
} from "@xyflow/react";
|
|
5370
5531
|
import * as ContextMenu3 from "@radix-ui/react-context-menu";
|
|
5371
|
-
import { memo as
|
|
5372
|
-
import { jsx as
|
|
5373
|
-
var Domain_default =
|
|
5532
|
+
import { memo as memo25, useState as useState5, useCallback as useCallback3, useMemo as useMemo10 } from "react";
|
|
5533
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5534
|
+
var Domain_default = memo25(function DomainNode({ data, id: nodeId }) {
|
|
5374
5535
|
const { mode, domain } = data;
|
|
5375
5536
|
const reactFlow = useReactFlow();
|
|
5376
5537
|
const [highlightedServices, setHighlightedServices] = useState5(
|
|
@@ -5379,7 +5540,7 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5379
5540
|
const { id, version, name, services = [], styles } = domain.data;
|
|
5380
5541
|
const { icon = "RectangleGroupIcon" } = styles || {};
|
|
5381
5542
|
const Icon = useMemo10(() => getIcon(icon), [icon]);
|
|
5382
|
-
const
|
|
5543
|
+
const ServerIcon5 = useMemo10(() => getIcon("ServerIcon"), []);
|
|
5383
5544
|
const portalContainer = usePortalContainer();
|
|
5384
5545
|
const handleSelectionChange = useCallback3(
|
|
5385
5546
|
({ nodes: selectedNodes }) => {
|
|
@@ -5413,59 +5574,59 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5413
5574
|
useOnSelectionChange({
|
|
5414
5575
|
onChange: handleSelectionChange
|
|
5415
5576
|
});
|
|
5416
|
-
return /* @__PURE__ */
|
|
5417
|
-
/* @__PURE__ */
|
|
5418
|
-
/* @__PURE__ */
|
|
5419
|
-
Icon && /* @__PURE__ */
|
|
5420
|
-
/* @__PURE__ */
|
|
5421
|
-
/* @__PURE__ */
|
|
5422
|
-
/* @__PURE__ */
|
|
5577
|
+
return /* @__PURE__ */ jsxs25(ContextMenu3.Root, { children: [
|
|
5578
|
+
/* @__PURE__ */ jsx27(ContextMenu3.Trigger, { children: /* @__PURE__ */ jsxs25("div", { className: "w-full rounded-lg border-2 border-yellow-400 bg-[rgb(var(--ec-card-bg))] shadow-lg", children: [
|
|
5579
|
+
/* @__PURE__ */ jsxs25("div", { className: "bg-[rgb(var(--ec-domain-header-bg,253_224_71)/0.2)] px-3 py-2 flex items-center space-x-2", children: [
|
|
5580
|
+
Icon && /* @__PURE__ */ jsx27(Icon, { className: "w-4 h-4 text-yellow-500" }),
|
|
5581
|
+
/* @__PURE__ */ jsxs25("div", { children: [
|
|
5582
|
+
/* @__PURE__ */ jsx27("span", { className: "text-sm font-bold text-[rgb(var(--ec-page-text))]", children: name }),
|
|
5583
|
+
/* @__PURE__ */ jsxs25("span", { className: "text-xs text-yellow-500 ml-2", children: [
|
|
5423
5584
|
"v",
|
|
5424
5585
|
version
|
|
5425
5586
|
] })
|
|
5426
5587
|
] })
|
|
5427
5588
|
] }),
|
|
5428
|
-
mode === "full" && services.length > 0 && /* @__PURE__ */
|
|
5589
|
+
mode === "full" && services.length > 0 && /* @__PURE__ */ jsx27("div", { children: services.map((service, index) => {
|
|
5429
5590
|
const isHighlighted = highlightedServices.has(service.data.id);
|
|
5430
|
-
return /* @__PURE__ */
|
|
5431
|
-
/* @__PURE__ */
|
|
5591
|
+
return /* @__PURE__ */ jsxs25(ContextMenu3.Root, { children: [
|
|
5592
|
+
/* @__PURE__ */ jsx27(ContextMenu3.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs25(
|
|
5432
5593
|
"div",
|
|
5433
5594
|
{
|
|
5434
5595
|
className: `relative flex items-center justify-between px-3 py-2 cursor-pointer ${index !== services.length - 1 ? "border-b border-[rgb(var(--ec-page-border))]" : ""} ${isHighlighted ? "bg-pink-100 border-pink-300" : ""}`,
|
|
5435
5596
|
children: [
|
|
5436
|
-
/* @__PURE__ */
|
|
5437
|
-
|
|
5597
|
+
/* @__PURE__ */ jsx27(
|
|
5598
|
+
Handle19,
|
|
5438
5599
|
{
|
|
5439
5600
|
type: "target",
|
|
5440
|
-
position:
|
|
5601
|
+
position: Position17.Left,
|
|
5441
5602
|
id: `${service.data.id}-target`,
|
|
5442
5603
|
className: "!left-[-1px] !w-2 !h-2 !bg-gray-400 !border !border-gray-500 !rounded-full !z-10",
|
|
5443
5604
|
style: HANDLE_LEFT_STYLE
|
|
5444
5605
|
}
|
|
5445
5606
|
),
|
|
5446
|
-
/* @__PURE__ */
|
|
5447
|
-
|
|
5607
|
+
/* @__PURE__ */ jsx27(
|
|
5608
|
+
Handle19,
|
|
5448
5609
|
{
|
|
5449
5610
|
type: "source",
|
|
5450
|
-
position:
|
|
5611
|
+
position: Position17.Right,
|
|
5451
5612
|
id: `${service.data.id}-source`,
|
|
5452
5613
|
className: "!right-[-1px] !w-2 !h-2 !bg-gray-400 !border !border-gray-500 !rounded-full !z-10",
|
|
5453
5614
|
style: HANDLE_RIGHT_STYLE
|
|
5454
5615
|
}
|
|
5455
5616
|
),
|
|
5456
|
-
/* @__PURE__ */
|
|
5457
|
-
/* @__PURE__ */
|
|
5458
|
-
/* @__PURE__ */
|
|
5617
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center space-x-3", children: [
|
|
5618
|
+
/* @__PURE__ */ jsx27("div", { className: "flex items-center justify-center w-5 h-5 bg-pink-500 rounded", children: ServerIcon5 && /* @__PURE__ */ jsx27(ServerIcon5, { className: "w-3 h-3 text-white" }) }),
|
|
5619
|
+
/* @__PURE__ */ jsx27("span", { className: "text-sm font-medium text-[rgb(var(--ec-page-text))]", children: service.data.name || service.data.id })
|
|
5459
5620
|
] }),
|
|
5460
|
-
/* @__PURE__ */
|
|
5621
|
+
/* @__PURE__ */ jsx27("div", { className: "flex items-center space-x-4 text-sm text-[rgb(var(--ec-page-text-muted))]", children: /* @__PURE__ */ jsxs25("span", { className: "text-xs", children: [
|
|
5461
5622
|
"v",
|
|
5462
5623
|
service.data.version
|
|
5463
5624
|
] }) })
|
|
5464
5625
|
]
|
|
5465
5626
|
}
|
|
5466
5627
|
) }),
|
|
5467
|
-
/* @__PURE__ */
|
|
5468
|
-
/* @__PURE__ */
|
|
5628
|
+
/* @__PURE__ */ jsx27(ContextMenu3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs25(ContextMenu3.Content, { className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]", children: [
|
|
5629
|
+
/* @__PURE__ */ jsx27(
|
|
5469
5630
|
ContextMenu3.Item,
|
|
5470
5631
|
{
|
|
5471
5632
|
className: "text-sm text-[rgb(var(--ec-page-text))] px-2 py-1.5 outline-none cursor-pointer hover:bg-[rgb(var(--ec-page-border)/0.5)] rounded-sm flex items-center",
|
|
@@ -5475,7 +5636,7 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5475
5636
|
children: "View Service Documentation"
|
|
5476
5637
|
}
|
|
5477
5638
|
),
|
|
5478
|
-
/* @__PURE__ */
|
|
5639
|
+
/* @__PURE__ */ jsx27(
|
|
5479
5640
|
ContextMenu3.Item,
|
|
5480
5641
|
{
|
|
5481
5642
|
className: "text-sm text-[rgb(var(--ec-page-text))] px-2 py-1.5 outline-none cursor-pointer hover:bg-[rgb(var(--ec-page-border)/0.5)] rounded-sm flex items-center",
|
|
@@ -5489,8 +5650,8 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5489
5650
|
] }, `${service.data.id}-${index}`);
|
|
5490
5651
|
}) })
|
|
5491
5652
|
] }) }),
|
|
5492
|
-
/* @__PURE__ */
|
|
5493
|
-
/* @__PURE__ */
|
|
5653
|
+
/* @__PURE__ */ jsx27(ContextMenu3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs25(ContextMenu3.Content, { className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]", children: [
|
|
5654
|
+
/* @__PURE__ */ jsx27(
|
|
5494
5655
|
ContextMenu3.Item,
|
|
5495
5656
|
{
|
|
5496
5657
|
className: "text-sm text-[rgb(var(--ec-page-text))] px-2 py-1.5 outline-none cursor-pointer hover:bg-[rgb(var(--ec-page-border)/0.5)] rounded-sm flex items-center",
|
|
@@ -5500,7 +5661,7 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5500
5661
|
children: "View Domain Documentation"
|
|
5501
5662
|
}
|
|
5502
5663
|
),
|
|
5503
|
-
/* @__PURE__ */
|
|
5664
|
+
/* @__PURE__ */ jsx27(
|
|
5504
5665
|
ContextMenu3.Item,
|
|
5505
5666
|
{
|
|
5506
5667
|
className: "text-sm text-[rgb(var(--ec-page-text))] px-2 py-1.5 outline-none cursor-pointer hover:bg-[rgb(var(--ec-page-border)/0.5)] rounded-sm flex items-center",
|
|
@@ -5514,10 +5675,131 @@ var Domain_default = memo23(function DomainNode({ data, id: nodeId }) {
|
|
|
5514
5675
|
] });
|
|
5515
5676
|
});
|
|
5516
5677
|
|
|
5678
|
+
// src/nodes/System.tsx
|
|
5679
|
+
import { Handle as Handle20, Position as Position18 } from "@xyflow/react";
|
|
5680
|
+
import {
|
|
5681
|
+
Group as GroupIcon2,
|
|
5682
|
+
Server as ServerIcon2,
|
|
5683
|
+
Box as BoxIcon,
|
|
5684
|
+
Database as DatabaseIcon,
|
|
5685
|
+
MessageSquare as MessageSquareIcon
|
|
5686
|
+
} from "lucide-react";
|
|
5687
|
+
import { memo as memo26 } from "react";
|
|
5688
|
+
import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5689
|
+
function classNames18(...classes) {
|
|
5690
|
+
return classes.filter(Boolean).join(" ");
|
|
5691
|
+
}
|
|
5692
|
+
var System_default = memo26(function SystemNode({ data }) {
|
|
5693
|
+
const {
|
|
5694
|
+
system,
|
|
5695
|
+
mode = "simple",
|
|
5696
|
+
servicesCount = 0,
|
|
5697
|
+
entitiesCount = 0,
|
|
5698
|
+
containersCount = 0,
|
|
5699
|
+
messagesCount = 0
|
|
5700
|
+
} = data;
|
|
5701
|
+
const { id, version, name, summary, scope } = system;
|
|
5702
|
+
const isExternal = scope === "external";
|
|
5703
|
+
const isDark = useDarkMode();
|
|
5704
|
+
const stats = [
|
|
5705
|
+
{ icon: ServerIcon2, label: "Services", count: servicesCount },
|
|
5706
|
+
{ icon: MessageSquareIcon, label: "Messages", count: messagesCount },
|
|
5707
|
+
{ icon: BoxIcon, label: "Entities", count: entitiesCount },
|
|
5708
|
+
{ icon: DatabaseIcon, label: "Data Stores", count: containersCount }
|
|
5709
|
+
].filter((stat) => stat.count > 0);
|
|
5710
|
+
const cardBackground = isExternal ? isDark ? "rgba(148,163,184,0.12)" : "rgba(148,163,184,0.1)" : "var(--ec-system-node-bg, rgb(var(--ec-card-bg)))";
|
|
5711
|
+
const goToMap = () => {
|
|
5712
|
+
navigateTo(buildUrl(`/visualiser/systems/${id}/${version}`));
|
|
5713
|
+
};
|
|
5714
|
+
return /* @__PURE__ */ jsxs26(
|
|
5715
|
+
"div",
|
|
5716
|
+
{
|
|
5717
|
+
role: "button",
|
|
5718
|
+
tabIndex: 0,
|
|
5719
|
+
onClick: goToMap,
|
|
5720
|
+
onKeyDown: (e) => {
|
|
5721
|
+
if (e.key === "Enter" || e.key === " ") goToMap();
|
|
5722
|
+
},
|
|
5723
|
+
title: `Open the ${name} map`,
|
|
5724
|
+
className: classNames18(
|
|
5725
|
+
"relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible cursor-pointer",
|
|
5726
|
+
isExternal ? "border-dashed border-violet-400" : "border-violet-500"
|
|
5727
|
+
),
|
|
5728
|
+
style: {
|
|
5729
|
+
background: cardBackground,
|
|
5730
|
+
boxShadow: "0 2px 12px rgba(139, 92, 246, 0.15)"
|
|
5731
|
+
},
|
|
5732
|
+
children: [
|
|
5733
|
+
/* @__PURE__ */ jsx28(
|
|
5734
|
+
Handle20,
|
|
5735
|
+
{
|
|
5736
|
+
type: "target",
|
|
5737
|
+
position: Position18.Left,
|
|
5738
|
+
style: HIDDEN_HANDLE_STYLE
|
|
5739
|
+
}
|
|
5740
|
+
),
|
|
5741
|
+
/* @__PURE__ */ jsx28(
|
|
5742
|
+
Handle20,
|
|
5743
|
+
{
|
|
5744
|
+
type: "source",
|
|
5745
|
+
position: Position18.Right,
|
|
5746
|
+
style: HIDDEN_HANDLE_STYLE
|
|
5747
|
+
}
|
|
5748
|
+
),
|
|
5749
|
+
/* @__PURE__ */ jsx28("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ jsxs26("span", { className: "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm bg-violet-500", children: [
|
|
5750
|
+
/* @__PURE__ */ jsx28(GroupIcon2, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
5751
|
+
isExternal ? "External System" : "System"
|
|
5752
|
+
] }) }),
|
|
5753
|
+
/* @__PURE__ */ jsxs26("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
5754
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-baseline gap-1 min-w-0", children: [
|
|
5755
|
+
/* @__PURE__ */ jsx28(
|
|
5756
|
+
TruncatedResourceName,
|
|
5757
|
+
{
|
|
5758
|
+
value: name,
|
|
5759
|
+
tooltipBorderColor: "#8b5cf6",
|
|
5760
|
+
className: "text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))] truncate",
|
|
5761
|
+
children: name
|
|
5762
|
+
}
|
|
5763
|
+
),
|
|
5764
|
+
version && /* @__PURE__ */ jsxs26("span", { className: "text-[10px] font-normal text-[rgb(var(--ec-page-text-muted))] shrink-0", children: [
|
|
5765
|
+
"(v",
|
|
5766
|
+
version,
|
|
5767
|
+
")"
|
|
5768
|
+
] })
|
|
5769
|
+
] }),
|
|
5770
|
+
mode === "full" && summary && /* @__PURE__ */ jsx28(
|
|
5771
|
+
"div",
|
|
5772
|
+
{
|
|
5773
|
+
className: classNames18(
|
|
5774
|
+
"mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden"
|
|
5775
|
+
),
|
|
5776
|
+
style: LINE_CLAMP_STYLE,
|
|
5777
|
+
title: summary,
|
|
5778
|
+
children: summary
|
|
5779
|
+
}
|
|
5780
|
+
),
|
|
5781
|
+
stats.length > 0 && /* @__PURE__ */ jsx28("div", { className: "mt-2 flex items-center gap-3 border-t border-[rgb(var(--ec-page-border))] pt-1.5", children: stats.map(({ icon: Icon, label, count }) => /* @__PURE__ */ jsxs26(
|
|
5782
|
+
"div",
|
|
5783
|
+
{
|
|
5784
|
+
title: `${count} ${label}`,
|
|
5785
|
+
className: "flex items-center gap-1 text-[10px] text-[rgb(var(--ec-page-text-muted))]",
|
|
5786
|
+
children: [
|
|
5787
|
+
/* @__PURE__ */ jsx28(Icon, { className: "w-3 h-3 text-violet-500", strokeWidth: 2 }),
|
|
5788
|
+
/* @__PURE__ */ jsx28("span", { className: "font-medium", children: count })
|
|
5789
|
+
]
|
|
5790
|
+
},
|
|
5791
|
+
label
|
|
5792
|
+
)) })
|
|
5793
|
+
] })
|
|
5794
|
+
]
|
|
5795
|
+
}
|
|
5796
|
+
);
|
|
5797
|
+
});
|
|
5798
|
+
|
|
5517
5799
|
// src/nodes/GroupNode.tsx
|
|
5518
|
-
import { memo as
|
|
5800
|
+
import { memo as memo27 } from "react";
|
|
5519
5801
|
import { BoxesIcon } from "lucide-react";
|
|
5520
|
-
import { jsx as
|
|
5802
|
+
import { jsx as jsx29, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5521
5803
|
var GROUP_CONTAINER_STYLE = {
|
|
5522
5804
|
width: "100%",
|
|
5523
5805
|
height: "100%",
|
|
@@ -5591,11 +5873,11 @@ var GROUP_VERSION_STYLE = {
|
|
|
5591
5873
|
};
|
|
5592
5874
|
var GROUP_ICON_COLOR_STYLE = { color: "#7c3aed" };
|
|
5593
5875
|
var GROUP_ICON_WHITE_STYLE = { color: "white" };
|
|
5594
|
-
var GroupNode_default =
|
|
5876
|
+
var GroupNode_default = memo27(function GroupNode({ data }) {
|
|
5595
5877
|
const { domain } = data;
|
|
5596
|
-
return /* @__PURE__ */
|
|
5597
|
-
/* @__PURE__ */
|
|
5598
|
-
/* @__PURE__ */
|
|
5878
|
+
return /* @__PURE__ */ jsx29("div", { style: GROUP_CONTAINER_STYLE, children: /* @__PURE__ */ jsxs27("div", { style: GROUP_HEADER_STYLE, children: [
|
|
5879
|
+
/* @__PURE__ */ jsx29("div", { style: GROUP_WATERMARK_STYLE, children: /* @__PURE__ */ jsx29(BoxesIcon, { size: 28, strokeWidth: 2, style: GROUP_ICON_COLOR_STYLE }) }),
|
|
5880
|
+
/* @__PURE__ */ jsx29("div", { style: GROUP_ICON_CIRCLE_STYLE, children: /* @__PURE__ */ jsx29(
|
|
5599
5881
|
BoxesIcon,
|
|
5600
5882
|
{
|
|
5601
5883
|
size: 16,
|
|
@@ -5603,8 +5885,8 @@ var GroupNode_default = memo24(function GroupNode({ data }) {
|
|
|
5603
5885
|
style: GROUP_ICON_WHITE_STYLE
|
|
5604
5886
|
}
|
|
5605
5887
|
) }),
|
|
5606
|
-
/* @__PURE__ */
|
|
5607
|
-
/* @__PURE__ */
|
|
5888
|
+
/* @__PURE__ */ jsx29("div", { style: GROUP_BANNER_CONTENT_STYLE, children: /* @__PURE__ */ jsxs27("div", { style: GROUP_BANNER_INNER_STYLE, children: [
|
|
5889
|
+
/* @__PURE__ */ jsx29(
|
|
5608
5890
|
TruncatedResourceName,
|
|
5609
5891
|
{
|
|
5610
5892
|
value: domain?.name || "Domain",
|
|
@@ -5614,7 +5896,7 @@ var GroupNode_default = memo24(function GroupNode({ data }) {
|
|
|
5614
5896
|
children: domain?.name || "Domain"
|
|
5615
5897
|
}
|
|
5616
5898
|
),
|
|
5617
|
-
domain?.version && /* @__PURE__ */
|
|
5899
|
+
domain?.version && /* @__PURE__ */ jsxs27("span", { style: GROUP_VERSION_STYLE, children: [
|
|
5618
5900
|
"v",
|
|
5619
5901
|
domain.version
|
|
5620
5902
|
] })
|
|
@@ -5623,11 +5905,11 @@ var GroupNode_default = memo24(function GroupNode({ data }) {
|
|
|
5623
5905
|
});
|
|
5624
5906
|
|
|
5625
5907
|
// src/nodes/Custom.tsx
|
|
5626
|
-
import { memo as
|
|
5627
|
-
import { Handle as
|
|
5908
|
+
import { memo as memo28, useMemo as useMemo11 } from "react";
|
|
5909
|
+
import { Handle as Handle21, Position as Position19, useNodeConnections as useNodeConnections12 } from "@xyflow/react";
|
|
5628
5910
|
import * as Icons from "@heroicons/react/24/solid";
|
|
5629
5911
|
import * as ContextMenu4 from "@radix-ui/react-context-menu";
|
|
5630
|
-
import { jsx as
|
|
5912
|
+
import { jsx as jsx30, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5631
5913
|
var PALETTES = {
|
|
5632
5914
|
blue: {
|
|
5633
5915
|
border: "border-blue-500",
|
|
@@ -5758,7 +6040,7 @@ var PALETTES = {
|
|
|
5758
6040
|
pillBorder: "#f43f5e"
|
|
5759
6041
|
}
|
|
5760
6042
|
};
|
|
5761
|
-
function
|
|
6043
|
+
function classNames19(...classes) {
|
|
5762
6044
|
return classes.filter(Boolean).join(" ");
|
|
5763
6045
|
}
|
|
5764
6046
|
function getPalette(color) {
|
|
@@ -5768,7 +6050,7 @@ function GlowHandle16({
|
|
|
5768
6050
|
side,
|
|
5769
6051
|
gradient
|
|
5770
6052
|
}) {
|
|
5771
|
-
return /* @__PURE__ */
|
|
6053
|
+
return /* @__PURE__ */ jsx30(
|
|
5772
6054
|
"div",
|
|
5773
6055
|
{
|
|
5774
6056
|
style: {
|
|
@@ -5788,7 +6070,7 @@ function GlowHandle16({
|
|
|
5788
6070
|
}
|
|
5789
6071
|
);
|
|
5790
6072
|
}
|
|
5791
|
-
var Custom_default =
|
|
6073
|
+
var Custom_default = memo28(function CustomNode({ data, selected }) {
|
|
5792
6074
|
const { mode, custom: customProps, step } = data;
|
|
5793
6075
|
const {
|
|
5794
6076
|
color = "blue",
|
|
@@ -5808,11 +6090,11 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5808
6090
|
const sourceConnections = useNodeConnections12({ handleType: "source" });
|
|
5809
6091
|
const propertyEntries = Object.entries(properties);
|
|
5810
6092
|
const contextMenuItems = url ? [{ label: `Open ${type.toLowerCase()}`, url }, ...menu] : menu;
|
|
5811
|
-
return /* @__PURE__ */
|
|
5812
|
-
/* @__PURE__ */
|
|
6093
|
+
return /* @__PURE__ */ jsxs28(ContextMenu4.Root, { children: [
|
|
6094
|
+
/* @__PURE__ */ jsx30(ContextMenu4.Trigger, { children: /* @__PURE__ */ jsxs28(
|
|
5813
6095
|
"div",
|
|
5814
6096
|
{
|
|
5815
|
-
className:
|
|
6097
|
+
className: classNames19(
|
|
5816
6098
|
"relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
|
|
5817
6099
|
selected ? palette.ring : "",
|
|
5818
6100
|
palette.border
|
|
@@ -5823,39 +6105,39 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5823
6105
|
minHeight: mode === "full" ? `${height}em` : void 0
|
|
5824
6106
|
},
|
|
5825
6107
|
children: [
|
|
5826
|
-
/* @__PURE__ */
|
|
5827
|
-
|
|
6108
|
+
/* @__PURE__ */ jsx30(
|
|
6109
|
+
Handle21,
|
|
5828
6110
|
{
|
|
5829
6111
|
type: "target",
|
|
5830
|
-
position:
|
|
6112
|
+
position: Position19.Left,
|
|
5831
6113
|
style: HIDDEN_HANDLE_STYLE
|
|
5832
6114
|
}
|
|
5833
6115
|
),
|
|
5834
|
-
/* @__PURE__ */
|
|
5835
|
-
|
|
6116
|
+
/* @__PURE__ */ jsx30(
|
|
6117
|
+
Handle21,
|
|
5836
6118
|
{
|
|
5837
6119
|
type: "source",
|
|
5838
|
-
position:
|
|
6120
|
+
position: Position19.Right,
|
|
5839
6121
|
style: HIDDEN_HANDLE_STYLE
|
|
5840
6122
|
}
|
|
5841
6123
|
),
|
|
5842
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
5843
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
5844
|
-
/* @__PURE__ */
|
|
6124
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx30(GlowHandle16, { side: "left", gradient: palette.glow }),
|
|
6125
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx30(GlowHandle16, { side: "right", gradient: palette.glow }),
|
|
6126
|
+
/* @__PURE__ */ jsx30("div", { className: "absolute -top-3 left-2.5 z-10", children: /* @__PURE__ */ jsxs28(
|
|
5845
6127
|
"span",
|
|
5846
6128
|
{
|
|
5847
|
-
className:
|
|
6129
|
+
className: classNames19(
|
|
5848
6130
|
"inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
|
|
5849
6131
|
palette.badge
|
|
5850
6132
|
),
|
|
5851
6133
|
children: [
|
|
5852
|
-
IconComponent && /* @__PURE__ */
|
|
6134
|
+
IconComponent && /* @__PURE__ */ jsx30(IconComponent, { className: "w-2.5 h-2.5", "aria-hidden": true }),
|
|
5853
6135
|
type
|
|
5854
6136
|
]
|
|
5855
6137
|
}
|
|
5856
6138
|
) }),
|
|
5857
|
-
/* @__PURE__ */
|
|
5858
|
-
/* @__PURE__ */
|
|
6139
|
+
/* @__PURE__ */ jsxs28("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
6140
|
+
/* @__PURE__ */ jsx30("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx30(
|
|
5859
6141
|
TruncatedResourceName,
|
|
5860
6142
|
{
|
|
5861
6143
|
value: title,
|
|
@@ -5864,7 +6146,7 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5864
6146
|
children: title
|
|
5865
6147
|
}
|
|
5866
6148
|
) }),
|
|
5867
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
6149
|
+
mode === "full" && summary && /* @__PURE__ */ jsx30(
|
|
5868
6150
|
"div",
|
|
5869
6151
|
{
|
|
5870
6152
|
className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden",
|
|
@@ -5873,9 +6155,9 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5873
6155
|
children: summary
|
|
5874
6156
|
}
|
|
5875
6157
|
),
|
|
5876
|
-
mode === "full" && propertyEntries.length > 0 && /* @__PURE__ */
|
|
5877
|
-
/* @__PURE__ */
|
|
5878
|
-
typeof value === "string" && value.startsWith("http") ? /* @__PURE__ */
|
|
6158
|
+
mode === "full" && propertyEntries.length > 0 && /* @__PURE__ */ jsx30("div", { className: "mt-2 pt-1.5 border-t border-[rgb(var(--ec-page-border))] grid grid-cols-2 gap-x-2 gap-y-1", children: propertyEntries.map(([key, value]) => /* @__PURE__ */ jsxs28("div", { className: "min-w-0", children: [
|
|
6159
|
+
/* @__PURE__ */ jsx30("div", { className: "text-[7px] font-bold uppercase tracking-wide text-[rgb(var(--ec-page-text-muted))] truncate", children: key }),
|
|
6160
|
+
typeof value === "string" && value.startsWith("http") ? /* @__PURE__ */ jsx30(
|
|
5879
6161
|
"a",
|
|
5880
6162
|
{
|
|
5881
6163
|
href: value,
|
|
@@ -5885,7 +6167,7 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5885
6167
|
title: value,
|
|
5886
6168
|
children: value
|
|
5887
6169
|
}
|
|
5888
|
-
) : /* @__PURE__ */
|
|
6170
|
+
) : /* @__PURE__ */ jsx30(
|
|
5889
6171
|
"div",
|
|
5890
6172
|
{
|
|
5891
6173
|
className: "text-[8px] text-[rgb(var(--ec-page-text))] truncate",
|
|
@@ -5898,12 +6180,12 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5898
6180
|
]
|
|
5899
6181
|
}
|
|
5900
6182
|
) }),
|
|
5901
|
-
contextMenuItems.length > 0 && /* @__PURE__ */
|
|
6183
|
+
contextMenuItems.length > 0 && /* @__PURE__ */ jsx30(ContextMenu4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx30(ContextMenu4.Content, { className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]", children: contextMenuItems.map((item) => /* @__PURE__ */ jsx30(
|
|
5902
6184
|
ContextMenu4.Item,
|
|
5903
6185
|
{
|
|
5904
6186
|
asChild: true,
|
|
5905
6187
|
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center",
|
|
5906
|
-
children: /* @__PURE__ */
|
|
6188
|
+
children: /* @__PURE__ */ jsx30(
|
|
5907
6189
|
"a",
|
|
5908
6190
|
{
|
|
5909
6191
|
href: item.url,
|
|
@@ -5920,40 +6202,40 @@ var Custom_default = memo25(function CustomNode({ data, selected }) {
|
|
|
5920
6202
|
});
|
|
5921
6203
|
|
|
5922
6204
|
// src/nodes/ExternalSystem2.tsx
|
|
5923
|
-
import { memo as
|
|
5924
|
-
import { Handle as
|
|
5925
|
-
import { jsx as
|
|
5926
|
-
var ExternalSystem2_default =
|
|
5927
|
-
return /* @__PURE__ */
|
|
5928
|
-
/* @__PURE__ */
|
|
5929
|
-
|
|
6205
|
+
import { memo as memo29 } from "react";
|
|
6206
|
+
import { Handle as Handle22, Position as Position20 } from "@xyflow/react";
|
|
6207
|
+
import { jsx as jsx31, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6208
|
+
var ExternalSystem2_default = memo29(function ExternalSystemNode(props) {
|
|
6209
|
+
return /* @__PURE__ */ jsxs29("div", { className: "relative", children: [
|
|
6210
|
+
/* @__PURE__ */ jsx31(
|
|
6211
|
+
Handle22,
|
|
5930
6212
|
{
|
|
5931
6213
|
type: "target",
|
|
5932
|
-
position:
|
|
6214
|
+
position: Position20.Left,
|
|
5933
6215
|
style: EXTERNAL_SYSTEM_HANDLE_STYLE,
|
|
5934
6216
|
className: "bg-gray-500"
|
|
5935
6217
|
}
|
|
5936
6218
|
),
|
|
5937
|
-
/* @__PURE__ */
|
|
5938
|
-
|
|
6219
|
+
/* @__PURE__ */ jsx31(
|
|
6220
|
+
Handle22,
|
|
5939
6221
|
{
|
|
5940
6222
|
type: "source",
|
|
5941
|
-
position:
|
|
6223
|
+
position: Position20.Right,
|
|
5942
6224
|
style: EXTERNAL_SYSTEM_HANDLE_STYLE,
|
|
5943
6225
|
className: "bg-gray-500"
|
|
5944
6226
|
}
|
|
5945
6227
|
),
|
|
5946
|
-
/* @__PURE__ */
|
|
6228
|
+
/* @__PURE__ */ jsx31(ExternalSystem_default, { ...props })
|
|
5947
6229
|
] });
|
|
5948
6230
|
});
|
|
5949
6231
|
|
|
5950
6232
|
// src/nodes/DataProduct.tsx
|
|
5951
|
-
import { memo as
|
|
6233
|
+
import { memo as memo30 } from "react";
|
|
5952
6234
|
import { Package } from "lucide-react";
|
|
5953
|
-
import { Handle as
|
|
5954
|
-
import { jsx as
|
|
6235
|
+
import { Handle as Handle23, Position as Position21, useNodeConnections as useNodeConnections13 } from "@xyflow/react";
|
|
6236
|
+
import { jsx as jsx32, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5955
6237
|
function GlowHandle17({ side }) {
|
|
5956
|
-
return /* @__PURE__ */
|
|
6238
|
+
return /* @__PURE__ */ jsx32(
|
|
5957
6239
|
"div",
|
|
5958
6240
|
{
|
|
5959
6241
|
style: {
|
|
@@ -5973,39 +6255,39 @@ function GlowHandle17({ side }) {
|
|
|
5973
6255
|
}
|
|
5974
6256
|
);
|
|
5975
6257
|
}
|
|
5976
|
-
function
|
|
6258
|
+
function classNames20(...classes) {
|
|
5977
6259
|
return classes.filter(Boolean).join(" ");
|
|
5978
6260
|
}
|
|
5979
6261
|
function PostItDataProduct(props) {
|
|
5980
6262
|
const { version, name, summary, deprecated, draft, notes, styles } = props.data.dataProduct;
|
|
5981
6263
|
const mode = props.data.mode || "simple";
|
|
5982
6264
|
const customIcon = isIconPath(styles?.icon) ? styles.icon : void 0;
|
|
5983
|
-
return /* @__PURE__ */
|
|
6265
|
+
return /* @__PURE__ */ jsxs30(
|
|
5984
6266
|
"div",
|
|
5985
6267
|
{
|
|
5986
|
-
className:
|
|
6268
|
+
className: classNames20(
|
|
5987
6269
|
"relative min-w-44 max-w-56 min-h-[120px]",
|
|
5988
6270
|
props?.selected ? "ring-2 ring-indigo-400/60 ring-offset-1" : ""
|
|
5989
6271
|
),
|
|
5990
6272
|
children: [
|
|
5991
|
-
/* @__PURE__ */
|
|
5992
|
-
|
|
6273
|
+
/* @__PURE__ */ jsx32(
|
|
6274
|
+
Handle23,
|
|
5993
6275
|
{
|
|
5994
6276
|
type: "target",
|
|
5995
|
-
position:
|
|
6277
|
+
position: Position21.Left,
|
|
5996
6278
|
style: HIDDEN_HANDLE_STYLE
|
|
5997
6279
|
}
|
|
5998
6280
|
),
|
|
5999
|
-
/* @__PURE__ */
|
|
6000
|
-
|
|
6281
|
+
/* @__PURE__ */ jsx32(
|
|
6282
|
+
Handle23,
|
|
6001
6283
|
{
|
|
6002
6284
|
type: "source",
|
|
6003
|
-
position:
|
|
6285
|
+
position: Position21.Right,
|
|
6004
6286
|
style: HIDDEN_HANDLE_STYLE
|
|
6005
6287
|
}
|
|
6006
6288
|
),
|
|
6007
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
6008
|
-
/* @__PURE__ */
|
|
6289
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx32(NotesIndicator, { notes, resourceName: name }),
|
|
6290
|
+
/* @__PURE__ */ jsxs30(
|
|
6009
6291
|
"div",
|
|
6010
6292
|
{
|
|
6011
6293
|
className: "absolute inset-0",
|
|
@@ -6016,8 +6298,8 @@ function PostItDataProduct(props) {
|
|
|
6016
6298
|
border: deprecated ? "2px dashed rgba(239, 68, 68, 0.5)" : draft ? "2px dashed rgba(99, 102, 241, 0.5)" : "none"
|
|
6017
6299
|
},
|
|
6018
6300
|
children: [
|
|
6019
|
-
/* @__PURE__ */
|
|
6020
|
-
/* @__PURE__ */
|
|
6301
|
+
/* @__PURE__ */ jsx32("div", { style: FOLDED_CORNER_SHADOW_STYLE }),
|
|
6302
|
+
/* @__PURE__ */ jsx32(
|
|
6021
6303
|
"div",
|
|
6022
6304
|
{
|
|
6023
6305
|
style: {
|
|
@@ -6036,17 +6318,17 @@ function PostItDataProduct(props) {
|
|
|
6036
6318
|
]
|
|
6037
6319
|
}
|
|
6038
6320
|
),
|
|
6039
|
-
/* @__PURE__ */
|
|
6040
|
-
/* @__PURE__ */
|
|
6041
|
-
/* @__PURE__ */
|
|
6042
|
-
/* @__PURE__ */
|
|
6043
|
-
/* @__PURE__ */
|
|
6321
|
+
/* @__PURE__ */ jsxs30("div", { className: "relative px-3.5 py-3", children: [
|
|
6322
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center justify-between mb-2", children: [
|
|
6323
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1", children: [
|
|
6324
|
+
/* @__PURE__ */ jsx32(Package, { className: "w-3 h-3 text-indigo-900/50", strokeWidth: 2.5 }),
|
|
6325
|
+
/* @__PURE__ */ jsx32("span", { className: "text-[8px] font-bold text-indigo-900/50 uppercase tracking-widest", children: "Data Product" })
|
|
6044
6326
|
] }),
|
|
6045
|
-
draft && /* @__PURE__ */
|
|
6046
|
-
deprecated && /* @__PURE__ */
|
|
6327
|
+
draft && /* @__PURE__ */ jsx32("span", { className: "text-[8px] font-extrabold text-amber-900 bg-amber-100 border border-dashed border-amber-400 px-1.5 py-0.5 rounded uppercase", children: "Draft" }),
|
|
6328
|
+
deprecated && /* @__PURE__ */ jsx32("span", { className: "text-[7px] font-bold text-white bg-red-500 border border-red-600 px-1.5 py-0.5 rounded uppercase", children: "Deprecated" })
|
|
6047
6329
|
] }),
|
|
6048
|
-
/* @__PURE__ */
|
|
6049
|
-
customIcon && /* @__PURE__ */
|
|
6330
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
|
|
6331
|
+
customIcon && /* @__PURE__ */ jsx32(
|
|
6050
6332
|
CustomIcon,
|
|
6051
6333
|
{
|
|
6052
6334
|
src: customIcon,
|
|
@@ -6054,13 +6336,13 @@ function PostItDataProduct(props) {
|
|
|
6054
6336
|
className: mode === "full" ? "w-[26px] h-[26px] shrink-0" : "w-4 h-4 shrink-0 -my-1"
|
|
6055
6337
|
}
|
|
6056
6338
|
),
|
|
6057
|
-
/* @__PURE__ */
|
|
6339
|
+
/* @__PURE__ */ jsx32(
|
|
6058
6340
|
TruncatedResourceName,
|
|
6059
6341
|
{
|
|
6060
6342
|
as: "div",
|
|
6061
6343
|
value: name,
|
|
6062
6344
|
tooltipBorderColor: "#6366f1",
|
|
6063
|
-
className:
|
|
6345
|
+
className: classNames20(
|
|
6064
6346
|
"text-[13px] font-bold leading-snug min-w-0 truncate",
|
|
6065
6347
|
deprecated ? "text-indigo-950/40 line-through" : "text-indigo-950"
|
|
6066
6348
|
),
|
|
@@ -6068,11 +6350,11 @@ function PostItDataProduct(props) {
|
|
|
6068
6350
|
}
|
|
6069
6351
|
)
|
|
6070
6352
|
] }),
|
|
6071
|
-
version && /* @__PURE__ */
|
|
6353
|
+
version && /* @__PURE__ */ jsxs30("div", { className: "text-[9px] text-indigo-900/40 font-semibold mt-0.5", children: [
|
|
6072
6354
|
"v",
|
|
6073
6355
|
version
|
|
6074
6356
|
] }),
|
|
6075
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
6357
|
+
mode === "full" && summary && /* @__PURE__ */ jsx32(
|
|
6076
6358
|
"div",
|
|
6077
6359
|
{
|
|
6078
6360
|
className: "mt-2 pt-1.5 border-t border-indigo-900/10 text-[9px] text-indigo-950/60 leading-relaxed overflow-hidden",
|
|
@@ -6094,10 +6376,10 @@ function DefaultDataProduct(props) {
|
|
|
6094
6376
|
const sourceConnections = useNodeConnections13({ handleType: "source" });
|
|
6095
6377
|
const isDark = useDarkMode();
|
|
6096
6378
|
const deprecatedStripe = isDark ? "rgba(239,68,68,0.25)" : "rgba(239,68,68,0.1)";
|
|
6097
|
-
return /* @__PURE__ */
|
|
6379
|
+
return /* @__PURE__ */ jsxs30(
|
|
6098
6380
|
"div",
|
|
6099
6381
|
{
|
|
6100
|
-
className:
|
|
6382
|
+
className: classNames20(
|
|
6101
6383
|
"relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
|
|
6102
6384
|
props?.selected ? "ring-2 ring-indigo-400/60 ring-offset-2" : "",
|
|
6103
6385
|
deprecated ? "border-dashed border-red-500" : draft ? `border-dashed ${isDark ? "border-indigo-400" : "border-indigo-400/60"}` : "border-indigo-500"
|
|
@@ -6107,43 +6389,43 @@ function DefaultDataProduct(props) {
|
|
|
6107
6389
|
boxShadow: "0 2px 12px rgba(99, 102, 241, 0.15)"
|
|
6108
6390
|
},
|
|
6109
6391
|
children: [
|
|
6110
|
-
/* @__PURE__ */
|
|
6111
|
-
|
|
6392
|
+
/* @__PURE__ */ jsx32(
|
|
6393
|
+
Handle23,
|
|
6112
6394
|
{
|
|
6113
6395
|
type: "target",
|
|
6114
|
-
position:
|
|
6396
|
+
position: Position21.Left,
|
|
6115
6397
|
style: HIDDEN_HANDLE_STYLE
|
|
6116
6398
|
}
|
|
6117
6399
|
),
|
|
6118
|
-
/* @__PURE__ */
|
|
6119
|
-
|
|
6400
|
+
/* @__PURE__ */ jsx32(
|
|
6401
|
+
Handle23,
|
|
6120
6402
|
{
|
|
6121
6403
|
type: "source",
|
|
6122
|
-
position:
|
|
6404
|
+
position: Position21.Right,
|
|
6123
6405
|
style: HIDDEN_HANDLE_STYLE
|
|
6124
6406
|
}
|
|
6125
6407
|
),
|
|
6126
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
6127
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
6128
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
6129
|
-
/* @__PURE__ */
|
|
6408
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx32(NotesIndicator, { notes, resourceName: name }),
|
|
6409
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx32(GlowHandle17, { side: "left" }),
|
|
6410
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx32(GlowHandle17, { side: "right" }),
|
|
6411
|
+
/* @__PURE__ */ jsx32("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ jsxs30(
|
|
6130
6412
|
"span",
|
|
6131
6413
|
{
|
|
6132
|
-
className:
|
|
6414
|
+
className: classNames20(
|
|
6133
6415
|
"inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
|
|
6134
6416
|
deprecated ? "bg-red-500" : "bg-indigo-500"
|
|
6135
6417
|
),
|
|
6136
6418
|
children: [
|
|
6137
|
-
/* @__PURE__ */
|
|
6419
|
+
/* @__PURE__ */ jsx32(Package, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
6138
6420
|
"Data Product",
|
|
6139
6421
|
draft && " (Draft)",
|
|
6140
6422
|
deprecated && " (Deprecated)"
|
|
6141
6423
|
]
|
|
6142
6424
|
}
|
|
6143
6425
|
) }),
|
|
6144
|
-
/* @__PURE__ */
|
|
6145
|
-
/* @__PURE__ */
|
|
6146
|
-
customIcon && /* @__PURE__ */
|
|
6426
|
+
/* @__PURE__ */ jsxs30("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
6427
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
|
|
6428
|
+
customIcon && /* @__PURE__ */ jsx32(
|
|
6147
6429
|
CustomIcon,
|
|
6148
6430
|
{
|
|
6149
6431
|
src: customIcon,
|
|
@@ -6151,8 +6433,8 @@ function DefaultDataProduct(props) {
|
|
|
6151
6433
|
className: mode === "full" ? "w-[26px] h-[26px] shrink-0" : "w-4 h-4 shrink-0 -my-1"
|
|
6152
6434
|
}
|
|
6153
6435
|
),
|
|
6154
|
-
/* @__PURE__ */
|
|
6155
|
-
/* @__PURE__ */
|
|
6436
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-baseline gap-1 min-w-0", children: [
|
|
6437
|
+
/* @__PURE__ */ jsx32(
|
|
6156
6438
|
TruncatedResourceName,
|
|
6157
6439
|
{
|
|
6158
6440
|
value: name,
|
|
@@ -6161,14 +6443,14 @@ function DefaultDataProduct(props) {
|
|
|
6161
6443
|
children: name
|
|
6162
6444
|
}
|
|
6163
6445
|
),
|
|
6164
|
-
version && /* @__PURE__ */
|
|
6446
|
+
version && /* @__PURE__ */ jsxs30("span", { className: "text-[10px] font-normal text-[rgb(var(--ec-page-text-muted))] shrink-0", children: [
|
|
6165
6447
|
"(v",
|
|
6166
6448
|
version,
|
|
6167
6449
|
")"
|
|
6168
6450
|
] })
|
|
6169
6451
|
] })
|
|
6170
6452
|
] }),
|
|
6171
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
6453
|
+
mode === "full" && summary && /* @__PURE__ */ jsx32(
|
|
6172
6454
|
"div",
|
|
6173
6455
|
{
|
|
6174
6456
|
className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden",
|
|
@@ -6182,19 +6464,19 @@ function DefaultDataProduct(props) {
|
|
|
6182
6464
|
}
|
|
6183
6465
|
);
|
|
6184
6466
|
}
|
|
6185
|
-
var DataProduct_default =
|
|
6467
|
+
var DataProduct_default = memo30(function DataProductNode(props) {
|
|
6186
6468
|
const nodeStyle = props?.data?.style;
|
|
6187
6469
|
if (nodeStyle === "post-it") {
|
|
6188
|
-
return /* @__PURE__ */
|
|
6470
|
+
return /* @__PURE__ */ jsx32(PostItDataProduct, { ...props });
|
|
6189
6471
|
}
|
|
6190
|
-
return /* @__PURE__ */
|
|
6472
|
+
return /* @__PURE__ */ jsx32(DefaultDataProduct, { ...props });
|
|
6191
6473
|
});
|
|
6192
6474
|
|
|
6193
6475
|
// src/nodes/message-group/MessageGroupNode.tsx
|
|
6194
|
-
import { memo as
|
|
6476
|
+
import { memo as memo31, useMemo as useMemo12 } from "react";
|
|
6195
6477
|
import { Layers, Zap as Zap3, Terminal, HelpCircle, Maximize2 as Maximize22 } from "lucide-react";
|
|
6196
|
-
import { Handle as
|
|
6197
|
-
import { jsx as
|
|
6478
|
+
import { Handle as Handle24, Position as Position22, useNodeConnections as useNodeConnections14 } from "@xyflow/react";
|
|
6479
|
+
import { jsx as jsx33, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6198
6480
|
var TYPE_ICONS = {
|
|
6199
6481
|
events: Zap3,
|
|
6200
6482
|
commands: Terminal,
|
|
@@ -6206,7 +6488,7 @@ var CARD_STYLE = {
|
|
|
6206
6488
|
background: "var(--ec-message-group-node-bg, rgb(var(--ec-card-bg)))",
|
|
6207
6489
|
pointerEvents: "none"
|
|
6208
6490
|
};
|
|
6209
|
-
var MessageGroupNode_default =
|
|
6491
|
+
var MessageGroupNode_default = memo31(function MessageGroupNode(props) {
|
|
6210
6492
|
const { groupName, messageCount } = props.data;
|
|
6211
6493
|
const isDark = useDarkMode();
|
|
6212
6494
|
const targetConnections = useNodeConnections14({ handleType: "target" });
|
|
@@ -6220,8 +6502,8 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6220
6502
|
});
|
|
6221
6503
|
return counts;
|
|
6222
6504
|
}, [props.data.messages]);
|
|
6223
|
-
return /* @__PURE__ */
|
|
6224
|
-
stackDepth >= 3 && /* @__PURE__ */
|
|
6505
|
+
return /* @__PURE__ */ jsxs31("div", { className: "relative", style: { isolation: "isolate" }, children: [
|
|
6506
|
+
stackDepth >= 3 && /* @__PURE__ */ jsx33(
|
|
6225
6507
|
"div",
|
|
6226
6508
|
{
|
|
6227
6509
|
style: {
|
|
@@ -6233,7 +6515,7 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6233
6515
|
}
|
|
6234
6516
|
}
|
|
6235
6517
|
),
|
|
6236
|
-
stackDepth >= 2 && /* @__PURE__ */
|
|
6518
|
+
stackDepth >= 2 && /* @__PURE__ */ jsx33(
|
|
6237
6519
|
"div",
|
|
6238
6520
|
{
|
|
6239
6521
|
style: {
|
|
@@ -6245,7 +6527,7 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6245
6527
|
}
|
|
6246
6528
|
}
|
|
6247
6529
|
),
|
|
6248
|
-
/* @__PURE__ */
|
|
6530
|
+
/* @__PURE__ */ jsxs31(
|
|
6249
6531
|
"div",
|
|
6250
6532
|
{
|
|
6251
6533
|
className: `relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible ${props.selected ? "ring-2 ring-violet-400/60 ring-offset-2" : ""} border-violet-500`,
|
|
@@ -6254,23 +6536,23 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6254
6536
|
boxShadow: "0 2px 12px rgba(139, 92, 246, 0.15)"
|
|
6255
6537
|
},
|
|
6256
6538
|
children: [
|
|
6257
|
-
/* @__PURE__ */
|
|
6258
|
-
|
|
6539
|
+
/* @__PURE__ */ jsx33(
|
|
6540
|
+
Handle24,
|
|
6259
6541
|
{
|
|
6260
6542
|
type: "target",
|
|
6261
|
-
position:
|
|
6543
|
+
position: Position22.Left,
|
|
6262
6544
|
style: HIDDEN_HANDLE_STYLE
|
|
6263
6545
|
}
|
|
6264
6546
|
),
|
|
6265
|
-
/* @__PURE__ */
|
|
6266
|
-
|
|
6547
|
+
/* @__PURE__ */ jsx33(
|
|
6548
|
+
Handle24,
|
|
6267
6549
|
{
|
|
6268
6550
|
type: "source",
|
|
6269
|
-
position:
|
|
6551
|
+
position: Position22.Right,
|
|
6270
6552
|
style: HIDDEN_HANDLE_STYLE
|
|
6271
6553
|
}
|
|
6272
6554
|
),
|
|
6273
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
6555
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx33(
|
|
6274
6556
|
"div",
|
|
6275
6557
|
{
|
|
6276
6558
|
style: {
|
|
@@ -6289,7 +6571,7 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6289
6571
|
}
|
|
6290
6572
|
}
|
|
6291
6573
|
),
|
|
6292
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
6574
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx33(
|
|
6293
6575
|
"div",
|
|
6294
6576
|
{
|
|
6295
6577
|
style: {
|
|
@@ -6308,12 +6590,12 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6308
6590
|
}
|
|
6309
6591
|
}
|
|
6310
6592
|
),
|
|
6311
|
-
/* @__PURE__ */
|
|
6312
|
-
/* @__PURE__ */
|
|
6593
|
+
/* @__PURE__ */ jsx33("div", { className: "absolute -top-2.5 left-2.5 z-10", children: /* @__PURE__ */ jsxs31("span", { className: "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm bg-violet-600", children: [
|
|
6594
|
+
/* @__PURE__ */ jsx33(Layers, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
6313
6595
|
"Group"
|
|
6314
6596
|
] }) }),
|
|
6315
|
-
/* @__PURE__ */
|
|
6316
|
-
/* @__PURE__ */
|
|
6597
|
+
/* @__PURE__ */ jsxs31("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
6598
|
+
/* @__PURE__ */ jsx33(
|
|
6317
6599
|
TruncatedResourceName,
|
|
6318
6600
|
{
|
|
6319
6601
|
as: "div",
|
|
@@ -6323,8 +6605,8 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6323
6605
|
children: groupName
|
|
6324
6606
|
}
|
|
6325
6607
|
),
|
|
6326
|
-
/* @__PURE__ */
|
|
6327
|
-
/* @__PURE__ */
|
|
6608
|
+
/* @__PURE__ */ jsxs31("div", { className: "mt-1.5 flex items-center gap-2", children: [
|
|
6609
|
+
/* @__PURE__ */ jsxs31(
|
|
6328
6610
|
"span",
|
|
6329
6611
|
{
|
|
6330
6612
|
className: "text-[10px] font-medium px-1.5 py-0.5 rounded",
|
|
@@ -6339,14 +6621,14 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6339
6621
|
]
|
|
6340
6622
|
}
|
|
6341
6623
|
),
|
|
6342
|
-
/* @__PURE__ */
|
|
6624
|
+
/* @__PURE__ */ jsx33("div", { className: "flex items-center gap-1", children: Object.entries(typeBreakdown).map(([type, count]) => {
|
|
6343
6625
|
const Icon = TYPE_ICONS[type] || HelpCircle;
|
|
6344
|
-
return /* @__PURE__ */
|
|
6626
|
+
return /* @__PURE__ */ jsxs31(
|
|
6345
6627
|
"span",
|
|
6346
6628
|
{
|
|
6347
6629
|
className: "flex items-center gap-0.5 text-[9px] text-[rgb(var(--ec-page-text-muted))]",
|
|
6348
6630
|
children: [
|
|
6349
|
-
/* @__PURE__ */
|
|
6631
|
+
/* @__PURE__ */ jsx33(Icon, { className: "w-2.5 h-2.5", strokeWidth: 2 }),
|
|
6350
6632
|
count
|
|
6351
6633
|
]
|
|
6352
6634
|
},
|
|
@@ -6354,8 +6636,8 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6354
6636
|
);
|
|
6355
6637
|
}) })
|
|
6356
6638
|
] }),
|
|
6357
|
-
/* @__PURE__ */
|
|
6358
|
-
/* @__PURE__ */
|
|
6639
|
+
/* @__PURE__ */ jsxs31("div", { className: "mt-1.5 flex items-center gap-1 text-[8px] text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
6640
|
+
/* @__PURE__ */ jsx33(Maximize22, { className: "w-2.5 h-2.5" }),
|
|
6359
6641
|
"Click to explore"
|
|
6360
6642
|
] })
|
|
6361
6643
|
] })
|
|
@@ -6366,10 +6648,10 @@ var MessageGroupNode_default = memo28(function MessageGroupNode(props) {
|
|
|
6366
6648
|
});
|
|
6367
6649
|
|
|
6368
6650
|
// src/nodes/message-group/MessageGroupExpandedNode.tsx
|
|
6369
|
-
import { memo as
|
|
6651
|
+
import { memo as memo32 } from "react";
|
|
6370
6652
|
import { Layers as Layers2, Minimize2 as Minimize22 } from "lucide-react";
|
|
6371
|
-
import { jsx as
|
|
6372
|
-
var
|
|
6653
|
+
import { jsx as jsx34, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6654
|
+
var CONTAINER_STYLE3 = {
|
|
6373
6655
|
width: "100%",
|
|
6374
6656
|
height: "100%",
|
|
6375
6657
|
borderRadius: 12,
|
|
@@ -6378,7 +6660,7 @@ var CONTAINER_STYLE2 = {
|
|
|
6378
6660
|
position: "relative",
|
|
6379
6661
|
overflow: "visible"
|
|
6380
6662
|
};
|
|
6381
|
-
var
|
|
6663
|
+
var HEADER_STYLE3 = {
|
|
6382
6664
|
position: "absolute",
|
|
6383
6665
|
top: 0,
|
|
6384
6666
|
left: 0,
|
|
@@ -6390,7 +6672,7 @@ var HEADER_STYLE2 = {
|
|
|
6390
6672
|
borderBottom: "1px solid rgba(139, 92, 246, 0.3)",
|
|
6391
6673
|
overflow: "visible"
|
|
6392
6674
|
};
|
|
6393
|
-
var
|
|
6675
|
+
var BADGE_STYLE3 = {
|
|
6394
6676
|
position: "absolute",
|
|
6395
6677
|
top: -10,
|
|
6396
6678
|
left: 12,
|
|
@@ -6437,17 +6719,17 @@ var COLLAPSE_BUTTON_STYLE2 = {
|
|
|
6437
6719
|
fontWeight: 600,
|
|
6438
6720
|
color: "white"
|
|
6439
6721
|
};
|
|
6440
|
-
var MessageGroupExpandedNode_default =
|
|
6722
|
+
var MessageGroupExpandedNode_default = memo32(function MessageGroupExpandedNode({
|
|
6441
6723
|
data
|
|
6442
6724
|
}) {
|
|
6443
6725
|
const { groupName, messageCount } = data;
|
|
6444
|
-
return /* @__PURE__ */
|
|
6445
|
-
/* @__PURE__ */
|
|
6446
|
-
/* @__PURE__ */
|
|
6726
|
+
return /* @__PURE__ */ jsx34("div", { style: CONTAINER_STYLE3, children: /* @__PURE__ */ jsxs32("div", { style: HEADER_STYLE3, children: [
|
|
6727
|
+
/* @__PURE__ */ jsxs32("div", { style: BADGE_STYLE3, children: [
|
|
6728
|
+
/* @__PURE__ */ jsx34(Layers2, { size: 10, strokeWidth: 2.5 }),
|
|
6447
6729
|
"Group"
|
|
6448
6730
|
] }),
|
|
6449
|
-
/* @__PURE__ */
|
|
6450
|
-
/* @__PURE__ */
|
|
6731
|
+
/* @__PURE__ */ jsxs32("div", { style: HEADER_CONTENT_STYLE2, children: [
|
|
6732
|
+
/* @__PURE__ */ jsx34(
|
|
6451
6733
|
"div",
|
|
6452
6734
|
{
|
|
6453
6735
|
style: {
|
|
@@ -6456,7 +6738,7 @@ var MessageGroupExpandedNode_default = memo29(function MessageGroupExpandedNode(
|
|
|
6456
6738
|
minWidth: 0,
|
|
6457
6739
|
flex: 1
|
|
6458
6740
|
},
|
|
6459
|
-
children: /* @__PURE__ */
|
|
6741
|
+
children: /* @__PURE__ */ jsx34(
|
|
6460
6742
|
TruncatedResourceName,
|
|
6461
6743
|
{
|
|
6462
6744
|
value: groupName || "Group",
|
|
@@ -6468,14 +6750,14 @@ var MessageGroupExpandedNode_default = memo29(function MessageGroupExpandedNode(
|
|
|
6468
6750
|
)
|
|
6469
6751
|
}
|
|
6470
6752
|
),
|
|
6471
|
-
/* @__PURE__ */
|
|
6753
|
+
/* @__PURE__ */ jsxs32(
|
|
6472
6754
|
"button",
|
|
6473
6755
|
{
|
|
6474
6756
|
style: COLLAPSE_BUTTON_STYLE2,
|
|
6475
6757
|
className: "ec-collapse-group-btn nodrag nopan",
|
|
6476
6758
|
onMouseDown: (e) => e.stopPropagation(),
|
|
6477
6759
|
children: [
|
|
6478
|
-
/* @__PURE__ */
|
|
6760
|
+
/* @__PURE__ */ jsx34(Minimize22, { size: 12, strokeWidth: 2.5 }),
|
|
6479
6761
|
"Collapse"
|
|
6480
6762
|
]
|
|
6481
6763
|
}
|
|
@@ -6485,9 +6767,9 @@ var MessageGroupExpandedNode_default = memo29(function MessageGroupExpandedNode(
|
|
|
6485
6767
|
});
|
|
6486
6768
|
|
|
6487
6769
|
// src/edges/AnimatedMessageEdge.tsx
|
|
6488
|
-
import { memo as
|
|
6770
|
+
import { memo as memo33, useMemo as useMemo13 } from "react";
|
|
6489
6771
|
import { BaseEdge, getSmoothStepPath } from "@xyflow/react";
|
|
6490
|
-
import { Fragment as Fragment5, jsx as
|
|
6772
|
+
import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
6491
6773
|
function messageColor(collection) {
|
|
6492
6774
|
switch (collection) {
|
|
6493
6775
|
case "events":
|
|
@@ -6502,7 +6784,7 @@ function messageColor(collection) {
|
|
|
6502
6784
|
}
|
|
6503
6785
|
var TSPAN_NORMAL_STYLE = { fontStyle: "normal" };
|
|
6504
6786
|
var TSPAN_ITALIC_STYLE = { fontStyle: "italic" };
|
|
6505
|
-
var AnimatedMessageEdge =
|
|
6787
|
+
var AnimatedMessageEdge = memo33(
|
|
6506
6788
|
({
|
|
6507
6789
|
id,
|
|
6508
6790
|
sourceX,
|
|
@@ -6534,12 +6816,12 @@ var AnimatedMessageEdge = memo30(
|
|
|
6534
6816
|
const animatedNodes = useMemo13(
|
|
6535
6817
|
() => customColors.map((color, index) => {
|
|
6536
6818
|
const delay = randomDelay + index * 0.3;
|
|
6537
|
-
return /* @__PURE__ */
|
|
6819
|
+
return /* @__PURE__ */ jsx35(
|
|
6538
6820
|
"g",
|
|
6539
6821
|
{
|
|
6540
6822
|
className: `ec-animated-msg ${opacityClass}`,
|
|
6541
|
-
children: /* @__PURE__ */
|
|
6542
|
-
/* @__PURE__ */
|
|
6823
|
+
children: /* @__PURE__ */ jsxs33("g", { children: [
|
|
6824
|
+
/* @__PURE__ */ jsx35(
|
|
6543
6825
|
"rect",
|
|
6544
6826
|
{
|
|
6545
6827
|
x: "-7",
|
|
@@ -6551,7 +6833,7 @@ var AnimatedMessageEdge = memo30(
|
|
|
6551
6833
|
fill: color
|
|
6552
6834
|
}
|
|
6553
6835
|
),
|
|
6554
|
-
/* @__PURE__ */
|
|
6836
|
+
/* @__PURE__ */ jsx35(
|
|
6555
6837
|
"path",
|
|
6556
6838
|
{
|
|
6557
6839
|
d: "M-7,-5 L0,1 L7,-5",
|
|
@@ -6561,7 +6843,7 @@ var AnimatedMessageEdge = memo30(
|
|
|
6561
6843
|
strokeLinejoin: "round"
|
|
6562
6844
|
}
|
|
6563
6845
|
),
|
|
6564
|
-
/* @__PURE__ */
|
|
6846
|
+
/* @__PURE__ */ jsx35(
|
|
6565
6847
|
"animateMotion",
|
|
6566
6848
|
{
|
|
6567
6849
|
dur: "2s",
|
|
@@ -6569,7 +6851,7 @@ var AnimatedMessageEdge = memo30(
|
|
|
6569
6851
|
path: edgePath,
|
|
6570
6852
|
rotate: "auto",
|
|
6571
6853
|
begin: `${delay}s`,
|
|
6572
|
-
children: /* @__PURE__ */
|
|
6854
|
+
children: /* @__PURE__ */ jsx35("mpath", { href: `#${id}` })
|
|
6573
6855
|
}
|
|
6574
6856
|
)
|
|
6575
6857
|
] })
|
|
@@ -6591,8 +6873,8 @@ var AnimatedMessageEdge = memo30(
|
|
|
6591
6873
|
);
|
|
6592
6874
|
const labelWidth = Math.max(longestLine.length * 6.5 + 16, 50);
|
|
6593
6875
|
const firstLineDy = `${-((lines.length - 1) * 1.2) / 2}em`;
|
|
6594
|
-
return /* @__PURE__ */
|
|
6595
|
-
/* @__PURE__ */
|
|
6876
|
+
return /* @__PURE__ */ jsxs33(Fragment5, { children: [
|
|
6877
|
+
/* @__PURE__ */ jsx35(
|
|
6596
6878
|
BaseEdge,
|
|
6597
6879
|
{
|
|
6598
6880
|
id,
|
|
@@ -6603,8 +6885,8 @@ var AnimatedMessageEdge = memo30(
|
|
|
6603
6885
|
}
|
|
6604
6886
|
),
|
|
6605
6887
|
animatedNodes,
|
|
6606
|
-
/* @__PURE__ */
|
|
6607
|
-
label && /* @__PURE__ */
|
|
6888
|
+
/* @__PURE__ */ jsxs33("g", { children: [
|
|
6889
|
+
label && /* @__PURE__ */ jsx35(
|
|
6608
6890
|
"rect",
|
|
6609
6891
|
{
|
|
6610
6892
|
x: labelX - labelWidth / 2,
|
|
@@ -6619,7 +6901,7 @@ var AnimatedMessageEdge = memo30(
|
|
|
6619
6901
|
ry: 5
|
|
6620
6902
|
}
|
|
6621
6903
|
),
|
|
6622
|
-
/* @__PURE__ */
|
|
6904
|
+
/* @__PURE__ */ jsx35(
|
|
6623
6905
|
"text",
|
|
6624
6906
|
{
|
|
6625
6907
|
x: labelX,
|
|
@@ -6630,7 +6912,7 @@ var AnimatedMessageEdge = memo30(
|
|
|
6630
6912
|
fontWeight: 500,
|
|
6631
6913
|
fill: "rgb(var(--ec-page-text))",
|
|
6632
6914
|
pointerEvents: "none",
|
|
6633
|
-
children: lines.map((line, i) => /* @__PURE__ */
|
|
6915
|
+
children: lines.map((line, i) => /* @__PURE__ */ jsx35(
|
|
6634
6916
|
"tspan",
|
|
6635
6917
|
{
|
|
6636
6918
|
x: labelX,
|
|
@@ -6649,12 +6931,12 @@ var AnimatedMessageEdge = memo30(
|
|
|
6649
6931
|
var AnimatedMessageEdge_default = AnimatedMessageEdge;
|
|
6650
6932
|
|
|
6651
6933
|
// src/edges/MultilineEdgeLabel.tsx
|
|
6652
|
-
import { memo as
|
|
6934
|
+
import { memo as memo34, useMemo as useMemo14 } from "react";
|
|
6653
6935
|
import { getSmoothStepPath as getSmoothStepPath2 } from "@xyflow/react";
|
|
6654
|
-
import { Fragment as Fragment6, jsx as
|
|
6936
|
+
import { Fragment as Fragment6, jsx as jsx36, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6655
6937
|
var TSPAN_NORMAL_STYLE2 = { fontStyle: "normal" };
|
|
6656
6938
|
var TSPAN_ITALIC_STYLE2 = { fontStyle: "italic" };
|
|
6657
|
-
var MultilineEdgeLabel_default =
|
|
6939
|
+
var MultilineEdgeLabel_default = memo34(function MultilineEdgeLabel(props) {
|
|
6658
6940
|
const {
|
|
6659
6941
|
id,
|
|
6660
6942
|
sourceX,
|
|
@@ -6689,8 +6971,8 @@ var MultilineEdgeLabel_default = memo31(function MultilineEdgeLabel(props) {
|
|
|
6689
6971
|
);
|
|
6690
6972
|
const labelWidth = Math.max(longestLine.length * 5.5 + 14, 44);
|
|
6691
6973
|
const labelHeight = lines.length * 12 + 4;
|
|
6692
|
-
return /* @__PURE__ */
|
|
6693
|
-
/* @__PURE__ */
|
|
6974
|
+
return /* @__PURE__ */ jsxs34(Fragment6, { children: [
|
|
6975
|
+
/* @__PURE__ */ jsx36(
|
|
6694
6976
|
"path",
|
|
6695
6977
|
{
|
|
6696
6978
|
id,
|
|
@@ -6701,7 +6983,7 @@ var MultilineEdgeLabel_default = memo31(function MultilineEdgeLabel(props) {
|
|
|
6701
6983
|
style
|
|
6702
6984
|
}
|
|
6703
6985
|
),
|
|
6704
|
-
label && /* @__PURE__ */
|
|
6986
|
+
label && /* @__PURE__ */ jsx36(
|
|
6705
6987
|
"rect",
|
|
6706
6988
|
{
|
|
6707
6989
|
x: labelX - labelWidth / 2,
|
|
@@ -6717,7 +6999,7 @@ var MultilineEdgeLabel_default = memo31(function MultilineEdgeLabel(props) {
|
|
|
6717
6999
|
pointerEvents: "none"
|
|
6718
7000
|
}
|
|
6719
7001
|
),
|
|
6720
|
-
/* @__PURE__ */
|
|
7002
|
+
/* @__PURE__ */ jsx36(
|
|
6721
7003
|
"text",
|
|
6722
7004
|
{
|
|
6723
7005
|
x: labelX,
|
|
@@ -6727,7 +7009,7 @@ var MultilineEdgeLabel_default = memo31(function MultilineEdgeLabel(props) {
|
|
|
6727
7009
|
fontSize: "10px",
|
|
6728
7010
|
fill: "rgb(var(--ec-page-text))",
|
|
6729
7011
|
pointerEvents: "none",
|
|
6730
|
-
children: lines.map((line, i) => /* @__PURE__ */
|
|
7012
|
+
children: lines.map((line, i) => /* @__PURE__ */ jsx36(
|
|
6731
7013
|
"tspan",
|
|
6732
7014
|
{
|
|
6733
7015
|
x: labelX,
|
|
@@ -6743,13 +7025,13 @@ var MultilineEdgeLabel_default = memo31(function MultilineEdgeLabel(props) {
|
|
|
6743
7025
|
});
|
|
6744
7026
|
|
|
6745
7027
|
// src/edges/FlowEdge.tsx
|
|
6746
|
-
import { memo as
|
|
7028
|
+
import { memo as memo35, useMemo as useMemo15 } from "react";
|
|
6747
7029
|
import {
|
|
6748
7030
|
BaseEdge as BaseEdge2,
|
|
6749
7031
|
EdgeLabelRenderer,
|
|
6750
7032
|
getSmoothStepPath as getSmoothStepPath3
|
|
6751
7033
|
} from "@xyflow/react";
|
|
6752
|
-
import { Fragment as Fragment7, jsx as
|
|
7034
|
+
import { Fragment as Fragment7, jsx as jsx37, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
6753
7035
|
function messageColor2(collection) {
|
|
6754
7036
|
switch (collection) {
|
|
6755
7037
|
case "events":
|
|
@@ -6763,7 +7045,7 @@ function messageColor2(collection) {
|
|
|
6763
7045
|
}
|
|
6764
7046
|
}
|
|
6765
7047
|
var EMPTY_STYLE = {};
|
|
6766
|
-
var FlowEdge_default =
|
|
7048
|
+
var FlowEdge_default = memo35(function CustomEdge({
|
|
6767
7049
|
id,
|
|
6768
7050
|
sourceX,
|
|
6769
7051
|
sourceY,
|
|
@@ -6801,20 +7083,20 @@ var FlowEdge_default = memo32(function CustomEdge({
|
|
|
6801
7083
|
}),
|
|
6802
7084
|
[labelX, labelY, labelStyle]
|
|
6803
7085
|
);
|
|
6804
|
-
return /* @__PURE__ */
|
|
6805
|
-
/* @__PURE__ */
|
|
6806
|
-
data?.animated && /* @__PURE__ */
|
|
7086
|
+
return /* @__PURE__ */ jsxs35(Fragment7, { children: [
|
|
7087
|
+
/* @__PURE__ */ jsx37(BaseEdge2, { path: edgePath, markerEnd, style: mergedStyle }),
|
|
7088
|
+
data?.animated && /* @__PURE__ */ jsx37(
|
|
6807
7089
|
"g",
|
|
6808
7090
|
{
|
|
6809
7091
|
className: `ec-animated-msg z-30 ${opacity === 1 ? "opacity-100" : "opacity-10"}`,
|
|
6810
|
-
children: /* @__PURE__ */
|
|
7092
|
+
children: /* @__PURE__ */ jsx37(
|
|
6811
7093
|
"circle",
|
|
6812
7094
|
{
|
|
6813
7095
|
cx: "0",
|
|
6814
7096
|
cy: "0",
|
|
6815
7097
|
r: "7",
|
|
6816
7098
|
fill: messageColor2(collection || "default"),
|
|
6817
|
-
children: /* @__PURE__ */
|
|
7099
|
+
children: /* @__PURE__ */ jsx37(
|
|
6818
7100
|
"animateMotion",
|
|
6819
7101
|
{
|
|
6820
7102
|
dur: "2s",
|
|
@@ -6822,14 +7104,14 @@ var FlowEdge_default = memo32(function CustomEdge({
|
|
|
6822
7104
|
path: edgePath,
|
|
6823
7105
|
rotate: "auto",
|
|
6824
7106
|
begin: `${randomDelay}s`,
|
|
6825
|
-
children: /* @__PURE__ */
|
|
7107
|
+
children: /* @__PURE__ */ jsx37("mpath", { href: `#${id}` })
|
|
6826
7108
|
}
|
|
6827
7109
|
)
|
|
6828
7110
|
}
|
|
6829
7111
|
)
|
|
6830
7112
|
}
|
|
6831
7113
|
),
|
|
6832
|
-
label && /* @__PURE__ */
|
|
7114
|
+
label && /* @__PURE__ */ jsx37(EdgeLabelRenderer, { children: /* @__PURE__ */ jsx37(
|
|
6833
7115
|
"div",
|
|
6834
7116
|
{
|
|
6835
7117
|
style: labelPositionStyle,
|
|
@@ -6848,23 +7130,24 @@ import {
|
|
|
6848
7130
|
useEffect as useEffect3,
|
|
6849
7131
|
forwardRef,
|
|
6850
7132
|
useImperativeHandle,
|
|
6851
|
-
memo as
|
|
7133
|
+
memo as memo36
|
|
6852
7134
|
} from "react";
|
|
6853
7135
|
import {
|
|
6854
7136
|
Blocks,
|
|
6855
7137
|
Bot as Bot2,
|
|
6856
7138
|
Database as Database5,
|
|
7139
|
+
Group,
|
|
6857
7140
|
Layers as Layers3,
|
|
6858
7141
|
ListTree,
|
|
6859
7142
|
MessageSquare as MessageSquare2,
|
|
6860
7143
|
Search as SearchIcon,
|
|
6861
7144
|
Server as Server2,
|
|
6862
|
-
User as
|
|
7145
|
+
User as User4,
|
|
6863
7146
|
Workflow as Workflow2,
|
|
6864
7147
|
Wrench as Wrench2,
|
|
6865
7148
|
Zap as Zap4
|
|
6866
7149
|
} from "lucide-react";
|
|
6867
|
-
import { jsx as
|
|
7150
|
+
import { jsx as jsx38, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
6868
7151
|
var formatVersionedName = (name, version) => {
|
|
6869
7152
|
if (version) {
|
|
6870
7153
|
const nameWithoutVersion = name.replace(
|
|
@@ -6922,7 +7205,7 @@ var getNodeResourceData = (data, key) => {
|
|
|
6922
7205
|
if (!resource || typeof resource !== "object") return void 0;
|
|
6923
7206
|
return "data" in resource && resource.data ? resource.data : resource;
|
|
6924
7207
|
};
|
|
6925
|
-
var VisualiserSearch =
|
|
7208
|
+
var VisualiserSearch = memo36(
|
|
6926
7209
|
forwardRef(
|
|
6927
7210
|
({ nodes, onNodeSelect, onClear, onPaneClick: _onPaneClick }, ref) => {
|
|
6928
7211
|
const [searchQuery, setSearchQuery] = useState6("");
|
|
@@ -6956,12 +7239,13 @@ var VisualiserSearch = memo33(
|
|
|
6956
7239
|
const agentTool = getNodeResourceData(node.data, "agentTool");
|
|
6957
7240
|
const service = getNodeResourceData(node.data, "service");
|
|
6958
7241
|
const domain = getNodeResourceData(node.data, "domain");
|
|
7242
|
+
const system = getNodeResourceData(node.data, "system");
|
|
6959
7243
|
const entity = getNodeResourceData(node.data, "entity");
|
|
6960
7244
|
const channel = getNodeResourceData(node.data, "channel");
|
|
6961
7245
|
const dataProduct = getNodeResourceData(node.data, "dataProduct");
|
|
6962
7246
|
const data = getNodeResourceData(node.data, "data");
|
|
6963
|
-
const name = message?.name || message?.id || agent?.name || agent?.id || agentTool?.name || agentTool?.id || service?.name || service?.id || domain?.name || domain?.id || entity?.name || entity?.id || channel?.name || channel?.id || dataProduct?.name || dataProduct?.id || data?.name || data?.id || node.data?.name || node.id;
|
|
6964
|
-
const version = message?.version || agent?.version || agentTool?.version || service?.version || domain?.version || entity?.version || channel?.version || dataProduct?.version || data?.version || node.data?.version;
|
|
7247
|
+
const name = message?.name || message?.id || agent?.name || agent?.id || agentTool?.name || agentTool?.id || service?.name || service?.id || domain?.name || domain?.id || system?.name || system?.id || entity?.name || entity?.id || channel?.name || channel?.id || dataProduct?.name || dataProduct?.id || data?.name || data?.id || node.data?.name || node.id;
|
|
7248
|
+
const version = message?.version || agent?.version || agentTool?.version || service?.version || domain?.version || system?.version || entity?.version || channel?.version || dataProduct?.version || data?.version || node.data?.version;
|
|
6965
7249
|
return formatVersionedName(name, version);
|
|
6966
7250
|
}, []);
|
|
6967
7251
|
const getNodeResourceKey = useCallback4(
|
|
@@ -6970,7 +7254,7 @@ var VisualiserSearch = memo33(
|
|
|
6970
7254
|
return `${node.type}:${node.id}`.toLowerCase();
|
|
6971
7255
|
}
|
|
6972
7256
|
const data = node.data;
|
|
6973
|
-
const resource = getNodeResourceData(data, "message") || getNodeResourceData(data, "agent") || getNodeResourceData(data, "agentTool") || getNodeResourceData(data, "service") || getNodeResourceData(data, "domain") || getNodeResourceData(data, "entity") || getNodeResourceData(data, "channel") || getNodeResourceData(data, "dataProduct") || data?.data || data;
|
|
7257
|
+
const resource = getNodeResourceData(data, "message") || getNodeResourceData(data, "agent") || getNodeResourceData(data, "agentTool") || getNodeResourceData(data, "service") || getNodeResourceData(data, "domain") || getNodeResourceData(data, "system") || getNodeResourceData(data, "entity") || getNodeResourceData(data, "channel") || getNodeResourceData(data, "dataProduct") || data?.data || data;
|
|
6974
7258
|
return getResourceKey({
|
|
6975
7259
|
type: node.type || "unknown",
|
|
6976
7260
|
id: resource?.id,
|
|
@@ -7007,6 +7291,7 @@ var VisualiserSearch = memo33(
|
|
|
7007
7291
|
const getSearchSuggestions = useCallback4(
|
|
7008
7292
|
(nodesToIndex) => {
|
|
7009
7293
|
const suggestions = nodesToIndex.flatMap((node) => {
|
|
7294
|
+
if (node.type === "system-group") return [];
|
|
7010
7295
|
const nodeName = getNodeDisplayName(node);
|
|
7011
7296
|
const suggestions2 = [
|
|
7012
7297
|
{
|
|
@@ -7123,6 +7408,12 @@ var VisualiserSearch = memo33(
|
|
|
7123
7408
|
iconClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
|
|
7124
7409
|
badgeClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"
|
|
7125
7410
|
},
|
|
7411
|
+
systems: {
|
|
7412
|
+
label: "System",
|
|
7413
|
+
Icon: Group,
|
|
7414
|
+
iconClass: "border-violet-500/25 bg-violet-500/10 text-violet-500",
|
|
7415
|
+
badgeClass: "border-violet-500/25 bg-violet-500/10 text-violet-700 dark:text-violet-300"
|
|
7416
|
+
},
|
|
7126
7417
|
flows: {
|
|
7127
7418
|
label: "Flow",
|
|
7128
7419
|
Icon: Workflow2,
|
|
@@ -7155,13 +7446,19 @@ var VisualiserSearch = memo33(
|
|
|
7155
7446
|
},
|
|
7156
7447
|
actor: {
|
|
7157
7448
|
label: "Actor",
|
|
7158
|
-
Icon:
|
|
7449
|
+
Icon: User4,
|
|
7450
|
+
iconClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
|
|
7451
|
+
badgeClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"
|
|
7452
|
+
},
|
|
7453
|
+
"context-actor": {
|
|
7454
|
+
label: "Actor",
|
|
7455
|
+
Icon: User4,
|
|
7159
7456
|
iconClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
|
|
7160
7457
|
badgeClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"
|
|
7161
7458
|
},
|
|
7162
7459
|
user: {
|
|
7163
7460
|
label: "User",
|
|
7164
|
-
Icon:
|
|
7461
|
+
Icon: User4,
|
|
7165
7462
|
iconClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
|
|
7166
7463
|
badgeClass: "border-yellow-500/25 bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"
|
|
7167
7464
|
},
|
|
@@ -7313,9 +7610,9 @@ var VisualiserSearch = memo33(
|
|
|
7313
7610
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
7314
7611
|
};
|
|
7315
7612
|
}, []);
|
|
7316
|
-
return /* @__PURE__ */
|
|
7317
|
-
/* @__PURE__ */
|
|
7318
|
-
/* @__PURE__ */
|
|
7613
|
+
return /* @__PURE__ */ jsxs36("div", { ref: containerRef, className: "w-full max-w-md mx-auto relative", children: [
|
|
7614
|
+
/* @__PURE__ */ jsxs36("div", { className: "relative", children: [
|
|
7615
|
+
/* @__PURE__ */ jsx38(
|
|
7319
7616
|
"input",
|
|
7320
7617
|
{
|
|
7321
7618
|
ref: searchInputRef,
|
|
@@ -7328,20 +7625,20 @@ var VisualiserSearch = memo33(
|
|
|
7328
7625
|
className: "w-full px-4 py-2 pr-10 bg-[rgb(var(--ec-input-bg))] border border-[rgb(var(--ec-input-border))] text-[rgb(var(--ec-input-text))] placeholder:text-[rgb(var(--ec-page-text-muted))] rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:border-transparent"
|
|
7329
7626
|
}
|
|
7330
7627
|
),
|
|
7331
|
-
searchQuery && /* @__PURE__ */
|
|
7628
|
+
searchQuery && /* @__PURE__ */ jsx38(
|
|
7332
7629
|
"button",
|
|
7333
7630
|
{
|
|
7334
7631
|
onClick: clearSearch,
|
|
7335
7632
|
className: "absolute right-2 top-1/2 transform -translate-y-1/2 text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))]",
|
|
7336
7633
|
"aria-label": "Clear search",
|
|
7337
|
-
children: /* @__PURE__ */
|
|
7634
|
+
children: /* @__PURE__ */ jsx38(
|
|
7338
7635
|
"svg",
|
|
7339
7636
|
{
|
|
7340
7637
|
className: "w-5 h-5",
|
|
7341
7638
|
fill: "none",
|
|
7342
7639
|
stroke: "currentColor",
|
|
7343
7640
|
viewBox: "0 0 24 24",
|
|
7344
|
-
children: /* @__PURE__ */
|
|
7641
|
+
children: /* @__PURE__ */ jsx38(
|
|
7345
7642
|
"path",
|
|
7346
7643
|
{
|
|
7347
7644
|
strokeLinecap: "round",
|
|
@@ -7355,7 +7652,7 @@ var VisualiserSearch = memo33(
|
|
|
7355
7652
|
}
|
|
7356
7653
|
)
|
|
7357
7654
|
] }),
|
|
7358
|
-
showSuggestions && filteredSuggestions.length > 0 && /* @__PURE__ */
|
|
7655
|
+
showSuggestions && filteredSuggestions.length > 0 && /* @__PURE__ */ jsx38(
|
|
7359
7656
|
"div",
|
|
7360
7657
|
{
|
|
7361
7658
|
ref: suggestionsListRef,
|
|
@@ -7364,7 +7661,7 @@ var VisualiserSearch = memo33(
|
|
|
7364
7661
|
const nodeTypeMeta = getNodeTypeMeta(suggestion.type);
|
|
7365
7662
|
const Icon = nodeTypeMeta.Icon;
|
|
7366
7663
|
const isSelected = index === selectedSuggestionIndex;
|
|
7367
|
-
return /* @__PURE__ */
|
|
7664
|
+
return /* @__PURE__ */ jsxs36(
|
|
7368
7665
|
"div",
|
|
7369
7666
|
{
|
|
7370
7667
|
ref: (element) => {
|
|
@@ -7374,21 +7671,21 @@ var VisualiserSearch = memo33(
|
|
|
7374
7671
|
onMouseEnter: () => setSelectedSuggestionIndex(index),
|
|
7375
7672
|
className: `px-3 py-2 cursor-pointer flex items-start gap-3 ${isSelected ? "bg-[rgb(var(--ec-accent-subtle))] outline outline-1 -outline-offset-1 outline-[rgb(var(--ec-accent))]" : "hover:bg-[rgb(var(--ec-page-border)/0.5)]"}`,
|
|
7376
7673
|
children: [
|
|
7377
|
-
/* @__PURE__ */
|
|
7674
|
+
/* @__PURE__ */ jsx38(
|
|
7378
7675
|
"span",
|
|
7379
7676
|
{
|
|
7380
7677
|
className: `mt-0.5 flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md border ${nodeTypeMeta.iconClass}`,
|
|
7381
|
-
children: /* @__PURE__ */
|
|
7678
|
+
children: /* @__PURE__ */ jsx38(Icon, { className: "h-3.5 w-3.5" })
|
|
7382
7679
|
}
|
|
7383
7680
|
),
|
|
7384
|
-
/* @__PURE__ */
|
|
7385
|
-
/* @__PURE__ */
|
|
7386
|
-
suggestion.isGroupedMessage && suggestion.groupName && /* @__PURE__ */
|
|
7681
|
+
/* @__PURE__ */ jsxs36("span", { className: "min-w-0 flex-1", children: [
|
|
7682
|
+
/* @__PURE__ */ jsx38("span", { className: "block truncate text-sm font-medium text-[rgb(var(--ec-page-text))]", children: suggestion.label }),
|
|
7683
|
+
suggestion.isGroupedMessage && suggestion.groupName && /* @__PURE__ */ jsxs36("span", { className: "mt-0.5 block truncate text-xs text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
7387
7684
|
"in ",
|
|
7388
7685
|
suggestion.groupName
|
|
7389
7686
|
] })
|
|
7390
7687
|
] }),
|
|
7391
|
-
/* @__PURE__ */
|
|
7688
|
+
/* @__PURE__ */ jsx38(
|
|
7392
7689
|
"span",
|
|
7393
7690
|
{
|
|
7394
7691
|
className: `mt-0.5 flex-shrink-0 rounded border px-2 py-0.5 text-xs font-medium ${nodeTypeMeta.badgeClass}`,
|
|
@@ -7416,11 +7713,11 @@ import {
|
|
|
7416
7713
|
useCallback as useCallback5,
|
|
7417
7714
|
useMemo as useMemo16,
|
|
7418
7715
|
useRef as useRef4,
|
|
7419
|
-
memo as
|
|
7716
|
+
memo as memo37
|
|
7420
7717
|
} from "react";
|
|
7421
7718
|
import { ChevronLeftIcon, ChevronRightIcon } from "@heroicons/react/24/outline";
|
|
7422
|
-
import { Fragment as Fragment8, jsx as
|
|
7423
|
-
var StepWalkthrough_default =
|
|
7719
|
+
import { Fragment as Fragment8, jsx as jsx39, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
7720
|
+
var StepWalkthrough_default = memo37(function StepWalkthrough({
|
|
7424
7721
|
nodes,
|
|
7425
7722
|
edges,
|
|
7426
7723
|
isFlowVisualization,
|
|
@@ -7589,14 +7886,14 @@ var StepWalkthrough_default = memo34(function StepWalkthrough({
|
|
|
7589
7886
|
}
|
|
7590
7887
|
return { title: title2, description: description2 };
|
|
7591
7888
|
}, [currentStepIndex, currentNodeId, nodeIdsKey]);
|
|
7592
|
-
return /* @__PURE__ */
|
|
7593
|
-
/* @__PURE__ */
|
|
7594
|
-
/* @__PURE__ */
|
|
7595
|
-
description && /* @__PURE__ */
|
|
7889
|
+
return /* @__PURE__ */ jsxs37("div", { className: "ml-12 bg-[rgb(var(--ec-card-bg))] rounded-lg shadow-sm px-4 py-2 z-30 border border-[rgb(var(--ec-page-border))] w-[350px]", children: [
|
|
7890
|
+
/* @__PURE__ */ jsxs37("div", { className: "mb-2", children: [
|
|
7891
|
+
/* @__PURE__ */ jsx39("h3", { className: "text-sm font-semibold text-[rgb(var(--ec-page-text))]", children: title }),
|
|
7892
|
+
description && /* @__PURE__ */ jsx39("p", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] mt-1", children: description })
|
|
7596
7893
|
] }),
|
|
7597
|
-
currentNodeId && availablePaths.length > 1 && /* @__PURE__ */
|
|
7598
|
-
/* @__PURE__ */
|
|
7599
|
-
/* @__PURE__ */
|
|
7894
|
+
currentNodeId && availablePaths.length > 1 && /* @__PURE__ */ jsxs37("div", { className: "mb-3", children: [
|
|
7895
|
+
/* @__PURE__ */ jsx39("label", { className: "block text-xs font-medium text-[rgb(var(--ec-page-text-muted))] mb-2", children: "Choose next path:" }),
|
|
7896
|
+
/* @__PURE__ */ jsx39(
|
|
7600
7897
|
"select",
|
|
7601
7898
|
{
|
|
7602
7899
|
value: selectedPathIndex,
|
|
@@ -7604,16 +7901,16 @@ var StepWalkthrough_default = memo34(function StepWalkthrough({
|
|
|
7604
7901
|
className: "w-full px-3 py-2 text-xs border border-[rgb(var(--ec-input-border))] rounded-md bg-[rgb(var(--ec-input-bg))] text-[rgb(var(--ec-input-text))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:border-[rgb(var(--ec-accent))]",
|
|
7605
7902
|
children: availablePaths.map((path, index) => {
|
|
7606
7903
|
const nodeLabel = path.targetNode.data.step?.title || path.targetNode.data.service?.name || path.targetNode.data.message?.name || path.targetNode.data.flow?.data?.name || path.targetNode.data.custom?.title || path.targetNode.data.custom?.label || path.targetNode.data.externalSystem?.label || path.targetNode.data.label || "Unknown";
|
|
7607
|
-
return /* @__PURE__ */
|
|
7904
|
+
return /* @__PURE__ */ jsx39("option", { value: index, children: path.label ? `${path.label}: ${nodeLabel}` : nodeLabel }, path.targetId);
|
|
7608
7905
|
})
|
|
7609
7906
|
}
|
|
7610
7907
|
)
|
|
7611
7908
|
] }),
|
|
7612
|
-
/* @__PURE__ */
|
|
7909
|
+
/* @__PURE__ */ jsx39("div", { className: "flex items-center justify-between", children: currentStepIndex === -1 ? (
|
|
7613
7910
|
// Initial state - show only Start button on the right
|
|
7614
|
-
/* @__PURE__ */
|
|
7615
|
-
/* @__PURE__ */
|
|
7616
|
-
/* @__PURE__ */
|
|
7911
|
+
/* @__PURE__ */ jsxs37(Fragment8, { children: [
|
|
7912
|
+
/* @__PURE__ */ jsx39("div", { className: "flex-1" }),
|
|
7913
|
+
/* @__PURE__ */ jsx39(
|
|
7617
7914
|
"button",
|
|
7618
7915
|
{
|
|
7619
7916
|
onClick: handleNextStep,
|
|
@@ -7624,29 +7921,29 @@ var StepWalkthrough_default = memo34(function StepWalkthrough({
|
|
|
7624
7921
|
] })
|
|
7625
7922
|
) : (
|
|
7626
7923
|
// In walkthrough - show Previous on left, Next on right (only if paths available)
|
|
7627
|
-
/* @__PURE__ */
|
|
7628
|
-
/* @__PURE__ */
|
|
7924
|
+
/* @__PURE__ */ jsxs37(Fragment8, { children: [
|
|
7925
|
+
/* @__PURE__ */ jsxs37(
|
|
7629
7926
|
"button",
|
|
7630
7927
|
{
|
|
7631
7928
|
onClick: handlePreviousStep,
|
|
7632
7929
|
className: "flex items-center justify-center px-4 py-2 text-xs font-medium bg-[rgb(var(--ec-accent))] text-white rounded-md hover:bg-[rgb(var(--ec-accent-hover))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors",
|
|
7633
7930
|
children: [
|
|
7634
|
-
/* @__PURE__ */
|
|
7931
|
+
/* @__PURE__ */ jsx39(ChevronLeftIcon, { className: "w-4 h-4 mr-1" }),
|
|
7635
7932
|
"Previous"
|
|
7636
7933
|
]
|
|
7637
7934
|
}
|
|
7638
7935
|
),
|
|
7639
|
-
availablePaths.length > 0 ? /* @__PURE__ */
|
|
7936
|
+
availablePaths.length > 0 ? /* @__PURE__ */ jsxs37(
|
|
7640
7937
|
"button",
|
|
7641
7938
|
{
|
|
7642
7939
|
onClick: handleNextStep,
|
|
7643
7940
|
className: "flex items-center justify-center px-4 py-2 text-xs font-medium bg-[rgb(var(--ec-accent))] text-white rounded-md hover:bg-[rgb(var(--ec-accent-hover))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors",
|
|
7644
7941
|
children: [
|
|
7645
7942
|
"Next",
|
|
7646
|
-
/* @__PURE__ */
|
|
7943
|
+
/* @__PURE__ */ jsx39(ChevronRightIcon, { className: "w-4 h-4 ml-1" })
|
|
7647
7944
|
]
|
|
7648
7945
|
}
|
|
7649
|
-
) : /* @__PURE__ */
|
|
7946
|
+
) : /* @__PURE__ */ jsx39(
|
|
7650
7947
|
"button",
|
|
7651
7948
|
{
|
|
7652
7949
|
onClick: handleFinish,
|
|
@@ -7728,7 +8025,7 @@ var exportNodeGraphForStudio = (data) => {
|
|
|
7728
8025
|
};
|
|
7729
8026
|
|
|
7730
8027
|
// src/components/StudioModal.tsx
|
|
7731
|
-
import { Fragment as Fragment9, jsx as
|
|
8028
|
+
import { Fragment as Fragment9, jsx as jsx40, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
7732
8029
|
var StudioModal = ({ isOpen, onClose }) => {
|
|
7733
8030
|
const [copySuccess, setCopySuccess] = useState8(false);
|
|
7734
8031
|
const portalContainer = usePortalContainer();
|
|
@@ -7759,14 +8056,14 @@ var StudioModal = ({ isOpen, onClose }) => {
|
|
|
7759
8056
|
);
|
|
7760
8057
|
onClose();
|
|
7761
8058
|
};
|
|
7762
|
-
return /* @__PURE__ */
|
|
7763
|
-
/* @__PURE__ */
|
|
7764
|
-
/* @__PURE__ */
|
|
7765
|
-
/* @__PURE__ */
|
|
7766
|
-
/* @__PURE__ */
|
|
8059
|
+
return /* @__PURE__ */ jsx40(Dialog2.Root, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsxs38(Dialog2.Portal, { container: portalContainer, children: [
|
|
8060
|
+
/* @__PURE__ */ jsx40(Dialog2.Overlay, { className: "fixed inset-0 bg-black/50 data-[state=open]:animate-overlayShow z-50" }),
|
|
8061
|
+
/* @__PURE__ */ jsxs38(Dialog2.Content, { className: "fixed top-1/2 left-1/2 w-[90vw] max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg bg-white p-6 shadow-xl focus:outline-none data-[state=open]:animate-contentShow z-[100]", children: [
|
|
8062
|
+
/* @__PURE__ */ jsx40(Dialog2.Title, { className: "text-lg font-semibold text-gray-900 mb-3", children: "Open in EventCatalog Studio" }),
|
|
8063
|
+
/* @__PURE__ */ jsxs38(Dialog2.Description, { className: "text-sm text-gray-600 mb-6", children: [
|
|
7767
8064
|
"Import your diagram into",
|
|
7768
8065
|
" ",
|
|
7769
|
-
/* @__PURE__ */
|
|
8066
|
+
/* @__PURE__ */ jsx40(
|
|
7770
8067
|
"a",
|
|
7771
8068
|
{
|
|
7772
8069
|
href: "https://eventcatalog.studio",
|
|
@@ -7779,43 +8076,43 @@ var StudioModal = ({ isOpen, onClose }) => {
|
|
|
7779
8076
|
" ",
|
|
7780
8077
|
"to create designs from your visualization of your architecture."
|
|
7781
8078
|
] }),
|
|
7782
|
-
/* @__PURE__ */
|
|
7783
|
-
/* @__PURE__ */
|
|
7784
|
-
/* @__PURE__ */
|
|
7785
|
-
/* @__PURE__ */
|
|
7786
|
-
/* @__PURE__ */
|
|
8079
|
+
/* @__PURE__ */ jsxs38("div", { className: "space-y-4", children: [
|
|
8080
|
+
/* @__PURE__ */ jsxs38("div", { className: "bg-gray-50 rounded-lg p-4 border border-gray-200", children: [
|
|
8081
|
+
/* @__PURE__ */ jsx40("h4", { className: "text-sm font-bold text-gray-900 mb-2", children: "Step 1: Copy diagram" }),
|
|
8082
|
+
/* @__PURE__ */ jsx40("p", { className: "text-xs text-gray-600 mb-3", children: "Copy your diagram data to your clipboard." }),
|
|
8083
|
+
/* @__PURE__ */ jsx40(
|
|
7787
8084
|
"button",
|
|
7788
8085
|
{
|
|
7789
8086
|
onClick: handleCopyToClipboard,
|
|
7790
8087
|
className: `w-full flex items-center justify-center space-x-2 px-4 py-2 text-sm font-medium rounded-md border transition-colors ${copySuccess ? "bg-green-50 border-green-200 text-green-700" : "bg-white border-gray-300 text-gray-700 hover:bg-gray-50"}`,
|
|
7791
|
-
children: copySuccess ? /* @__PURE__ */
|
|
7792
|
-
/* @__PURE__ */
|
|
7793
|
-
/* @__PURE__ */
|
|
7794
|
-
] }) : /* @__PURE__ */
|
|
7795
|
-
/* @__PURE__ */
|
|
7796
|
-
/* @__PURE__ */
|
|
8088
|
+
children: copySuccess ? /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
8089
|
+
/* @__PURE__ */ jsx40(CheckIcon, { className: "w-4 h-4" }),
|
|
8090
|
+
/* @__PURE__ */ jsx40("span", { children: "Copied!" })
|
|
8091
|
+
] }) : /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
8092
|
+
/* @__PURE__ */ jsx40(ClipboardIcon, { className: "w-4 h-4" }),
|
|
8093
|
+
/* @__PURE__ */ jsx40("span", { children: "Copy diagram to clipboard" })
|
|
7797
8094
|
] })
|
|
7798
8095
|
}
|
|
7799
8096
|
)
|
|
7800
8097
|
] }),
|
|
7801
|
-
/* @__PURE__ */
|
|
7802
|
-
/* @__PURE__ */
|
|
7803
|
-
/* @__PURE__ */
|
|
7804
|
-
/* @__PURE__ */
|
|
8098
|
+
/* @__PURE__ */ jsxs38("div", { className: "bg-[rgb(var(--ec-accent-subtle))] rounded-lg p-4 border border-[rgb(var(--ec-accent)/0.3)]", children: [
|
|
8099
|
+
/* @__PURE__ */ jsx40("h4", { className: "text-sm font-bold text-gray-900 mb-2", children: "Step 2: Open EventCatalog Studio" }),
|
|
8100
|
+
/* @__PURE__ */ jsx40("p", { className: "text-xs text-gray-600 mb-3", children: 'Go to EventCatalog Studio and import your design using the "Import from EventCatalog" button.' }),
|
|
8101
|
+
/* @__PURE__ */ jsxs38(
|
|
7805
8102
|
"button",
|
|
7806
8103
|
{
|
|
7807
8104
|
onClick: handleOpenStudio,
|
|
7808
8105
|
className: "w-full flex items-center justify-center space-x-2 px-4 py-2 bg-[rgb(var(--ec-accent))] text-white text-sm font-medium rounded-md hover:bg-[rgb(var(--ec-accent-hover))] transition-colors",
|
|
7809
8106
|
children: [
|
|
7810
|
-
/* @__PURE__ */
|
|
7811
|
-
/* @__PURE__ */
|
|
8107
|
+
/* @__PURE__ */ jsx40(ExternalLinkIcon, { className: "w-4 h-4" }),
|
|
8108
|
+
/* @__PURE__ */ jsx40("span", { children: "Open EventCatalog Studio" })
|
|
7812
8109
|
]
|
|
7813
8110
|
}
|
|
7814
8111
|
),
|
|
7815
|
-
/* @__PURE__ */
|
|
8112
|
+
/* @__PURE__ */ jsx40("p", { className: "text-[12px] text-gray-500 italic mt-4 mb-0", children: "Don't worry, none of your data is stored by EventCatalog Studio, everything is local to your browser." })
|
|
7816
8113
|
] })
|
|
7817
8114
|
] }),
|
|
7818
|
-
/* @__PURE__ */
|
|
8115
|
+
/* @__PURE__ */ jsx40("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsx40(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ jsx40(
|
|
7819
8116
|
"button",
|
|
7820
8117
|
{
|
|
7821
8118
|
type: "button",
|
|
@@ -7963,9 +8260,9 @@ function getNodeDocUrl(node) {
|
|
|
7963
8260
|
}
|
|
7964
8261
|
|
|
7965
8262
|
// src/components/FocusMode/FocusModeNodeActions.tsx
|
|
7966
|
-
import { NodeToolbar, Position as
|
|
8263
|
+
import { NodeToolbar, Position as Position23, useViewport } from "@xyflow/react";
|
|
7967
8264
|
import { ArrowRightLeft as ArrowRightLeft2, FileText } from "lucide-react";
|
|
7968
|
-
import { jsx as
|
|
8265
|
+
import { jsx as jsx41, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
7969
8266
|
var FocusModeNodeActions = ({
|
|
7970
8267
|
node,
|
|
7971
8268
|
isCenter,
|
|
@@ -7992,26 +8289,26 @@ var FocusModeNodeActions = ({
|
|
|
7992
8289
|
};
|
|
7993
8290
|
if (isCenter) {
|
|
7994
8291
|
if (!docUrl) return null;
|
|
7995
|
-
return /* @__PURE__ */
|
|
8292
|
+
return /* @__PURE__ */ jsx41(
|
|
7996
8293
|
NodeToolbar,
|
|
7997
8294
|
{
|
|
7998
8295
|
nodeId: node.id,
|
|
7999
|
-
position:
|
|
8296
|
+
position: Position23.Bottom,
|
|
8000
8297
|
isVisible: true,
|
|
8001
8298
|
offset: -16,
|
|
8002
|
-
children: /* @__PURE__ */
|
|
8299
|
+
children: /* @__PURE__ */ jsx41(
|
|
8003
8300
|
"div",
|
|
8004
8301
|
{
|
|
8005
8302
|
className: "flex items-center gap-1 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-lg shadow-md",
|
|
8006
8303
|
style: { padding: Math.round(4 * scaleFactor) },
|
|
8007
|
-
children: /* @__PURE__ */
|
|
8304
|
+
children: /* @__PURE__ */ jsx41(
|
|
8008
8305
|
"button",
|
|
8009
8306
|
{
|
|
8010
8307
|
onClick: handleDocClick,
|
|
8011
8308
|
className: "flex items-center justify-center rounded-md text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-accent))] hover:bg-[rgb(var(--ec-accent-subtle))] transition-colors",
|
|
8012
8309
|
style: { width: buttonSize, height: buttonSize },
|
|
8013
8310
|
title: "View documentation",
|
|
8014
|
-
children: /* @__PURE__ */
|
|
8311
|
+
children: /* @__PURE__ */ jsx41(FileText, { style: { width: iconSize, height: iconSize } })
|
|
8015
8312
|
}
|
|
8016
8313
|
)
|
|
8017
8314
|
}
|
|
@@ -8019,37 +8316,37 @@ var FocusModeNodeActions = ({
|
|
|
8019
8316
|
}
|
|
8020
8317
|
);
|
|
8021
8318
|
}
|
|
8022
|
-
return /* @__PURE__ */
|
|
8319
|
+
return /* @__PURE__ */ jsx41(
|
|
8023
8320
|
NodeToolbar,
|
|
8024
8321
|
{
|
|
8025
8322
|
nodeId: node.id,
|
|
8026
|
-
position:
|
|
8323
|
+
position: Position23.Bottom,
|
|
8027
8324
|
isVisible: true,
|
|
8028
8325
|
offset: -16,
|
|
8029
|
-
children: /* @__PURE__ */
|
|
8326
|
+
children: /* @__PURE__ */ jsxs39(
|
|
8030
8327
|
"div",
|
|
8031
8328
|
{
|
|
8032
8329
|
className: "flex items-center gap-1 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-lg shadow-md",
|
|
8033
8330
|
style: { padding: Math.round(4 * scaleFactor) },
|
|
8034
8331
|
children: [
|
|
8035
|
-
docUrl && /* @__PURE__ */
|
|
8332
|
+
docUrl && /* @__PURE__ */ jsx41(
|
|
8036
8333
|
"button",
|
|
8037
8334
|
{
|
|
8038
8335
|
onClick: handleDocClick,
|
|
8039
8336
|
className: "flex items-center justify-center rounded-md text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-accent))] hover:bg-[rgb(var(--ec-accent-subtle))] transition-colors",
|
|
8040
8337
|
style: { width: buttonSize, height: buttonSize },
|
|
8041
8338
|
title: "View documentation",
|
|
8042
|
-
children: /* @__PURE__ */
|
|
8339
|
+
children: /* @__PURE__ */ jsx41(FileText, { style: { width: iconSize, height: iconSize } })
|
|
8043
8340
|
}
|
|
8044
8341
|
),
|
|
8045
|
-
/* @__PURE__ */
|
|
8342
|
+
/* @__PURE__ */ jsx41(
|
|
8046
8343
|
"button",
|
|
8047
8344
|
{
|
|
8048
8345
|
onClick: handleSwitch,
|
|
8049
8346
|
className: "flex items-center justify-center rounded-md text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-accent))] hover:bg-[rgb(var(--ec-accent-subtle))] transition-colors",
|
|
8050
8347
|
style: { width: buttonSize, height: buttonSize },
|
|
8051
8348
|
title: "Focus on this node",
|
|
8052
|
-
children: /* @__PURE__ */
|
|
8349
|
+
children: /* @__PURE__ */ jsx41(ArrowRightLeft2, { style: { width: iconSize, height: iconSize } })
|
|
8053
8350
|
}
|
|
8054
8351
|
)
|
|
8055
8352
|
]
|
|
@@ -8061,32 +8358,32 @@ var FocusModeNodeActions = ({
|
|
|
8061
8358
|
var FocusModeNodeActions_default = FocusModeNodeActions;
|
|
8062
8359
|
|
|
8063
8360
|
// src/components/FocusMode/FocusModePlaceholder.tsx
|
|
8064
|
-
import { Handle as
|
|
8065
|
-
import { jsx as
|
|
8361
|
+
import { Handle as Handle25, Position as Position24 } from "@xyflow/react";
|
|
8362
|
+
import { jsx as jsx42, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
8066
8363
|
var FocusModePlaceholder = ({
|
|
8067
8364
|
data
|
|
8068
8365
|
}) => {
|
|
8069
8366
|
const { label, side } = data;
|
|
8070
|
-
return /* @__PURE__ */
|
|
8367
|
+
return /* @__PURE__ */ jsxs40(
|
|
8071
8368
|
"div",
|
|
8072
8369
|
{
|
|
8073
8370
|
className: "px-4 py-4 rounded-lg border-2 border-dashed border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-bg)/0.5)] max-w-[280px] flex items-center justify-center",
|
|
8074
8371
|
style: { opacity: 0.6, minHeight: "130px" },
|
|
8075
8372
|
children: [
|
|
8076
|
-
side === "right" && /* @__PURE__ */
|
|
8077
|
-
|
|
8373
|
+
side === "right" && /* @__PURE__ */ jsx42(
|
|
8374
|
+
Handle25,
|
|
8078
8375
|
{
|
|
8079
8376
|
type: "target",
|
|
8080
|
-
position:
|
|
8377
|
+
position: Position24.Left,
|
|
8081
8378
|
style: { visibility: "hidden" }
|
|
8082
8379
|
}
|
|
8083
8380
|
),
|
|
8084
|
-
/* @__PURE__ */
|
|
8085
|
-
side === "left" && /* @__PURE__ */
|
|
8086
|
-
|
|
8381
|
+
/* @__PURE__ */ jsx42("div", { className: "text-center text-sm text-[rgb(var(--ec-page-text-muted))] italic", children: label }),
|
|
8382
|
+
side === "left" && /* @__PURE__ */ jsx42(
|
|
8383
|
+
Handle25,
|
|
8087
8384
|
{
|
|
8088
8385
|
type: "source",
|
|
8089
|
-
position:
|
|
8386
|
+
position: Position24.Right,
|
|
8090
8387
|
style: { visibility: "hidden" }
|
|
8091
8388
|
}
|
|
8092
8389
|
)
|
|
@@ -8097,7 +8394,7 @@ var FocusModePlaceholder = ({
|
|
|
8097
8394
|
var FocusModePlaceholder_default = FocusModePlaceholder;
|
|
8098
8395
|
|
|
8099
8396
|
// src/components/FocusMode/FocusModeContent.tsx
|
|
8100
|
-
import { jsx as
|
|
8397
|
+
import { jsx as jsx43, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
8101
8398
|
var HORIZONTAL_SPACING = 450;
|
|
8102
8399
|
var VERTICAL_SPACING = 200;
|
|
8103
8400
|
var SLIDE_DURATION = 300;
|
|
@@ -8306,14 +8603,14 @@ var FocusModeContent = ({
|
|
|
8306
8603
|
[nodeTypes]
|
|
8307
8604
|
);
|
|
8308
8605
|
if (displayNodes.length === 0) {
|
|
8309
|
-
return /* @__PURE__ */
|
|
8606
|
+
return /* @__PURE__ */ jsx43("div", { className: "flex items-center justify-center h-full text-[rgb(var(--ec-page-text-muted))]", children: "Node not found" });
|
|
8310
8607
|
}
|
|
8311
|
-
return /* @__PURE__ */
|
|
8608
|
+
return /* @__PURE__ */ jsx43(
|
|
8312
8609
|
"div",
|
|
8313
8610
|
{
|
|
8314
8611
|
className: "h-full w-full focus-mode-container",
|
|
8315
8612
|
style: { opacity: isReady ? 1 : 0 },
|
|
8316
|
-
children: /* @__PURE__ */
|
|
8613
|
+
children: /* @__PURE__ */ jsxs41(
|
|
8317
8614
|
ReactFlow,
|
|
8318
8615
|
{
|
|
8319
8616
|
nodes: displayNodes,
|
|
@@ -8333,9 +8630,9 @@ var FocusModeContent = ({
|
|
|
8333
8630
|
minZoom: 0.3,
|
|
8334
8631
|
maxZoom: 2,
|
|
8335
8632
|
children: [
|
|
8336
|
-
/* @__PURE__ */
|
|
8337
|
-
/* @__PURE__ */
|
|
8338
|
-
displayNodes.map((node, index) => /* @__PURE__ */
|
|
8633
|
+
/* @__PURE__ */ jsx43(Background, { color: "rgb(var(--ec-page-border))", gap: 20 }),
|
|
8634
|
+
/* @__PURE__ */ jsx43(Controls, { showInteractive: false }),
|
|
8635
|
+
displayNodes.map((node, index) => /* @__PURE__ */ jsx43(
|
|
8339
8636
|
FocusModeNodeActions_default,
|
|
8340
8637
|
{
|
|
8341
8638
|
node,
|
|
@@ -8353,7 +8650,7 @@ var FocusModeContent = ({
|
|
|
8353
8650
|
var FocusModeContent_default = FocusModeContent;
|
|
8354
8651
|
|
|
8355
8652
|
// src/components/FocusModeModal.tsx
|
|
8356
|
-
import { jsx as
|
|
8653
|
+
import { jsx as jsx44, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
8357
8654
|
var FocusModeModal = ({
|
|
8358
8655
|
isOpen,
|
|
8359
8656
|
onClose,
|
|
@@ -8384,7 +8681,7 @@ var FocusModeModal = ({
|
|
|
8384
8681
|
if (!centerNodeId) {
|
|
8385
8682
|
return null;
|
|
8386
8683
|
}
|
|
8387
|
-
return /* @__PURE__ */
|
|
8684
|
+
return /* @__PURE__ */ jsx44(Dialog3.Root, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsx44(Dialog3.Portal, { children: /* @__PURE__ */ jsxs42(
|
|
8388
8685
|
"div",
|
|
8389
8686
|
{
|
|
8390
8687
|
className: "eventcatalog-visualizer",
|
|
@@ -8395,7 +8692,7 @@ var FocusModeModal = ({
|
|
|
8395
8692
|
zIndex: 99999
|
|
8396
8693
|
},
|
|
8397
8694
|
children: [
|
|
8398
|
-
/* @__PURE__ */
|
|
8695
|
+
/* @__PURE__ */ jsx44(
|
|
8399
8696
|
Dialog3.Overlay,
|
|
8400
8697
|
{
|
|
8401
8698
|
style: {
|
|
@@ -8406,7 +8703,7 @@ var FocusModeModal = ({
|
|
|
8406
8703
|
}
|
|
8407
8704
|
}
|
|
8408
8705
|
),
|
|
8409
|
-
/* @__PURE__ */
|
|
8706
|
+
/* @__PURE__ */ jsxs42(
|
|
8410
8707
|
Dialog3.Content,
|
|
8411
8708
|
{
|
|
8412
8709
|
style: {
|
|
@@ -8422,7 +8719,7 @@ var FocusModeModal = ({
|
|
|
8422
8719
|
overflow: "hidden"
|
|
8423
8720
|
},
|
|
8424
8721
|
children: [
|
|
8425
|
-
/* @__PURE__ */
|
|
8722
|
+
/* @__PURE__ */ jsxs42(
|
|
8426
8723
|
"div",
|
|
8427
8724
|
{
|
|
8428
8725
|
style: {
|
|
@@ -8434,8 +8731,8 @@ var FocusModeModal = ({
|
|
|
8434
8731
|
flexShrink: 0
|
|
8435
8732
|
},
|
|
8436
8733
|
children: [
|
|
8437
|
-
/* @__PURE__ */
|
|
8438
|
-
/* @__PURE__ */
|
|
8734
|
+
/* @__PURE__ */ jsxs42("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
|
|
8735
|
+
/* @__PURE__ */ jsx44(
|
|
8439
8736
|
"div",
|
|
8440
8737
|
{
|
|
8441
8738
|
style: {
|
|
@@ -8447,7 +8744,7 @@ var FocusModeModal = ({
|
|
|
8447
8744
|
borderRadius: 10,
|
|
8448
8745
|
background: isDark ? "rgba(59, 130, 246, 0.18)" : "rgba(59, 130, 246, 0.12)"
|
|
8449
8746
|
},
|
|
8450
|
-
children: /* @__PURE__ */
|
|
8747
|
+
children: /* @__PURE__ */ jsx44(
|
|
8451
8748
|
FocusIcon,
|
|
8452
8749
|
{
|
|
8453
8750
|
style: {
|
|
@@ -8459,8 +8756,8 @@ var FocusModeModal = ({
|
|
|
8459
8756
|
)
|
|
8460
8757
|
}
|
|
8461
8758
|
),
|
|
8462
|
-
/* @__PURE__ */
|
|
8463
|
-
/* @__PURE__ */
|
|
8759
|
+
/* @__PURE__ */ jsxs42("div", { children: [
|
|
8760
|
+
/* @__PURE__ */ jsx44(
|
|
8464
8761
|
Dialog3.Title,
|
|
8465
8762
|
{
|
|
8466
8763
|
style: {
|
|
@@ -8471,7 +8768,7 @@ var FocusModeModal = ({
|
|
|
8471
8768
|
children: "Focus Mode"
|
|
8472
8769
|
}
|
|
8473
8770
|
),
|
|
8474
|
-
/* @__PURE__ */
|
|
8771
|
+
/* @__PURE__ */ jsx44(
|
|
8475
8772
|
Dialog3.Description,
|
|
8476
8773
|
{
|
|
8477
8774
|
style: {
|
|
@@ -8484,7 +8781,7 @@ var FocusModeModal = ({
|
|
|
8484
8781
|
)
|
|
8485
8782
|
] })
|
|
8486
8783
|
] }),
|
|
8487
|
-
/* @__PURE__ */
|
|
8784
|
+
/* @__PURE__ */ jsx44(Dialog3.Close, { asChild: true, children: /* @__PURE__ */ jsx44(
|
|
8488
8785
|
"button",
|
|
8489
8786
|
{
|
|
8490
8787
|
style: {
|
|
@@ -8500,13 +8797,13 @@ var FocusModeModal = ({
|
|
|
8500
8797
|
color: isDark ? "#94a3b8" : "#64748b"
|
|
8501
8798
|
},
|
|
8502
8799
|
"aria-label": "Close",
|
|
8503
|
-
children: /* @__PURE__ */
|
|
8800
|
+
children: /* @__PURE__ */ jsx44(XIcon2, { style: { width: 20, height: 20 } })
|
|
8504
8801
|
}
|
|
8505
8802
|
) })
|
|
8506
8803
|
]
|
|
8507
8804
|
}
|
|
8508
8805
|
),
|
|
8509
|
-
/* @__PURE__ */
|
|
8806
|
+
/* @__PURE__ */ jsx44("div", { style: { flex: 1, overflow: "hidden" }, children: /* @__PURE__ */ jsx44(ReactFlowProvider, { children: /* @__PURE__ */ jsx44(
|
|
8510
8807
|
FocusModeContent_default,
|
|
8511
8808
|
{
|
|
8512
8809
|
centerNodeId,
|
|
@@ -8810,7 +9107,7 @@ async function copyToClipboard(text) {
|
|
|
8810
9107
|
}
|
|
8811
9108
|
|
|
8812
9109
|
// src/components/MermaidView.tsx
|
|
8813
|
-
import { jsx as
|
|
9110
|
+
import { jsx as jsx45, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
8814
9111
|
var MermaidView = ({
|
|
8815
9112
|
nodes,
|
|
8816
9113
|
edges,
|
|
@@ -8920,51 +9217,51 @@ var MermaidView = ({
|
|
|
8920
9217
|
setCopySuccess(true);
|
|
8921
9218
|
setTimeout(() => setCopySuccess(false), 2e3);
|
|
8922
9219
|
}, [mermaidCode]);
|
|
8923
|
-
return /* @__PURE__ */
|
|
9220
|
+
return /* @__PURE__ */ jsxs43(
|
|
8924
9221
|
"div",
|
|
8925
9222
|
{
|
|
8926
9223
|
ref: containerRef,
|
|
8927
9224
|
className: "absolute inset-0 bg-[rgb(var(--ec-page-bg))]",
|
|
8928
9225
|
style: { animation: "fadeIn 200ms ease-out" },
|
|
8929
9226
|
children: [
|
|
8930
|
-
/* @__PURE__ */
|
|
9227
|
+
/* @__PURE__ */ jsx45("style", { children: `
|
|
8931
9228
|
@keyframes fadeIn {
|
|
8932
9229
|
from { opacity: 0; }
|
|
8933
9230
|
to { opacity: 1; }
|
|
8934
9231
|
}
|
|
8935
9232
|
` }),
|
|
8936
|
-
/* @__PURE__ */
|
|
8937
|
-
/* @__PURE__ */
|
|
9233
|
+
/* @__PURE__ */ jsx45("div", { className: "absolute top-[10px] right-4 z-20", children: /* @__PURE__ */ jsxs43("div", { className: "relative group", children: [
|
|
9234
|
+
/* @__PURE__ */ jsx45(
|
|
8938
9235
|
"button",
|
|
8939
9236
|
{
|
|
8940
9237
|
onClick: handleCopyToClipboard,
|
|
8941
9238
|
className: `p-2.5 rounded-md shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[rgb(var(--ec-accent))] transition-all duration-150 ${copySuccess ? "bg-green-500 text-white scale-110" : "bg-[rgb(var(--ec-card-bg))] hover:bg-[rgb(var(--ec-page-border))/0.5] text-[rgb(var(--ec-icon-color))] hover:scale-105"}`,
|
|
8942
9239
|
"aria-label": copySuccess ? "Copied!" : "Copy Mermaid code",
|
|
8943
|
-
children: copySuccess ? /* @__PURE__ */
|
|
9240
|
+
children: copySuccess ? /* @__PURE__ */ jsx45(CheckIcon2, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx45(ClipboardIcon2, { className: "h-5 w-5" })
|
|
8944
9241
|
}
|
|
8945
9242
|
),
|
|
8946
|
-
/* @__PURE__ */
|
|
9243
|
+
/* @__PURE__ */ jsx45("div", { className: "absolute top-full right-0 mt-2 px-2 py-1 bg-[rgb(var(--ec-page-text))] text-[rgb(var(--ec-page-bg))] text-xs rounded shadow-lg opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none z-50", children: copySuccess ? "Copied!" : "Copy Mermaid code" })
|
|
8947
9244
|
] }) }),
|
|
8948
|
-
/* @__PURE__ */
|
|
8949
|
-
isRendering && /* @__PURE__ */
|
|
8950
|
-
/* @__PURE__ */
|
|
8951
|
-
/* @__PURE__ */
|
|
8952
|
-
/* @__PURE__ */
|
|
8953
|
-
/* @__PURE__ */
|
|
9245
|
+
/* @__PURE__ */ jsxs43("div", { className: "absolute inset-0 overflow-hidden", children: [
|
|
9246
|
+
isRendering && /* @__PURE__ */ jsx45("div", { className: "w-full h-full flex items-center justify-center", children: /* @__PURE__ */ jsxs43("div", { className: "relative", children: [
|
|
9247
|
+
/* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-4 opacity-40", children: [
|
|
9248
|
+
/* @__PURE__ */ jsx45("div", { className: "w-24 h-10 bg-[rgb(var(--ec-page-border))] rounded animate-pulse" }),
|
|
9249
|
+
/* @__PURE__ */ jsx45("div", { className: "w-12 h-0.5 bg-[rgb(var(--ec-page-border))] animate-pulse" }),
|
|
9250
|
+
/* @__PURE__ */ jsx45(
|
|
8954
9251
|
"div",
|
|
8955
9252
|
{
|
|
8956
9253
|
className: "w-20 h-10 bg-[rgb(var(--ec-page-border))] rounded-full animate-pulse",
|
|
8957
9254
|
style: { animationDelay: "75ms" }
|
|
8958
9255
|
}
|
|
8959
9256
|
),
|
|
8960
|
-
/* @__PURE__ */
|
|
9257
|
+
/* @__PURE__ */ jsx45(
|
|
8961
9258
|
"div",
|
|
8962
9259
|
{
|
|
8963
9260
|
className: "w-12 h-0.5 bg-[rgb(var(--ec-page-border))] animate-pulse",
|
|
8964
9261
|
style: { animationDelay: "150ms" }
|
|
8965
9262
|
}
|
|
8966
9263
|
),
|
|
8967
|
-
/* @__PURE__ */
|
|
9264
|
+
/* @__PURE__ */ jsx45(
|
|
8968
9265
|
"div",
|
|
8969
9266
|
{
|
|
8970
9267
|
className: "w-24 h-10 bg-[rgb(var(--ec-page-border))] rounded animate-pulse",
|
|
@@ -8972,14 +9269,14 @@ var MermaidView = ({
|
|
|
8972
9269
|
}
|
|
8973
9270
|
)
|
|
8974
9271
|
] }),
|
|
8975
|
-
/* @__PURE__ */
|
|
9272
|
+
/* @__PURE__ */ jsx45("p", { className: "text-center text-sm text-[rgb(var(--ec-page-text-muted))] mt-4", children: "Rendering diagram..." })
|
|
8976
9273
|
] }) }),
|
|
8977
|
-
previewError && !isRendering && /* @__PURE__ */
|
|
8978
|
-
/* @__PURE__ */
|
|
8979
|
-
/* @__PURE__ */
|
|
8980
|
-
/* @__PURE__ */
|
|
8981
|
-
/* @__PURE__ */
|
|
8982
|
-
/* @__PURE__ */
|
|
9274
|
+
previewError && !isRendering && /* @__PURE__ */ jsxs43("div", { className: "w-full h-full flex flex-col items-center justify-center p-4", children: [
|
|
9275
|
+
/* @__PURE__ */ jsx45("div", { className: "text-red-500 text-sm mb-2", children: "Failed to render diagram" }),
|
|
9276
|
+
/* @__PURE__ */ jsx45("div", { className: "text-[rgb(var(--ec-page-text-muted))] text-xs font-mono bg-[rgb(var(--ec-code-bg))] p-2 rounded max-w-lg overflow-auto", children: previewError }),
|
|
9277
|
+
/* @__PURE__ */ jsxs43("div", { className: "mt-4 text-sm text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
9278
|
+
/* @__PURE__ */ jsx45("p", { children: "You can still copy the Mermaid code and paste it into" }),
|
|
9279
|
+
/* @__PURE__ */ jsx45(
|
|
8983
9280
|
"a",
|
|
8984
9281
|
{
|
|
8985
9282
|
href: "https://mermaid.live",
|
|
@@ -8991,7 +9288,7 @@ var MermaidView = ({
|
|
|
8991
9288
|
)
|
|
8992
9289
|
] })
|
|
8993
9290
|
] }),
|
|
8994
|
-
previewSvg && !isRendering && !previewError && /* @__PURE__ */
|
|
9291
|
+
previewSvg && !isRendering && !previewError && /* @__PURE__ */ jsx45(
|
|
8995
9292
|
"div",
|
|
8996
9293
|
{
|
|
8997
9294
|
ref: svgContainerRef,
|
|
@@ -9000,15 +9297,15 @@ var MermaidView = ({
|
|
|
9000
9297
|
}
|
|
9001
9298
|
)
|
|
9002
9299
|
] }),
|
|
9003
|
-
/* @__PURE__ */
|
|
9004
|
-
/* @__PURE__ */
|
|
9300
|
+
/* @__PURE__ */ jsx45("div", { className: "absolute bottom-4 left-4 z-20", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-2 bg-[rgb(var(--ec-card-bg))]/90 backdrop-blur-sm px-3 py-1.5 rounded-md shadow-sm border border-[rgb(var(--ec-page-border))]", children: [
|
|
9301
|
+
/* @__PURE__ */ jsx45(
|
|
9005
9302
|
"svg",
|
|
9006
9303
|
{
|
|
9007
9304
|
className: "w-3.5 h-3.5 text-[rgb(var(--ec-icon-color))]",
|
|
9008
9305
|
fill: "none",
|
|
9009
9306
|
viewBox: "0 0 24 24",
|
|
9010
9307
|
stroke: "currentColor",
|
|
9011
|
-
children: /* @__PURE__ */
|
|
9308
|
+
children: /* @__PURE__ */ jsx45(
|
|
9012
9309
|
"path",
|
|
9013
9310
|
{
|
|
9014
9311
|
strokeLinecap: "round",
|
|
@@ -9019,7 +9316,7 @@ var MermaidView = ({
|
|
|
9019
9316
|
)
|
|
9020
9317
|
}
|
|
9021
9318
|
),
|
|
9022
|
-
/* @__PURE__ */
|
|
9319
|
+
/* @__PURE__ */ jsx45("span", { className: "text-xs text-[rgb(var(--ec-page-text-muted))]", children: "Scroll to zoom \xB7 Drag to pan" })
|
|
9023
9320
|
] }) })
|
|
9024
9321
|
]
|
|
9025
9322
|
}
|
|
@@ -9031,7 +9328,7 @@ var MermaidView_default = MermaidView;
|
|
|
9031
9328
|
import { useCallback as useCallback10, useMemo as useMemo18, useState as useState12, useEffect as useEffect8 } from "react";
|
|
9032
9329
|
|
|
9033
9330
|
// src/utils/utils/utils.ts
|
|
9034
|
-
import { MarkerType as MarkerType6, Position as
|
|
9331
|
+
import { MarkerType as MarkerType6, Position as Position25 } from "@xyflow/react";
|
|
9035
9332
|
import dagre from "dagre";
|
|
9036
9333
|
var generateIdForNode = (node) => {
|
|
9037
9334
|
return `${node.data.id}-${node.data.version}`;
|
|
@@ -9121,8 +9418,8 @@ var createEdge = (edgeOptions) => {
|
|
|
9121
9418
|
};
|
|
9122
9419
|
var createNode = (values) => {
|
|
9123
9420
|
return {
|
|
9124
|
-
sourcePosition:
|
|
9125
|
-
targetPosition:
|
|
9421
|
+
sourcePosition: Position25.Right,
|
|
9422
|
+
targetPosition: Position25.Left,
|
|
9126
9423
|
...values
|
|
9127
9424
|
};
|
|
9128
9425
|
};
|
|
@@ -9244,7 +9541,7 @@ var useChannelVisibility = ({
|
|
|
9244
9541
|
};
|
|
9245
9542
|
|
|
9246
9543
|
// src/components/VisualizerDropdownContent.tsx
|
|
9247
|
-
import { useState as useState13, memo as
|
|
9544
|
+
import { useState as useState13, memo as memo38 } from "react";
|
|
9248
9545
|
import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
|
|
9249
9546
|
import {
|
|
9250
9547
|
Code,
|
|
@@ -9266,13 +9563,14 @@ import {
|
|
|
9266
9563
|
DocumentArrowDownIcon,
|
|
9267
9564
|
PresentationChartLineIcon
|
|
9268
9565
|
} from "@heroicons/react/24/outline";
|
|
9269
|
-
import { Fragment as Fragment10, jsx as
|
|
9270
|
-
var VisualizerDropdownContent =
|
|
9566
|
+
import { Fragment as Fragment10, jsx as jsx46, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
9567
|
+
var VisualizerDropdownContent = memo38(
|
|
9271
9568
|
({
|
|
9272
9569
|
isMermaidView,
|
|
9273
9570
|
setIsMermaidView,
|
|
9274
9571
|
animateMessages,
|
|
9275
9572
|
toggleAnimateMessages,
|
|
9573
|
+
hideAnimateMessages = false,
|
|
9276
9574
|
hideChannels,
|
|
9277
9575
|
toggleChannelsVisibility,
|
|
9278
9576
|
hasChannels,
|
|
@@ -9316,19 +9614,19 @@ var VisualizerDropdownContent = memo35(
|
|
|
9316
9614
|
setLayoutStatus("idle");
|
|
9317
9615
|
}
|
|
9318
9616
|
};
|
|
9319
|
-
return /* @__PURE__ */
|
|
9320
|
-
/* @__PURE__ */
|
|
9321
|
-
/* @__PURE__ */
|
|
9322
|
-
/* @__PURE__ */
|
|
9323
|
-
/* @__PURE__ */
|
|
9324
|
-
/* @__PURE__ */
|
|
9617
|
+
return /* @__PURE__ */ jsxs44(Fragment10, { children: [
|
|
9618
|
+
/* @__PURE__ */ jsxs44(DropdownMenu.Sub, { children: [
|
|
9619
|
+
/* @__PURE__ */ jsxs44(DropdownMenu.SubTrigger, { className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2 outline-none", children: [
|
|
9620
|
+
/* @__PURE__ */ jsx46(Grid3x3, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9621
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Canvas" }),
|
|
9622
|
+
/* @__PURE__ */ jsx46(
|
|
9325
9623
|
"svg",
|
|
9326
9624
|
{
|
|
9327
9625
|
className: "w-3 h-3 text-[rgb(var(--ec-page-text-muted))]",
|
|
9328
9626
|
fill: "none",
|
|
9329
9627
|
viewBox: "0 0 24 24",
|
|
9330
9628
|
stroke: "currentColor",
|
|
9331
|
-
children: /* @__PURE__ */
|
|
9629
|
+
children: /* @__PURE__ */ jsx46(
|
|
9332
9630
|
"path",
|
|
9333
9631
|
{
|
|
9334
9632
|
strokeLinecap: "round",
|
|
@@ -9340,27 +9638,27 @@ var VisualizerDropdownContent = memo35(
|
|
|
9340
9638
|
}
|
|
9341
9639
|
)
|
|
9342
9640
|
] }),
|
|
9343
|
-
/* @__PURE__ */
|
|
9641
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs44(
|
|
9344
9642
|
DropdownMenu.SubContent,
|
|
9345
9643
|
{
|
|
9346
9644
|
className: "min-w-[200px] bg-[rgb(var(--ec-card-bg))] rounded-lg shadow-xl border border-[rgb(var(--ec-page-border))] py-1.5 z-[60]",
|
|
9347
9645
|
sideOffset: 8,
|
|
9348
9646
|
alignOffset: -8,
|
|
9349
9647
|
children: [
|
|
9350
|
-
/* @__PURE__ */
|
|
9648
|
+
/* @__PURE__ */ jsxs44(
|
|
9351
9649
|
DropdownMenu.CheckboxItem,
|
|
9352
9650
|
{
|
|
9353
9651
|
checked: isMermaidView,
|
|
9354
9652
|
onCheckedChange: setIsMermaidView,
|
|
9355
9653
|
className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2",
|
|
9356
9654
|
children: [
|
|
9357
|
-
/* @__PURE__ */
|
|
9358
|
-
/* @__PURE__ */
|
|
9359
|
-
/* @__PURE__ */
|
|
9655
|
+
/* @__PURE__ */ jsx46(Code, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9656
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Render as mermaid" }),
|
|
9657
|
+
/* @__PURE__ */ jsx46(
|
|
9360
9658
|
"div",
|
|
9361
9659
|
{
|
|
9362
9660
|
className: `w-7 h-4 rounded-full transition-all duration-200 flex-shrink-0 relative ${isMermaidView ? "bg-[rgb(var(--ec-accent))]" : "bg-[rgb(var(--ec-page-border))]"}`,
|
|
9363
|
-
children: /* @__PURE__ */
|
|
9661
|
+
children: /* @__PURE__ */ jsx46(
|
|
9364
9662
|
"div",
|
|
9365
9663
|
{
|
|
9366
9664
|
className: `absolute top-0.5 w-3 h-3 rounded-full bg-white shadow-sm transition-all duration-200 ${isMermaidView ? "left-3.5" : "left-0.5"}`
|
|
@@ -9371,45 +9669,47 @@ var VisualizerDropdownContent = memo35(
|
|
|
9371
9669
|
]
|
|
9372
9670
|
}
|
|
9373
9671
|
),
|
|
9374
|
-
/* @__PURE__ */
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9672
|
+
!hideAnimateMessages && /* @__PURE__ */ jsxs44(Fragment10, { children: [
|
|
9673
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9674
|
+
/* @__PURE__ */ jsxs44(
|
|
9675
|
+
DropdownMenu.CheckboxItem,
|
|
9676
|
+
{
|
|
9677
|
+
checked: animateMessages,
|
|
9678
|
+
onCheckedChange: toggleAnimateMessages,
|
|
9679
|
+
className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2",
|
|
9680
|
+
children: [
|
|
9681
|
+
/* @__PURE__ */ jsx46(Zap5, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9682
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Simulate Messages" }),
|
|
9683
|
+
/* @__PURE__ */ jsx46(
|
|
9684
|
+
"div",
|
|
9685
|
+
{
|
|
9686
|
+
className: `w-7 h-4 rounded-full transition-all duration-200 flex-shrink-0 relative ${animateMessages ? "bg-[rgb(var(--ec-accent))]" : "bg-[rgb(var(--ec-page-border))]"}`,
|
|
9687
|
+
children: /* @__PURE__ */ jsx46(
|
|
9688
|
+
"div",
|
|
9689
|
+
{
|
|
9690
|
+
className: `absolute top-0.5 w-3 h-3 rounded-full bg-white shadow-sm transition-all duration-200 ${animateMessages ? "left-3.5" : "left-0.5"}`
|
|
9691
|
+
}
|
|
9692
|
+
)
|
|
9693
|
+
}
|
|
9694
|
+
)
|
|
9695
|
+
]
|
|
9696
|
+
}
|
|
9697
|
+
)
|
|
9698
|
+
] }),
|
|
9699
|
+
hasChannels && /* @__PURE__ */ jsxs44(
|
|
9400
9700
|
DropdownMenu.CheckboxItem,
|
|
9401
9701
|
{
|
|
9402
9702
|
checked: hideChannels,
|
|
9403
9703
|
onCheckedChange: toggleChannelsVisibility,
|
|
9404
9704
|
className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2",
|
|
9405
9705
|
children: [
|
|
9406
|
-
/* @__PURE__ */
|
|
9407
|
-
/* @__PURE__ */
|
|
9408
|
-
/* @__PURE__ */
|
|
9706
|
+
/* @__PURE__ */ jsx46(EyeOff, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9707
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Hide channels" }),
|
|
9708
|
+
/* @__PURE__ */ jsx46(
|
|
9409
9709
|
"div",
|
|
9410
9710
|
{
|
|
9411
9711
|
className: `w-7 h-4 rounded-full transition-all duration-200 flex-shrink-0 relative ${hideChannels ? "bg-[rgb(var(--ec-accent))]" : "bg-[rgb(var(--ec-page-border))]"}`,
|
|
9412
|
-
children: /* @__PURE__ */
|
|
9712
|
+
children: /* @__PURE__ */ jsx46(
|
|
9413
9713
|
"div",
|
|
9414
9714
|
{
|
|
9415
9715
|
className: `absolute top-0.5 w-3 h-3 rounded-full bg-white shadow-sm transition-all duration-200 ${hideChannels ? "left-3.5" : "left-0.5"}`
|
|
@@ -9420,20 +9720,20 @@ var VisualizerDropdownContent = memo35(
|
|
|
9420
9720
|
]
|
|
9421
9721
|
}
|
|
9422
9722
|
),
|
|
9423
|
-
/* @__PURE__ */
|
|
9723
|
+
/* @__PURE__ */ jsxs44(
|
|
9424
9724
|
DropdownMenu.CheckboxItem,
|
|
9425
9725
|
{
|
|
9426
9726
|
checked: showMinimap,
|
|
9427
9727
|
onCheckedChange: setShowMinimap,
|
|
9428
9728
|
className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2",
|
|
9429
9729
|
children: [
|
|
9430
|
-
/* @__PURE__ */
|
|
9431
|
-
/* @__PURE__ */
|
|
9432
|
-
/* @__PURE__ */
|
|
9730
|
+
/* @__PURE__ */ jsx46(Map2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9731
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Show minimap" }),
|
|
9732
|
+
/* @__PURE__ */ jsx46(
|
|
9433
9733
|
"div",
|
|
9434
9734
|
{
|
|
9435
9735
|
className: `w-7 h-4 rounded-full transition-all duration-200 flex-shrink-0 relative ${showMinimap ? "bg-[rgb(var(--ec-accent))]" : "bg-[rgb(var(--ec-page-border))]"}`,
|
|
9436
|
-
children: /* @__PURE__ */
|
|
9736
|
+
children: /* @__PURE__ */ jsx46(
|
|
9437
9737
|
"div",
|
|
9438
9738
|
{
|
|
9439
9739
|
className: `absolute top-0.5 w-3 h-3 rounded-full bg-white shadow-sm transition-all duration-200 ${showMinimap ? "left-3.5" : "left-0.5"}`
|
|
@@ -9444,19 +9744,19 @@ var VisualizerDropdownContent = memo35(
|
|
|
9444
9744
|
]
|
|
9445
9745
|
}
|
|
9446
9746
|
),
|
|
9447
|
-
/* @__PURE__ */
|
|
9448
|
-
/* @__PURE__ */
|
|
9747
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9748
|
+
/* @__PURE__ */ jsxs44(
|
|
9449
9749
|
DropdownMenu.Item,
|
|
9450
9750
|
{
|
|
9451
9751
|
onClick: handleFitView,
|
|
9452
9752
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9453
9753
|
children: [
|
|
9454
|
-
/* @__PURE__ */
|
|
9455
|
-
/* @__PURE__ */
|
|
9754
|
+
/* @__PURE__ */ jsx46(Maximize23, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9755
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Fit to view" })
|
|
9456
9756
|
]
|
|
9457
9757
|
}
|
|
9458
9758
|
),
|
|
9459
|
-
/* @__PURE__ */
|
|
9759
|
+
/* @__PURE__ */ jsxs44(
|
|
9460
9760
|
DropdownMenu.Item,
|
|
9461
9761
|
{
|
|
9462
9762
|
onClick: () => {
|
|
@@ -9470,8 +9770,8 @@ var VisualizerDropdownContent = memo35(
|
|
|
9470
9770
|
},
|
|
9471
9771
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9472
9772
|
children: [
|
|
9473
|
-
/* @__PURE__ */
|
|
9474
|
-
/* @__PURE__ */
|
|
9773
|
+
/* @__PURE__ */ jsx46(Search2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9774
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Find on canvas" })
|
|
9475
9775
|
]
|
|
9476
9776
|
}
|
|
9477
9777
|
)
|
|
@@ -9479,14 +9779,14 @@ var VisualizerDropdownContent = memo35(
|
|
|
9479
9779
|
}
|
|
9480
9780
|
) })
|
|
9481
9781
|
] }),
|
|
9482
|
-
notesCount > 0 && onOpenNotes && /* @__PURE__ */
|
|
9782
|
+
notesCount > 0 && onOpenNotes && /* @__PURE__ */ jsxs44(
|
|
9483
9783
|
DropdownMenu.Item,
|
|
9484
9784
|
{
|
|
9485
9785
|
onClick: onOpenNotes,
|
|
9486
9786
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9487
9787
|
children: [
|
|
9488
|
-
/* @__PURE__ */
|
|
9489
|
-
/* @__PURE__ */
|
|
9788
|
+
/* @__PURE__ */ jsx46(MessageCircle2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9789
|
+
/* @__PURE__ */ jsxs44("span", { className: "flex-1 font-normal", children: [
|
|
9490
9790
|
"View notes (",
|
|
9491
9791
|
notesCount,
|
|
9492
9792
|
")"
|
|
@@ -9494,19 +9794,19 @@ var VisualizerDropdownContent = memo35(
|
|
|
9494
9794
|
]
|
|
9495
9795
|
}
|
|
9496
9796
|
),
|
|
9497
|
-
isDevMode && onSaveLayout && /* @__PURE__ */
|
|
9498
|
-
/* @__PURE__ */
|
|
9499
|
-
/* @__PURE__ */
|
|
9500
|
-
/* @__PURE__ */
|
|
9501
|
-
/* @__PURE__ */
|
|
9502
|
-
/* @__PURE__ */
|
|
9797
|
+
isDevMode && onSaveLayout && /* @__PURE__ */ jsxs44(DropdownMenu.Sub, { children: [
|
|
9798
|
+
/* @__PURE__ */ jsxs44(DropdownMenu.SubTrigger, { className: "flex items-center px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer transition-colors gap-2 outline-none", children: [
|
|
9799
|
+
/* @__PURE__ */ jsx46(Save, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9800
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Layout" }),
|
|
9801
|
+
/* @__PURE__ */ jsx46("span", { className: "text-[10px] text-amber-600 font-medium", children: "DEV" }),
|
|
9802
|
+
/* @__PURE__ */ jsx46(
|
|
9503
9803
|
"svg",
|
|
9504
9804
|
{
|
|
9505
9805
|
className: "w-3 h-3 text-[rgb(var(--ec-page-text-muted))]",
|
|
9506
9806
|
fill: "none",
|
|
9507
9807
|
viewBox: "0 0 24 24",
|
|
9508
9808
|
stroke: "currentColor",
|
|
9509
|
-
children: /* @__PURE__ */
|
|
9809
|
+
children: /* @__PURE__ */ jsx46(
|
|
9510
9810
|
"path",
|
|
9511
9811
|
{
|
|
9512
9812
|
strokeLinecap: "round",
|
|
@@ -9518,34 +9818,34 @@ var VisualizerDropdownContent = memo35(
|
|
|
9518
9818
|
}
|
|
9519
9819
|
)
|
|
9520
9820
|
] }),
|
|
9521
|
-
/* @__PURE__ */
|
|
9821
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs44(
|
|
9522
9822
|
DropdownMenu.SubContent,
|
|
9523
9823
|
{
|
|
9524
9824
|
className: "min-w-[180px] bg-[rgb(var(--ec-card-bg))] rounded-lg shadow-xl border border-[rgb(var(--ec-page-border))] py-1.5 z-[60]",
|
|
9525
9825
|
sideOffset: 8,
|
|
9526
9826
|
alignOffset: -8,
|
|
9527
9827
|
children: [
|
|
9528
|
-
/* @__PURE__ */
|
|
9828
|
+
/* @__PURE__ */ jsxs44(
|
|
9529
9829
|
DropdownMenu.Item,
|
|
9530
9830
|
{
|
|
9531
9831
|
onClick: handleSaveLayout,
|
|
9532
9832
|
disabled: layoutStatus !== "idle",
|
|
9533
9833
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
9534
9834
|
children: [
|
|
9535
|
-
layoutStatus === "saving" ? /* @__PURE__ */
|
|
9536
|
-
/* @__PURE__ */
|
|
9835
|
+
layoutStatus === "saving" ? /* @__PURE__ */ jsx46(Loader2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 animate-spin" }) : /* @__PURE__ */ jsx46(Save, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9836
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: layoutStatus === "saving" ? "Saving..." : "Save Layout" })
|
|
9537
9837
|
]
|
|
9538
9838
|
}
|
|
9539
9839
|
),
|
|
9540
|
-
/* @__PURE__ */
|
|
9840
|
+
/* @__PURE__ */ jsxs44(
|
|
9541
9841
|
DropdownMenu.Item,
|
|
9542
9842
|
{
|
|
9543
9843
|
onClick: handleResetLayout,
|
|
9544
9844
|
disabled: layoutStatus !== "idle",
|
|
9545
9845
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
9546
9846
|
children: [
|
|
9547
|
-
layoutStatus === "resetting" ? /* @__PURE__ */
|
|
9548
|
-
/* @__PURE__ */
|
|
9847
|
+
layoutStatus === "resetting" ? /* @__PURE__ */ jsx46(Loader2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 animate-spin" }) : /* @__PURE__ */ jsx46(RotateCcw, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9848
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: layoutStatus === "resetting" ? "Resetting..." : "Reset Layout" })
|
|
9549
9849
|
]
|
|
9550
9850
|
}
|
|
9551
9851
|
)
|
|
@@ -9553,75 +9853,75 @@ var VisualizerDropdownContent = memo35(
|
|
|
9553
9853
|
}
|
|
9554
9854
|
) })
|
|
9555
9855
|
] }),
|
|
9556
|
-
isChatEnabled && /* @__PURE__ */
|
|
9557
|
-
/* @__PURE__ */
|
|
9558
|
-
/* @__PURE__ */
|
|
9856
|
+
isChatEnabled && /* @__PURE__ */ jsxs44(Fragment10, { children: [
|
|
9857
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9858
|
+
/* @__PURE__ */ jsxs44(
|
|
9559
9859
|
DropdownMenu.Item,
|
|
9560
9860
|
{
|
|
9561
9861
|
onClick: openChat,
|
|
9562
9862
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9563
9863
|
children: [
|
|
9564
|
-
/* @__PURE__ */
|
|
9565
|
-
/* @__PURE__ */
|
|
9864
|
+
/* @__PURE__ */ jsx46(Sparkles, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9865
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Ask a question" })
|
|
9566
9866
|
]
|
|
9567
9867
|
}
|
|
9568
9868
|
)
|
|
9569
9869
|
] }),
|
|
9570
|
-
/* @__PURE__ */
|
|
9571
|
-
/* @__PURE__ */
|
|
9870
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9871
|
+
/* @__PURE__ */ jsxs44(
|
|
9572
9872
|
DropdownMenu.Item,
|
|
9573
9873
|
{
|
|
9574
9874
|
onClick: handleCopyArchitectureCode,
|
|
9575
9875
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9576
9876
|
children: [
|
|
9577
|
-
/* @__PURE__ */
|
|
9578
|
-
/* @__PURE__ */
|
|
9877
|
+
/* @__PURE__ */ jsx46(Code, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9878
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Copy as mermaid" })
|
|
9579
9879
|
]
|
|
9580
9880
|
}
|
|
9581
9881
|
),
|
|
9582
|
-
/* @__PURE__ */
|
|
9882
|
+
/* @__PURE__ */ jsxs44(
|
|
9583
9883
|
DropdownMenu.Item,
|
|
9584
9884
|
{
|
|
9585
9885
|
onClick: handleExportVisual,
|
|
9586
9886
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9587
9887
|
children: [
|
|
9588
|
-
/* @__PURE__ */
|
|
9589
|
-
/* @__PURE__ */
|
|
9888
|
+
/* @__PURE__ */ jsx46(DocumentArrowDownIcon, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9889
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Export image" })
|
|
9590
9890
|
]
|
|
9591
9891
|
}
|
|
9592
9892
|
),
|
|
9593
|
-
/* @__PURE__ */
|
|
9893
|
+
/* @__PURE__ */ jsxs44(
|
|
9594
9894
|
DropdownMenu.Item,
|
|
9595
9895
|
{
|
|
9596
9896
|
onClick: () => setIsShareModalOpen(true),
|
|
9597
9897
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9598
9898
|
children: [
|
|
9599
|
-
/* @__PURE__ */
|
|
9600
|
-
/* @__PURE__ */
|
|
9899
|
+
/* @__PURE__ */ jsx46(Share2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9900
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Share Link" })
|
|
9601
9901
|
]
|
|
9602
9902
|
}
|
|
9603
9903
|
),
|
|
9604
|
-
/* @__PURE__ */
|
|
9605
|
-
/* @__PURE__ */
|
|
9904
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9905
|
+
/* @__PURE__ */ jsxs44(
|
|
9606
9906
|
DropdownMenu.Item,
|
|
9607
9907
|
{
|
|
9608
9908
|
onClick: toggleFullScreen,
|
|
9609
9909
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9610
9910
|
children: [
|
|
9611
|
-
/* @__PURE__ */
|
|
9612
|
-
/* @__PURE__ */
|
|
9911
|
+
/* @__PURE__ */ jsx46(PresentationChartLineIcon, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9912
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Start Presentation" })
|
|
9613
9913
|
]
|
|
9614
9914
|
}
|
|
9615
9915
|
),
|
|
9616
|
-
/* @__PURE__ */
|
|
9617
|
-
/* @__PURE__ */
|
|
9916
|
+
/* @__PURE__ */ jsx46(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
9917
|
+
/* @__PURE__ */ jsxs44(
|
|
9618
9918
|
DropdownMenu.Item,
|
|
9619
9919
|
{
|
|
9620
9920
|
onClick: openStudioModal,
|
|
9621
9921
|
className: "px-3 py-2 text-xs text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-accent-subtle)/0.3)] cursor-pointer flex items-center gap-2 transition-colors",
|
|
9622
9922
|
children: [
|
|
9623
|
-
/* @__PURE__ */
|
|
9624
|
-
/* @__PURE__ */
|
|
9923
|
+
/* @__PURE__ */ jsx46(ExternalLink, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
9924
|
+
/* @__PURE__ */ jsx46("span", { className: "flex-1 font-normal", children: "Open in EventCatalog Studio" })
|
|
9625
9925
|
]
|
|
9626
9926
|
}
|
|
9627
9927
|
)
|
|
@@ -9632,30 +9932,30 @@ VisualizerDropdownContent.displayName = "VisualizerDropdownContent";
|
|
|
9632
9932
|
var VisualizerDropdownContent_default = VisualizerDropdownContent;
|
|
9633
9933
|
|
|
9634
9934
|
// src/components/NodeContextMenu.tsx
|
|
9635
|
-
import { memo as
|
|
9935
|
+
import { memo as memo39 } from "react";
|
|
9636
9936
|
import * as ContextMenu5 from "@radix-ui/react-context-menu";
|
|
9637
|
-
import { Fragment as Fragment11, jsx as
|
|
9638
|
-
var NodeContextMenu_default =
|
|
9937
|
+
import { Fragment as Fragment11, jsx as jsx47, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
9938
|
+
var NodeContextMenu_default = memo39(function NodeContextMenu({
|
|
9639
9939
|
items,
|
|
9640
9940
|
children
|
|
9641
9941
|
}) {
|
|
9642
9942
|
const portalContainer = usePortalContainer();
|
|
9643
|
-
if (!items || items.length === 0) return /* @__PURE__ */
|
|
9644
|
-
return /* @__PURE__ */
|
|
9645
|
-
/* @__PURE__ */
|
|
9646
|
-
/* @__PURE__ */
|
|
9943
|
+
if (!items || items.length === 0) return /* @__PURE__ */ jsx47(Fragment11, { children });
|
|
9944
|
+
return /* @__PURE__ */ jsxs45(ContextMenu5.Root, { children: [
|
|
9945
|
+
/* @__PURE__ */ jsx47(ContextMenu5.Trigger, { children }),
|
|
9946
|
+
/* @__PURE__ */ jsx47(ContextMenu5.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx47(
|
|
9647
9947
|
ContextMenu5.Content,
|
|
9648
9948
|
{
|
|
9649
9949
|
className: "min-w-[220px] bg-white rounded-md p-1 shadow-md border border-gray-200 z-50",
|
|
9650
9950
|
onClick: (e) => e.stopPropagation(),
|
|
9651
|
-
children: items.map((item, index) => /* @__PURE__ */
|
|
9652
|
-
item.separator && index > 0 && /* @__PURE__ */
|
|
9653
|
-
/* @__PURE__ */
|
|
9951
|
+
children: items.map((item, index) => /* @__PURE__ */ jsxs45("div", { children: [
|
|
9952
|
+
item.separator && index > 0 && /* @__PURE__ */ jsx47(ContextMenu5.Separator, { className: "h-[1px] bg-gray-200 m-1" }),
|
|
9953
|
+
/* @__PURE__ */ jsx47(
|
|
9654
9954
|
ContextMenu5.Item,
|
|
9655
9955
|
{
|
|
9656
9956
|
asChild: true,
|
|
9657
9957
|
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center text-gray-900 hover:text-gray-900 visited:text-gray-900 no-underline hover:no-underline visited:no-underline",
|
|
9658
|
-
children: /* @__PURE__ */
|
|
9958
|
+
children: /* @__PURE__ */ jsx47(
|
|
9659
9959
|
"a",
|
|
9660
9960
|
{
|
|
9661
9961
|
href: item.href,
|
|
@@ -10314,7 +10614,7 @@ import {
|
|
|
10314
10614
|
X,
|
|
10315
10615
|
Locate,
|
|
10316
10616
|
ChevronRight,
|
|
10317
|
-
ServerIcon as
|
|
10617
|
+
ServerIcon as ServerIcon3,
|
|
10318
10618
|
Bot as Bot3,
|
|
10319
10619
|
Zap as Zap6,
|
|
10320
10620
|
MessageSquare as MessageSquare3,
|
|
@@ -10323,16 +10623,16 @@ import {
|
|
|
10323
10623
|
Database as Database6,
|
|
10324
10624
|
Package as Package2,
|
|
10325
10625
|
Globe as Globe5,
|
|
10326
|
-
User as
|
|
10626
|
+
User as User5,
|
|
10327
10627
|
MonitorIcon as MonitorIcon2,
|
|
10328
10628
|
BoxesIcon as BoxesIcon2
|
|
10329
10629
|
} from "lucide-react";
|
|
10330
10630
|
import { useReactFlow as useReactFlow4 } from "@xyflow/react";
|
|
10331
10631
|
import * as Dialog4 from "@radix-ui/react-dialog";
|
|
10332
|
-
import { Fragment as Fragment12, jsx as
|
|
10632
|
+
import { Fragment as Fragment12, jsx as jsx48, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
10333
10633
|
var NODE_TYPE_META = {
|
|
10334
|
-
service: { icon:
|
|
10335
|
-
services: { icon:
|
|
10634
|
+
service: { icon: ServerIcon3, color: "#ec4899", label: "Service" },
|
|
10635
|
+
services: { icon: ServerIcon3, color: "#ec4899", label: "Service" },
|
|
10336
10636
|
agent: { icon: Bot3, color: "#0ea5e9", label: "Agent" },
|
|
10337
10637
|
agents: { icon: Bot3, color: "#0ea5e9", label: "Agent" },
|
|
10338
10638
|
event: { icon: Zap6, color: "#f97316", label: "Event" },
|
|
@@ -10346,7 +10646,7 @@ var NODE_TYPE_META = {
|
|
|
10346
10646
|
data: { icon: Database6, color: "#3b82f6", label: "Data" },
|
|
10347
10647
|
"data-products": { icon: Package2, color: "#6366f1", label: "Data Product" },
|
|
10348
10648
|
externalSystem: { icon: Globe5, color: "#ec4899", label: "External System" },
|
|
10349
|
-
actor: { icon:
|
|
10649
|
+
actor: { icon: User5, color: "#eab308", label: "Actor" },
|
|
10350
10650
|
view: { icon: MonitorIcon2, color: "#8b5cf6", label: "View" },
|
|
10351
10651
|
domain: { icon: BoxesIcon2, color: "#14b8a6", label: "Domain" },
|
|
10352
10652
|
domains: { icon: BoxesIcon2, color: "#14b8a6", label: "Domain" }
|
|
@@ -10437,7 +10737,7 @@ function hashStr2(s) {
|
|
|
10437
10737
|
function Avatar2({ name, size = 28 }) {
|
|
10438
10738
|
const initials = name.split(/\s+/).map((w) => w[0]).join("").toUpperCase().slice(0, 2);
|
|
10439
10739
|
const [c1, c2] = AVATAR_PALETTES2[hashStr2(name) % AVATAR_PALETTES2.length];
|
|
10440
|
-
return /* @__PURE__ */
|
|
10740
|
+
return /* @__PURE__ */ jsx48(
|
|
10441
10741
|
"div",
|
|
10442
10742
|
{
|
|
10443
10743
|
style: {
|
|
@@ -10450,7 +10750,7 @@ function Avatar2({ name, size = 28 }) {
|
|
|
10450
10750
|
justifyContent: "center",
|
|
10451
10751
|
flexShrink: 0
|
|
10452
10752
|
},
|
|
10453
|
-
children: /* @__PURE__ */
|
|
10753
|
+
children: /* @__PURE__ */ jsx48(
|
|
10454
10754
|
"span",
|
|
10455
10755
|
{
|
|
10456
10756
|
style: {
|
|
@@ -10469,7 +10769,7 @@ function PriorityBadge({ priority }) {
|
|
|
10469
10769
|
const p = PRIORITY2[priority.toLowerCase()];
|
|
10470
10770
|
if (!p) return null;
|
|
10471
10771
|
const isUrgent = priority === "high" || priority === "critical";
|
|
10472
|
-
return /* @__PURE__ */
|
|
10772
|
+
return /* @__PURE__ */ jsxs46(
|
|
10473
10773
|
"span",
|
|
10474
10774
|
{
|
|
10475
10775
|
style: {
|
|
@@ -10488,7 +10788,7 @@ function PriorityBadge({ priority }) {
|
|
|
10488
10788
|
lineHeight: 1.4
|
|
10489
10789
|
},
|
|
10490
10790
|
children: [
|
|
10491
|
-
isUrgent && /* @__PURE__ */
|
|
10791
|
+
isUrgent && /* @__PURE__ */ jsx48(AlertTriangle2, { style: { width: 9, height: 9 }, strokeWidth: 2.5 }),
|
|
10492
10792
|
p.label
|
|
10493
10793
|
]
|
|
10494
10794
|
}
|
|
@@ -10496,7 +10796,7 @@ function PriorityBadge({ priority }) {
|
|
|
10496
10796
|
}
|
|
10497
10797
|
function NoteCard2({ note, index }) {
|
|
10498
10798
|
const prioStyle = note.priority ? PRIORITY2[note.priority.toLowerCase()] : null;
|
|
10499
|
-
return /* @__PURE__ */
|
|
10799
|
+
return /* @__PURE__ */ jsxs46(
|
|
10500
10800
|
"div",
|
|
10501
10801
|
{
|
|
10502
10802
|
style: {
|
|
@@ -10508,7 +10808,7 @@ function NoteCard2({ note, index }) {
|
|
|
10508
10808
|
boxShadow: "0 1px 3px rgba(0,0,0,0.04)"
|
|
10509
10809
|
},
|
|
10510
10810
|
children: [
|
|
10511
|
-
prioStyle && /* @__PURE__ */
|
|
10811
|
+
prioStyle && /* @__PURE__ */ jsx48(
|
|
10512
10812
|
"div",
|
|
10513
10813
|
{
|
|
10514
10814
|
style: {
|
|
@@ -10522,7 +10822,7 @@ function NoteCard2({ note, index }) {
|
|
|
10522
10822
|
}
|
|
10523
10823
|
}
|
|
10524
10824
|
),
|
|
10525
|
-
/* @__PURE__ */
|
|
10825
|
+
/* @__PURE__ */ jsxs46(
|
|
10526
10826
|
"div",
|
|
10527
10827
|
{
|
|
10528
10828
|
style: {
|
|
@@ -10532,7 +10832,7 @@ function NoteCard2({ note, index }) {
|
|
|
10532
10832
|
marginBottom: 8
|
|
10533
10833
|
},
|
|
10534
10834
|
children: [
|
|
10535
|
-
note.author ? /* @__PURE__ */
|
|
10835
|
+
note.author ? /* @__PURE__ */ jsx48(Avatar2, { name: note.author, size: 24 }) : /* @__PURE__ */ jsx48(
|
|
10536
10836
|
"div",
|
|
10537
10837
|
{
|
|
10538
10838
|
style: {
|
|
@@ -10546,10 +10846,10 @@ function NoteCard2({ note, index }) {
|
|
|
10546
10846
|
justifyContent: "center",
|
|
10547
10847
|
flexShrink: 0
|
|
10548
10848
|
},
|
|
10549
|
-
children: /* @__PURE__ */
|
|
10849
|
+
children: /* @__PURE__ */ jsx48("span", { style: { fontSize: 10, fontWeight: 700, color: AMBER2[700] }, children: index + 1 })
|
|
10550
10850
|
}
|
|
10551
10851
|
),
|
|
10552
|
-
/* @__PURE__ */
|
|
10852
|
+
/* @__PURE__ */ jsx48("div", { style: { flex: 1, minWidth: 0 }, children: note.author && /* @__PURE__ */ jsx48(
|
|
10553
10853
|
"span",
|
|
10554
10854
|
{
|
|
10555
10855
|
style: {
|
|
@@ -10561,11 +10861,11 @@ function NoteCard2({ note, index }) {
|
|
|
10561
10861
|
children: note.author
|
|
10562
10862
|
}
|
|
10563
10863
|
) }),
|
|
10564
|
-
note.priority && /* @__PURE__ */
|
|
10864
|
+
note.priority && /* @__PURE__ */ jsx48(PriorityBadge, { priority: note.priority })
|
|
10565
10865
|
]
|
|
10566
10866
|
}
|
|
10567
10867
|
),
|
|
10568
|
-
/* @__PURE__ */
|
|
10868
|
+
/* @__PURE__ */ jsx48(
|
|
10569
10869
|
"p",
|
|
10570
10870
|
{
|
|
10571
10871
|
style: {
|
|
@@ -10609,7 +10909,7 @@ function AllNotesModal({
|
|
|
10609
10909
|
[nodes, setCenter, getZoom, onClose]
|
|
10610
10910
|
);
|
|
10611
10911
|
if (totalNotes === 0) return null;
|
|
10612
|
-
return /* @__PURE__ */
|
|
10912
|
+
return /* @__PURE__ */ jsx48(
|
|
10613
10913
|
Dialog4.Root,
|
|
10614
10914
|
{
|
|
10615
10915
|
open: isOpen,
|
|
@@ -10619,13 +10919,13 @@ function AllNotesModal({
|
|
|
10619
10919
|
setSelectedIdx(0);
|
|
10620
10920
|
}
|
|
10621
10921
|
},
|
|
10622
|
-
children: /* @__PURE__ */
|
|
10922
|
+
children: /* @__PURE__ */ jsx48(Dialog4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs46(
|
|
10623
10923
|
"div",
|
|
10624
10924
|
{
|
|
10625
10925
|
className: "fixed inset-0 z-[99999]",
|
|
10626
10926
|
style: { isolation: "isolate" },
|
|
10627
10927
|
children: [
|
|
10628
|
-
/* @__PURE__ */
|
|
10928
|
+
/* @__PURE__ */ jsx48(
|
|
10629
10929
|
Dialog4.Overlay,
|
|
10630
10930
|
{
|
|
10631
10931
|
style: {
|
|
@@ -10636,7 +10936,7 @@ function AllNotesModal({
|
|
|
10636
10936
|
}
|
|
10637
10937
|
}
|
|
10638
10938
|
),
|
|
10639
|
-
/* @__PURE__ */
|
|
10939
|
+
/* @__PURE__ */ jsxs46(
|
|
10640
10940
|
Dialog4.Content,
|
|
10641
10941
|
{
|
|
10642
10942
|
style: {
|
|
@@ -10657,7 +10957,7 @@ function AllNotesModal({
|
|
|
10657
10957
|
outline: "none"
|
|
10658
10958
|
},
|
|
10659
10959
|
children: [
|
|
10660
|
-
/* @__PURE__ */
|
|
10960
|
+
/* @__PURE__ */ jsxs46(
|
|
10661
10961
|
"div",
|
|
10662
10962
|
{
|
|
10663
10963
|
style: {
|
|
@@ -10669,7 +10969,7 @@ function AllNotesModal({
|
|
|
10669
10969
|
flexShrink: 0
|
|
10670
10970
|
},
|
|
10671
10971
|
children: [
|
|
10672
|
-
/* @__PURE__ */
|
|
10972
|
+
/* @__PURE__ */ jsx48(
|
|
10673
10973
|
"div",
|
|
10674
10974
|
{
|
|
10675
10975
|
style: {
|
|
@@ -10682,7 +10982,7 @@ function AllNotesModal({
|
|
|
10682
10982
|
justifyContent: "center",
|
|
10683
10983
|
flexShrink: 0
|
|
10684
10984
|
},
|
|
10685
|
-
children: /* @__PURE__ */
|
|
10985
|
+
children: /* @__PURE__ */ jsx48(
|
|
10686
10986
|
MessageCircle3,
|
|
10687
10987
|
{
|
|
10688
10988
|
style: { width: 16, height: 16, color: "#64748b" },
|
|
@@ -10691,8 +10991,8 @@ function AllNotesModal({
|
|
|
10691
10991
|
)
|
|
10692
10992
|
}
|
|
10693
10993
|
),
|
|
10694
|
-
/* @__PURE__ */
|
|
10695
|
-
/* @__PURE__ */
|
|
10994
|
+
/* @__PURE__ */ jsxs46("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
10995
|
+
/* @__PURE__ */ jsx48(
|
|
10696
10996
|
Dialog4.Title,
|
|
10697
10997
|
{
|
|
10698
10998
|
style: {
|
|
@@ -10705,7 +11005,7 @@ function AllNotesModal({
|
|
|
10705
11005
|
children: "Notes"
|
|
10706
11006
|
}
|
|
10707
11007
|
),
|
|
10708
|
-
/* @__PURE__ */
|
|
11008
|
+
/* @__PURE__ */ jsxs46(
|
|
10709
11009
|
Dialog4.Description,
|
|
10710
11010
|
{
|
|
10711
11011
|
style: {
|
|
@@ -10727,7 +11027,7 @@ function AllNotesModal({
|
|
|
10727
11027
|
}
|
|
10728
11028
|
)
|
|
10729
11029
|
] }),
|
|
10730
|
-
/* @__PURE__ */
|
|
11030
|
+
/* @__PURE__ */ jsx48(Dialog4.Close, { asChild: true, children: /* @__PURE__ */ jsx48(
|
|
10731
11031
|
"button",
|
|
10732
11032
|
{
|
|
10733
11033
|
style: {
|
|
@@ -10744,14 +11044,14 @@ function AllNotesModal({
|
|
|
10744
11044
|
flexShrink: 0
|
|
10745
11045
|
},
|
|
10746
11046
|
"aria-label": "Close",
|
|
10747
|
-
children: /* @__PURE__ */
|
|
11047
|
+
children: /* @__PURE__ */ jsx48(X, { style: { width: 15, height: 15 } })
|
|
10748
11048
|
}
|
|
10749
11049
|
) })
|
|
10750
11050
|
]
|
|
10751
11051
|
}
|
|
10752
11052
|
),
|
|
10753
|
-
/* @__PURE__ */
|
|
10754
|
-
/* @__PURE__ */
|
|
11053
|
+
/* @__PURE__ */ jsxs46("div", { style: { display: "flex", flex: 1, overflow: "hidden" }, children: [
|
|
11054
|
+
/* @__PURE__ */ jsx48(
|
|
10755
11055
|
"div",
|
|
10756
11056
|
{
|
|
10757
11057
|
style: {
|
|
@@ -10766,7 +11066,7 @@ function AllNotesModal({
|
|
|
10766
11066
|
const meta = getNodeMeta(group.nodeType);
|
|
10767
11067
|
const IconComp = meta?.icon || MessageCircle3;
|
|
10768
11068
|
const iconColor = meta?.color || "#64748b";
|
|
10769
|
-
return /* @__PURE__ */
|
|
11069
|
+
return /* @__PURE__ */ jsxs46(
|
|
10770
11070
|
"button",
|
|
10771
11071
|
{
|
|
10772
11072
|
onClick: () => setSelectedIdx(i),
|
|
@@ -10785,7 +11085,7 @@ function AllNotesModal({
|
|
|
10785
11085
|
transition: "background 0.1s"
|
|
10786
11086
|
},
|
|
10787
11087
|
children: [
|
|
10788
|
-
/* @__PURE__ */
|
|
11088
|
+
/* @__PURE__ */ jsx48(
|
|
10789
11089
|
"div",
|
|
10790
11090
|
{
|
|
10791
11091
|
style: {
|
|
@@ -10799,7 +11099,7 @@ function AllNotesModal({
|
|
|
10799
11099
|
flexShrink: 0,
|
|
10800
11100
|
transition: "background 0.15s"
|
|
10801
11101
|
},
|
|
10802
|
-
children: /* @__PURE__ */
|
|
11102
|
+
children: /* @__PURE__ */ jsx48(
|
|
10803
11103
|
IconComp,
|
|
10804
11104
|
{
|
|
10805
11105
|
style: {
|
|
@@ -10813,8 +11113,8 @@ function AllNotesModal({
|
|
|
10813
11113
|
)
|
|
10814
11114
|
}
|
|
10815
11115
|
),
|
|
10816
|
-
/* @__PURE__ */
|
|
10817
|
-
/* @__PURE__ */
|
|
11116
|
+
/* @__PURE__ */ jsxs46("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
11117
|
+
/* @__PURE__ */ jsx48(
|
|
10818
11118
|
"div",
|
|
10819
11119
|
{
|
|
10820
11120
|
style: {
|
|
@@ -10829,7 +11129,7 @@ function AllNotesModal({
|
|
|
10829
11129
|
children: group.name
|
|
10830
11130
|
}
|
|
10831
11131
|
),
|
|
10832
|
-
/* @__PURE__ */
|
|
11132
|
+
/* @__PURE__ */ jsxs46(
|
|
10833
11133
|
"div",
|
|
10834
11134
|
{
|
|
10835
11135
|
style: {
|
|
@@ -10852,7 +11152,7 @@ function AllNotesModal({
|
|
|
10852
11152
|
}
|
|
10853
11153
|
)
|
|
10854
11154
|
] }),
|
|
10855
|
-
/* @__PURE__ */
|
|
11155
|
+
/* @__PURE__ */ jsx48(
|
|
10856
11156
|
ChevronRight,
|
|
10857
11157
|
{
|
|
10858
11158
|
style: {
|
|
@@ -10871,7 +11171,7 @@ function AllNotesModal({
|
|
|
10871
11171
|
})
|
|
10872
11172
|
}
|
|
10873
11173
|
),
|
|
10874
|
-
/* @__PURE__ */
|
|
11174
|
+
/* @__PURE__ */ jsx48(
|
|
10875
11175
|
"div",
|
|
10876
11176
|
{
|
|
10877
11177
|
style: {
|
|
@@ -10880,8 +11180,8 @@ function AllNotesModal({
|
|
|
10880
11180
|
display: "flex",
|
|
10881
11181
|
flexDirection: "column"
|
|
10882
11182
|
},
|
|
10883
|
-
children: selected && /* @__PURE__ */
|
|
10884
|
-
/* @__PURE__ */
|
|
11183
|
+
children: selected && /* @__PURE__ */ jsxs46(Fragment12, { children: [
|
|
11184
|
+
/* @__PURE__ */ jsxs46(
|
|
10885
11185
|
"div",
|
|
10886
11186
|
{
|
|
10887
11187
|
style: {
|
|
@@ -10894,7 +11194,7 @@ function AllNotesModal({
|
|
|
10894
11194
|
background: "#fafbfc"
|
|
10895
11195
|
},
|
|
10896
11196
|
children: [
|
|
10897
|
-
/* @__PURE__ */
|
|
11197
|
+
/* @__PURE__ */ jsxs46(
|
|
10898
11198
|
"div",
|
|
10899
11199
|
{
|
|
10900
11200
|
style: {
|
|
@@ -10907,7 +11207,7 @@ function AllNotesModal({
|
|
|
10907
11207
|
const meta = getNodeMeta(selected.nodeType);
|
|
10908
11208
|
const Icon = meta?.icon || MessageCircle3;
|
|
10909
11209
|
const color = meta?.color || "#64748b";
|
|
10910
|
-
return /* @__PURE__ */
|
|
11210
|
+
return /* @__PURE__ */ jsx48(
|
|
10911
11211
|
"div",
|
|
10912
11212
|
{
|
|
10913
11213
|
style: {
|
|
@@ -10920,7 +11220,7 @@ function AllNotesModal({
|
|
|
10920
11220
|
justifyContent: "center",
|
|
10921
11221
|
flexShrink: 0
|
|
10922
11222
|
},
|
|
10923
|
-
children: /* @__PURE__ */
|
|
11223
|
+
children: /* @__PURE__ */ jsx48(
|
|
10924
11224
|
Icon,
|
|
10925
11225
|
{
|
|
10926
11226
|
style: {
|
|
@@ -10934,8 +11234,8 @@ function AllNotesModal({
|
|
|
10934
11234
|
}
|
|
10935
11235
|
);
|
|
10936
11236
|
})(),
|
|
10937
|
-
/* @__PURE__ */
|
|
10938
|
-
/* @__PURE__ */
|
|
11237
|
+
/* @__PURE__ */ jsxs46("div", { children: [
|
|
11238
|
+
/* @__PURE__ */ jsx48(
|
|
10939
11239
|
"div",
|
|
10940
11240
|
{
|
|
10941
11241
|
style: {
|
|
@@ -10947,7 +11247,7 @@ function AllNotesModal({
|
|
|
10947
11247
|
children: selected.name
|
|
10948
11248
|
}
|
|
10949
11249
|
),
|
|
10950
|
-
/* @__PURE__ */
|
|
11250
|
+
/* @__PURE__ */ jsxs46(
|
|
10951
11251
|
"div",
|
|
10952
11252
|
{
|
|
10953
11253
|
style: {
|
|
@@ -10969,7 +11269,7 @@ function AllNotesModal({
|
|
|
10969
11269
|
]
|
|
10970
11270
|
}
|
|
10971
11271
|
),
|
|
10972
|
-
/* @__PURE__ */
|
|
11272
|
+
/* @__PURE__ */ jsxs46(
|
|
10973
11273
|
"button",
|
|
10974
11274
|
{
|
|
10975
11275
|
onClick: () => handleNavigate(selected.nodeId),
|
|
@@ -10996,7 +11296,7 @@ function AllNotesModal({
|
|
|
10996
11296
|
e.currentTarget.style.color = "#475569";
|
|
10997
11297
|
},
|
|
10998
11298
|
children: [
|
|
10999
|
-
/* @__PURE__ */
|
|
11299
|
+
/* @__PURE__ */ jsx48(Locate, { style: { width: 12, height: 12 } }),
|
|
11000
11300
|
"Find on canvas"
|
|
11001
11301
|
]
|
|
11002
11302
|
}
|
|
@@ -11004,7 +11304,7 @@ function AllNotesModal({
|
|
|
11004
11304
|
]
|
|
11005
11305
|
}
|
|
11006
11306
|
),
|
|
11007
|
-
/* @__PURE__ */
|
|
11307
|
+
/* @__PURE__ */ jsx48(
|
|
11008
11308
|
"div",
|
|
11009
11309
|
{
|
|
11010
11310
|
style: {
|
|
@@ -11015,7 +11315,7 @@ function AllNotesModal({
|
|
|
11015
11315
|
flexDirection: "column",
|
|
11016
11316
|
gap: 10
|
|
11017
11317
|
},
|
|
11018
|
-
children: selected.notes.map((note, i) => /* @__PURE__ */
|
|
11318
|
+
children: selected.notes.map((note, i) => /* @__PURE__ */ jsx48(NoteCard2, { note, index: i }, i))
|
|
11019
11319
|
}
|
|
11020
11320
|
)
|
|
11021
11321
|
] })
|
|
@@ -11034,7 +11334,7 @@ function AllNotesModal({
|
|
|
11034
11334
|
|
|
11035
11335
|
// src/components/NodeGraph.tsx
|
|
11036
11336
|
import dagre3 from "dagre";
|
|
11037
|
-
import { Fragment as Fragment13, jsx as
|
|
11337
|
+
import { Fragment as Fragment13, jsx as jsx49, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
11038
11338
|
var POSITION_CHANGE_THRESHOLD = 1;
|
|
11039
11339
|
var LARGE_GRAPH_NODE_THRESHOLD = 30;
|
|
11040
11340
|
var NODE_ORIGIN = [0.1, 0.1];
|
|
@@ -11054,34 +11354,69 @@ var EXPANDED_WRAPPER_TYPES = /* @__PURE__ */ new Set([
|
|
|
11054
11354
|
"messageGroupExpanded"
|
|
11055
11355
|
]);
|
|
11056
11356
|
var isExpandedWrapper = (type) => type != null && EXPANDED_WRAPPER_TYPES.has(type);
|
|
11057
|
-
var
|
|
11357
|
+
var LEGEND_LABELS = {
|
|
11358
|
+
"context-actor": "Actors"
|
|
11359
|
+
};
|
|
11360
|
+
var getLegendLabel = (key) => LEGEND_LABELS[key] ?? key;
|
|
11361
|
+
var LEGEND_ICONS = {
|
|
11362
|
+
events: { Icon: Zap7, colorClass: "text-orange-600" },
|
|
11363
|
+
agent: { Icon: Bot4, colorClass: "text-sky-600" },
|
|
11364
|
+
agents: { Icon: Bot4, colorClass: "text-sky-600" },
|
|
11365
|
+
agentTool: { Icon: Wrench3, colorClass: "text-violet-600" },
|
|
11366
|
+
"agent-tool": { Icon: Wrench3, colorClass: "text-violet-600" },
|
|
11367
|
+
services: { Icon: ServerIcon4, colorClass: "text-pink-600" },
|
|
11368
|
+
flows: { Icon: Workflow3, colorClass: "text-teal-600" },
|
|
11369
|
+
commands: { Icon: MessageSquare4, colorClass: "text-blue-600" },
|
|
11370
|
+
queries: { Icon: SearchIcon2, colorClass: "text-green-600" },
|
|
11371
|
+
channels: { Icon: ArrowLeftRight, colorClass: "text-gray-600" },
|
|
11372
|
+
externalSystem: { Icon: Globe6, colorClass: "text-pink-600" },
|
|
11373
|
+
systems: { Icon: GroupIcon3, colorClass: "text-purple-600" },
|
|
11374
|
+
system: { Icon: GroupIcon3, colorClass: "text-purple-600" },
|
|
11375
|
+
actor: { Icon: User6, colorClass: "text-yellow-500" },
|
|
11376
|
+
"context-actor": { Icon: User6, colorClass: "text-yellow-500" },
|
|
11377
|
+
data: { Icon: Database7, colorClass: "text-blue-600" },
|
|
11378
|
+
"data-products": { Icon: Boxes, colorClass: "text-indigo-600" },
|
|
11379
|
+
field: { Icon: Box, colorClass: "text-cyan-600" }
|
|
11380
|
+
};
|
|
11381
|
+
var getLegendIcon = (key) => LEGEND_ICONS[key];
|
|
11382
|
+
var LegendPanel = memo40(function LegendPanel2({
|
|
11058
11383
|
legend,
|
|
11059
11384
|
showMinimap,
|
|
11060
11385
|
onLegendClick
|
|
11061
11386
|
}) {
|
|
11062
|
-
return /* @__PURE__ */
|
|
11387
|
+
return /* @__PURE__ */ jsx49(
|
|
11063
11388
|
Panel,
|
|
11064
11389
|
{
|
|
11065
11390
|
position: "bottom-right",
|
|
11066
11391
|
style: showMinimap ? LEGEND_PANEL_STYLE_WITH_MINIMAP : void 0,
|
|
11067
|
-
children: /* @__PURE__ */
|
|
11068
|
-
([key, { count, colorClass, groupId }]) =>
|
|
11069
|
-
|
|
11070
|
-
|
|
11071
|
-
|
|
11072
|
-
|
|
11073
|
-
|
|
11074
|
-
|
|
11075
|
-
|
|
11076
|
-
|
|
11077
|
-
|
|
11078
|
-
|
|
11079
|
-
|
|
11080
|
-
|
|
11081
|
-
|
|
11082
|
-
|
|
11083
|
-
|
|
11084
|
-
|
|
11392
|
+
children: /* @__PURE__ */ jsx49("div", { className: "bg-[rgb(var(--ec-card-bg))] border border-[rgb(var(--ec-page-border))] font-light px-4 text-[12px] shadow-md py-1 rounded-md", children: /* @__PURE__ */ jsx49("ul", { className: "m-0 p-0 ", children: Object.entries(legend).map(
|
|
11393
|
+
([key, { count, colorClass, groupId }]) => {
|
|
11394
|
+
const legendIcon = getLegendIcon(key);
|
|
11395
|
+
return /* @__PURE__ */ jsxs47(
|
|
11396
|
+
"li",
|
|
11397
|
+
{
|
|
11398
|
+
className: "flex space-x-2 items-center text-[10px] cursor-pointer text-[rgb(var(--ec-page-text))] hover:text-[rgb(var(--ec-accent))] hover:underline",
|
|
11399
|
+
onClick: () => onLegendClick(key, groupId),
|
|
11400
|
+
children: [
|
|
11401
|
+
legendIcon ? /* @__PURE__ */ jsx49(
|
|
11402
|
+
legendIcon.Icon,
|
|
11403
|
+
{
|
|
11404
|
+
className: `w-3 h-3 shrink-0 ${legendIcon.colorClass}`,
|
|
11405
|
+
strokeWidth: 2,
|
|
11406
|
+
"aria-hidden": "true"
|
|
11407
|
+
}
|
|
11408
|
+
) : /* @__PURE__ */ jsx49("span", { className: `w-2 h-2 block ${colorClass}` }),
|
|
11409
|
+
/* @__PURE__ */ jsxs47("span", { className: "block capitalize", children: [
|
|
11410
|
+
getLegendLabel(key),
|
|
11411
|
+
" (",
|
|
11412
|
+
count,
|
|
11413
|
+
")"
|
|
11414
|
+
] })
|
|
11415
|
+
]
|
|
11416
|
+
},
|
|
11417
|
+
key
|
|
11418
|
+
);
|
|
11419
|
+
}
|
|
11085
11420
|
) }) })
|
|
11086
11421
|
}
|
|
11087
11422
|
);
|
|
@@ -11178,6 +11513,7 @@ var NodeGraphBuilder = ({
|
|
|
11178
11513
|
isDevMode = false,
|
|
11179
11514
|
resourceKey,
|
|
11180
11515
|
animated,
|
|
11516
|
+
disableMessageAnimation = false,
|
|
11181
11517
|
focusNodeId,
|
|
11182
11518
|
focusRequestId,
|
|
11183
11519
|
fitRequestId,
|
|
@@ -11194,10 +11530,10 @@ var NodeGraphBuilder = ({
|
|
|
11194
11530
|
}, []);
|
|
11195
11531
|
const nodeTypes = useMemo19(() => {
|
|
11196
11532
|
const wrapWithContextMenu = (Component) => {
|
|
11197
|
-
const Wrapped =
|
|
11533
|
+
const Wrapped = memo40((props) => {
|
|
11198
11534
|
const items = props.data?.contextMenu;
|
|
11199
|
-
if (!items?.length) return /* @__PURE__ */
|
|
11200
|
-
return /* @__PURE__ */
|
|
11535
|
+
if (!items?.length) return /* @__PURE__ */ jsx49(Component, { ...props });
|
|
11536
|
+
return /* @__PURE__ */ jsx49(NodeContextMenu_default, { items, children: /* @__PURE__ */ jsx49(Component, { ...props }) });
|
|
11201
11537
|
});
|
|
11202
11538
|
Wrapped.displayName = `WithContextMenu(${Component.displayName || Component.name || "Component"})`;
|
|
11203
11539
|
return Wrapped;
|
|
@@ -11221,6 +11557,8 @@ var NodeGraphBuilder = ({
|
|
|
11221
11557
|
commands: wrapWithContextMenu(CommandNode_default),
|
|
11222
11558
|
domain: wrapWithContextMenu(Domain_default),
|
|
11223
11559
|
domains: wrapWithContextMenu(Domain_default),
|
|
11560
|
+
system: wrapWithContextMenu(System_default),
|
|
11561
|
+
systems: wrapWithContextMenu(System_default),
|
|
11224
11562
|
step: Step_default,
|
|
11225
11563
|
user: User_default,
|
|
11226
11564
|
custom: Custom_default,
|
|
@@ -11231,11 +11569,13 @@ var NodeGraphBuilder = ({
|
|
|
11231
11569
|
data: wrapWithContextMenu(DataNode_default),
|
|
11232
11570
|
view: wrapWithContextMenu(ViewNode_default),
|
|
11233
11571
|
actor: ActorNode_default,
|
|
11572
|
+
"context-actor": ContextActor_default,
|
|
11234
11573
|
container: wrapWithContextMenu(DataNode_default),
|
|
11235
11574
|
"data-product": wrapWithContextMenu(DataProduct_default),
|
|
11236
11575
|
"data-products": wrapWithContextMenu(DataProduct_default),
|
|
11237
11576
|
group: GroupNode_default,
|
|
11238
|
-
|
|
11577
|
+
"system-group": SystemGroupNode_default,
|
|
11578
|
+
note: memo40((props) => /* @__PURE__ */ jsx49(NoteNode_default, { ...props, readOnly: true })),
|
|
11239
11579
|
field: wrapWithContextMenu(FieldNode_default),
|
|
11240
11580
|
messageGroup: MessageGroupNode_default,
|
|
11241
11581
|
messageGroupExpanded: MessageGroupExpandedNode_default,
|
|
@@ -11709,6 +12049,9 @@ var NodeGraphBuilder = ({
|
|
|
11709
12049
|
const isExpandableFlow = (node.type === "flows" || node.type === "flow") && Array.isArray(node.data?.expandedNodes) && node.data.expandedNodes.length > 0;
|
|
11710
12050
|
if ((isFlow || isEntityVisualizer) && !isExpandableFlow) return;
|
|
11711
12051
|
if (node.type === "domain" || node.type === "domains") return;
|
|
12052
|
+
if (node.type === "system" || node.type === "systems") return;
|
|
12053
|
+
if (node.type === "context-actor") return;
|
|
12054
|
+
if (node.type === "system-group") return;
|
|
11712
12055
|
if (isExpandedWrapper(node.type)) return;
|
|
11713
12056
|
if (node.type === "messageGroup") {
|
|
11714
12057
|
const groupData = node.data;
|
|
@@ -12104,6 +12447,10 @@ var NodeGraphBuilder = ({
|
|
|
12104
12447
|
fitView({ duration: 400, padding: 0.2 });
|
|
12105
12448
|
}, [fitView]);
|
|
12106
12449
|
useEffect9(() => {
|
|
12450
|
+
if (disableMessageAnimation) {
|
|
12451
|
+
setAnimateMessages(false);
|
|
12452
|
+
return;
|
|
12453
|
+
}
|
|
12107
12454
|
if (animated !== void 0) {
|
|
12108
12455
|
setAnimateMessages(animated);
|
|
12109
12456
|
return;
|
|
@@ -12124,7 +12471,7 @@ var NodeGraphBuilder = ({
|
|
|
12124
12471
|
setAnimateMessages(initialNodes.length <= LARGE_GRAPH_NODE_THRESHOLD);
|
|
12125
12472
|
}
|
|
12126
12473
|
}
|
|
12127
|
-
}, [animated, initialNodes.length]);
|
|
12474
|
+
}, [animated, disableMessageAnimation, initialNodes.length]);
|
|
12128
12475
|
useEffect9(() => {
|
|
12129
12476
|
setEdges(
|
|
12130
12477
|
(eds) => eds.map((edge) => {
|
|
@@ -12371,7 +12718,10 @@ var NodeGraphBuilder = ({
|
|
|
12371
12718
|
queries: "bg-green-600",
|
|
12372
12719
|
channels: "bg-gray-600",
|
|
12373
12720
|
externalSystem: "bg-pink-600",
|
|
12721
|
+
systems: "bg-purple-600",
|
|
12722
|
+
system: "bg-purple-600",
|
|
12374
12723
|
actor: "bg-yellow-500",
|
|
12724
|
+
"context-actor": "bg-yellow-500",
|
|
12375
12725
|
step: "bg-gray-700",
|
|
12376
12726
|
data: "bg-blue-600",
|
|
12377
12727
|
"data-products": "bg-indigo-600",
|
|
@@ -12534,7 +12884,7 @@ var NodeGraphBuilder = ({
|
|
|
12534
12884
|
const isCompactMenuButton = !title;
|
|
12535
12885
|
const menuButtonClassName = isCompactMenuButton ? "h-9 w-9 p-0 bg-[rgb(var(--ec-card-bg))] hover:bg-[rgb(var(--ec-accent-subtle))] border border-[rgb(var(--ec-page-border))] rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[rgb(var(--ec-accent))] flex items-center justify-center transition-colors duration-150 hover:border-[rgb(var(--ec-accent)/0.3)] group" : "py-2.5 px-4 bg-[rgb(var(--ec-card-bg))] hover:bg-[rgb(var(--ec-accent-subtle))] border border-[rgb(var(--ec-page-border))] rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[rgb(var(--ec-accent))] flex items-center gap-3 transition-colors duration-150 hover:border-[rgb(var(--ec-accent)/0.3)] group whitespace-nowrap";
|
|
12536
12886
|
const menuIconClassName = isCompactMenuButton ? "h-4 w-4 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 group-hover:text-[rgb(var(--ec-accent))] transition-colors duration-150" : "h-5 w-5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 group-hover:text-[rgb(var(--ec-accent))] transition-colors duration-150";
|
|
12537
|
-
return /* @__PURE__ */
|
|
12887
|
+
return /* @__PURE__ */ jsx49(
|
|
12538
12888
|
"div",
|
|
12539
12889
|
{
|
|
12540
12890
|
ref: reactFlowWrapperRef,
|
|
@@ -12546,22 +12896,22 @@ var NodeGraphBuilder = ({
|
|
|
12546
12896
|
display: "flex",
|
|
12547
12897
|
flexDirection: "column"
|
|
12548
12898
|
},
|
|
12549
|
-
children: /* @__PURE__ */
|
|
12550
|
-
isMermaidView ? /* @__PURE__ */
|
|
12551
|
-
/* @__PURE__ */
|
|
12552
|
-
/* @__PURE__ */
|
|
12553
|
-
/* @__PURE__ */
|
|
12899
|
+
children: /* @__PURE__ */ jsxs47(PortalContainerProvider, { value: reactFlowWrapperRef.current, children: [
|
|
12900
|
+
isMermaidView ? /* @__PURE__ */ jsxs47(Fragment13, { children: [
|
|
12901
|
+
/* @__PURE__ */ jsxs47("div", { className: "w-full pr-6 flex space-x-2 justify-between items-center bg-[rgb(var(--ec-page-bg))] border-b border-[rgb(var(--ec-page-border))] p-4", children: [
|
|
12902
|
+
/* @__PURE__ */ jsx49("div", { className: "flex space-x-2 ml-4", children: /* @__PURE__ */ jsxs47(DropdownMenu2.Root, { children: [
|
|
12903
|
+
/* @__PURE__ */ jsx49(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs47(
|
|
12554
12904
|
"button",
|
|
12555
12905
|
{
|
|
12556
12906
|
className: menuButtonClassName,
|
|
12557
12907
|
"aria-label": "Open menu",
|
|
12558
12908
|
children: [
|
|
12559
|
-
title && /* @__PURE__ */
|
|
12560
|
-
/* @__PURE__ */
|
|
12909
|
+
title && /* @__PURE__ */ jsx49("span", { className: "text-base font-medium text-[rgb(var(--ec-page-text))] leading-tight", children: title }),
|
|
12910
|
+
/* @__PURE__ */ jsx49(MoreVertical, { className: menuIconClassName })
|
|
12561
12911
|
]
|
|
12562
12912
|
}
|
|
12563
12913
|
) }),
|
|
12564
|
-
/* @__PURE__ */
|
|
12914
|
+
/* @__PURE__ */ jsx49(DropdownMenu2.Portal, { container: reactFlowWrapperRef.current, children: /* @__PURE__ */ jsxs47(
|
|
12565
12915
|
DropdownMenu2.Content,
|
|
12566
12916
|
{
|
|
12567
12917
|
className: "min-w-56 bg-[rgb(var(--ec-page-bg))] border border-[rgb(var(--ec-page-border))] rounded-lg shadow-xl z-50 py-1.5 animate-in fade-in zoom-in-95 duration-200",
|
|
@@ -12569,14 +12919,15 @@ var NodeGraphBuilder = ({
|
|
|
12569
12919
|
align: "end",
|
|
12570
12920
|
alignOffset: -180,
|
|
12571
12921
|
children: [
|
|
12572
|
-
/* @__PURE__ */
|
|
12573
|
-
/* @__PURE__ */
|
|
12922
|
+
/* @__PURE__ */ jsx49(DropdownMenu2.Arrow, { className: "fill-[rgb(var(--ec-page-bg))] stroke-[rgb(var(--ec-page-border))] stroke-1" }),
|
|
12923
|
+
/* @__PURE__ */ jsx49(
|
|
12574
12924
|
VisualizerDropdownContent_default,
|
|
12575
12925
|
{
|
|
12576
12926
|
isMermaidView,
|
|
12577
12927
|
setIsMermaidView,
|
|
12578
12928
|
animateMessages,
|
|
12579
12929
|
toggleAnimateMessages,
|
|
12930
|
+
hideAnimateMessages: disableMessageAnimation,
|
|
12580
12931
|
hideChannels,
|
|
12581
12932
|
toggleChannelsVisibility,
|
|
12582
12933
|
hasChannels,
|
|
@@ -12600,7 +12951,7 @@ var NodeGraphBuilder = ({
|
|
|
12600
12951
|
}
|
|
12601
12952
|
) })
|
|
12602
12953
|
] }) }),
|
|
12603
|
-
mode === "full" && showSearch && /* @__PURE__ */
|
|
12954
|
+
mode === "full" && showSearch && /* @__PURE__ */ jsx49("div", { className: "flex justify-end items-center gap-2", children: !isMermaidView && /* @__PURE__ */ jsx49("div", { className: "w-96", children: /* @__PURE__ */ jsx49(
|
|
12604
12955
|
VisualiserSearch_default,
|
|
12605
12956
|
{
|
|
12606
12957
|
ref: searchRef,
|
|
@@ -12610,7 +12961,7 @@ var NodeGraphBuilder = ({
|
|
|
12610
12961
|
}
|
|
12611
12962
|
) }) })
|
|
12612
12963
|
] }),
|
|
12613
|
-
/* @__PURE__ */
|
|
12964
|
+
/* @__PURE__ */ jsx49("div", { className: "flex-1 overflow-hidden relative", children: /* @__PURE__ */ jsx49(
|
|
12614
12965
|
MermaidView_default,
|
|
12615
12966
|
{
|
|
12616
12967
|
nodes,
|
|
@@ -12618,7 +12969,7 @@ var NodeGraphBuilder = ({
|
|
|
12618
12969
|
maxTextSize
|
|
12619
12970
|
}
|
|
12620
12971
|
) })
|
|
12621
|
-
] }) : /* @__PURE__ */
|
|
12972
|
+
] }) : /* @__PURE__ */ jsxs47(
|
|
12622
12973
|
ReactFlow2,
|
|
12623
12974
|
{
|
|
12624
12975
|
nodeTypes,
|
|
@@ -12644,30 +12995,30 @@ var NodeGraphBuilder = ({
|
|
|
12644
12995
|
zoomOnScroll,
|
|
12645
12996
|
className: "relative",
|
|
12646
12997
|
children: [
|
|
12647
|
-
/* @__PURE__ */
|
|
12998
|
+
/* @__PURE__ */ jsxs47(
|
|
12648
12999
|
Panel,
|
|
12649
13000
|
{
|
|
12650
13001
|
position: "top-center",
|
|
12651
13002
|
className: "w-full pr-6 pointer-events-none",
|
|
12652
13003
|
children: [
|
|
12653
|
-
/* @__PURE__ */
|
|
12654
|
-
/* @__PURE__ */
|
|
12655
|
-
/* @__PURE__ */
|
|
13004
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex space-x-2 justify-between items-center pointer-events-auto", children: [
|
|
13005
|
+
/* @__PURE__ */ jsx49("div", { className: "flex space-x-2 ml-4", children: /* @__PURE__ */ jsxs47(DropdownMenu2.Root, { children: [
|
|
13006
|
+
/* @__PURE__ */ jsx49(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs47(
|
|
12656
13007
|
"button",
|
|
12657
13008
|
{
|
|
12658
13009
|
className: menuButtonClassName,
|
|
12659
13010
|
"aria-label": "Open menu",
|
|
12660
13011
|
children: [
|
|
12661
|
-
title && /* @__PURE__ */
|
|
12662
|
-
/* @__PURE__ */
|
|
13012
|
+
title && /* @__PURE__ */ jsx49("span", { className: "text-base font-medium text-[rgb(var(--ec-page-text))] leading-tight", children: title }),
|
|
13013
|
+
/* @__PURE__ */ jsx49(MoreVertical, { className: menuIconClassName })
|
|
12663
13014
|
]
|
|
12664
13015
|
}
|
|
12665
13016
|
) }),
|
|
12666
|
-
/* @__PURE__ */
|
|
13017
|
+
/* @__PURE__ */ jsx49(
|
|
12667
13018
|
DropdownMenu2.Portal,
|
|
12668
13019
|
{
|
|
12669
13020
|
container: reactFlowWrapperRef.current,
|
|
12670
|
-
children: /* @__PURE__ */
|
|
13021
|
+
children: /* @__PURE__ */ jsxs47(
|
|
12671
13022
|
DropdownMenu2.Content,
|
|
12672
13023
|
{
|
|
12673
13024
|
className: "min-w-56 bg-[rgb(var(--ec-page-bg))] border border-[rgb(var(--ec-page-border))] rounded-lg shadow-xl z-50 py-1.5 animate-in fade-in zoom-in-95 duration-200",
|
|
@@ -12675,14 +13026,15 @@ var NodeGraphBuilder = ({
|
|
|
12675
13026
|
align: "end",
|
|
12676
13027
|
alignOffset: -180,
|
|
12677
13028
|
children: [
|
|
12678
|
-
/* @__PURE__ */
|
|
12679
|
-
/* @__PURE__ */
|
|
13029
|
+
/* @__PURE__ */ jsx49(DropdownMenu2.Arrow, { className: "fill-[rgb(var(--ec-page-bg))] stroke-[rgb(var(--ec-page-border))] stroke-1" }),
|
|
13030
|
+
/* @__PURE__ */ jsx49(
|
|
12680
13031
|
VisualizerDropdownContent_default,
|
|
12681
13032
|
{
|
|
12682
13033
|
isMermaidView,
|
|
12683
13034
|
setIsMermaidView,
|
|
12684
13035
|
animateMessages,
|
|
12685
13036
|
toggleAnimateMessages,
|
|
13037
|
+
hideAnimateMessages: disableMessageAnimation,
|
|
12686
13038
|
hideChannels,
|
|
12687
13039
|
toggleChannelsVisibility,
|
|
12688
13040
|
hasChannels,
|
|
@@ -12710,7 +13062,7 @@ var NodeGraphBuilder = ({
|
|
|
12710
13062
|
}
|
|
12711
13063
|
)
|
|
12712
13064
|
] }) }),
|
|
12713
|
-
mode === "full" && showSearch && /* @__PURE__ */
|
|
13065
|
+
mode === "full" && showSearch && /* @__PURE__ */ jsx49("div", { className: "flex justify-end items-center gap-2", children: !isMermaidView && /* @__PURE__ */ jsx49("div", { className: "w-96", children: /* @__PURE__ */ jsx49(
|
|
12714
13066
|
VisualiserSearch_default,
|
|
12715
13067
|
{
|
|
12716
13068
|
ref: searchRef,
|
|
@@ -12720,9 +13072,9 @@ var NodeGraphBuilder = ({
|
|
|
12720
13072
|
}
|
|
12721
13073
|
) }) })
|
|
12722
13074
|
] }),
|
|
12723
|
-
links.length > 0 && /* @__PURE__ */
|
|
12724
|
-
/* @__PURE__ */
|
|
12725
|
-
/* @__PURE__ */
|
|
13075
|
+
links.length > 0 && /* @__PURE__ */ jsx49("div", { className: "flex justify-end mt-3", children: /* @__PURE__ */ jsxs47("div", { className: "relative flex items-center -mt-1", children: [
|
|
13076
|
+
/* @__PURE__ */ jsx49("span", { className: "absolute left-2 pointer-events-none flex items-center h-full", children: /* @__PURE__ */ jsx49(HistoryIcon, { className: "h-4 w-4 text-[rgb(var(--ec-page-text-muted))]" }) }),
|
|
13077
|
+
/* @__PURE__ */ jsx49(
|
|
12726
13078
|
"select",
|
|
12727
13079
|
{
|
|
12728
13080
|
value: links.find(
|
|
@@ -12737,10 +13089,10 @@ var NodeGraphBuilder = ({
|
|
|
12737
13089
|
},
|
|
12738
13090
|
className: "appearance-none pl-7 pr-6 py-0 text-[14px] bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] rounded-md border border-[rgb(var(--ec-page-border))] hover:bg-[rgb(var(--ec-page-border)/0.5)] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[rgb(var(--ec-accent))]",
|
|
12739
13091
|
style: { minWidth: 120, height: "26px" },
|
|
12740
|
-
children: links.map((link) => /* @__PURE__ */
|
|
13092
|
+
children: links.map((link) => /* @__PURE__ */ jsx49("option", { value: link.url, children: link.label }, link.url))
|
|
12741
13093
|
}
|
|
12742
13094
|
),
|
|
12743
|
-
/* @__PURE__ */
|
|
13095
|
+
/* @__PURE__ */ jsx49("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx49(
|
|
12744
13096
|
"svg",
|
|
12745
13097
|
{
|
|
12746
13098
|
className: "w-4 h-4 text-[rgb(var(--ec-page-text-muted))]",
|
|
@@ -12748,7 +13100,7 @@ var NodeGraphBuilder = ({
|
|
|
12748
13100
|
stroke: "currentColor",
|
|
12749
13101
|
strokeWidth: "2",
|
|
12750
13102
|
viewBox: "0 0 24 24",
|
|
12751
|
-
children: /* @__PURE__ */
|
|
13103
|
+
children: /* @__PURE__ */ jsx49(
|
|
12752
13104
|
"path",
|
|
12753
13105
|
{
|
|
12754
13106
|
strokeLinecap: "round",
|
|
@@ -12762,9 +13114,9 @@ var NodeGraphBuilder = ({
|
|
|
12762
13114
|
]
|
|
12763
13115
|
}
|
|
12764
13116
|
),
|
|
12765
|
-
includeBackground && /* @__PURE__ */
|
|
12766
|
-
includeBackground && /* @__PURE__ */
|
|
12767
|
-
showMinimap && /* @__PURE__ */
|
|
13117
|
+
includeBackground && /* @__PURE__ */ jsx49(Background2, { color: "var(--ec-bg-dots)", gap: 16 }),
|
|
13118
|
+
includeBackground && /* @__PURE__ */ jsx49(Controls2, {}),
|
|
13119
|
+
showMinimap && /* @__PURE__ */ jsx49(
|
|
12768
13120
|
MiniMap,
|
|
12769
13121
|
{
|
|
12770
13122
|
nodeStrokeWidth: 3,
|
|
@@ -12773,7 +13125,7 @@ var NodeGraphBuilder = ({
|
|
|
12773
13125
|
style: MINIMAP_STYLE
|
|
12774
13126
|
}
|
|
12775
13127
|
),
|
|
12776
|
-
isFlowVisualization && showFlowWalkthrough && /* @__PURE__ */
|
|
13128
|
+
isFlowVisualization && showFlowWalkthrough && /* @__PURE__ */ jsx49(Panel, { position: "bottom-left", children: /* @__PURE__ */ jsx49(
|
|
12777
13129
|
StepWalkthrough_default,
|
|
12778
13130
|
{
|
|
12779
13131
|
nodes: walkthroughNodes,
|
|
@@ -12783,14 +13135,14 @@ var NodeGraphBuilder = ({
|
|
|
12783
13135
|
mode
|
|
12784
13136
|
}
|
|
12785
13137
|
) }),
|
|
12786
|
-
isDevMode && hasLayoutChanges && /* @__PURE__ */
|
|
13138
|
+
isDevMode && hasLayoutChanges && /* @__PURE__ */ jsx49(
|
|
12787
13139
|
Panel,
|
|
12788
13140
|
{
|
|
12789
13141
|
position: "bottom-left",
|
|
12790
13142
|
style: isFlowVisualization && showFlowWalkthrough ? LAYOUT_CHANGE_PANEL_STYLE_WITH_WALKTHROUGH : LAYOUT_CHANGE_PANEL_STYLE_DEFAULT,
|
|
12791
|
-
children: /* @__PURE__ */
|
|
12792
|
-
/* @__PURE__ */
|
|
12793
|
-
/* @__PURE__ */
|
|
13143
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "bg-[rgb(var(--ec-card-bg))] border border-[rgb(var(--ec-page-border))] rounded-lg shadow-md px-3 py-2 flex items-center gap-3", children: [
|
|
13144
|
+
/* @__PURE__ */ jsx49("span", { className: "text-xs text-[rgb(var(--ec-page-text-muted))]", children: "Layout changed" }),
|
|
13145
|
+
/* @__PURE__ */ jsx49(
|
|
12794
13146
|
"button",
|
|
12795
13147
|
{
|
|
12796
13148
|
onClick: handleQuickSaveLayout,
|
|
@@ -12802,7 +13154,7 @@ var NodeGraphBuilder = ({
|
|
|
12802
13154
|
] })
|
|
12803
13155
|
}
|
|
12804
13156
|
),
|
|
12805
|
-
includeKey && /* @__PURE__ */
|
|
13157
|
+
includeKey && /* @__PURE__ */ jsx49(
|
|
12806
13158
|
LegendPanel,
|
|
12807
13159
|
{
|
|
12808
13160
|
legend,
|
|
@@ -12813,14 +13165,14 @@ var NodeGraphBuilder = ({
|
|
|
12813
13165
|
]
|
|
12814
13166
|
}
|
|
12815
13167
|
),
|
|
12816
|
-
/* @__PURE__ */
|
|
13168
|
+
/* @__PURE__ */ jsx49(
|
|
12817
13169
|
StudioModal_default,
|
|
12818
13170
|
{
|
|
12819
13171
|
isOpen: isStudioModalOpen || false,
|
|
12820
13172
|
onClose: () => setIsStudioModalOpen(false)
|
|
12821
13173
|
}
|
|
12822
13174
|
),
|
|
12823
|
-
/* @__PURE__ */
|
|
13175
|
+
/* @__PURE__ */ jsx49(
|
|
12824
13176
|
FocusModeModal_default,
|
|
12825
13177
|
{
|
|
12826
13178
|
isOpen: focusModeOpen,
|
|
@@ -12834,7 +13186,7 @@ var NodeGraphBuilder = ({
|
|
|
12834
13186
|
edgeTypes: edgeTypes2
|
|
12835
13187
|
}
|
|
12836
13188
|
),
|
|
12837
|
-
/* @__PURE__ */
|
|
13189
|
+
/* @__PURE__ */ jsx49(
|
|
12838
13190
|
AllNotesModal,
|
|
12839
13191
|
{
|
|
12840
13192
|
noteGroups: allNoteGroups,
|
|
@@ -12843,8 +13195,8 @@ var NodeGraphBuilder = ({
|
|
|
12843
13195
|
nodes
|
|
12844
13196
|
}
|
|
12845
13197
|
),
|
|
12846
|
-
isShareModalOpen && /* @__PURE__ */
|
|
12847
|
-
/* @__PURE__ */
|
|
13198
|
+
isShareModalOpen && /* @__PURE__ */ jsxs47(Fragment13, { children: [
|
|
13199
|
+
/* @__PURE__ */ jsx49(
|
|
12848
13200
|
"div",
|
|
12849
13201
|
{
|
|
12850
13202
|
className: "fixed inset-0 bg-black/20 z-40",
|
|
@@ -12852,13 +13204,13 @@ var NodeGraphBuilder = ({
|
|
|
12852
13204
|
style: { animation: "fadeIn 150ms ease-out" }
|
|
12853
13205
|
}
|
|
12854
13206
|
),
|
|
12855
|
-
/* @__PURE__ */
|
|
13207
|
+
/* @__PURE__ */ jsxs47(
|
|
12856
13208
|
"div",
|
|
12857
13209
|
{
|
|
12858
13210
|
className: "fixed top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 bg-[rgb(var(--ec-page-bg))] rounded-lg shadow-xl z-50 w-full max-w-md p-6 border border-[rgb(var(--ec-page-border))]",
|
|
12859
13211
|
style: { animation: "slideInCenter 250ms ease-out" },
|
|
12860
13212
|
children: [
|
|
12861
|
-
/* @__PURE__ */
|
|
13213
|
+
/* @__PURE__ */ jsx49("style", { children: `
|
|
12862
13214
|
@keyframes fadeIn {
|
|
12863
13215
|
from { opacity: 0; }
|
|
12864
13216
|
to { opacity: 1; }
|
|
@@ -12868,21 +13220,21 @@ var NodeGraphBuilder = ({
|
|
|
12868
13220
|
to { opacity: 1; transform: translate(-50%, -50%); }
|
|
12869
13221
|
}
|
|
12870
13222
|
` }),
|
|
12871
|
-
/* @__PURE__ */
|
|
12872
|
-
/* @__PURE__ */
|
|
12873
|
-
/* @__PURE__ */
|
|
13223
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex justify-between items-start mb-4", children: [
|
|
13224
|
+
/* @__PURE__ */ jsx49("h3", { className: "text-lg font-semibold text-[rgb(var(--ec-page-text))]", children: "Share Link" }),
|
|
13225
|
+
/* @__PURE__ */ jsx49(
|
|
12874
13226
|
"button",
|
|
12875
13227
|
{
|
|
12876
13228
|
onClick: () => setIsShareModalOpen(false),
|
|
12877
13229
|
className: "text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors",
|
|
12878
13230
|
"aria-label": "Close modal",
|
|
12879
|
-
children: /* @__PURE__ */
|
|
13231
|
+
children: /* @__PURE__ */ jsx49(ExternalLink2, { className: "w-5 h-5 rotate-180" })
|
|
12880
13232
|
}
|
|
12881
13233
|
)
|
|
12882
13234
|
] }),
|
|
12883
|
-
/* @__PURE__ */
|
|
12884
|
-
/* @__PURE__ */
|
|
12885
|
-
/* @__PURE__ */
|
|
13235
|
+
/* @__PURE__ */ jsx49("p", { className: "text-sm text-[rgb(var(--ec-page-text-muted))] mb-4", children: "Share this link with your team to let them view this visualization." }),
|
|
13236
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex gap-2", children: [
|
|
13237
|
+
/* @__PURE__ */ jsx49(
|
|
12886
13238
|
"input",
|
|
12887
13239
|
{
|
|
12888
13240
|
type: "text",
|
|
@@ -12891,15 +13243,15 @@ var NodeGraphBuilder = ({
|
|
|
12891
13243
|
className: "flex-1 px-3 py-2.5 bg-[rgb(var(--ec-input-bg))] border border-[rgb(var(--ec-input-border))] rounded-md text-[rgb(var(--ec-input-text))] text-sm focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))]"
|
|
12892
13244
|
}
|
|
12893
13245
|
),
|
|
12894
|
-
/* @__PURE__ */
|
|
13246
|
+
/* @__PURE__ */ jsxs47(
|
|
12895
13247
|
"button",
|
|
12896
13248
|
{
|
|
12897
13249
|
onClick: handleCopyShareUrl,
|
|
12898
13250
|
className: `px-4 py-2.5 rounded-md font-medium transition-all duration-200 flex items-center gap-2 ${shareUrlCopySuccess ? "bg-green-500 text-white" : "bg-[rgb(var(--ec-accent))] text-white hover:opacity-90"}`,
|
|
12899
13251
|
"aria-label": shareUrlCopySuccess ? "Copied!" : "Copy link",
|
|
12900
13252
|
children: [
|
|
12901
|
-
shareUrlCopySuccess ? /* @__PURE__ */
|
|
12902
|
-
/* @__PURE__ */
|
|
13253
|
+
shareUrlCopySuccess ? /* @__PURE__ */ jsx49(CheckIcon3, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx49(ClipboardIcon3, { className: "w-4 h-4" }),
|
|
13254
|
+
/* @__PURE__ */ jsx49("span", { children: shareUrlCopySuccess ? "Copied!" : "Copy" })
|
|
12903
13255
|
]
|
|
12904
13256
|
}
|
|
12905
13257
|
)
|
|
@@ -12978,9 +13330,9 @@ var NodeGraph = ({
|
|
|
12978
13330
|
}
|
|
12979
13331
|
}, []);
|
|
12980
13332
|
if (!elem) return null;
|
|
12981
|
-
return /* @__PURE__ */
|
|
12982
|
-
/* @__PURE__ */
|
|
12983
|
-
/* @__PURE__ */
|
|
13333
|
+
return /* @__PURE__ */ jsx49("div", { children: createPortal(
|
|
13334
|
+
/* @__PURE__ */ jsxs47(ReactFlowProvider2, { children: [
|
|
13335
|
+
/* @__PURE__ */ jsx49(
|
|
12984
13336
|
NodeGraphBuilder,
|
|
12985
13337
|
{
|
|
12986
13338
|
edges,
|
|
@@ -13012,11 +13364,11 @@ var NodeGraph = ({
|
|
|
13012
13364
|
onResetLayout
|
|
13013
13365
|
}
|
|
13014
13366
|
),
|
|
13015
|
-
showFooter && /* @__PURE__ */
|
|
13016
|
-
footerLabel && /* @__PURE__ */
|
|
13017
|
-
href && /* @__PURE__ */
|
|
13018
|
-
/* @__PURE__ */
|
|
13019
|
-
/* @__PURE__ */
|
|
13367
|
+
showFooter && /* @__PURE__ */ jsxs47("div", { className: "flex justify-between", id: "visualiser-footer", children: [
|
|
13368
|
+
footerLabel && /* @__PURE__ */ jsx49("div", { className: "py-2 w-full text-left ", children: /* @__PURE__ */ jsx49("span", { className: " text-sm no-underline py-2 text-[rgb(var(--ec-page-text-muted))]", children: footerLabel }) }),
|
|
13369
|
+
href && /* @__PURE__ */ jsxs47("div", { className: "py-2 w-full text-right flex justify-between", children: [
|
|
13370
|
+
/* @__PURE__ */ jsx49("span", {}),
|
|
13371
|
+
/* @__PURE__ */ jsxs47(
|
|
13020
13372
|
"a",
|
|
13021
13373
|
{
|
|
13022
13374
|
className: " text-sm underline text-[rgb(var(--ec-page-text))] hover:text-[rgb(var(--ec-accent))]",
|
|
@@ -13054,6 +13406,9 @@ var nodeComponents = {
|
|
|
13054
13406
|
// Core nodes are available via individual imports
|
|
13055
13407
|
custom: Custom_default,
|
|
13056
13408
|
domain: Domain_default,
|
|
13409
|
+
system: System_default,
|
|
13410
|
+
"context-actor": ContextActor_default,
|
|
13411
|
+
"system-group": SystemGroupNode_default,
|
|
13057
13412
|
entity: Entity_default,
|
|
13058
13413
|
flow: Flow_default,
|
|
13059
13414
|
flowExpanded: FlowExpandedNode_default,
|
|
@@ -13091,6 +13446,7 @@ export {
|
|
|
13091
13446
|
COMMAND,
|
|
13092
13447
|
ChannelNode_default as Channel,
|
|
13093
13448
|
CommandNode_default as Command,
|
|
13449
|
+
ContextActor_default as ContextActorNode,
|
|
13094
13450
|
Custom_default as CustomNode,
|
|
13095
13451
|
DATA,
|
|
13096
13452
|
DataNode_default as Data,
|
|
@@ -13123,6 +13479,8 @@ export {
|
|
|
13123
13479
|
ServiceNode_default as Service,
|
|
13124
13480
|
Step_default as StepNode,
|
|
13125
13481
|
StepWalkthrough_default as StepWalkthrough,
|
|
13482
|
+
SystemGroupNode_default as SystemGroupNode,
|
|
13483
|
+
System_default as SystemNode,
|
|
13126
13484
|
User_default as UserNode,
|
|
13127
13485
|
VIEW,
|
|
13128
13486
|
ViewNode_default as View,
|