@eventcatalog/visualiser 3.18.3 → 3.19.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 +17 -6
- package/dist/index.d.ts +17 -6
- package/dist/index.js +1374 -959
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1062 -648
- package/dist/index.mjs.map +1 -1
- package/dist/styles-core.css +24 -0
- package/dist/styles.css +24 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
useState as useState14,
|
|
6
6
|
useCallback as useCallback12,
|
|
7
7
|
useRef as useRef6,
|
|
8
|
-
memo as
|
|
8
|
+
memo as memo35
|
|
9
9
|
} from "react";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
import {
|
|
@@ -4114,6 +4114,7 @@ var config_default5 = {
|
|
|
4114
4114
|
// src/nodes/Flow.tsx
|
|
4115
4115
|
import { memo as memo16, useMemo as useMemo7 } from "react";
|
|
4116
4116
|
import { Handle as Handle12 } from "@xyflow/react";
|
|
4117
|
+
import { Maximize2 } from "lucide-react";
|
|
4117
4118
|
import * as ContextMenu from "@radix-ui/react-context-menu";
|
|
4118
4119
|
|
|
4119
4120
|
// src/utils/badges.tsx
|
|
@@ -4223,7 +4224,7 @@ function getIcon(iconName) {
|
|
|
4223
4224
|
}
|
|
4224
4225
|
|
|
4225
4226
|
// src/nodes/Flow.tsx
|
|
4226
|
-
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4227
|
+
import { Fragment as Fragment2, jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4227
4228
|
function classNames12(...classes) {
|
|
4228
4229
|
return classes.filter(Boolean).join(" ");
|
|
4229
4230
|
}
|
|
@@ -4233,6 +4234,7 @@ var Flow_default = memo16(function FlowNode({
|
|
|
4233
4234
|
targetPosition
|
|
4234
4235
|
}) {
|
|
4235
4236
|
const { mode, flow } = data;
|
|
4237
|
+
const canExpand = Array.isArray(data?.expandedNodes) && data.expandedNodes.length > 0;
|
|
4236
4238
|
const { id, version, owners = EMPTY_ARRAY, name, styles } = flow.data;
|
|
4237
4239
|
const { node: { color = "teal", label } = {}, icon = "QueueListIcon" } = styles || {};
|
|
4238
4240
|
const Icon = useMemo7(() => getIcon(icon), [icon]);
|
|
@@ -4243,60 +4245,91 @@ var Flow_default = memo16(function FlowNode({
|
|
|
4243
4245
|
/* @__PURE__ */ jsx17(ContextMenu.Trigger, { children: /* @__PURE__ */ jsxs15(
|
|
4244
4246
|
"div",
|
|
4245
4247
|
{
|
|
4246
|
-
className:
|
|
4247
|
-
|
|
4248
|
-
),
|
|
4249
|
-
style: NODE_WIDTH_STYLE,
|
|
4248
|
+
className: "relative",
|
|
4249
|
+
style: { isolation: "isolate", ...NODE_WIDTH_STYLE },
|
|
4250
4250
|
children: [
|
|
4251
|
+
canExpand && /* @__PURE__ */ jsxs15(Fragment2, { children: [
|
|
4252
|
+
/* @__PURE__ */ jsx17(
|
|
4253
|
+
"div",
|
|
4254
|
+
{
|
|
4255
|
+
className: `absolute inset-0 rounded-md border border-${color}-400 bg-[rgb(var(--ec-card-bg))]`,
|
|
4256
|
+
style: { transform: "translate(6px, 6px)", opacity: 0.5 },
|
|
4257
|
+
"aria-hidden": true
|
|
4258
|
+
}
|
|
4259
|
+
),
|
|
4260
|
+
/* @__PURE__ */ jsx17(
|
|
4261
|
+
"div",
|
|
4262
|
+
{
|
|
4263
|
+
className: `absolute inset-0 rounded-md border border-${color}-400 bg-[rgb(var(--ec-card-bg))]`,
|
|
4264
|
+
style: { transform: "translate(3px, 3px)", opacity: 0.7 },
|
|
4265
|
+
"aria-hidden": true
|
|
4266
|
+
}
|
|
4267
|
+
)
|
|
4268
|
+
] }),
|
|
4251
4269
|
/* @__PURE__ */ jsxs15(
|
|
4252
4270
|
"div",
|
|
4253
4271
|
{
|
|
4254
4272
|
className: classNames12(
|
|
4255
|
-
`
|
|
4256
|
-
`border-r-[1px] border-${color}-500`
|
|
4273
|
+
`relative rounded-md border flex justify-start bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] border-${color}-400`
|
|
4257
4274
|
),
|
|
4275
|
+
style: NODE_WIDTH_STYLE,
|
|
4258
4276
|
children: [
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
"span",
|
|
4277
|
+
/* @__PURE__ */ jsxs15(
|
|
4278
|
+
"div",
|
|
4262
4279
|
{
|
|
4263
|
-
className:
|
|
4264
|
-
|
|
4265
|
-
|
|
4280
|
+
className: classNames12(
|
|
4281
|
+
`bg-gradient-to-b from-${color}-500 to-${color}-700 relative flex flex-col items-center w-5 justify-between rounded-l-sm text-${color}-100`,
|
|
4282
|
+
`border-r-[1px] border-${color}-500`
|
|
4283
|
+
),
|
|
4284
|
+
children: [
|
|
4285
|
+
Icon && /* @__PURE__ */ jsx17(Icon, { className: "w-4 h-4 opacity-90 text-white mt-1" }),
|
|
4286
|
+
mode === "full" && /* @__PURE__ */ jsx17(
|
|
4287
|
+
"span",
|
|
4288
|
+
{
|
|
4289
|
+
className: `text-center text-[${fontSize}] text-white font-bold uppercase mb-4`,
|
|
4290
|
+
style: ROTATED_LABEL_STYLE,
|
|
4291
|
+
children: nodeLabel
|
|
4292
|
+
}
|
|
4293
|
+
)
|
|
4294
|
+
]
|
|
4266
4295
|
}
|
|
4267
|
-
)
|
|
4268
|
-
]
|
|
4269
|
-
}
|
|
4270
|
-
),
|
|
4271
|
-
/* @__PURE__ */ jsxs15("div", { className: "p-1 flex-1", children: [
|
|
4272
|
-
targetPosition && /* @__PURE__ */ jsx17(Handle12, { type: "target", position: targetPosition }),
|
|
4273
|
-
sourcePosition && /* @__PURE__ */ jsx17(Handle12, { type: "source", position: sourcePosition }),
|
|
4274
|
-
/* @__PURE__ */ jsxs15(
|
|
4275
|
-
"div",
|
|
4276
|
-
{
|
|
4277
|
-
className: classNames12(
|
|
4278
|
-
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4279
4296
|
),
|
|
4280
|
-
children: [
|
|
4281
|
-
/* @__PURE__ */ jsx17(
|
|
4282
|
-
/* @__PURE__ */
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4297
|
+
/* @__PURE__ */ jsxs15("div", { className: "p-1 flex-1", children: [
|
|
4298
|
+
targetPosition && /* @__PURE__ */ jsx17(Handle12, { type: "target", position: targetPosition }),
|
|
4299
|
+
sourcePosition && /* @__PURE__ */ jsx17(Handle12, { type: "source", position: sourcePosition }),
|
|
4300
|
+
/* @__PURE__ */ jsxs15(
|
|
4301
|
+
"div",
|
|
4302
|
+
{
|
|
4303
|
+
className: classNames12(
|
|
4304
|
+
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4305
|
+
),
|
|
4306
|
+
children: [
|
|
4307
|
+
/* @__PURE__ */ jsx17("span", { className: "text-xs font-bold block pt-0.5 pb-0.5", children: name }),
|
|
4308
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex justify-between", children: [
|
|
4309
|
+
/* @__PURE__ */ jsxs15("span", { className: "text-[10px] font-light block pt-0.5 pb-0.5 ", children: [
|
|
4310
|
+
"v",
|
|
4311
|
+
version
|
|
4312
|
+
] }),
|
|
4313
|
+
mode === "simple" && /* @__PURE__ */ jsx17("span", { className: "text-[10px] text-[rgb(var(--ec-page-text-muted))] font-light block pt-0.5 pb-0.5 ", children: nodeLabel })
|
|
4314
|
+
] })
|
|
4315
|
+
]
|
|
4316
|
+
}
|
|
4317
|
+
),
|
|
4318
|
+
mode === "full" && /* @__PURE__ */ jsxs15("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: [
|
|
4319
|
+
/* @__PURE__ */ jsx17("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx17("span", { className: "text-[8px] font-light", children: flow.data.summary }) }),
|
|
4320
|
+
/* @__PURE__ */ jsx17("div", { className: "grid grid-cols-2 gap-x-4 py-1", children: /* @__PURE__ */ jsxs15("span", { className: "text-xs", style: TINY_FONT_STYLE, children: [
|
|
4321
|
+
"Owners: ",
|
|
4322
|
+
owners.length
|
|
4323
|
+
] }) })
|
|
4324
|
+
] }),
|
|
4325
|
+
canExpand && /* @__PURE__ */ jsxs15("div", { className: "mt-1 flex items-center gap-1 text-[8px] text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
4326
|
+
/* @__PURE__ */ jsx17(Maximize2, { className: "w-2.5 h-2.5" }),
|
|
4327
|
+
"Click to explore"
|
|
4288
4328
|
] })
|
|
4289
|
-
]
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
/* @__PURE__ */ jsx17("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx17("span", { className: "text-[8px] font-light", children: flow.data.summary }) }),
|
|
4294
|
-
/* @__PURE__ */ jsx17("div", { className: "grid grid-cols-2 gap-x-4 py-1", children: /* @__PURE__ */ jsxs15("span", { className: "text-xs", style: TINY_FONT_STYLE, children: [
|
|
4295
|
-
"Owners: ",
|
|
4296
|
-
owners.length
|
|
4297
|
-
] }) })
|
|
4298
|
-
] })
|
|
4299
|
-
] })
|
|
4329
|
+
] })
|
|
4330
|
+
]
|
|
4331
|
+
}
|
|
4332
|
+
)
|
|
4300
4333
|
]
|
|
4301
4334
|
}
|
|
4302
4335
|
) }),
|
|
@@ -4332,15 +4365,126 @@ var Flow_default = memo16(function FlowNode({
|
|
|
4332
4365
|
] });
|
|
4333
4366
|
});
|
|
4334
4367
|
|
|
4368
|
+
// src/nodes/FlowExpandedNode.tsx
|
|
4369
|
+
import { memo as memo17 } from "react";
|
|
4370
|
+
import { Workflow, Minimize2 } from "lucide-react";
|
|
4371
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4372
|
+
var CONTAINER_STYLE = {
|
|
4373
|
+
width: "100%",
|
|
4374
|
+
height: "100%",
|
|
4375
|
+
borderRadius: 12,
|
|
4376
|
+
border: "2px solid rgba(20, 184, 166, 0.5)",
|
|
4377
|
+
backgroundColor: "rgba(20, 184, 166, 0.08)",
|
|
4378
|
+
boxShadow: "0 2px 12px rgba(20, 184, 166, 0.12)",
|
|
4379
|
+
position: "relative",
|
|
4380
|
+
overflow: "visible"
|
|
4381
|
+
};
|
|
4382
|
+
var HEADER_STYLE = {
|
|
4383
|
+
position: "absolute",
|
|
4384
|
+
top: 0,
|
|
4385
|
+
left: 0,
|
|
4386
|
+
right: 0,
|
|
4387
|
+
height: 44,
|
|
4388
|
+
borderTopLeftRadius: 10,
|
|
4389
|
+
borderTopRightRadius: 10,
|
|
4390
|
+
background: "rgba(20, 184, 166, 0.12)",
|
|
4391
|
+
borderBottom: "1px solid rgba(20, 184, 166, 0.3)",
|
|
4392
|
+
overflow: "visible"
|
|
4393
|
+
};
|
|
4394
|
+
var BADGE_STYLE = {
|
|
4395
|
+
position: "absolute",
|
|
4396
|
+
top: -10,
|
|
4397
|
+
left: 12,
|
|
4398
|
+
display: "inline-flex",
|
|
4399
|
+
alignItems: "center",
|
|
4400
|
+
gap: 3,
|
|
4401
|
+
padding: "2px 8px",
|
|
4402
|
+
borderRadius: 4,
|
|
4403
|
+
background: "#0d9488",
|
|
4404
|
+
boxShadow: "0 1px 3px rgba(0,0,0,0.15)",
|
|
4405
|
+
zIndex: 10,
|
|
4406
|
+
fontSize: 8,
|
|
4407
|
+
fontWeight: 700,
|
|
4408
|
+
letterSpacing: "0.08em",
|
|
4409
|
+
textTransform: "uppercase",
|
|
4410
|
+
color: "white"
|
|
4411
|
+
};
|
|
4412
|
+
var HEADER_CONTENT_STYLE = {
|
|
4413
|
+
display: "flex",
|
|
4414
|
+
alignItems: "center",
|
|
4415
|
+
justifyContent: "space-between",
|
|
4416
|
+
height: "100%",
|
|
4417
|
+
padding: "0 12px 0 14px"
|
|
4418
|
+
};
|
|
4419
|
+
var FLOW_NAME_STYLE = {
|
|
4420
|
+
fontSize: 11,
|
|
4421
|
+
fontWeight: 700,
|
|
4422
|
+
color: "rgb(var(--ec-page-text))",
|
|
4423
|
+
letterSpacing: "0.04em",
|
|
4424
|
+
textTransform: "uppercase",
|
|
4425
|
+
whiteSpace: "nowrap"
|
|
4426
|
+
};
|
|
4427
|
+
var VERSION_STYLE = {
|
|
4428
|
+
fontSize: 10,
|
|
4429
|
+
fontWeight: 500,
|
|
4430
|
+
color: "#5eead4",
|
|
4431
|
+
marginLeft: 8
|
|
4432
|
+
};
|
|
4433
|
+
var COLLAPSE_BUTTON_STYLE = {
|
|
4434
|
+
background: "#0d9488",
|
|
4435
|
+
border: "1px solid #5eead4",
|
|
4436
|
+
borderRadius: 6,
|
|
4437
|
+
padding: "4px 10px",
|
|
4438
|
+
cursor: "pointer",
|
|
4439
|
+
display: "flex",
|
|
4440
|
+
alignItems: "center",
|
|
4441
|
+
gap: 4,
|
|
4442
|
+
fontSize: 10,
|
|
4443
|
+
fontWeight: 600,
|
|
4444
|
+
color: "white"
|
|
4445
|
+
};
|
|
4446
|
+
var FlowExpandedNode_default = memo17(function FlowExpandedNode({
|
|
4447
|
+
data
|
|
4448
|
+
}) {
|
|
4449
|
+
const { flowName, version } = data;
|
|
4450
|
+
return /* @__PURE__ */ jsx18("div", { style: CONTAINER_STYLE, children: /* @__PURE__ */ jsxs16("div", { style: HEADER_STYLE, children: [
|
|
4451
|
+
/* @__PURE__ */ jsxs16("div", { style: BADGE_STYLE, children: [
|
|
4452
|
+
/* @__PURE__ */ jsx18(Workflow, { size: 10, strokeWidth: 2.5 }),
|
|
4453
|
+
"Sub-flow"
|
|
4454
|
+
] }),
|
|
4455
|
+
/* @__PURE__ */ jsxs16("div", { style: HEADER_CONTENT_STYLE, children: [
|
|
4456
|
+
/* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center" }, children: [
|
|
4457
|
+
/* @__PURE__ */ jsx18("span", { style: FLOW_NAME_STYLE, children: flowName || "Flow" }),
|
|
4458
|
+
version && /* @__PURE__ */ jsxs16("span", { style: VERSION_STYLE, children: [
|
|
4459
|
+
"v",
|
|
4460
|
+
version
|
|
4461
|
+
] })
|
|
4462
|
+
] }),
|
|
4463
|
+
/* @__PURE__ */ jsxs16(
|
|
4464
|
+
"button",
|
|
4465
|
+
{
|
|
4466
|
+
style: COLLAPSE_BUTTON_STYLE,
|
|
4467
|
+
className: "ec-collapse-flow-btn nodrag nopan",
|
|
4468
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
4469
|
+
children: [
|
|
4470
|
+
/* @__PURE__ */ jsx18(Minimize2, { size: 12, strokeWidth: 2.5 }),
|
|
4471
|
+
"Collapse"
|
|
4472
|
+
]
|
|
4473
|
+
}
|
|
4474
|
+
)
|
|
4475
|
+
] })
|
|
4476
|
+
] }) });
|
|
4477
|
+
});
|
|
4478
|
+
|
|
4335
4479
|
// src/nodes/Entity.tsx
|
|
4336
4480
|
import { Handle as Handle13, Position as Position12 } from "@xyflow/react";
|
|
4337
4481
|
import * as ContextMenu2 from "@radix-ui/react-context-menu";
|
|
4338
|
-
import { memo as
|
|
4339
|
-
import { Fragment as
|
|
4482
|
+
import { memo as memo18, useState as useState3, useMemo as useMemo8 } from "react";
|
|
4483
|
+
import { Fragment as Fragment3, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4340
4484
|
function classNames13(...classes) {
|
|
4341
4485
|
return classes.filter(Boolean).join(" ");
|
|
4342
4486
|
}
|
|
4343
|
-
var Entity_default =
|
|
4487
|
+
var Entity_default = memo18(function EntityNode({
|
|
4344
4488
|
data,
|
|
4345
4489
|
sourcePosition,
|
|
4346
4490
|
targetPosition
|
|
@@ -4361,8 +4505,8 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4361
4505
|
const Icon = useMemo8(() => getIcon(icon), [icon]);
|
|
4362
4506
|
const [hoveredProperty, setHoveredProperty] = useState3(null);
|
|
4363
4507
|
const portalContainer = usePortalContainer();
|
|
4364
|
-
return /* @__PURE__ */
|
|
4365
|
-
/* @__PURE__ */
|
|
4508
|
+
return /* @__PURE__ */ jsxs17(ContextMenu2.Root, { children: [
|
|
4509
|
+
/* @__PURE__ */ jsx19(ContextMenu2.Trigger, { children: /* @__PURE__ */ jsxs17(
|
|
4366
4510
|
"div",
|
|
4367
4511
|
{
|
|
4368
4512
|
className: classNames13(
|
|
@@ -4370,7 +4514,7 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4370
4514
|
externalToDomain ? "border-amber-500/60" : "border-blue-400/50"
|
|
4371
4515
|
),
|
|
4372
4516
|
children: [
|
|
4373
|
-
/* @__PURE__ */
|
|
4517
|
+
/* @__PURE__ */ jsxs17(
|
|
4374
4518
|
"div",
|
|
4375
4519
|
{
|
|
4376
4520
|
className: classNames13(
|
|
@@ -4378,34 +4522,34 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4378
4522
|
externalToDomain ? "bg-amber-500/20" : "bg-blue-500/15"
|
|
4379
4523
|
),
|
|
4380
4524
|
children: [
|
|
4381
|
-
/* @__PURE__ */
|
|
4382
|
-
Icon && /* @__PURE__ */
|
|
4383
|
-
/* @__PURE__ */
|
|
4384
|
-
aggregateRoot && /* @__PURE__ */
|
|
4525
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
|
|
4526
|
+
Icon && /* @__PURE__ */ jsx19(Icon, { className: "w-4 h-4 text-[rgb(var(--ec-page-text-muted))]" }),
|
|
4527
|
+
/* @__PURE__ */ jsx19("span", { className: "font-semibold text-[rgb(var(--ec-page-text))] text-sm", children: name }),
|
|
4528
|
+
aggregateRoot && /* @__PURE__ */ jsx19("span", { className: "text-xs bg-amber-500/20 text-amber-600 dark:text-amber-400 px-1.5 py-0.5 rounded font-medium", children: "AR" })
|
|
4385
4529
|
] }),
|
|
4386
|
-
domainName && /* @__PURE__ */
|
|
4530
|
+
domainName && /* @__PURE__ */ jsxs17("div", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] font-medium mt-1", children: [
|
|
4387
4531
|
"from ",
|
|
4388
4532
|
domainName,
|
|
4389
4533
|
" domain"
|
|
4390
4534
|
] }),
|
|
4391
|
-
mode === "full" && /* @__PURE__ */
|
|
4535
|
+
mode === "full" && /* @__PURE__ */ jsxs17("div", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] mt-1", children: [
|
|
4392
4536
|
"v",
|
|
4393
4537
|
version
|
|
4394
4538
|
] })
|
|
4395
4539
|
]
|
|
4396
4540
|
}
|
|
4397
4541
|
),
|
|
4398
|
-
properties.length > 0 ? /* @__PURE__ */
|
|
4542
|
+
properties.length > 0 ? /* @__PURE__ */ jsx19("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] relative", children: properties.map((property, index) => {
|
|
4399
4543
|
const propertyKey = `${property.name}-${index}`;
|
|
4400
4544
|
const isHovered = hoveredProperty === propertyKey;
|
|
4401
|
-
return /* @__PURE__ */
|
|
4545
|
+
return /* @__PURE__ */ jsxs17(
|
|
4402
4546
|
"div",
|
|
4403
4547
|
{
|
|
4404
4548
|
className: "relative flex items-center justify-between px-4 py-2 hover:bg-[rgb(var(--ec-page-border)/0.2)]",
|
|
4405
4549
|
onMouseEnter: () => property.description && setHoveredProperty(propertyKey),
|
|
4406
4550
|
onMouseLeave: () => setHoveredProperty(null),
|
|
4407
4551
|
children: [
|
|
4408
|
-
/* @__PURE__ */
|
|
4552
|
+
/* @__PURE__ */ jsx19(
|
|
4409
4553
|
Handle13,
|
|
4410
4554
|
{
|
|
4411
4555
|
type: "target",
|
|
@@ -4415,7 +4559,7 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4415
4559
|
style: HANDLE_LEFT_OFFSET_STYLE
|
|
4416
4560
|
}
|
|
4417
4561
|
),
|
|
4418
|
-
/* @__PURE__ */
|
|
4562
|
+
/* @__PURE__ */ jsx19(
|
|
4419
4563
|
Handle13,
|
|
4420
4564
|
{
|
|
4421
4565
|
type: "source",
|
|
@@ -4425,47 +4569,47 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4425
4569
|
style: HANDLE_RIGHT_OFFSET_STYLE
|
|
4426
4570
|
}
|
|
4427
4571
|
),
|
|
4428
|
-
/* @__PURE__ */
|
|
4429
|
-
/* @__PURE__ */
|
|
4430
|
-
/* @__PURE__ */
|
|
4431
|
-
property.required && /* @__PURE__ */
|
|
4572
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex-1 flex items-center justify-between", children: [
|
|
4573
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1", children: [
|
|
4574
|
+
/* @__PURE__ */ jsx19("span", { className: "text-sm font-medium text-[rgb(var(--ec-page-text))]", children: property.name }),
|
|
4575
|
+
property.required && /* @__PURE__ */ jsx19("span", { className: "text-red-500 text-xs", children: "*" })
|
|
4432
4576
|
] }),
|
|
4433
|
-
/* @__PURE__ */
|
|
4577
|
+
/* @__PURE__ */ jsx19("span", { className: "text-sm text-[rgb(var(--ec-page-text-muted))] font-mono", children: property.type })
|
|
4434
4578
|
] }),
|
|
4435
|
-
property.references && /* @__PURE__ */
|
|
4579
|
+
property.references && /* @__PURE__ */ jsx19("div", { className: "absolute right-2 top-1/2 transform -translate-y-1/2", children: /* @__PURE__ */ jsx19(
|
|
4436
4580
|
"div",
|
|
4437
4581
|
{
|
|
4438
4582
|
className: "w-2 h-2 bg-blue-500 rounded-full",
|
|
4439
4583
|
title: `References ${property.references}`
|
|
4440
4584
|
}
|
|
4441
4585
|
) }),
|
|
4442
|
-
isHovered && property.description && /* @__PURE__ */
|
|
4443
|
-
/* @__PURE__ */
|
|
4444
|
-
/* @__PURE__ */
|
|
4586
|
+
isHovered && property.description && /* @__PURE__ */ jsxs17("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: [
|
|
4587
|
+
/* @__PURE__ */ jsx19("div", { className: "text-gray-200 whitespace-normal break-words", children: property.description }),
|
|
4588
|
+
/* @__PURE__ */ jsx19("div", { className: "absolute right-full top-1/2 transform -translate-y-1/2 border-4 border-transparent border-r-gray-900" })
|
|
4445
4589
|
] })
|
|
4446
4590
|
]
|
|
4447
4591
|
},
|
|
4448
4592
|
propertyKey
|
|
4449
4593
|
);
|
|
4450
|
-
}) }) : /* @__PURE__ */
|
|
4451
|
-
properties.length === 0 && /* @__PURE__ */
|
|
4452
|
-
targetPosition && /* @__PURE__ */
|
|
4453
|
-
sourcePosition && /* @__PURE__ */
|
|
4594
|
+
}) }) : /* @__PURE__ */ jsx19("div", { className: "px-4 py-3 text-sm text-[rgb(var(--ec-page-text-muted))] text-center", children: "No properties defined" }),
|
|
4595
|
+
properties.length === 0 && /* @__PURE__ */ jsxs17(Fragment3, { children: [
|
|
4596
|
+
targetPosition && /* @__PURE__ */ jsx19(Handle13, { type: "target", position: targetPosition }),
|
|
4597
|
+
sourcePosition && /* @__PURE__ */ jsx19(Handle13, { type: "source", position: sourcePosition })
|
|
4454
4598
|
] })
|
|
4455
4599
|
]
|
|
4456
4600
|
}
|
|
4457
4601
|
) }),
|
|
4458
|
-
/* @__PURE__ */
|
|
4602
|
+
/* @__PURE__ */ jsx19(ContextMenu2.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx19(
|
|
4459
4603
|
ContextMenu2.Content,
|
|
4460
4604
|
{
|
|
4461
4605
|
className: "min-w-[220px] bg-[rgb(var(--ec-card-bg))] rounded-md p-1 shadow-md border border-[rgb(var(--ec-page-border))]",
|
|
4462
4606
|
onClick: (e) => e.stopPropagation(),
|
|
4463
|
-
children: /* @__PURE__ */
|
|
4607
|
+
children: /* @__PURE__ */ jsx19(
|
|
4464
4608
|
ContextMenu2.Item,
|
|
4465
4609
|
{
|
|
4466
4610
|
asChild: true,
|
|
4467
4611
|
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",
|
|
4468
|
-
children: /* @__PURE__ */
|
|
4612
|
+
children: /* @__PURE__ */ jsx19("a", { href: buildUrl(`/docs/entities/${entity.data.id}/${version}`), children: "Read documentation" })
|
|
4469
4613
|
}
|
|
4470
4614
|
)
|
|
4471
4615
|
}
|
|
@@ -4474,14 +4618,14 @@ var Entity_default = memo17(function EntityNode({
|
|
|
4474
4618
|
});
|
|
4475
4619
|
|
|
4476
4620
|
// src/nodes/User.tsx
|
|
4477
|
-
import { memo as
|
|
4621
|
+
import { memo as memo19 } from "react";
|
|
4478
4622
|
import { UserIcon as UserIcon2 } from "@heroicons/react/20/solid";
|
|
4479
4623
|
import { Handle as Handle14 } from "@xyflow/react";
|
|
4480
|
-
import { jsx as
|
|
4624
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4481
4625
|
function classNames14(...classes) {
|
|
4482
4626
|
return classes.filter(Boolean).join(" ");
|
|
4483
4627
|
}
|
|
4484
|
-
var User_default =
|
|
4628
|
+
var User_default = memo19(function UserNode({
|
|
4485
4629
|
data,
|
|
4486
4630
|
sourcePosition,
|
|
4487
4631
|
targetPosition
|
|
@@ -4493,7 +4637,7 @@ var User_default = memo18(function UserNode({
|
|
|
4493
4637
|
showSource: _showSource = true
|
|
4494
4638
|
} = data;
|
|
4495
4639
|
const { summary, actor: { name } = {} } = step;
|
|
4496
|
-
return /* @__PURE__ */
|
|
4640
|
+
return /* @__PURE__ */ jsxs18(
|
|
4497
4641
|
"div",
|
|
4498
4642
|
{
|
|
4499
4643
|
className: classNames14(
|
|
@@ -4502,7 +4646,7 @@ var User_default = memo18(function UserNode({
|
|
|
4502
4646
|
),
|
|
4503
4647
|
style: NODE_WIDTH_STYLE,
|
|
4504
4648
|
children: [
|
|
4505
|
-
/* @__PURE__ */
|
|
4649
|
+
/* @__PURE__ */ jsxs18(
|
|
4506
4650
|
"div",
|
|
4507
4651
|
{
|
|
4508
4652
|
className: classNames14(
|
|
@@ -4510,8 +4654,8 @@ var User_default = memo18(function UserNode({
|
|
|
4510
4654
|
`border-r-[1px] border-yellow-500`
|
|
4511
4655
|
),
|
|
4512
4656
|
children: [
|
|
4513
|
-
/* @__PURE__ */
|
|
4514
|
-
mode === "full" && /* @__PURE__ */
|
|
4657
|
+
/* @__PURE__ */ jsx20(UserIcon2, { className: "w-4 h-4 opacity-90 text-white mt-1" }),
|
|
4658
|
+
mode === "full" && /* @__PURE__ */ jsx20(
|
|
4515
4659
|
"span",
|
|
4516
4660
|
{
|
|
4517
4661
|
className: "text-center text-[9px] text-white font-bold uppercase mb-4",
|
|
@@ -4522,24 +4666,24 @@ var User_default = memo18(function UserNode({
|
|
|
4522
4666
|
]
|
|
4523
4667
|
}
|
|
4524
4668
|
),
|
|
4525
|
-
/* @__PURE__ */
|
|
4526
|
-
targetPosition && /* @__PURE__ */
|
|
4527
|
-
sourcePosition && /* @__PURE__ */
|
|
4528
|
-
(!summary || mode !== "full") && /* @__PURE__ */
|
|
4529
|
-
/* @__PURE__ */
|
|
4530
|
-
mode === "simple" && /* @__PURE__ */
|
|
4669
|
+
/* @__PURE__ */ jsxs18("div", { className: "p-1 flex-1", children: [
|
|
4670
|
+
targetPosition && /* @__PURE__ */ jsx20(Handle14, { type: "target", position: targetPosition }),
|
|
4671
|
+
sourcePosition && /* @__PURE__ */ jsx20(Handle14, { type: "source", position: sourcePosition }),
|
|
4672
|
+
(!summary || mode !== "full") && /* @__PURE__ */ jsxs18("div", { className: "h-full ", children: [
|
|
4673
|
+
/* @__PURE__ */ jsx20("span", { className: "text-sm font-bold block pb-0.5 w-full", children: name }),
|
|
4674
|
+
mode === "simple" && /* @__PURE__ */ jsx20("div", { className: "w-full text-right", children: /* @__PURE__ */ jsx20("span", { className: " w-full text-[10px] text-[rgb(var(--ec-page-text-muted))] font-light block pt-0.5 pb-0.5 ", children: "Event" }) })
|
|
4531
4675
|
] }),
|
|
4532
|
-
summary && mode === "full" && /* @__PURE__ */
|
|
4533
|
-
/* @__PURE__ */
|
|
4676
|
+
summary && mode === "full" && /* @__PURE__ */ jsxs18("div", { children: [
|
|
4677
|
+
/* @__PURE__ */ jsx20(
|
|
4534
4678
|
"div",
|
|
4535
4679
|
{
|
|
4536
4680
|
className: classNames14(
|
|
4537
4681
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4538
4682
|
),
|
|
4539
|
-
children: /* @__PURE__ */
|
|
4683
|
+
children: /* @__PURE__ */ jsx20("span", { className: "text-xs font-bold block pb-0.5", children: name })
|
|
4540
4684
|
}
|
|
4541
4685
|
),
|
|
4542
|
-
mode === "full" && /* @__PURE__ */
|
|
4686
|
+
mode === "full" && /* @__PURE__ */ jsx20("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: /* @__PURE__ */ jsx20("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-light", children: summary }) }) })
|
|
4543
4687
|
] })
|
|
4544
4688
|
] })
|
|
4545
4689
|
]
|
|
@@ -4548,20 +4692,20 @@ var User_default = memo18(function UserNode({
|
|
|
4548
4692
|
});
|
|
4549
4693
|
|
|
4550
4694
|
// src/nodes/Step.tsx
|
|
4551
|
-
import { memo as
|
|
4695
|
+
import { memo as memo20 } from "react";
|
|
4552
4696
|
import { Handle as Handle15, Position as Position13 } from "@xyflow/react";
|
|
4553
|
-
import { jsx as
|
|
4697
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4554
4698
|
function classNames15(...classes) {
|
|
4555
4699
|
return classes.filter(Boolean).join(" ");
|
|
4556
4700
|
}
|
|
4557
|
-
var Step_default =
|
|
4701
|
+
var Step_default = memo20(function StepNode({
|
|
4558
4702
|
data,
|
|
4559
4703
|
sourcePosition,
|
|
4560
4704
|
targetPosition
|
|
4561
4705
|
}) {
|
|
4562
4706
|
const { mode, step } = data;
|
|
4563
4707
|
const { title, summary } = step;
|
|
4564
|
-
return /* @__PURE__ */
|
|
4708
|
+
return /* @__PURE__ */ jsxs19(
|
|
4565
4709
|
"div",
|
|
4566
4710
|
{
|
|
4567
4711
|
className: classNames15(
|
|
@@ -4569,14 +4713,14 @@ var Step_default = memo19(function StepNode({
|
|
|
4569
4713
|
),
|
|
4570
4714
|
style: NODE_WIDTH_STYLE,
|
|
4571
4715
|
children: [
|
|
4572
|
-
/* @__PURE__ */
|
|
4716
|
+
/* @__PURE__ */ jsx21(
|
|
4573
4717
|
"div",
|
|
4574
4718
|
{
|
|
4575
4719
|
className: classNames15(
|
|
4576
4720
|
"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",
|
|
4577
4721
|
`border-r-[1px] border-gray-500`
|
|
4578
4722
|
),
|
|
4579
|
-
children: mode === "full" && /* @__PURE__ */
|
|
4723
|
+
children: mode === "full" && /* @__PURE__ */ jsx21(
|
|
4580
4724
|
"span",
|
|
4581
4725
|
{
|
|
4582
4726
|
className: "text-center text-[9px] text-white font-bold uppercase mb-4",
|
|
@@ -4586,8 +4730,8 @@ var Step_default = memo19(function StepNode({
|
|
|
4586
4730
|
)
|
|
4587
4731
|
}
|
|
4588
4732
|
),
|
|
4589
|
-
/* @__PURE__ */
|
|
4590
|
-
/* @__PURE__ */
|
|
4733
|
+
/* @__PURE__ */ jsxs19("div", { className: "p-1 flex-1", children: [
|
|
4734
|
+
/* @__PURE__ */ jsx21(
|
|
4591
4735
|
Handle15,
|
|
4592
4736
|
{
|
|
4593
4737
|
type: "target",
|
|
@@ -4595,7 +4739,7 @@ var Step_default = memo19(function StepNode({
|
|
|
4595
4739
|
style: HIDDEN_HANDLE_STYLE
|
|
4596
4740
|
}
|
|
4597
4741
|
),
|
|
4598
|
-
/* @__PURE__ */
|
|
4742
|
+
/* @__PURE__ */ jsx21(
|
|
4599
4743
|
Handle15,
|
|
4600
4744
|
{
|
|
4601
4745
|
type: "source",
|
|
@@ -4603,18 +4747,18 @@ var Step_default = memo19(function StepNode({
|
|
|
4603
4747
|
style: HIDDEN_HANDLE_STYLE
|
|
4604
4748
|
}
|
|
4605
4749
|
),
|
|
4606
|
-
!summary && /* @__PURE__ */
|
|
4607
|
-
summary && /* @__PURE__ */
|
|
4608
|
-
/* @__PURE__ */
|
|
4750
|
+
!summary && /* @__PURE__ */ jsx21("div", { className: "h-full flex items-center", children: /* @__PURE__ */ jsx21("span", { className: "text-sm font-bold block pb-0.5", children: title }) }),
|
|
4751
|
+
summary && /* @__PURE__ */ jsxs19("div", { children: [
|
|
4752
|
+
/* @__PURE__ */ jsx21(
|
|
4609
4753
|
"div",
|
|
4610
4754
|
{
|
|
4611
4755
|
className: classNames15(
|
|
4612
4756
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4613
4757
|
),
|
|
4614
|
-
children: /* @__PURE__ */
|
|
4758
|
+
children: /* @__PURE__ */ jsx21("span", { className: "text-xs font-bold block pb-0.5", children: title })
|
|
4615
4759
|
}
|
|
4616
4760
|
),
|
|
4617
|
-
mode === "full" && /* @__PURE__ */
|
|
4761
|
+
mode === "full" && /* @__PURE__ */ jsx21("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: /* @__PURE__ */ jsx21("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-light", children: summary }) }) })
|
|
4618
4762
|
] })
|
|
4619
4763
|
] })
|
|
4620
4764
|
]
|
|
@@ -4630,9 +4774,9 @@ import {
|
|
|
4630
4774
|
Position as Position14
|
|
4631
4775
|
} from "@xyflow/react";
|
|
4632
4776
|
import * as ContextMenu3 from "@radix-ui/react-context-menu";
|
|
4633
|
-
import { memo as
|
|
4634
|
-
import { jsx as
|
|
4635
|
-
var Domain_default =
|
|
4777
|
+
import { memo as memo21, useState as useState4, useCallback as useCallback3, useMemo as useMemo9 } from "react";
|
|
4778
|
+
import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4779
|
+
var Domain_default = memo21(function DomainNode({ data, id: nodeId }) {
|
|
4636
4780
|
const { mode, domain } = data;
|
|
4637
4781
|
const reactFlow = useReactFlow();
|
|
4638
4782
|
const [highlightedServices, setHighlightedServices] = useState4(
|
|
@@ -4675,27 +4819,27 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4675
4819
|
useOnSelectionChange({
|
|
4676
4820
|
onChange: handleSelectionChange
|
|
4677
4821
|
});
|
|
4678
|
-
return /* @__PURE__ */
|
|
4679
|
-
/* @__PURE__ */
|
|
4680
|
-
/* @__PURE__ */
|
|
4681
|
-
Icon && /* @__PURE__ */
|
|
4682
|
-
/* @__PURE__ */
|
|
4683
|
-
/* @__PURE__ */
|
|
4684
|
-
/* @__PURE__ */
|
|
4822
|
+
return /* @__PURE__ */ jsxs20(ContextMenu3.Root, { children: [
|
|
4823
|
+
/* @__PURE__ */ jsx22(ContextMenu3.Trigger, { children: /* @__PURE__ */ jsxs20("div", { className: "w-full rounded-lg border-2 border-yellow-400 bg-[rgb(var(--ec-card-bg))] shadow-lg", children: [
|
|
4824
|
+
/* @__PURE__ */ jsxs20("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: [
|
|
4825
|
+
Icon && /* @__PURE__ */ jsx22(Icon, { className: "w-4 h-4 text-yellow-500" }),
|
|
4826
|
+
/* @__PURE__ */ jsxs20("div", { children: [
|
|
4827
|
+
/* @__PURE__ */ jsx22("span", { className: "text-sm font-bold text-[rgb(var(--ec-page-text))]", children: name }),
|
|
4828
|
+
/* @__PURE__ */ jsxs20("span", { className: "text-xs text-yellow-500 ml-2", children: [
|
|
4685
4829
|
"v",
|
|
4686
4830
|
version
|
|
4687
4831
|
] })
|
|
4688
4832
|
] })
|
|
4689
4833
|
] }),
|
|
4690
|
-
mode === "full" && services.length > 0 && /* @__PURE__ */
|
|
4834
|
+
mode === "full" && services.length > 0 && /* @__PURE__ */ jsx22("div", { children: services.map((service, index) => {
|
|
4691
4835
|
const isHighlighted = highlightedServices.has(service.data.id);
|
|
4692
|
-
return /* @__PURE__ */
|
|
4693
|
-
/* @__PURE__ */
|
|
4836
|
+
return /* @__PURE__ */ jsxs20(ContextMenu3.Root, { children: [
|
|
4837
|
+
/* @__PURE__ */ jsx22(ContextMenu3.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs20(
|
|
4694
4838
|
"div",
|
|
4695
4839
|
{
|
|
4696
4840
|
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" : ""}`,
|
|
4697
4841
|
children: [
|
|
4698
|
-
/* @__PURE__ */
|
|
4842
|
+
/* @__PURE__ */ jsx22(
|
|
4699
4843
|
Handle16,
|
|
4700
4844
|
{
|
|
4701
4845
|
type: "target",
|
|
@@ -4705,7 +4849,7 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4705
4849
|
style: HANDLE_LEFT_STYLE
|
|
4706
4850
|
}
|
|
4707
4851
|
),
|
|
4708
|
-
/* @__PURE__ */
|
|
4852
|
+
/* @__PURE__ */ jsx22(
|
|
4709
4853
|
Handle16,
|
|
4710
4854
|
{
|
|
4711
4855
|
type: "source",
|
|
@@ -4715,19 +4859,19 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4715
4859
|
style: HANDLE_RIGHT_STYLE
|
|
4716
4860
|
}
|
|
4717
4861
|
),
|
|
4718
|
-
/* @__PURE__ */
|
|
4719
|
-
/* @__PURE__ */
|
|
4720
|
-
/* @__PURE__ */
|
|
4862
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center space-x-3", children: [
|
|
4863
|
+
/* @__PURE__ */ jsx22("div", { className: "flex items-center justify-center w-5 h-5 bg-pink-500 rounded", children: ServerIcon3 && /* @__PURE__ */ jsx22(ServerIcon3, { className: "w-3 h-3 text-white" }) }),
|
|
4864
|
+
/* @__PURE__ */ jsx22("span", { className: "text-sm font-medium text-[rgb(var(--ec-page-text))]", children: service.data.name || service.data.id })
|
|
4721
4865
|
] }),
|
|
4722
|
-
/* @__PURE__ */
|
|
4866
|
+
/* @__PURE__ */ jsx22("div", { className: "flex items-center space-x-4 text-sm text-[rgb(var(--ec-page-text-muted))]", children: /* @__PURE__ */ jsxs20("span", { className: "text-xs", children: [
|
|
4723
4867
|
"v",
|
|
4724
4868
|
service.data.version
|
|
4725
4869
|
] }) })
|
|
4726
4870
|
]
|
|
4727
4871
|
}
|
|
4728
4872
|
) }),
|
|
4729
|
-
/* @__PURE__ */
|
|
4730
|
-
/* @__PURE__ */
|
|
4873
|
+
/* @__PURE__ */ jsx22(ContextMenu3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs20(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: [
|
|
4874
|
+
/* @__PURE__ */ jsx22(
|
|
4731
4875
|
ContextMenu3.Item,
|
|
4732
4876
|
{
|
|
4733
4877
|
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",
|
|
@@ -4737,7 +4881,7 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4737
4881
|
children: "View Service Documentation"
|
|
4738
4882
|
}
|
|
4739
4883
|
),
|
|
4740
|
-
/* @__PURE__ */
|
|
4884
|
+
/* @__PURE__ */ jsx22(
|
|
4741
4885
|
ContextMenu3.Item,
|
|
4742
4886
|
{
|
|
4743
4887
|
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",
|
|
@@ -4751,8 +4895,8 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4751
4895
|
] }, `${service.data.id}-${index}`);
|
|
4752
4896
|
}) })
|
|
4753
4897
|
] }) }),
|
|
4754
|
-
/* @__PURE__ */
|
|
4755
|
-
/* @__PURE__ */
|
|
4898
|
+
/* @__PURE__ */ jsx22(ContextMenu3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs20(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: [
|
|
4899
|
+
/* @__PURE__ */ jsx22(
|
|
4756
4900
|
ContextMenu3.Item,
|
|
4757
4901
|
{
|
|
4758
4902
|
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",
|
|
@@ -4762,7 +4906,7 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4762
4906
|
children: "View Domain Documentation"
|
|
4763
4907
|
}
|
|
4764
4908
|
),
|
|
4765
|
-
/* @__PURE__ */
|
|
4909
|
+
/* @__PURE__ */ jsx22(
|
|
4766
4910
|
ContextMenu3.Item,
|
|
4767
4911
|
{
|
|
4768
4912
|
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",
|
|
@@ -4777,9 +4921,9 @@ var Domain_default = memo20(function DomainNode({ data, id: nodeId }) {
|
|
|
4777
4921
|
});
|
|
4778
4922
|
|
|
4779
4923
|
// src/nodes/GroupNode.tsx
|
|
4780
|
-
import { memo as
|
|
4924
|
+
import { memo as memo22 } from "react";
|
|
4781
4925
|
import { BoxesIcon } from "lucide-react";
|
|
4782
|
-
import { jsx as
|
|
4926
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4783
4927
|
var GROUP_CONTAINER_STYLE = {
|
|
4784
4928
|
width: "100%",
|
|
4785
4929
|
height: "100%",
|
|
@@ -4851,11 +4995,11 @@ var GROUP_VERSION_STYLE = {
|
|
|
4851
4995
|
};
|
|
4852
4996
|
var GROUP_ICON_COLOR_STYLE = { color: "#7c3aed" };
|
|
4853
4997
|
var GROUP_ICON_WHITE_STYLE = { color: "white" };
|
|
4854
|
-
var GroupNode_default =
|
|
4998
|
+
var GroupNode_default = memo22(function GroupNode({ data }) {
|
|
4855
4999
|
const { domain } = data;
|
|
4856
|
-
return /* @__PURE__ */
|
|
4857
|
-
/* @__PURE__ */
|
|
4858
|
-
/* @__PURE__ */
|
|
5000
|
+
return /* @__PURE__ */ jsx23("div", { style: GROUP_CONTAINER_STYLE, children: /* @__PURE__ */ jsxs21("div", { style: GROUP_HEADER_STYLE, children: [
|
|
5001
|
+
/* @__PURE__ */ jsx23("div", { style: GROUP_WATERMARK_STYLE, children: /* @__PURE__ */ jsx23(BoxesIcon, { size: 28, strokeWidth: 2, style: GROUP_ICON_COLOR_STYLE }) }),
|
|
5002
|
+
/* @__PURE__ */ jsx23("div", { style: GROUP_ICON_CIRCLE_STYLE, children: /* @__PURE__ */ jsx23(
|
|
4859
5003
|
BoxesIcon,
|
|
4860
5004
|
{
|
|
4861
5005
|
size: 16,
|
|
@@ -4863,9 +5007,9 @@ var GroupNode_default = memo21(function GroupNode({ data }) {
|
|
|
4863
5007
|
style: GROUP_ICON_WHITE_STYLE
|
|
4864
5008
|
}
|
|
4865
5009
|
) }),
|
|
4866
|
-
/* @__PURE__ */
|
|
4867
|
-
/* @__PURE__ */
|
|
4868
|
-
domain?.version && /* @__PURE__ */
|
|
5010
|
+
/* @__PURE__ */ jsx23("div", { style: GROUP_BANNER_CONTENT_STYLE, children: /* @__PURE__ */ jsxs21("div", { style: GROUP_BANNER_INNER_STYLE, children: [
|
|
5011
|
+
/* @__PURE__ */ jsx23("span", { style: GROUP_DOMAIN_NAME_STYLE, children: domain?.name || "Domain" }),
|
|
5012
|
+
domain?.version && /* @__PURE__ */ jsxs21("span", { style: GROUP_VERSION_STYLE, children: [
|
|
4869
5013
|
"v",
|
|
4870
5014
|
domain.version
|
|
4871
5015
|
] })
|
|
@@ -4876,14 +5020,14 @@ var GroupNode_default = memo21(function GroupNode({ data }) {
|
|
|
4876
5020
|
// src/nodes/Custom.tsx
|
|
4877
5021
|
import { Handle as Handle17 } from "@xyflow/react";
|
|
4878
5022
|
import * as Icons from "@heroicons/react/24/solid";
|
|
4879
|
-
import { memo as
|
|
5023
|
+
import { memo as memo23, useMemo as useMemo10 } from "react";
|
|
4880
5024
|
import * as ContextMenu4 from "@radix-ui/react-context-menu";
|
|
4881
5025
|
import * as Tooltip from "@radix-ui/react-tooltip";
|
|
4882
|
-
import { jsx as
|
|
5026
|
+
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4883
5027
|
function classNames16(...classes) {
|
|
4884
5028
|
return classes.filter(Boolean).join(" ");
|
|
4885
5029
|
}
|
|
4886
|
-
var Custom_default =
|
|
5030
|
+
var Custom_default = memo23(function UserNode2({
|
|
4887
5031
|
data,
|
|
4888
5032
|
sourcePosition,
|
|
4889
5033
|
targetPosition
|
|
@@ -4905,8 +5049,8 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4905
5049
|
const isLongType = type && type.length > 10;
|
|
4906
5050
|
const displayType = isLongType ? `${type.substring(0, 10)}...` : type;
|
|
4907
5051
|
const portalContainer = usePortalContainer();
|
|
4908
|
-
return /* @__PURE__ */
|
|
4909
|
-
/* @__PURE__ */
|
|
5052
|
+
return /* @__PURE__ */ jsxs22(ContextMenu4.Root, { children: [
|
|
5053
|
+
/* @__PURE__ */ jsx24(ContextMenu4.Trigger, { children: /* @__PURE__ */ jsxs22(
|
|
4910
5054
|
"div",
|
|
4911
5055
|
{
|
|
4912
5056
|
className: classNames16(
|
|
@@ -4917,7 +5061,7 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4917
5061
|
...NODE_WIDTH_STYLE
|
|
4918
5062
|
},
|
|
4919
5063
|
children: [
|
|
4920
|
-
/* @__PURE__ */
|
|
5064
|
+
/* @__PURE__ */ jsxs22(
|
|
4921
5065
|
"div",
|
|
4922
5066
|
{
|
|
4923
5067
|
className: classNames16(
|
|
@@ -4925,9 +5069,9 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4925
5069
|
`border-r-[1px] border-${color}`
|
|
4926
5070
|
),
|
|
4927
5071
|
children: [
|
|
4928
|
-
IconComponent && /* @__PURE__ */
|
|
4929
|
-
mode === "full" && /* @__PURE__ */
|
|
4930
|
-
/* @__PURE__ */
|
|
5072
|
+
IconComponent && /* @__PURE__ */ jsx24(IconComponent, { className: "w-4 h-4 opacity-90 text-white mt-1" }),
|
|
5073
|
+
mode === "full" && /* @__PURE__ */ jsx24(Tooltip.Provider, { children: /* @__PURE__ */ jsxs22(Tooltip.Root, { children: [
|
|
5074
|
+
/* @__PURE__ */ jsx24(Tooltip.Trigger, { asChild: true, children: /* @__PURE__ */ jsx24(
|
|
4931
5075
|
"span",
|
|
4932
5076
|
{
|
|
4933
5077
|
className: "text-center text-[9px] text-white font-bold uppercase mb-4",
|
|
@@ -4935,7 +5079,7 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4935
5079
|
children: displayType
|
|
4936
5080
|
}
|
|
4937
5081
|
) }),
|
|
4938
|
-
isLongType && /* @__PURE__ */
|
|
5082
|
+
isLongType && /* @__PURE__ */ jsx24(Tooltip.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs22(
|
|
4939
5083
|
Tooltip.Content,
|
|
4940
5084
|
{
|
|
4941
5085
|
className: "bg-slate-800 text-white rounded px-2 py-1 text-xs shadow-md z-50",
|
|
@@ -4943,7 +5087,7 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4943
5087
|
sideOffset: 5,
|
|
4944
5088
|
children: [
|
|
4945
5089
|
type,
|
|
4946
|
-
/* @__PURE__ */
|
|
5090
|
+
/* @__PURE__ */ jsx24(Tooltip.Arrow, { className: "fill-slate-800" })
|
|
4947
5091
|
]
|
|
4948
5092
|
}
|
|
4949
5093
|
) })
|
|
@@ -4951,23 +5095,23 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4951
5095
|
]
|
|
4952
5096
|
}
|
|
4953
5097
|
),
|
|
4954
|
-
/* @__PURE__ */
|
|
4955
|
-
targetPosition && /* @__PURE__ */
|
|
4956
|
-
sourcePosition && /* @__PURE__ */
|
|
4957
|
-
(!summary || mode !== "full") && /* @__PURE__ */
|
|
4958
|
-
summary && mode === "full" && /* @__PURE__ */
|
|
4959
|
-
/* @__PURE__ */
|
|
5098
|
+
/* @__PURE__ */ jsxs22("div", { className: "p-1 flex-1", children: [
|
|
5099
|
+
targetPosition && /* @__PURE__ */ jsx24(Handle17, { type: "target", position: targetPosition }),
|
|
5100
|
+
sourcePosition && /* @__PURE__ */ jsx24(Handle17, { type: "source", position: sourcePosition }),
|
|
5101
|
+
(!summary || mode !== "full") && /* @__PURE__ */ jsx24("div", { className: "h-full ", children: /* @__PURE__ */ jsx24("span", { className: "text-sm font-bold block pb-0.5 w-full", children: title }) }),
|
|
5102
|
+
summary && mode === "full" && /* @__PURE__ */ jsxs22("div", { children: [
|
|
5103
|
+
/* @__PURE__ */ jsx24(
|
|
4960
5104
|
"div",
|
|
4961
5105
|
{
|
|
4962
5106
|
className: classNames16(
|
|
4963
5107
|
mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
|
|
4964
5108
|
),
|
|
4965
|
-
children: /* @__PURE__ */
|
|
5109
|
+
children: /* @__PURE__ */ jsx24("span", { className: "text-xs font-bold block pb-0.5", children: title })
|
|
4966
5110
|
}
|
|
4967
5111
|
),
|
|
4968
|
-
mode === "full" && /* @__PURE__ */
|
|
4969
|
-
/* @__PURE__ */
|
|
4970
|
-
properties && /* @__PURE__ */
|
|
5112
|
+
mode === "full" && /* @__PURE__ */ jsxs22("div", { className: "divide-y divide-[rgb(var(--ec-page-border))] ", children: [
|
|
5113
|
+
/* @__PURE__ */ jsx24("div", { className: "leading-3 py-1", children: /* @__PURE__ */ jsx24("span", { className: "text-[8px] font-light", children: summary }) }),
|
|
5114
|
+
properties && /* @__PURE__ */ jsx24("div", { className: "grid grid-cols-2 gap-x-4 py-1", children: Object.entries(properties).map(([key, value]) => /* @__PURE__ */ jsxs22(
|
|
4971
5115
|
"span",
|
|
4972
5116
|
{
|
|
4973
5117
|
className: "text-xs",
|
|
@@ -4976,7 +5120,7 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4976
5120
|
key,
|
|
4977
5121
|
":",
|
|
4978
5122
|
" ",
|
|
4979
|
-
typeof value === "string" && value.startsWith("http") ? /* @__PURE__ */
|
|
5123
|
+
typeof value === "string" && value.startsWith("http") ? /* @__PURE__ */ jsx24(
|
|
4980
5124
|
"a",
|
|
4981
5125
|
{
|
|
4982
5126
|
href: value,
|
|
@@ -4996,13 +5140,13 @@ var Custom_default = memo22(function UserNode2({
|
|
|
4996
5140
|
]
|
|
4997
5141
|
}
|
|
4998
5142
|
) }),
|
|
4999
|
-
menu?.length > 0 && /* @__PURE__ */
|
|
5000
|
-
return /* @__PURE__ */
|
|
5143
|
+
menu?.length > 0 && /* @__PURE__ */ jsx24(ContextMenu4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx24(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: menu?.map((item) => {
|
|
5144
|
+
return /* @__PURE__ */ jsx24(
|
|
5001
5145
|
ContextMenu4.Item,
|
|
5002
5146
|
{
|
|
5003
5147
|
asChild: true,
|
|
5004
5148
|
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center",
|
|
5005
|
-
children: /* @__PURE__ */
|
|
5149
|
+
children: /* @__PURE__ */ jsx24("a", { href: item.url, children: item.label })
|
|
5006
5150
|
}
|
|
5007
5151
|
);
|
|
5008
5152
|
}) }) })
|
|
@@ -5010,12 +5154,12 @@ var Custom_default = memo22(function UserNode2({
|
|
|
5010
5154
|
});
|
|
5011
5155
|
|
|
5012
5156
|
// src/nodes/ExternalSystem2.tsx
|
|
5013
|
-
import { memo as
|
|
5157
|
+
import { memo as memo24 } from "react";
|
|
5014
5158
|
import { Handle as Handle18, Position as Position15 } from "@xyflow/react";
|
|
5015
|
-
import { jsx as
|
|
5016
|
-
var ExternalSystem2_default =
|
|
5017
|
-
return /* @__PURE__ */
|
|
5018
|
-
/* @__PURE__ */
|
|
5159
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5160
|
+
var ExternalSystem2_default = memo24(function ExternalSystemNode(props) {
|
|
5161
|
+
return /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
|
|
5162
|
+
/* @__PURE__ */ jsx25(
|
|
5019
5163
|
Handle18,
|
|
5020
5164
|
{
|
|
5021
5165
|
type: "target",
|
|
@@ -5024,7 +5168,7 @@ var ExternalSystem2_default = memo23(function ExternalSystemNode(props) {
|
|
|
5024
5168
|
className: "bg-gray-500"
|
|
5025
5169
|
}
|
|
5026
5170
|
),
|
|
5027
|
-
/* @__PURE__ */
|
|
5171
|
+
/* @__PURE__ */ jsx25(
|
|
5028
5172
|
Handle18,
|
|
5029
5173
|
{
|
|
5030
5174
|
type: "source",
|
|
@@ -5033,17 +5177,17 @@ var ExternalSystem2_default = memo23(function ExternalSystemNode(props) {
|
|
|
5033
5177
|
className: "bg-gray-500"
|
|
5034
5178
|
}
|
|
5035
5179
|
),
|
|
5036
|
-
/* @__PURE__ */
|
|
5180
|
+
/* @__PURE__ */ jsx25(ExternalSystem_default, { ...props })
|
|
5037
5181
|
] });
|
|
5038
5182
|
});
|
|
5039
5183
|
|
|
5040
5184
|
// src/nodes/DataProduct.tsx
|
|
5041
|
-
import { memo as
|
|
5185
|
+
import { memo as memo25 } from "react";
|
|
5042
5186
|
import { Package } from "lucide-react";
|
|
5043
5187
|
import { Handle as Handle19, Position as Position16, useNodeConnections as useNodeConnections10 } from "@xyflow/react";
|
|
5044
|
-
import { jsx as
|
|
5188
|
+
import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5045
5189
|
function GlowHandle14({ side }) {
|
|
5046
|
-
return /* @__PURE__ */
|
|
5190
|
+
return /* @__PURE__ */ jsx26(
|
|
5047
5191
|
"div",
|
|
5048
5192
|
{
|
|
5049
5193
|
style: {
|
|
@@ -5070,7 +5214,7 @@ function PostItDataProduct(props) {
|
|
|
5070
5214
|
const { version, name, summary, deprecated, draft, notes, styles } = props.data.dataProduct;
|
|
5071
5215
|
const mode = props.data.mode || "simple";
|
|
5072
5216
|
const customIcon = isIconPath(styles?.icon) ? styles.icon : void 0;
|
|
5073
|
-
return /* @__PURE__ */
|
|
5217
|
+
return /* @__PURE__ */ jsxs24(
|
|
5074
5218
|
"div",
|
|
5075
5219
|
{
|
|
5076
5220
|
className: classNames17(
|
|
@@ -5078,7 +5222,7 @@ function PostItDataProduct(props) {
|
|
|
5078
5222
|
props?.selected ? "ring-2 ring-indigo-400/60 ring-offset-1" : ""
|
|
5079
5223
|
),
|
|
5080
5224
|
children: [
|
|
5081
|
-
/* @__PURE__ */
|
|
5225
|
+
/* @__PURE__ */ jsx26(
|
|
5082
5226
|
Handle19,
|
|
5083
5227
|
{
|
|
5084
5228
|
type: "target",
|
|
@@ -5086,7 +5230,7 @@ function PostItDataProduct(props) {
|
|
|
5086
5230
|
style: HIDDEN_HANDLE_STYLE
|
|
5087
5231
|
}
|
|
5088
5232
|
),
|
|
5089
|
-
/* @__PURE__ */
|
|
5233
|
+
/* @__PURE__ */ jsx26(
|
|
5090
5234
|
Handle19,
|
|
5091
5235
|
{
|
|
5092
5236
|
type: "source",
|
|
@@ -5094,8 +5238,8 @@ function PostItDataProduct(props) {
|
|
|
5094
5238
|
style: HIDDEN_HANDLE_STYLE
|
|
5095
5239
|
}
|
|
5096
5240
|
),
|
|
5097
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
5098
|
-
/* @__PURE__ */
|
|
5241
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx26(NotesIndicator, { notes, resourceName: name }),
|
|
5242
|
+
/* @__PURE__ */ jsxs24(
|
|
5099
5243
|
"div",
|
|
5100
5244
|
{
|
|
5101
5245
|
className: "absolute inset-0",
|
|
@@ -5106,8 +5250,8 @@ function PostItDataProduct(props) {
|
|
|
5106
5250
|
border: deprecated ? "2px dashed rgba(239, 68, 68, 0.5)" : draft ? "2px dashed rgba(99, 102, 241, 0.5)" : "none"
|
|
5107
5251
|
},
|
|
5108
5252
|
children: [
|
|
5109
|
-
/* @__PURE__ */
|
|
5110
|
-
/* @__PURE__ */
|
|
5253
|
+
/* @__PURE__ */ jsx26("div", { style: FOLDED_CORNER_SHADOW_STYLE }),
|
|
5254
|
+
/* @__PURE__ */ jsx26(
|
|
5111
5255
|
"div",
|
|
5112
5256
|
{
|
|
5113
5257
|
style: {
|
|
@@ -5126,17 +5270,17 @@ function PostItDataProduct(props) {
|
|
|
5126
5270
|
]
|
|
5127
5271
|
}
|
|
5128
5272
|
),
|
|
5129
|
-
/* @__PURE__ */
|
|
5130
|
-
/* @__PURE__ */
|
|
5131
|
-
/* @__PURE__ */
|
|
5132
|
-
/* @__PURE__ */
|
|
5133
|
-
/* @__PURE__ */
|
|
5273
|
+
/* @__PURE__ */ jsxs24("div", { className: "relative px-3.5 py-3", children: [
|
|
5274
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between mb-2", children: [
|
|
5275
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1", children: [
|
|
5276
|
+
/* @__PURE__ */ jsx26(Package, { className: "w-3 h-3 text-indigo-900/50", strokeWidth: 2.5 }),
|
|
5277
|
+
/* @__PURE__ */ jsx26("span", { className: "text-[8px] font-bold text-indigo-900/50 uppercase tracking-widest", children: "Data Product" })
|
|
5134
5278
|
] }),
|
|
5135
|
-
draft && /* @__PURE__ */
|
|
5136
|
-
deprecated && /* @__PURE__ */
|
|
5279
|
+
draft && /* @__PURE__ */ jsx26("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" }),
|
|
5280
|
+
deprecated && /* @__PURE__ */ jsx26("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" })
|
|
5137
5281
|
] }),
|
|
5138
|
-
/* @__PURE__ */
|
|
5139
|
-
customIcon && /* @__PURE__ */
|
|
5282
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
|
|
5283
|
+
customIcon && /* @__PURE__ */ jsx26(
|
|
5140
5284
|
CustomIcon,
|
|
5141
5285
|
{
|
|
5142
5286
|
src: customIcon,
|
|
@@ -5144,7 +5288,7 @@ function PostItDataProduct(props) {
|
|
|
5144
5288
|
className: mode === "full" ? "w-[26px] h-[26px] shrink-0" : "w-4 h-4 shrink-0 -my-1"
|
|
5145
5289
|
}
|
|
5146
5290
|
),
|
|
5147
|
-
/* @__PURE__ */
|
|
5291
|
+
/* @__PURE__ */ jsx26(
|
|
5148
5292
|
"div",
|
|
5149
5293
|
{
|
|
5150
5294
|
className: classNames17(
|
|
@@ -5155,11 +5299,11 @@ function PostItDataProduct(props) {
|
|
|
5155
5299
|
}
|
|
5156
5300
|
)
|
|
5157
5301
|
] }),
|
|
5158
|
-
version && /* @__PURE__ */
|
|
5302
|
+
version && /* @__PURE__ */ jsxs24("div", { className: "text-[9px] text-indigo-900/40 font-semibold mt-0.5", children: [
|
|
5159
5303
|
"v",
|
|
5160
5304
|
version
|
|
5161
5305
|
] }),
|
|
5162
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
5306
|
+
mode === "full" && summary && /* @__PURE__ */ jsx26(
|
|
5163
5307
|
"div",
|
|
5164
5308
|
{
|
|
5165
5309
|
className: "mt-2 pt-1.5 border-t border-indigo-900/10 text-[9px] text-indigo-950/60 leading-relaxed overflow-hidden",
|
|
@@ -5181,7 +5325,7 @@ function DefaultDataProduct(props) {
|
|
|
5181
5325
|
const sourceConnections = useNodeConnections10({ handleType: "source" });
|
|
5182
5326
|
const isDark = useDarkMode();
|
|
5183
5327
|
const deprecatedStripe = isDark ? "rgba(239,68,68,0.25)" : "rgba(239,68,68,0.1)";
|
|
5184
|
-
return /* @__PURE__ */
|
|
5328
|
+
return /* @__PURE__ */ jsxs24(
|
|
5185
5329
|
"div",
|
|
5186
5330
|
{
|
|
5187
5331
|
className: classNames17(
|
|
@@ -5194,7 +5338,7 @@ function DefaultDataProduct(props) {
|
|
|
5194
5338
|
boxShadow: "0 2px 12px rgba(99, 102, 241, 0.15)"
|
|
5195
5339
|
},
|
|
5196
5340
|
children: [
|
|
5197
|
-
/* @__PURE__ */
|
|
5341
|
+
/* @__PURE__ */ jsx26(
|
|
5198
5342
|
Handle19,
|
|
5199
5343
|
{
|
|
5200
5344
|
type: "target",
|
|
@@ -5202,7 +5346,7 @@ function DefaultDataProduct(props) {
|
|
|
5202
5346
|
style: HIDDEN_HANDLE_STYLE
|
|
5203
5347
|
}
|
|
5204
5348
|
),
|
|
5205
|
-
/* @__PURE__ */
|
|
5349
|
+
/* @__PURE__ */ jsx26(
|
|
5206
5350
|
Handle19,
|
|
5207
5351
|
{
|
|
5208
5352
|
type: "source",
|
|
@@ -5210,10 +5354,10 @@ function DefaultDataProduct(props) {
|
|
|
5210
5354
|
style: HIDDEN_HANDLE_STYLE
|
|
5211
5355
|
}
|
|
5212
5356
|
),
|
|
5213
|
-
notes && notes.length > 0 && /* @__PURE__ */
|
|
5214
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
5215
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
5216
|
-
/* @__PURE__ */
|
|
5357
|
+
notes && notes.length > 0 && /* @__PURE__ */ jsx26(NotesIndicator, { notes, resourceName: name }),
|
|
5358
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx26(GlowHandle14, { side: "left" }),
|
|
5359
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx26(GlowHandle14, { side: "right" }),
|
|
5360
|
+
/* @__PURE__ */ jsx26("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ jsxs24(
|
|
5217
5361
|
"span",
|
|
5218
5362
|
{
|
|
5219
5363
|
className: classNames17(
|
|
@@ -5221,16 +5365,16 @@ function DefaultDataProduct(props) {
|
|
|
5221
5365
|
deprecated ? "bg-red-500" : "bg-indigo-500"
|
|
5222
5366
|
),
|
|
5223
5367
|
children: [
|
|
5224
|
-
/* @__PURE__ */
|
|
5368
|
+
/* @__PURE__ */ jsx26(Package, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
5225
5369
|
"Data Product",
|
|
5226
5370
|
draft && " (Draft)",
|
|
5227
5371
|
deprecated && " (Deprecated)"
|
|
5228
5372
|
]
|
|
5229
5373
|
}
|
|
5230
5374
|
) }),
|
|
5231
|
-
/* @__PURE__ */
|
|
5232
|
-
/* @__PURE__ */
|
|
5233
|
-
customIcon && /* @__PURE__ */
|
|
5375
|
+
/* @__PURE__ */ jsxs24("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
5376
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
|
|
5377
|
+
customIcon && /* @__PURE__ */ jsx26(
|
|
5234
5378
|
CustomIcon,
|
|
5235
5379
|
{
|
|
5236
5380
|
src: customIcon,
|
|
@@ -5238,16 +5382,16 @@ function DefaultDataProduct(props) {
|
|
|
5238
5382
|
className: mode === "full" ? "w-[26px] h-[26px] shrink-0" : "w-4 h-4 shrink-0 -my-1"
|
|
5239
5383
|
}
|
|
5240
5384
|
),
|
|
5241
|
-
/* @__PURE__ */
|
|
5242
|
-
/* @__PURE__ */
|
|
5243
|
-
version && /* @__PURE__ */
|
|
5385
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-baseline gap-1 min-w-0", children: [
|
|
5386
|
+
/* @__PURE__ */ jsx26("span", { className: "text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))] truncate", children: name }),
|
|
5387
|
+
version && /* @__PURE__ */ jsxs24("span", { className: "text-[10px] font-normal text-[rgb(var(--ec-page-text-muted))] shrink-0", children: [
|
|
5244
5388
|
"(v",
|
|
5245
5389
|
version,
|
|
5246
5390
|
")"
|
|
5247
5391
|
] })
|
|
5248
5392
|
] })
|
|
5249
5393
|
] }),
|
|
5250
|
-
mode === "full" && summary && /* @__PURE__ */
|
|
5394
|
+
mode === "full" && summary && /* @__PURE__ */ jsx26(
|
|
5251
5395
|
"div",
|
|
5252
5396
|
{
|
|
5253
5397
|
className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden",
|
|
@@ -5261,19 +5405,19 @@ function DefaultDataProduct(props) {
|
|
|
5261
5405
|
}
|
|
5262
5406
|
);
|
|
5263
5407
|
}
|
|
5264
|
-
var DataProduct_default =
|
|
5408
|
+
var DataProduct_default = memo25(function DataProductNode(props) {
|
|
5265
5409
|
const nodeStyle = props?.data?.style;
|
|
5266
5410
|
if (nodeStyle === "post-it") {
|
|
5267
|
-
return /* @__PURE__ */
|
|
5411
|
+
return /* @__PURE__ */ jsx26(PostItDataProduct, { ...props });
|
|
5268
5412
|
}
|
|
5269
|
-
return /* @__PURE__ */
|
|
5413
|
+
return /* @__PURE__ */ jsx26(DefaultDataProduct, { ...props });
|
|
5270
5414
|
});
|
|
5271
5415
|
|
|
5272
5416
|
// src/nodes/message-group/MessageGroupNode.tsx
|
|
5273
|
-
import { memo as
|
|
5274
|
-
import { Layers, Zap as Zap3, Terminal, HelpCircle, Maximize2 } from "lucide-react";
|
|
5417
|
+
import { memo as memo26, useMemo as useMemo11 } from "react";
|
|
5418
|
+
import { Layers, Zap as Zap3, Terminal, HelpCircle, Maximize2 as Maximize22 } from "lucide-react";
|
|
5275
5419
|
import { Handle as Handle20, Position as Position17, useNodeConnections as useNodeConnections11 } from "@xyflow/react";
|
|
5276
|
-
import { jsx as
|
|
5420
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5277
5421
|
var TYPE_ICONS = {
|
|
5278
5422
|
events: Zap3,
|
|
5279
5423
|
commands: Terminal,
|
|
@@ -5285,7 +5429,7 @@ var CARD_STYLE = {
|
|
|
5285
5429
|
background: "var(--ec-message-group-node-bg, rgb(var(--ec-card-bg)))",
|
|
5286
5430
|
pointerEvents: "none"
|
|
5287
5431
|
};
|
|
5288
|
-
var MessageGroupNode_default =
|
|
5432
|
+
var MessageGroupNode_default = memo26(function MessageGroupNode(props) {
|
|
5289
5433
|
const { groupName, messageCount } = props.data;
|
|
5290
5434
|
const isDark = useDarkMode();
|
|
5291
5435
|
const targetConnections = useNodeConnections11({ handleType: "target" });
|
|
@@ -5299,8 +5443,8 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5299
5443
|
});
|
|
5300
5444
|
return counts;
|
|
5301
5445
|
}, [props.data.messages]);
|
|
5302
|
-
return /* @__PURE__ */
|
|
5303
|
-
stackDepth >= 3 && /* @__PURE__ */
|
|
5446
|
+
return /* @__PURE__ */ jsxs25("div", { className: "relative", style: { isolation: "isolate" }, children: [
|
|
5447
|
+
stackDepth >= 3 && /* @__PURE__ */ jsx27(
|
|
5304
5448
|
"div",
|
|
5305
5449
|
{
|
|
5306
5450
|
style: {
|
|
@@ -5312,7 +5456,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5312
5456
|
}
|
|
5313
5457
|
}
|
|
5314
5458
|
),
|
|
5315
|
-
stackDepth >= 2 && /* @__PURE__ */
|
|
5459
|
+
stackDepth >= 2 && /* @__PURE__ */ jsx27(
|
|
5316
5460
|
"div",
|
|
5317
5461
|
{
|
|
5318
5462
|
style: {
|
|
@@ -5324,7 +5468,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5324
5468
|
}
|
|
5325
5469
|
}
|
|
5326
5470
|
),
|
|
5327
|
-
/* @__PURE__ */
|
|
5471
|
+
/* @__PURE__ */ jsxs25(
|
|
5328
5472
|
"div",
|
|
5329
5473
|
{
|
|
5330
5474
|
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`,
|
|
@@ -5333,7 +5477,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5333
5477
|
boxShadow: "0 2px 12px rgba(139, 92, 246, 0.15)"
|
|
5334
5478
|
},
|
|
5335
5479
|
children: [
|
|
5336
|
-
/* @__PURE__ */
|
|
5480
|
+
/* @__PURE__ */ jsx27(
|
|
5337
5481
|
Handle20,
|
|
5338
5482
|
{
|
|
5339
5483
|
type: "target",
|
|
@@ -5341,7 +5485,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5341
5485
|
style: HIDDEN_HANDLE_STYLE
|
|
5342
5486
|
}
|
|
5343
5487
|
),
|
|
5344
|
-
/* @__PURE__ */
|
|
5488
|
+
/* @__PURE__ */ jsx27(
|
|
5345
5489
|
Handle20,
|
|
5346
5490
|
{
|
|
5347
5491
|
type: "source",
|
|
@@ -5349,7 +5493,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5349
5493
|
style: HIDDEN_HANDLE_STYLE
|
|
5350
5494
|
}
|
|
5351
5495
|
),
|
|
5352
|
-
targetConnections.length > 0 && /* @__PURE__ */
|
|
5496
|
+
targetConnections.length > 0 && /* @__PURE__ */ jsx27(
|
|
5353
5497
|
"div",
|
|
5354
5498
|
{
|
|
5355
5499
|
style: {
|
|
@@ -5368,7 +5512,7 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5368
5512
|
}
|
|
5369
5513
|
}
|
|
5370
5514
|
),
|
|
5371
|
-
sourceConnections.length > 0 && /* @__PURE__ */
|
|
5515
|
+
sourceConnections.length > 0 && /* @__PURE__ */ jsx27(
|
|
5372
5516
|
"div",
|
|
5373
5517
|
{
|
|
5374
5518
|
style: {
|
|
@@ -5387,14 +5531,14 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5387
5531
|
}
|
|
5388
5532
|
}
|
|
5389
5533
|
),
|
|
5390
|
-
/* @__PURE__ */
|
|
5391
|
-
/* @__PURE__ */
|
|
5534
|
+
/* @__PURE__ */ jsx27("div", { className: "absolute -top-2.5 left-2.5 z-10", children: /* @__PURE__ */ jsxs25("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: [
|
|
5535
|
+
/* @__PURE__ */ jsx27(Layers, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
|
|
5392
5536
|
"Group"
|
|
5393
5537
|
] }) }),
|
|
5394
|
-
/* @__PURE__ */
|
|
5395
|
-
/* @__PURE__ */
|
|
5396
|
-
/* @__PURE__ */
|
|
5397
|
-
/* @__PURE__ */
|
|
5538
|
+
/* @__PURE__ */ jsxs25("div", { className: "px-3 pt-3.5 pb-2.5", children: [
|
|
5539
|
+
/* @__PURE__ */ jsx27("div", { className: "text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))]", children: groupName }),
|
|
5540
|
+
/* @__PURE__ */ jsxs25("div", { className: "mt-1.5 flex items-center gap-2", children: [
|
|
5541
|
+
/* @__PURE__ */ jsxs25(
|
|
5398
5542
|
"span",
|
|
5399
5543
|
{
|
|
5400
5544
|
className: "text-[10px] font-medium px-1.5 py-0.5 rounded",
|
|
@@ -5409,14 +5553,14 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5409
5553
|
]
|
|
5410
5554
|
}
|
|
5411
5555
|
),
|
|
5412
|
-
/* @__PURE__ */
|
|
5556
|
+
/* @__PURE__ */ jsx27("div", { className: "flex items-center gap-1", children: Object.entries(typeBreakdown).map(([type, count]) => {
|
|
5413
5557
|
const Icon = TYPE_ICONS[type] || HelpCircle;
|
|
5414
|
-
return /* @__PURE__ */
|
|
5558
|
+
return /* @__PURE__ */ jsxs25(
|
|
5415
5559
|
"span",
|
|
5416
5560
|
{
|
|
5417
5561
|
className: "flex items-center gap-0.5 text-[9px] text-[rgb(var(--ec-page-text-muted))]",
|
|
5418
5562
|
children: [
|
|
5419
|
-
/* @__PURE__ */
|
|
5563
|
+
/* @__PURE__ */ jsx27(Icon, { className: "w-2.5 h-2.5", strokeWidth: 2 }),
|
|
5420
5564
|
count
|
|
5421
5565
|
]
|
|
5422
5566
|
},
|
|
@@ -5424,8 +5568,8 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5424
5568
|
);
|
|
5425
5569
|
}) })
|
|
5426
5570
|
] }),
|
|
5427
|
-
/* @__PURE__ */
|
|
5428
|
-
/* @__PURE__ */
|
|
5571
|
+
/* @__PURE__ */ jsxs25("div", { className: "mt-1.5 flex items-center gap-1 text-[8px] text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
5572
|
+
/* @__PURE__ */ jsx27(Maximize22, { className: "w-2.5 h-2.5" }),
|
|
5429
5573
|
"Click to explore"
|
|
5430
5574
|
] })
|
|
5431
5575
|
] })
|
|
@@ -5436,10 +5580,10 @@ var MessageGroupNode_default = memo25(function MessageGroupNode(props) {
|
|
|
5436
5580
|
});
|
|
5437
5581
|
|
|
5438
5582
|
// src/nodes/message-group/MessageGroupExpandedNode.tsx
|
|
5439
|
-
import { memo as
|
|
5440
|
-
import { Layers as Layers2, Minimize2 } from "lucide-react";
|
|
5441
|
-
import { jsx as
|
|
5442
|
-
var
|
|
5583
|
+
import { memo as memo27 } from "react";
|
|
5584
|
+
import { Layers as Layers2, Minimize2 as Minimize22 } from "lucide-react";
|
|
5585
|
+
import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5586
|
+
var CONTAINER_STYLE2 = {
|
|
5443
5587
|
width: "100%",
|
|
5444
5588
|
height: "100%",
|
|
5445
5589
|
borderRadius: 12,
|
|
@@ -5448,7 +5592,7 @@ var CONTAINER_STYLE = {
|
|
|
5448
5592
|
position: "relative",
|
|
5449
5593
|
overflow: "visible"
|
|
5450
5594
|
};
|
|
5451
|
-
var
|
|
5595
|
+
var HEADER_STYLE2 = {
|
|
5452
5596
|
position: "absolute",
|
|
5453
5597
|
top: 0,
|
|
5454
5598
|
left: 0,
|
|
@@ -5460,7 +5604,7 @@ var HEADER_STYLE = {
|
|
|
5460
5604
|
borderBottom: "1px solid rgba(139, 92, 246, 0.3)",
|
|
5461
5605
|
overflow: "visible"
|
|
5462
5606
|
};
|
|
5463
|
-
var
|
|
5607
|
+
var BADGE_STYLE2 = {
|
|
5464
5608
|
position: "absolute",
|
|
5465
5609
|
top: -10,
|
|
5466
5610
|
left: 12,
|
|
@@ -5478,7 +5622,7 @@ var BADGE_STYLE = {
|
|
|
5478
5622
|
textTransform: "uppercase",
|
|
5479
5623
|
color: "white"
|
|
5480
5624
|
};
|
|
5481
|
-
var
|
|
5625
|
+
var HEADER_CONTENT_STYLE2 = {
|
|
5482
5626
|
display: "flex",
|
|
5483
5627
|
alignItems: "center",
|
|
5484
5628
|
justifyContent: "space-between",
|
|
@@ -5493,7 +5637,7 @@ var GROUP_NAME_STYLE = {
|
|
|
5493
5637
|
textTransform: "uppercase",
|
|
5494
5638
|
whiteSpace: "nowrap"
|
|
5495
5639
|
};
|
|
5496
|
-
var
|
|
5640
|
+
var COLLAPSE_BUTTON_STYLE2 = {
|
|
5497
5641
|
background: "#7c3aed",
|
|
5498
5642
|
border: "1px solid #a78bfa",
|
|
5499
5643
|
borderRadius: 6,
|
|
@@ -5506,25 +5650,25 @@ var COLLAPSE_BUTTON_STYLE = {
|
|
|
5506
5650
|
fontWeight: 600,
|
|
5507
5651
|
color: "white"
|
|
5508
5652
|
};
|
|
5509
|
-
var MessageGroupExpandedNode_default =
|
|
5653
|
+
var MessageGroupExpandedNode_default = memo27(function MessageGroupExpandedNode({
|
|
5510
5654
|
data
|
|
5511
5655
|
}) {
|
|
5512
5656
|
const { groupName, messageCount } = data;
|
|
5513
|
-
return /* @__PURE__ */
|
|
5514
|
-
/* @__PURE__ */
|
|
5515
|
-
/* @__PURE__ */
|
|
5657
|
+
return /* @__PURE__ */ jsx28("div", { style: CONTAINER_STYLE2, children: /* @__PURE__ */ jsxs26("div", { style: HEADER_STYLE2, children: [
|
|
5658
|
+
/* @__PURE__ */ jsxs26("div", { style: BADGE_STYLE2, children: [
|
|
5659
|
+
/* @__PURE__ */ jsx28(Layers2, { size: 10, strokeWidth: 2.5 }),
|
|
5516
5660
|
"Group"
|
|
5517
5661
|
] }),
|
|
5518
|
-
/* @__PURE__ */
|
|
5519
|
-
/* @__PURE__ */
|
|
5520
|
-
/* @__PURE__ */
|
|
5662
|
+
/* @__PURE__ */ jsxs26("div", { style: HEADER_CONTENT_STYLE2, children: [
|
|
5663
|
+
/* @__PURE__ */ jsx28("div", { style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx28("span", { style: GROUP_NAME_STYLE, children: groupName || "Group" }) }),
|
|
5664
|
+
/* @__PURE__ */ jsxs26(
|
|
5521
5665
|
"button",
|
|
5522
5666
|
{
|
|
5523
|
-
style:
|
|
5667
|
+
style: COLLAPSE_BUTTON_STYLE2,
|
|
5524
5668
|
className: "ec-collapse-group-btn nodrag nopan",
|
|
5525
5669
|
onMouseDown: (e) => e.stopPropagation(),
|
|
5526
5670
|
children: [
|
|
5527
|
-
/* @__PURE__ */
|
|
5671
|
+
/* @__PURE__ */ jsx28(Minimize22, { size: 12, strokeWidth: 2.5 }),
|
|
5528
5672
|
"Collapse"
|
|
5529
5673
|
]
|
|
5530
5674
|
}
|
|
@@ -5534,9 +5678,9 @@ var MessageGroupExpandedNode_default = memo26(function MessageGroupExpandedNode(
|
|
|
5534
5678
|
});
|
|
5535
5679
|
|
|
5536
5680
|
// src/edges/AnimatedMessageEdge.tsx
|
|
5537
|
-
import { memo as
|
|
5681
|
+
import { memo as memo28, useMemo as useMemo12 } from "react";
|
|
5538
5682
|
import { BaseEdge, getSmoothStepPath } from "@xyflow/react";
|
|
5539
|
-
import { Fragment as
|
|
5683
|
+
import { Fragment as Fragment4, jsx as jsx29, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5540
5684
|
function messageColor(collection) {
|
|
5541
5685
|
switch (collection) {
|
|
5542
5686
|
case "events":
|
|
@@ -5551,7 +5695,7 @@ function messageColor(collection) {
|
|
|
5551
5695
|
}
|
|
5552
5696
|
var TSPAN_NORMAL_STYLE = { fontStyle: "normal" };
|
|
5553
5697
|
var TSPAN_ITALIC_STYLE = { fontStyle: "italic" };
|
|
5554
|
-
var AnimatedMessageEdge =
|
|
5698
|
+
var AnimatedMessageEdge = memo28(
|
|
5555
5699
|
({
|
|
5556
5700
|
id,
|
|
5557
5701
|
sourceX,
|
|
@@ -5583,12 +5727,12 @@ var AnimatedMessageEdge = memo27(
|
|
|
5583
5727
|
const animatedNodes = useMemo12(
|
|
5584
5728
|
() => customColors.map((color, index) => {
|
|
5585
5729
|
const delay = randomDelay + index * 0.3;
|
|
5586
|
-
return /* @__PURE__ */
|
|
5730
|
+
return /* @__PURE__ */ jsx29(
|
|
5587
5731
|
"g",
|
|
5588
5732
|
{
|
|
5589
5733
|
className: `ec-animated-msg ${opacityClass}`,
|
|
5590
|
-
children: /* @__PURE__ */
|
|
5591
|
-
/* @__PURE__ */
|
|
5734
|
+
children: /* @__PURE__ */ jsxs27("g", { children: [
|
|
5735
|
+
/* @__PURE__ */ jsx29(
|
|
5592
5736
|
"rect",
|
|
5593
5737
|
{
|
|
5594
5738
|
x: "-7",
|
|
@@ -5600,7 +5744,7 @@ var AnimatedMessageEdge = memo27(
|
|
|
5600
5744
|
fill: color
|
|
5601
5745
|
}
|
|
5602
5746
|
),
|
|
5603
|
-
/* @__PURE__ */
|
|
5747
|
+
/* @__PURE__ */ jsx29(
|
|
5604
5748
|
"path",
|
|
5605
5749
|
{
|
|
5606
5750
|
d: "M-7,-5 L0,1 L7,-5",
|
|
@@ -5610,7 +5754,7 @@ var AnimatedMessageEdge = memo27(
|
|
|
5610
5754
|
strokeLinejoin: "round"
|
|
5611
5755
|
}
|
|
5612
5756
|
),
|
|
5613
|
-
/* @__PURE__ */
|
|
5757
|
+
/* @__PURE__ */ jsx29(
|
|
5614
5758
|
"animateMotion",
|
|
5615
5759
|
{
|
|
5616
5760
|
dur: "2s",
|
|
@@ -5618,7 +5762,7 @@ var AnimatedMessageEdge = memo27(
|
|
|
5618
5762
|
path: edgePath,
|
|
5619
5763
|
rotate: "auto",
|
|
5620
5764
|
begin: `${delay}s`,
|
|
5621
|
-
children: /* @__PURE__ */
|
|
5765
|
+
children: /* @__PURE__ */ jsx29("mpath", { href: `#${id}` })
|
|
5622
5766
|
}
|
|
5623
5767
|
)
|
|
5624
5768
|
] })
|
|
@@ -5640,8 +5784,8 @@ var AnimatedMessageEdge = memo27(
|
|
|
5640
5784
|
);
|
|
5641
5785
|
const labelWidth = Math.max(longestLine.length * 6.5 + 16, 50);
|
|
5642
5786
|
const firstLineDy = `${-((lines.length - 1) * 1.2) / 2}em`;
|
|
5643
|
-
return /* @__PURE__ */
|
|
5644
|
-
/* @__PURE__ */
|
|
5787
|
+
return /* @__PURE__ */ jsxs27(Fragment4, { children: [
|
|
5788
|
+
/* @__PURE__ */ jsx29(
|
|
5645
5789
|
BaseEdge,
|
|
5646
5790
|
{
|
|
5647
5791
|
id,
|
|
@@ -5652,8 +5796,8 @@ var AnimatedMessageEdge = memo27(
|
|
|
5652
5796
|
}
|
|
5653
5797
|
),
|
|
5654
5798
|
animatedNodes,
|
|
5655
|
-
/* @__PURE__ */
|
|
5656
|
-
label && /* @__PURE__ */
|
|
5799
|
+
/* @__PURE__ */ jsxs27("g", { children: [
|
|
5800
|
+
label && /* @__PURE__ */ jsx29(
|
|
5657
5801
|
"rect",
|
|
5658
5802
|
{
|
|
5659
5803
|
x: labelX - labelWidth / 2,
|
|
@@ -5668,7 +5812,7 @@ var AnimatedMessageEdge = memo27(
|
|
|
5668
5812
|
ry: 5
|
|
5669
5813
|
}
|
|
5670
5814
|
),
|
|
5671
|
-
/* @__PURE__ */
|
|
5815
|
+
/* @__PURE__ */ jsx29(
|
|
5672
5816
|
"text",
|
|
5673
5817
|
{
|
|
5674
5818
|
x: labelX,
|
|
@@ -5679,7 +5823,7 @@ var AnimatedMessageEdge = memo27(
|
|
|
5679
5823
|
fontWeight: 500,
|
|
5680
5824
|
fill: "rgb(var(--ec-page-text))",
|
|
5681
5825
|
pointerEvents: "none",
|
|
5682
|
-
children: lines.map((line, i) => /* @__PURE__ */
|
|
5826
|
+
children: lines.map((line, i) => /* @__PURE__ */ jsx29(
|
|
5683
5827
|
"tspan",
|
|
5684
5828
|
{
|
|
5685
5829
|
x: labelX,
|
|
@@ -5698,12 +5842,12 @@ var AnimatedMessageEdge = memo27(
|
|
|
5698
5842
|
var AnimatedMessageEdge_default = AnimatedMessageEdge;
|
|
5699
5843
|
|
|
5700
5844
|
// src/edges/MultilineEdgeLabel.tsx
|
|
5701
|
-
import { memo as
|
|
5845
|
+
import { memo as memo29, useMemo as useMemo13 } from "react";
|
|
5702
5846
|
import { getSmoothStepPath as getSmoothStepPath2 } from "@xyflow/react";
|
|
5703
|
-
import { Fragment as
|
|
5847
|
+
import { Fragment as Fragment5, jsx as jsx30, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5704
5848
|
var TSPAN_NORMAL_STYLE2 = { fontStyle: "normal" };
|
|
5705
5849
|
var TSPAN_ITALIC_STYLE2 = { fontStyle: "italic" };
|
|
5706
|
-
var MultilineEdgeLabel_default =
|
|
5850
|
+
var MultilineEdgeLabel_default = memo29(function MultilineEdgeLabel(props) {
|
|
5707
5851
|
const {
|
|
5708
5852
|
id,
|
|
5709
5853
|
sourceX,
|
|
@@ -5738,8 +5882,8 @@ var MultilineEdgeLabel_default = memo28(function MultilineEdgeLabel(props) {
|
|
|
5738
5882
|
);
|
|
5739
5883
|
const labelWidth = Math.max(longestLine.length * 5.5 + 14, 44);
|
|
5740
5884
|
const labelHeight = lines.length * 12 + 4;
|
|
5741
|
-
return /* @__PURE__ */
|
|
5742
|
-
/* @__PURE__ */
|
|
5885
|
+
return /* @__PURE__ */ jsxs28(Fragment5, { children: [
|
|
5886
|
+
/* @__PURE__ */ jsx30(
|
|
5743
5887
|
"path",
|
|
5744
5888
|
{
|
|
5745
5889
|
id,
|
|
@@ -5750,7 +5894,7 @@ var MultilineEdgeLabel_default = memo28(function MultilineEdgeLabel(props) {
|
|
|
5750
5894
|
style
|
|
5751
5895
|
}
|
|
5752
5896
|
),
|
|
5753
|
-
label && /* @__PURE__ */
|
|
5897
|
+
label && /* @__PURE__ */ jsx30(
|
|
5754
5898
|
"rect",
|
|
5755
5899
|
{
|
|
5756
5900
|
x: labelX - labelWidth / 2,
|
|
@@ -5766,7 +5910,7 @@ var MultilineEdgeLabel_default = memo28(function MultilineEdgeLabel(props) {
|
|
|
5766
5910
|
pointerEvents: "none"
|
|
5767
5911
|
}
|
|
5768
5912
|
),
|
|
5769
|
-
/* @__PURE__ */
|
|
5913
|
+
/* @__PURE__ */ jsx30(
|
|
5770
5914
|
"text",
|
|
5771
5915
|
{
|
|
5772
5916
|
x: labelX,
|
|
@@ -5776,7 +5920,7 @@ var MultilineEdgeLabel_default = memo28(function MultilineEdgeLabel(props) {
|
|
|
5776
5920
|
fontSize: "10px",
|
|
5777
5921
|
fill: "rgb(var(--ec-page-text))",
|
|
5778
5922
|
pointerEvents: "none",
|
|
5779
|
-
children: lines.map((line, i) => /* @__PURE__ */
|
|
5923
|
+
children: lines.map((line, i) => /* @__PURE__ */ jsx30(
|
|
5780
5924
|
"tspan",
|
|
5781
5925
|
{
|
|
5782
5926
|
x: labelX,
|
|
@@ -5792,13 +5936,13 @@ var MultilineEdgeLabel_default = memo28(function MultilineEdgeLabel(props) {
|
|
|
5792
5936
|
});
|
|
5793
5937
|
|
|
5794
5938
|
// src/edges/FlowEdge.tsx
|
|
5795
|
-
import { memo as
|
|
5939
|
+
import { memo as memo30, useMemo as useMemo14 } from "react";
|
|
5796
5940
|
import {
|
|
5797
5941
|
BaseEdge as BaseEdge2,
|
|
5798
5942
|
EdgeLabelRenderer,
|
|
5799
5943
|
getSmoothStepPath as getSmoothStepPath3
|
|
5800
5944
|
} from "@xyflow/react";
|
|
5801
|
-
import { Fragment as
|
|
5945
|
+
import { Fragment as Fragment6, jsx as jsx31, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5802
5946
|
function messageColor2(collection) {
|
|
5803
5947
|
switch (collection) {
|
|
5804
5948
|
case "events":
|
|
@@ -5812,7 +5956,7 @@ function messageColor2(collection) {
|
|
|
5812
5956
|
}
|
|
5813
5957
|
}
|
|
5814
5958
|
var EMPTY_STYLE = {};
|
|
5815
|
-
var FlowEdge_default =
|
|
5959
|
+
var FlowEdge_default = memo30(function CustomEdge({
|
|
5816
5960
|
id,
|
|
5817
5961
|
sourceX,
|
|
5818
5962
|
sourceY,
|
|
@@ -5850,20 +5994,20 @@ var FlowEdge_default = memo29(function CustomEdge({
|
|
|
5850
5994
|
}),
|
|
5851
5995
|
[labelX, labelY, labelStyle]
|
|
5852
5996
|
);
|
|
5853
|
-
return /* @__PURE__ */
|
|
5854
|
-
/* @__PURE__ */
|
|
5855
|
-
data?.animated && /* @__PURE__ */
|
|
5997
|
+
return /* @__PURE__ */ jsxs29(Fragment6, { children: [
|
|
5998
|
+
/* @__PURE__ */ jsx31(BaseEdge2, { path: edgePath, markerEnd, style: mergedStyle }),
|
|
5999
|
+
data?.animated && /* @__PURE__ */ jsx31(
|
|
5856
6000
|
"g",
|
|
5857
6001
|
{
|
|
5858
6002
|
className: `ec-animated-msg z-30 ${opacity === 1 ? "opacity-100" : "opacity-10"}`,
|
|
5859
|
-
children: /* @__PURE__ */
|
|
6003
|
+
children: /* @__PURE__ */ jsx31(
|
|
5860
6004
|
"circle",
|
|
5861
6005
|
{
|
|
5862
6006
|
cx: "0",
|
|
5863
6007
|
cy: "0",
|
|
5864
6008
|
r: "7",
|
|
5865
6009
|
fill: messageColor2(collection || "default"),
|
|
5866
|
-
children: /* @__PURE__ */
|
|
6010
|
+
children: /* @__PURE__ */ jsx31(
|
|
5867
6011
|
"animateMotion",
|
|
5868
6012
|
{
|
|
5869
6013
|
dur: "2s",
|
|
@@ -5871,14 +6015,14 @@ var FlowEdge_default = memo29(function CustomEdge({
|
|
|
5871
6015
|
path: edgePath,
|
|
5872
6016
|
rotate: "auto",
|
|
5873
6017
|
begin: `${randomDelay}s`,
|
|
5874
|
-
children: /* @__PURE__ */
|
|
6018
|
+
children: /* @__PURE__ */ jsx31("mpath", { href: `#${id}` })
|
|
5875
6019
|
}
|
|
5876
6020
|
)
|
|
5877
6021
|
}
|
|
5878
6022
|
)
|
|
5879
6023
|
}
|
|
5880
6024
|
),
|
|
5881
|
-
label && /* @__PURE__ */
|
|
6025
|
+
label && /* @__PURE__ */ jsx31(EdgeLabelRenderer, { children: /* @__PURE__ */ jsx31(
|
|
5882
6026
|
"div",
|
|
5883
6027
|
{
|
|
5884
6028
|
style: labelPositionStyle,
|
|
@@ -5897,10 +6041,10 @@ import {
|
|
|
5897
6041
|
useEffect as useEffect2,
|
|
5898
6042
|
forwardRef,
|
|
5899
6043
|
useImperativeHandle,
|
|
5900
|
-
memo as
|
|
6044
|
+
memo as memo31
|
|
5901
6045
|
} from "react";
|
|
5902
|
-
import { jsx as
|
|
5903
|
-
var VisualiserSearch =
|
|
6046
|
+
import { jsx as jsx32, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6047
|
+
var VisualiserSearch = memo31(
|
|
5904
6048
|
forwardRef(
|
|
5905
6049
|
({ nodes, onNodeSelect, onClear, onPaneClick: _onPaneClick }, ref) => {
|
|
5906
6050
|
const [searchQuery, setSearchQuery] = useState5("");
|
|
@@ -6045,9 +6189,9 @@ var VisualiserSearch = memo30(
|
|
|
6045
6189
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
6046
6190
|
};
|
|
6047
6191
|
}, []);
|
|
6048
|
-
return /* @__PURE__ */
|
|
6049
|
-
/* @__PURE__ */
|
|
6050
|
-
/* @__PURE__ */
|
|
6192
|
+
return /* @__PURE__ */ jsxs30("div", { ref: containerRef, className: "w-full max-w-md mx-auto relative", children: [
|
|
6193
|
+
/* @__PURE__ */ jsxs30("div", { className: "relative", children: [
|
|
6194
|
+
/* @__PURE__ */ jsx32(
|
|
6051
6195
|
"input",
|
|
6052
6196
|
{
|
|
6053
6197
|
ref: searchInputRef,
|
|
@@ -6060,20 +6204,20 @@ var VisualiserSearch = memo30(
|
|
|
6060
6204
|
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"
|
|
6061
6205
|
}
|
|
6062
6206
|
),
|
|
6063
|
-
searchQuery && /* @__PURE__ */
|
|
6207
|
+
searchQuery && /* @__PURE__ */ jsx32(
|
|
6064
6208
|
"button",
|
|
6065
6209
|
{
|
|
6066
6210
|
onClick: clearSearch,
|
|
6067
6211
|
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))]",
|
|
6068
6212
|
"aria-label": "Clear search",
|
|
6069
|
-
children: /* @__PURE__ */
|
|
6213
|
+
children: /* @__PURE__ */ jsx32(
|
|
6070
6214
|
"svg",
|
|
6071
6215
|
{
|
|
6072
6216
|
className: "w-5 h-5",
|
|
6073
6217
|
fill: "none",
|
|
6074
6218
|
stroke: "currentColor",
|
|
6075
6219
|
viewBox: "0 0 24 24",
|
|
6076
|
-
children: /* @__PURE__ */
|
|
6220
|
+
children: /* @__PURE__ */ jsx32(
|
|
6077
6221
|
"path",
|
|
6078
6222
|
{
|
|
6079
6223
|
strokeLinecap: "round",
|
|
@@ -6087,17 +6231,17 @@ var VisualiserSearch = memo30(
|
|
|
6087
6231
|
}
|
|
6088
6232
|
)
|
|
6089
6233
|
] }),
|
|
6090
|
-
showSuggestions && filteredSuggestions.length > 0 && /* @__PURE__ */
|
|
6234
|
+
showSuggestions && filteredSuggestions.length > 0 && /* @__PURE__ */ jsx32("div", { className: "absolute top-full left-0 right-0 mt-1 bg-[rgb(var(--ec-card-bg))] border border-[rgb(var(--ec-page-border))] rounded-md shadow-lg z-50 max-h-60 overflow-y-auto", children: filteredSuggestions.map((node, index) => {
|
|
6091
6235
|
const nodeName = getNodeDisplayName(node);
|
|
6092
6236
|
const nodeType = node.type || "unknown";
|
|
6093
|
-
return /* @__PURE__ */
|
|
6237
|
+
return /* @__PURE__ */ jsxs30(
|
|
6094
6238
|
"div",
|
|
6095
6239
|
{
|
|
6096
6240
|
onClick: () => handleSuggestionClick(node),
|
|
6097
6241
|
className: `px-4 py-2 cursor-pointer flex items-center justify-between hover:bg-[rgb(var(--ec-page-border)/0.5)] ${index === selectedSuggestionIndex ? "bg-[rgb(var(--ec-accent-subtle))]" : ""}`,
|
|
6098
6242
|
children: [
|
|
6099
|
-
/* @__PURE__ */
|
|
6100
|
-
/* @__PURE__ */
|
|
6243
|
+
/* @__PURE__ */ jsx32("span", { className: "text-sm font-medium text-[rgb(var(--ec-page-text))]", children: nodeName }),
|
|
6244
|
+
/* @__PURE__ */ jsx32(
|
|
6101
6245
|
"span",
|
|
6102
6246
|
{
|
|
6103
6247
|
className: `text-xs capitalize px-2 py-1 rounded ${getNodeTypeColorClass(nodeType)}`,
|
|
@@ -6123,11 +6267,11 @@ import {
|
|
|
6123
6267
|
useCallback as useCallback5,
|
|
6124
6268
|
useMemo as useMemo15,
|
|
6125
6269
|
useRef as useRef3,
|
|
6126
|
-
memo as
|
|
6270
|
+
memo as memo32
|
|
6127
6271
|
} from "react";
|
|
6128
6272
|
import { ChevronLeftIcon, ChevronRightIcon } from "@heroicons/react/24/outline";
|
|
6129
|
-
import { Fragment as
|
|
6130
|
-
var StepWalkthrough_default =
|
|
6273
|
+
import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6274
|
+
var StepWalkthrough_default = memo32(function StepWalkthrough({
|
|
6131
6275
|
nodes,
|
|
6132
6276
|
edges,
|
|
6133
6277
|
isFlowVisualization,
|
|
@@ -6167,7 +6311,8 @@ var StepWalkthrough_default = memo31(function StepWalkthrough({
|
|
|
6167
6311
|
const startNodes = nodes.filter(
|
|
6168
6312
|
(node) => incomingEdgeMap.get(node.id) === 0
|
|
6169
6313
|
);
|
|
6170
|
-
|
|
6314
|
+
const cachedStartStillValid = startNodeId && nodes.some((n) => n.id === startNodeId);
|
|
6315
|
+
if (startNodes.length > 0 && !cachedStartStillValid) {
|
|
6171
6316
|
const firstStartNode = startNodes[0];
|
|
6172
6317
|
setStartNodeId(firstStartNode.id);
|
|
6173
6318
|
}
|
|
@@ -6175,6 +6320,16 @@ var StepWalkthrough_default = memo31(function StepWalkthrough({
|
|
|
6175
6320
|
}, [nodeIdsKey, edgeKey, isFlowVisualization, startNodeId]);
|
|
6176
6321
|
useEffect3(() => {
|
|
6177
6322
|
if (currentNodeId) {
|
|
6323
|
+
const currentExists = nodes.some(
|
|
6324
|
+
(n) => n.id === currentNodeId
|
|
6325
|
+
);
|
|
6326
|
+
if (!currentExists) {
|
|
6327
|
+
setCurrentNodeId(null);
|
|
6328
|
+
setCurrentStepIndex(-1);
|
|
6329
|
+
setPathHistory([]);
|
|
6330
|
+
setAvailablePaths([]);
|
|
6331
|
+
return;
|
|
6332
|
+
}
|
|
6178
6333
|
const outgoingEdges = edges.filter(
|
|
6179
6334
|
(edge) => edge.source === currentNodeId
|
|
6180
6335
|
);
|
|
@@ -6286,14 +6441,14 @@ var StepWalkthrough_default = memo31(function StepWalkthrough({
|
|
|
6286
6441
|
}
|
|
6287
6442
|
return { title: title2, description: description2 };
|
|
6288
6443
|
}, [currentStepIndex, currentNodeId, nodeIdsKey]);
|
|
6289
|
-
return /* @__PURE__ */
|
|
6290
|
-
/* @__PURE__ */
|
|
6291
|
-
/* @__PURE__ */
|
|
6292
|
-
description && /* @__PURE__ */
|
|
6444
|
+
return /* @__PURE__ */ jsxs31("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: [
|
|
6445
|
+
/* @__PURE__ */ jsxs31("div", { className: "mb-2", children: [
|
|
6446
|
+
/* @__PURE__ */ jsx33("h3", { className: "text-sm font-semibold text-[rgb(var(--ec-page-text))]", children: title }),
|
|
6447
|
+
description && /* @__PURE__ */ jsx33("p", { className: "text-xs text-[rgb(var(--ec-page-text-muted))] mt-1", children: description })
|
|
6293
6448
|
] }),
|
|
6294
|
-
currentNodeId && availablePaths.length > 1 && /* @__PURE__ */
|
|
6295
|
-
/* @__PURE__ */
|
|
6296
|
-
/* @__PURE__ */
|
|
6449
|
+
currentNodeId && availablePaths.length > 1 && /* @__PURE__ */ jsxs31("div", { className: "mb-3", children: [
|
|
6450
|
+
/* @__PURE__ */ jsx33("label", { className: "block text-xs font-medium text-[rgb(var(--ec-page-text-muted))] mb-2", children: "Choose next path:" }),
|
|
6451
|
+
/* @__PURE__ */ jsx33(
|
|
6297
6452
|
"select",
|
|
6298
6453
|
{
|
|
6299
6454
|
value: selectedPathIndex,
|
|
@@ -6301,16 +6456,16 @@ var StepWalkthrough_default = memo31(function StepWalkthrough({
|
|
|
6301
6456
|
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))]",
|
|
6302
6457
|
children: availablePaths.map((path, index) => {
|
|
6303
6458
|
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";
|
|
6304
|
-
return /* @__PURE__ */
|
|
6459
|
+
return /* @__PURE__ */ jsx33("option", { value: index, children: path.label ? `${path.label}: ${nodeLabel}` : nodeLabel }, path.targetId);
|
|
6305
6460
|
})
|
|
6306
6461
|
}
|
|
6307
6462
|
)
|
|
6308
6463
|
] }),
|
|
6309
|
-
/* @__PURE__ */
|
|
6464
|
+
/* @__PURE__ */ jsx33("div", { className: "flex items-center justify-between", children: currentStepIndex === -1 ? (
|
|
6310
6465
|
// Initial state - show only Start button on the right
|
|
6311
|
-
/* @__PURE__ */
|
|
6312
|
-
/* @__PURE__ */
|
|
6313
|
-
/* @__PURE__ */
|
|
6466
|
+
/* @__PURE__ */ jsxs31(Fragment7, { children: [
|
|
6467
|
+
/* @__PURE__ */ jsx33("div", { className: "flex-1" }),
|
|
6468
|
+
/* @__PURE__ */ jsx33(
|
|
6314
6469
|
"button",
|
|
6315
6470
|
{
|
|
6316
6471
|
onClick: handleNextStep,
|
|
@@ -6321,29 +6476,29 @@ var StepWalkthrough_default = memo31(function StepWalkthrough({
|
|
|
6321
6476
|
] })
|
|
6322
6477
|
) : (
|
|
6323
6478
|
// In walkthrough - show Previous on left, Next on right (only if paths available)
|
|
6324
|
-
/* @__PURE__ */
|
|
6325
|
-
/* @__PURE__ */
|
|
6479
|
+
/* @__PURE__ */ jsxs31(Fragment7, { children: [
|
|
6480
|
+
/* @__PURE__ */ jsxs31(
|
|
6326
6481
|
"button",
|
|
6327
6482
|
{
|
|
6328
6483
|
onClick: handlePreviousStep,
|
|
6329
6484
|
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",
|
|
6330
6485
|
children: [
|
|
6331
|
-
/* @__PURE__ */
|
|
6486
|
+
/* @__PURE__ */ jsx33(ChevronLeftIcon, { className: "w-4 h-4 mr-1" }),
|
|
6332
6487
|
"Previous"
|
|
6333
6488
|
]
|
|
6334
6489
|
}
|
|
6335
6490
|
),
|
|
6336
|
-
availablePaths.length > 0 ? /* @__PURE__ */
|
|
6491
|
+
availablePaths.length > 0 ? /* @__PURE__ */ jsxs31(
|
|
6337
6492
|
"button",
|
|
6338
6493
|
{
|
|
6339
6494
|
onClick: handleNextStep,
|
|
6340
6495
|
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",
|
|
6341
6496
|
children: [
|
|
6342
6497
|
"Next",
|
|
6343
|
-
/* @__PURE__ */
|
|
6498
|
+
/* @__PURE__ */ jsx33(ChevronRightIcon, { className: "w-4 h-4 ml-1" })
|
|
6344
6499
|
]
|
|
6345
6500
|
}
|
|
6346
|
-
) : /* @__PURE__ */
|
|
6501
|
+
) : /* @__PURE__ */ jsx33(
|
|
6347
6502
|
"button",
|
|
6348
6503
|
{
|
|
6349
6504
|
onClick: handleFinish,
|
|
@@ -6423,7 +6578,7 @@ var exportNodeGraphForStudio = (data) => {
|
|
|
6423
6578
|
};
|
|
6424
6579
|
|
|
6425
6580
|
// src/components/StudioModal.tsx
|
|
6426
|
-
import { Fragment as
|
|
6581
|
+
import { Fragment as Fragment8, jsx as jsx34, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6427
6582
|
var StudioModal = ({ isOpen, onClose }) => {
|
|
6428
6583
|
const [copySuccess, setCopySuccess] = useState7(false);
|
|
6429
6584
|
const portalContainer = usePortalContainer();
|
|
@@ -6454,14 +6609,14 @@ var StudioModal = ({ isOpen, onClose }) => {
|
|
|
6454
6609
|
);
|
|
6455
6610
|
onClose();
|
|
6456
6611
|
};
|
|
6457
|
-
return /* @__PURE__ */
|
|
6458
|
-
/* @__PURE__ */
|
|
6459
|
-
/* @__PURE__ */
|
|
6460
|
-
/* @__PURE__ */
|
|
6461
|
-
/* @__PURE__ */
|
|
6612
|
+
return /* @__PURE__ */ jsx34(Dialog2.Root, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsxs32(Dialog2.Portal, { container: portalContainer, children: [
|
|
6613
|
+
/* @__PURE__ */ jsx34(Dialog2.Overlay, { className: "fixed inset-0 bg-black/50 data-[state=open]:animate-overlayShow z-50" }),
|
|
6614
|
+
/* @__PURE__ */ jsxs32(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: [
|
|
6615
|
+
/* @__PURE__ */ jsx34(Dialog2.Title, { className: "text-lg font-semibold text-gray-900 mb-3", children: "Open in EventCatalog Studio" }),
|
|
6616
|
+
/* @__PURE__ */ jsxs32(Dialog2.Description, { className: "text-sm text-gray-600 mb-6", children: [
|
|
6462
6617
|
"Import your diagram into",
|
|
6463
6618
|
" ",
|
|
6464
|
-
/* @__PURE__ */
|
|
6619
|
+
/* @__PURE__ */ jsx34(
|
|
6465
6620
|
"a",
|
|
6466
6621
|
{
|
|
6467
6622
|
href: "https://eventcatalog.studio",
|
|
@@ -6474,43 +6629,43 @@ var StudioModal = ({ isOpen, onClose }) => {
|
|
|
6474
6629
|
" ",
|
|
6475
6630
|
"to create designs from your visualization of your architecture."
|
|
6476
6631
|
] }),
|
|
6477
|
-
/* @__PURE__ */
|
|
6478
|
-
/* @__PURE__ */
|
|
6479
|
-
/* @__PURE__ */
|
|
6480
|
-
/* @__PURE__ */
|
|
6481
|
-
/* @__PURE__ */
|
|
6632
|
+
/* @__PURE__ */ jsxs32("div", { className: "space-y-4", children: [
|
|
6633
|
+
/* @__PURE__ */ jsxs32("div", { className: "bg-gray-50 rounded-lg p-4 border border-gray-200", children: [
|
|
6634
|
+
/* @__PURE__ */ jsx34("h4", { className: "text-sm font-bold text-gray-900 mb-2", children: "Step 1: Copy diagram" }),
|
|
6635
|
+
/* @__PURE__ */ jsx34("p", { className: "text-xs text-gray-600 mb-3", children: "Copy your diagram data to your clipboard." }),
|
|
6636
|
+
/* @__PURE__ */ jsx34(
|
|
6482
6637
|
"button",
|
|
6483
6638
|
{
|
|
6484
6639
|
onClick: handleCopyToClipboard,
|
|
6485
6640
|
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"}`,
|
|
6486
|
-
children: copySuccess ? /* @__PURE__ */
|
|
6487
|
-
/* @__PURE__ */
|
|
6488
|
-
/* @__PURE__ */
|
|
6489
|
-
] }) : /* @__PURE__ */
|
|
6490
|
-
/* @__PURE__ */
|
|
6491
|
-
/* @__PURE__ */
|
|
6641
|
+
children: copySuccess ? /* @__PURE__ */ jsxs32(Fragment8, { children: [
|
|
6642
|
+
/* @__PURE__ */ jsx34(CheckIcon, { className: "w-4 h-4" }),
|
|
6643
|
+
/* @__PURE__ */ jsx34("span", { children: "Copied!" })
|
|
6644
|
+
] }) : /* @__PURE__ */ jsxs32(Fragment8, { children: [
|
|
6645
|
+
/* @__PURE__ */ jsx34(ClipboardIcon, { className: "w-4 h-4" }),
|
|
6646
|
+
/* @__PURE__ */ jsx34("span", { children: "Copy diagram to clipboard" })
|
|
6492
6647
|
] })
|
|
6493
6648
|
}
|
|
6494
6649
|
)
|
|
6495
6650
|
] }),
|
|
6496
|
-
/* @__PURE__ */
|
|
6497
|
-
/* @__PURE__ */
|
|
6498
|
-
/* @__PURE__ */
|
|
6499
|
-
/* @__PURE__ */
|
|
6651
|
+
/* @__PURE__ */ jsxs32("div", { className: "bg-[rgb(var(--ec-accent-subtle))] rounded-lg p-4 border border-[rgb(var(--ec-accent)/0.3)]", children: [
|
|
6652
|
+
/* @__PURE__ */ jsx34("h4", { className: "text-sm font-bold text-gray-900 mb-2", children: "Step 2: Open EventCatalog Studio" }),
|
|
6653
|
+
/* @__PURE__ */ jsx34("p", { className: "text-xs text-gray-600 mb-3", children: 'Go to EventCatalog Studio and import your design using the "Import from EventCatalog" button.' }),
|
|
6654
|
+
/* @__PURE__ */ jsxs32(
|
|
6500
6655
|
"button",
|
|
6501
6656
|
{
|
|
6502
6657
|
onClick: handleOpenStudio,
|
|
6503
6658
|
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",
|
|
6504
6659
|
children: [
|
|
6505
|
-
/* @__PURE__ */
|
|
6506
|
-
/* @__PURE__ */
|
|
6660
|
+
/* @__PURE__ */ jsx34(ExternalLinkIcon, { className: "w-4 h-4" }),
|
|
6661
|
+
/* @__PURE__ */ jsx34("span", { children: "Open EventCatalog Studio" })
|
|
6507
6662
|
]
|
|
6508
6663
|
}
|
|
6509
6664
|
),
|
|
6510
|
-
/* @__PURE__ */
|
|
6665
|
+
/* @__PURE__ */ jsx34("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." })
|
|
6511
6666
|
] })
|
|
6512
6667
|
] }),
|
|
6513
|
-
/* @__PURE__ */
|
|
6668
|
+
/* @__PURE__ */ jsx34("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsx34(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ jsx34(
|
|
6514
6669
|
"button",
|
|
6515
6670
|
{
|
|
6516
6671
|
type: "button",
|
|
@@ -6657,7 +6812,7 @@ function getNodeDocUrl(node) {
|
|
|
6657
6812
|
// src/components/FocusMode/FocusModeNodeActions.tsx
|
|
6658
6813
|
import { NodeToolbar, Position as Position18, useViewport } from "@xyflow/react";
|
|
6659
6814
|
import { ArrowRightLeft as ArrowRightLeft2, FileText } from "lucide-react";
|
|
6660
|
-
import { jsx as
|
|
6815
|
+
import { jsx as jsx35, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
6661
6816
|
var FocusModeNodeActions = ({
|
|
6662
6817
|
node,
|
|
6663
6818
|
isCenter,
|
|
@@ -6684,26 +6839,26 @@ var FocusModeNodeActions = ({
|
|
|
6684
6839
|
};
|
|
6685
6840
|
if (isCenter) {
|
|
6686
6841
|
if (!docUrl) return null;
|
|
6687
|
-
return /* @__PURE__ */
|
|
6842
|
+
return /* @__PURE__ */ jsx35(
|
|
6688
6843
|
NodeToolbar,
|
|
6689
6844
|
{
|
|
6690
6845
|
nodeId: node.id,
|
|
6691
6846
|
position: Position18.Bottom,
|
|
6692
6847
|
isVisible: true,
|
|
6693
6848
|
offset: -16,
|
|
6694
|
-
children: /* @__PURE__ */
|
|
6849
|
+
children: /* @__PURE__ */ jsx35(
|
|
6695
6850
|
"div",
|
|
6696
6851
|
{
|
|
6697
6852
|
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",
|
|
6698
6853
|
style: { padding: Math.round(4 * scaleFactor) },
|
|
6699
|
-
children: /* @__PURE__ */
|
|
6854
|
+
children: /* @__PURE__ */ jsx35(
|
|
6700
6855
|
"button",
|
|
6701
6856
|
{
|
|
6702
6857
|
onClick: handleDocClick,
|
|
6703
6858
|
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",
|
|
6704
6859
|
style: { width: buttonSize, height: buttonSize },
|
|
6705
6860
|
title: "View documentation",
|
|
6706
|
-
children: /* @__PURE__ */
|
|
6861
|
+
children: /* @__PURE__ */ jsx35(FileText, { style: { width: iconSize, height: iconSize } })
|
|
6707
6862
|
}
|
|
6708
6863
|
)
|
|
6709
6864
|
}
|
|
@@ -6711,37 +6866,37 @@ var FocusModeNodeActions = ({
|
|
|
6711
6866
|
}
|
|
6712
6867
|
);
|
|
6713
6868
|
}
|
|
6714
|
-
return /* @__PURE__ */
|
|
6869
|
+
return /* @__PURE__ */ jsx35(
|
|
6715
6870
|
NodeToolbar,
|
|
6716
6871
|
{
|
|
6717
6872
|
nodeId: node.id,
|
|
6718
6873
|
position: Position18.Bottom,
|
|
6719
6874
|
isVisible: true,
|
|
6720
6875
|
offset: -16,
|
|
6721
|
-
children: /* @__PURE__ */
|
|
6876
|
+
children: /* @__PURE__ */ jsxs33(
|
|
6722
6877
|
"div",
|
|
6723
6878
|
{
|
|
6724
6879
|
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",
|
|
6725
6880
|
style: { padding: Math.round(4 * scaleFactor) },
|
|
6726
6881
|
children: [
|
|
6727
|
-
docUrl && /* @__PURE__ */
|
|
6882
|
+
docUrl && /* @__PURE__ */ jsx35(
|
|
6728
6883
|
"button",
|
|
6729
6884
|
{
|
|
6730
6885
|
onClick: handleDocClick,
|
|
6731
6886
|
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",
|
|
6732
6887
|
style: { width: buttonSize, height: buttonSize },
|
|
6733
6888
|
title: "View documentation",
|
|
6734
|
-
children: /* @__PURE__ */
|
|
6889
|
+
children: /* @__PURE__ */ jsx35(FileText, { style: { width: iconSize, height: iconSize } })
|
|
6735
6890
|
}
|
|
6736
6891
|
),
|
|
6737
|
-
/* @__PURE__ */
|
|
6892
|
+
/* @__PURE__ */ jsx35(
|
|
6738
6893
|
"button",
|
|
6739
6894
|
{
|
|
6740
6895
|
onClick: handleSwitch,
|
|
6741
6896
|
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",
|
|
6742
6897
|
style: { width: buttonSize, height: buttonSize },
|
|
6743
6898
|
title: "Focus on this node",
|
|
6744
|
-
children: /* @__PURE__ */
|
|
6899
|
+
children: /* @__PURE__ */ jsx35(ArrowRightLeft2, { style: { width: iconSize, height: iconSize } })
|
|
6745
6900
|
}
|
|
6746
6901
|
)
|
|
6747
6902
|
]
|
|
@@ -6754,18 +6909,18 @@ var FocusModeNodeActions_default = FocusModeNodeActions;
|
|
|
6754
6909
|
|
|
6755
6910
|
// src/components/FocusMode/FocusModePlaceholder.tsx
|
|
6756
6911
|
import { Handle as Handle21, Position as Position19 } from "@xyflow/react";
|
|
6757
|
-
import { jsx as
|
|
6912
|
+
import { jsx as jsx36, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6758
6913
|
var FocusModePlaceholder = ({
|
|
6759
6914
|
data
|
|
6760
6915
|
}) => {
|
|
6761
6916
|
const { label, side } = data;
|
|
6762
|
-
return /* @__PURE__ */
|
|
6917
|
+
return /* @__PURE__ */ jsxs34(
|
|
6763
6918
|
"div",
|
|
6764
6919
|
{
|
|
6765
6920
|
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",
|
|
6766
6921
|
style: { opacity: 0.6, minHeight: "130px" },
|
|
6767
6922
|
children: [
|
|
6768
|
-
side === "right" && /* @__PURE__ */
|
|
6923
|
+
side === "right" && /* @__PURE__ */ jsx36(
|
|
6769
6924
|
Handle21,
|
|
6770
6925
|
{
|
|
6771
6926
|
type: "target",
|
|
@@ -6773,8 +6928,8 @@ var FocusModePlaceholder = ({
|
|
|
6773
6928
|
style: { visibility: "hidden" }
|
|
6774
6929
|
}
|
|
6775
6930
|
),
|
|
6776
|
-
/* @__PURE__ */
|
|
6777
|
-
side === "left" && /* @__PURE__ */
|
|
6931
|
+
/* @__PURE__ */ jsx36("div", { className: "text-center text-sm text-[rgb(var(--ec-page-text-muted))] italic", children: label }),
|
|
6932
|
+
side === "left" && /* @__PURE__ */ jsx36(
|
|
6778
6933
|
Handle21,
|
|
6779
6934
|
{
|
|
6780
6935
|
type: "source",
|
|
@@ -6789,7 +6944,7 @@ var FocusModePlaceholder = ({
|
|
|
6789
6944
|
var FocusModePlaceholder_default = FocusModePlaceholder;
|
|
6790
6945
|
|
|
6791
6946
|
// src/components/FocusMode/FocusModeContent.tsx
|
|
6792
|
-
import { jsx as
|
|
6947
|
+
import { jsx as jsx37, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
6793
6948
|
var HORIZONTAL_SPACING = 450;
|
|
6794
6949
|
var VERTICAL_SPACING = 200;
|
|
6795
6950
|
var SLIDE_DURATION = 300;
|
|
@@ -6998,14 +7153,14 @@ var FocusModeContent = ({
|
|
|
6998
7153
|
[nodeTypes]
|
|
6999
7154
|
);
|
|
7000
7155
|
if (displayNodes.length === 0) {
|
|
7001
|
-
return /* @__PURE__ */
|
|
7156
|
+
return /* @__PURE__ */ jsx37("div", { className: "flex items-center justify-center h-full text-[rgb(var(--ec-page-text-muted))]", children: "Node not found" });
|
|
7002
7157
|
}
|
|
7003
|
-
return /* @__PURE__ */
|
|
7158
|
+
return /* @__PURE__ */ jsx37(
|
|
7004
7159
|
"div",
|
|
7005
7160
|
{
|
|
7006
7161
|
className: "h-full w-full focus-mode-container",
|
|
7007
7162
|
style: { opacity: isReady ? 1 : 0 },
|
|
7008
|
-
children: /* @__PURE__ */
|
|
7163
|
+
children: /* @__PURE__ */ jsxs35(
|
|
7009
7164
|
ReactFlow,
|
|
7010
7165
|
{
|
|
7011
7166
|
nodes: displayNodes,
|
|
@@ -7025,9 +7180,9 @@ var FocusModeContent = ({
|
|
|
7025
7180
|
minZoom: 0.3,
|
|
7026
7181
|
maxZoom: 2,
|
|
7027
7182
|
children: [
|
|
7028
|
-
/* @__PURE__ */
|
|
7029
|
-
/* @__PURE__ */
|
|
7030
|
-
displayNodes.map((node, index) => /* @__PURE__ */
|
|
7183
|
+
/* @__PURE__ */ jsx37(Background, { color: "rgb(var(--ec-page-border))", gap: 20 }),
|
|
7184
|
+
/* @__PURE__ */ jsx37(Controls, { showInteractive: false }),
|
|
7185
|
+
displayNodes.map((node, index) => /* @__PURE__ */ jsx37(
|
|
7031
7186
|
FocusModeNodeActions_default,
|
|
7032
7187
|
{
|
|
7033
7188
|
node,
|
|
@@ -7045,7 +7200,7 @@ var FocusModeContent = ({
|
|
|
7045
7200
|
var FocusModeContent_default = FocusModeContent;
|
|
7046
7201
|
|
|
7047
7202
|
// src/components/FocusModeModal.tsx
|
|
7048
|
-
import { jsx as
|
|
7203
|
+
import { jsx as jsx38, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
7049
7204
|
var FocusModeModal = ({
|
|
7050
7205
|
isOpen,
|
|
7051
7206
|
onClose,
|
|
@@ -7076,7 +7231,7 @@ var FocusModeModal = ({
|
|
|
7076
7231
|
if (!centerNodeId) {
|
|
7077
7232
|
return null;
|
|
7078
7233
|
}
|
|
7079
|
-
return /* @__PURE__ */
|
|
7234
|
+
return /* @__PURE__ */ jsx38(Dialog3.Root, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsx38(Dialog3.Portal, { children: /* @__PURE__ */ jsxs36(
|
|
7080
7235
|
"div",
|
|
7081
7236
|
{
|
|
7082
7237
|
className: "eventcatalog-visualizer",
|
|
@@ -7087,7 +7242,7 @@ var FocusModeModal = ({
|
|
|
7087
7242
|
zIndex: 99999
|
|
7088
7243
|
},
|
|
7089
7244
|
children: [
|
|
7090
|
-
/* @__PURE__ */
|
|
7245
|
+
/* @__PURE__ */ jsx38(
|
|
7091
7246
|
Dialog3.Overlay,
|
|
7092
7247
|
{
|
|
7093
7248
|
style: {
|
|
@@ -7098,7 +7253,7 @@ var FocusModeModal = ({
|
|
|
7098
7253
|
}
|
|
7099
7254
|
}
|
|
7100
7255
|
),
|
|
7101
|
-
/* @__PURE__ */
|
|
7256
|
+
/* @__PURE__ */ jsxs36(
|
|
7102
7257
|
Dialog3.Content,
|
|
7103
7258
|
{
|
|
7104
7259
|
style: {
|
|
@@ -7114,7 +7269,7 @@ var FocusModeModal = ({
|
|
|
7114
7269
|
overflow: "hidden"
|
|
7115
7270
|
},
|
|
7116
7271
|
children: [
|
|
7117
|
-
/* @__PURE__ */
|
|
7272
|
+
/* @__PURE__ */ jsxs36(
|
|
7118
7273
|
"div",
|
|
7119
7274
|
{
|
|
7120
7275
|
style: {
|
|
@@ -7126,8 +7281,8 @@ var FocusModeModal = ({
|
|
|
7126
7281
|
flexShrink: 0
|
|
7127
7282
|
},
|
|
7128
7283
|
children: [
|
|
7129
|
-
/* @__PURE__ */
|
|
7130
|
-
/* @__PURE__ */
|
|
7284
|
+
/* @__PURE__ */ jsxs36("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
|
|
7285
|
+
/* @__PURE__ */ jsx38(
|
|
7131
7286
|
"div",
|
|
7132
7287
|
{
|
|
7133
7288
|
style: {
|
|
@@ -7139,7 +7294,7 @@ var FocusModeModal = ({
|
|
|
7139
7294
|
borderRadius: 10,
|
|
7140
7295
|
background: isDark ? "rgba(59, 130, 246, 0.18)" : "rgba(59, 130, 246, 0.12)"
|
|
7141
7296
|
},
|
|
7142
|
-
children: /* @__PURE__ */
|
|
7297
|
+
children: /* @__PURE__ */ jsx38(
|
|
7143
7298
|
FocusIcon,
|
|
7144
7299
|
{
|
|
7145
7300
|
style: {
|
|
@@ -7151,8 +7306,8 @@ var FocusModeModal = ({
|
|
|
7151
7306
|
)
|
|
7152
7307
|
}
|
|
7153
7308
|
),
|
|
7154
|
-
/* @__PURE__ */
|
|
7155
|
-
/* @__PURE__ */
|
|
7309
|
+
/* @__PURE__ */ jsxs36("div", { children: [
|
|
7310
|
+
/* @__PURE__ */ jsx38(
|
|
7156
7311
|
Dialog3.Title,
|
|
7157
7312
|
{
|
|
7158
7313
|
style: {
|
|
@@ -7163,7 +7318,7 @@ var FocusModeModal = ({
|
|
|
7163
7318
|
children: "Focus Mode"
|
|
7164
7319
|
}
|
|
7165
7320
|
),
|
|
7166
|
-
/* @__PURE__ */
|
|
7321
|
+
/* @__PURE__ */ jsx38(
|
|
7167
7322
|
Dialog3.Description,
|
|
7168
7323
|
{
|
|
7169
7324
|
style: {
|
|
@@ -7176,7 +7331,7 @@ var FocusModeModal = ({
|
|
|
7176
7331
|
)
|
|
7177
7332
|
] })
|
|
7178
7333
|
] }),
|
|
7179
|
-
/* @__PURE__ */
|
|
7334
|
+
/* @__PURE__ */ jsx38(Dialog3.Close, { asChild: true, children: /* @__PURE__ */ jsx38(
|
|
7180
7335
|
"button",
|
|
7181
7336
|
{
|
|
7182
7337
|
style: {
|
|
@@ -7192,13 +7347,13 @@ var FocusModeModal = ({
|
|
|
7192
7347
|
color: isDark ? "#94a3b8" : "#64748b"
|
|
7193
7348
|
},
|
|
7194
7349
|
"aria-label": "Close",
|
|
7195
|
-
children: /* @__PURE__ */
|
|
7350
|
+
children: /* @__PURE__ */ jsx38(XIcon2, { style: { width: 20, height: 20 } })
|
|
7196
7351
|
}
|
|
7197
7352
|
) })
|
|
7198
7353
|
]
|
|
7199
7354
|
}
|
|
7200
7355
|
),
|
|
7201
|
-
/* @__PURE__ */
|
|
7356
|
+
/* @__PURE__ */ jsx38("div", { style: { flex: 1, overflow: "hidden" }, children: /* @__PURE__ */ jsx38(ReactFlowProvider, { children: /* @__PURE__ */ jsx38(
|
|
7202
7357
|
FocusModeContent_default,
|
|
7203
7358
|
{
|
|
7204
7359
|
centerNodeId,
|
|
@@ -7484,7 +7639,7 @@ async function copyToClipboard(text) {
|
|
|
7484
7639
|
}
|
|
7485
7640
|
|
|
7486
7641
|
// src/components/MermaidView.tsx
|
|
7487
|
-
import { jsx as
|
|
7642
|
+
import { jsx as jsx39, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
7488
7643
|
var MermaidView = ({
|
|
7489
7644
|
nodes,
|
|
7490
7645
|
edges,
|
|
@@ -7594,51 +7749,51 @@ var MermaidView = ({
|
|
|
7594
7749
|
setCopySuccess(true);
|
|
7595
7750
|
setTimeout(() => setCopySuccess(false), 2e3);
|
|
7596
7751
|
}, [mermaidCode]);
|
|
7597
|
-
return /* @__PURE__ */
|
|
7752
|
+
return /* @__PURE__ */ jsxs37(
|
|
7598
7753
|
"div",
|
|
7599
7754
|
{
|
|
7600
7755
|
ref: containerRef,
|
|
7601
7756
|
className: "absolute inset-0 bg-[rgb(var(--ec-page-bg))]",
|
|
7602
7757
|
style: { animation: "fadeIn 200ms ease-out" },
|
|
7603
7758
|
children: [
|
|
7604
|
-
/* @__PURE__ */
|
|
7759
|
+
/* @__PURE__ */ jsx39("style", { children: `
|
|
7605
7760
|
@keyframes fadeIn {
|
|
7606
7761
|
from { opacity: 0; }
|
|
7607
7762
|
to { opacity: 1; }
|
|
7608
7763
|
}
|
|
7609
7764
|
` }),
|
|
7610
|
-
/* @__PURE__ */
|
|
7611
|
-
/* @__PURE__ */
|
|
7765
|
+
/* @__PURE__ */ jsx39("div", { className: "absolute top-[10px] right-4 z-20", children: /* @__PURE__ */ jsxs37("div", { className: "relative group", children: [
|
|
7766
|
+
/* @__PURE__ */ jsx39(
|
|
7612
7767
|
"button",
|
|
7613
7768
|
{
|
|
7614
7769
|
onClick: handleCopyToClipboard,
|
|
7615
7770
|
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"}`,
|
|
7616
7771
|
"aria-label": copySuccess ? "Copied!" : "Copy Mermaid code",
|
|
7617
|
-
children: copySuccess ? /* @__PURE__ */
|
|
7772
|
+
children: copySuccess ? /* @__PURE__ */ jsx39(CheckIcon2, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx39(ClipboardIcon2, { className: "h-5 w-5" })
|
|
7618
7773
|
}
|
|
7619
7774
|
),
|
|
7620
|
-
/* @__PURE__ */
|
|
7775
|
+
/* @__PURE__ */ jsx39("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" })
|
|
7621
7776
|
] }) }),
|
|
7622
|
-
/* @__PURE__ */
|
|
7623
|
-
isRendering && /* @__PURE__ */
|
|
7624
|
-
/* @__PURE__ */
|
|
7625
|
-
/* @__PURE__ */
|
|
7626
|
-
/* @__PURE__ */
|
|
7627
|
-
/* @__PURE__ */
|
|
7777
|
+
/* @__PURE__ */ jsxs37("div", { className: "absolute inset-0 overflow-hidden", children: [
|
|
7778
|
+
isRendering && /* @__PURE__ */ jsx39("div", { className: "w-full h-full flex items-center justify-center", children: /* @__PURE__ */ jsxs37("div", { className: "relative", children: [
|
|
7779
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-4 opacity-40", children: [
|
|
7780
|
+
/* @__PURE__ */ jsx39("div", { className: "w-24 h-10 bg-[rgb(var(--ec-page-border))] rounded animate-pulse" }),
|
|
7781
|
+
/* @__PURE__ */ jsx39("div", { className: "w-12 h-0.5 bg-[rgb(var(--ec-page-border))] animate-pulse" }),
|
|
7782
|
+
/* @__PURE__ */ jsx39(
|
|
7628
7783
|
"div",
|
|
7629
7784
|
{
|
|
7630
7785
|
className: "w-20 h-10 bg-[rgb(var(--ec-page-border))] rounded-full animate-pulse",
|
|
7631
7786
|
style: { animationDelay: "75ms" }
|
|
7632
7787
|
}
|
|
7633
7788
|
),
|
|
7634
|
-
/* @__PURE__ */
|
|
7789
|
+
/* @__PURE__ */ jsx39(
|
|
7635
7790
|
"div",
|
|
7636
7791
|
{
|
|
7637
7792
|
className: "w-12 h-0.5 bg-[rgb(var(--ec-page-border))] animate-pulse",
|
|
7638
7793
|
style: { animationDelay: "150ms" }
|
|
7639
7794
|
}
|
|
7640
7795
|
),
|
|
7641
|
-
/* @__PURE__ */
|
|
7796
|
+
/* @__PURE__ */ jsx39(
|
|
7642
7797
|
"div",
|
|
7643
7798
|
{
|
|
7644
7799
|
className: "w-24 h-10 bg-[rgb(var(--ec-page-border))] rounded animate-pulse",
|
|
@@ -7646,14 +7801,14 @@ var MermaidView = ({
|
|
|
7646
7801
|
}
|
|
7647
7802
|
)
|
|
7648
7803
|
] }),
|
|
7649
|
-
/* @__PURE__ */
|
|
7804
|
+
/* @__PURE__ */ jsx39("p", { className: "text-center text-sm text-[rgb(var(--ec-page-text-muted))] mt-4", children: "Rendering diagram..." })
|
|
7650
7805
|
] }) }),
|
|
7651
|
-
previewError && !isRendering && /* @__PURE__ */
|
|
7652
|
-
/* @__PURE__ */
|
|
7653
|
-
/* @__PURE__ */
|
|
7654
|
-
/* @__PURE__ */
|
|
7655
|
-
/* @__PURE__ */
|
|
7656
|
-
/* @__PURE__ */
|
|
7806
|
+
previewError && !isRendering && /* @__PURE__ */ jsxs37("div", { className: "w-full h-full flex flex-col items-center justify-center p-4", children: [
|
|
7807
|
+
/* @__PURE__ */ jsx39("div", { className: "text-red-500 text-sm mb-2", children: "Failed to render diagram" }),
|
|
7808
|
+
/* @__PURE__ */ jsx39("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 }),
|
|
7809
|
+
/* @__PURE__ */ jsxs37("div", { className: "mt-4 text-sm text-[rgb(var(--ec-page-text-muted))]", children: [
|
|
7810
|
+
/* @__PURE__ */ jsx39("p", { children: "You can still copy the Mermaid code and paste it into" }),
|
|
7811
|
+
/* @__PURE__ */ jsx39(
|
|
7657
7812
|
"a",
|
|
7658
7813
|
{
|
|
7659
7814
|
href: "https://mermaid.live",
|
|
@@ -7665,7 +7820,7 @@ var MermaidView = ({
|
|
|
7665
7820
|
)
|
|
7666
7821
|
] })
|
|
7667
7822
|
] }),
|
|
7668
|
-
previewSvg && !isRendering && !previewError && /* @__PURE__ */
|
|
7823
|
+
previewSvg && !isRendering && !previewError && /* @__PURE__ */ jsx39(
|
|
7669
7824
|
"div",
|
|
7670
7825
|
{
|
|
7671
7826
|
ref: svgContainerRef,
|
|
@@ -7674,15 +7829,15 @@ var MermaidView = ({
|
|
|
7674
7829
|
}
|
|
7675
7830
|
)
|
|
7676
7831
|
] }),
|
|
7677
|
-
/* @__PURE__ */
|
|
7678
|
-
/* @__PURE__ */
|
|
7832
|
+
/* @__PURE__ */ jsx39("div", { className: "absolute bottom-4 left-4 z-20", children: /* @__PURE__ */ jsxs37("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: [
|
|
7833
|
+
/* @__PURE__ */ jsx39(
|
|
7679
7834
|
"svg",
|
|
7680
7835
|
{
|
|
7681
7836
|
className: "w-3.5 h-3.5 text-[rgb(var(--ec-icon-color))]",
|
|
7682
7837
|
fill: "none",
|
|
7683
7838
|
viewBox: "0 0 24 24",
|
|
7684
7839
|
stroke: "currentColor",
|
|
7685
|
-
children: /* @__PURE__ */
|
|
7840
|
+
children: /* @__PURE__ */ jsx39(
|
|
7686
7841
|
"path",
|
|
7687
7842
|
{
|
|
7688
7843
|
strokeLinecap: "round",
|
|
@@ -7693,7 +7848,7 @@ var MermaidView = ({
|
|
|
7693
7848
|
)
|
|
7694
7849
|
}
|
|
7695
7850
|
),
|
|
7696
|
-
/* @__PURE__ */
|
|
7851
|
+
/* @__PURE__ */ jsx39("span", { className: "text-xs text-[rgb(var(--ec-page-text-muted))]", children: "Scroll to zoom \xB7 Drag to pan" })
|
|
7697
7852
|
] }) })
|
|
7698
7853
|
]
|
|
7699
7854
|
}
|
|
@@ -7918,14 +8073,14 @@ var useChannelVisibility = ({
|
|
|
7918
8073
|
};
|
|
7919
8074
|
|
|
7920
8075
|
// src/components/VisualizerDropdownContent.tsx
|
|
7921
|
-
import { useState as useState12, memo as
|
|
8076
|
+
import { useState as useState12, memo as memo33 } from "react";
|
|
7922
8077
|
import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
|
|
7923
8078
|
import {
|
|
7924
8079
|
Code,
|
|
7925
8080
|
Share2,
|
|
7926
8081
|
Search as Search2,
|
|
7927
8082
|
Grid3x3,
|
|
7928
|
-
Maximize2 as
|
|
8083
|
+
Maximize2 as Maximize23,
|
|
7929
8084
|
Map as Map2,
|
|
7930
8085
|
Sparkles,
|
|
7931
8086
|
Zap as Zap4,
|
|
@@ -7940,8 +8095,8 @@ import {
|
|
|
7940
8095
|
DocumentArrowDownIcon,
|
|
7941
8096
|
PresentationChartLineIcon
|
|
7942
8097
|
} from "@heroicons/react/24/outline";
|
|
7943
|
-
import { Fragment as
|
|
7944
|
-
var VisualizerDropdownContent =
|
|
8098
|
+
import { Fragment as Fragment9, jsx as jsx40, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
8099
|
+
var VisualizerDropdownContent = memo33(
|
|
7945
8100
|
({
|
|
7946
8101
|
isMermaidView,
|
|
7947
8102
|
setIsMermaidView,
|
|
@@ -7990,19 +8145,19 @@ var VisualizerDropdownContent = memo32(
|
|
|
7990
8145
|
setLayoutStatus("idle");
|
|
7991
8146
|
}
|
|
7992
8147
|
};
|
|
7993
|
-
return /* @__PURE__ */
|
|
7994
|
-
/* @__PURE__ */
|
|
7995
|
-
/* @__PURE__ */
|
|
7996
|
-
/* @__PURE__ */
|
|
7997
|
-
/* @__PURE__ */
|
|
7998
|
-
/* @__PURE__ */
|
|
8148
|
+
return /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
8149
|
+
/* @__PURE__ */ jsxs38(DropdownMenu.Sub, { children: [
|
|
8150
|
+
/* @__PURE__ */ jsxs38(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: [
|
|
8151
|
+
/* @__PURE__ */ jsx40(Grid3x3, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8152
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Canvas" }),
|
|
8153
|
+
/* @__PURE__ */ jsx40(
|
|
7999
8154
|
"svg",
|
|
8000
8155
|
{
|
|
8001
8156
|
className: "w-3 h-3 text-[rgb(var(--ec-page-text-muted))]",
|
|
8002
8157
|
fill: "none",
|
|
8003
8158
|
viewBox: "0 0 24 24",
|
|
8004
8159
|
stroke: "currentColor",
|
|
8005
|
-
children: /* @__PURE__ */
|
|
8160
|
+
children: /* @__PURE__ */ jsx40(
|
|
8006
8161
|
"path",
|
|
8007
8162
|
{
|
|
8008
8163
|
strokeLinecap: "round",
|
|
@@ -8014,27 +8169,27 @@ var VisualizerDropdownContent = memo32(
|
|
|
8014
8169
|
}
|
|
8015
8170
|
)
|
|
8016
8171
|
] }),
|
|
8017
|
-
/* @__PURE__ */
|
|
8172
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs38(
|
|
8018
8173
|
DropdownMenu.SubContent,
|
|
8019
8174
|
{
|
|
8020
8175
|
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]",
|
|
8021
8176
|
sideOffset: 8,
|
|
8022
8177
|
alignOffset: -8,
|
|
8023
8178
|
children: [
|
|
8024
|
-
/* @__PURE__ */
|
|
8179
|
+
/* @__PURE__ */ jsxs38(
|
|
8025
8180
|
DropdownMenu.CheckboxItem,
|
|
8026
8181
|
{
|
|
8027
8182
|
checked: isMermaidView,
|
|
8028
8183
|
onCheckedChange: setIsMermaidView,
|
|
8029
8184
|
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",
|
|
8030
8185
|
children: [
|
|
8031
|
-
/* @__PURE__ */
|
|
8032
|
-
/* @__PURE__ */
|
|
8033
|
-
/* @__PURE__ */
|
|
8186
|
+
/* @__PURE__ */ jsx40(Code, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8187
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Render as mermaid" }),
|
|
8188
|
+
/* @__PURE__ */ jsx40(
|
|
8034
8189
|
"div",
|
|
8035
8190
|
{
|
|
8036
8191
|
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))]"}`,
|
|
8037
|
-
children: /* @__PURE__ */
|
|
8192
|
+
children: /* @__PURE__ */ jsx40(
|
|
8038
8193
|
"div",
|
|
8039
8194
|
{
|
|
8040
8195
|
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"}`
|
|
@@ -8045,21 +8200,21 @@ var VisualizerDropdownContent = memo32(
|
|
|
8045
8200
|
]
|
|
8046
8201
|
}
|
|
8047
8202
|
),
|
|
8048
|
-
/* @__PURE__ */
|
|
8049
|
-
/* @__PURE__ */
|
|
8203
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8204
|
+
/* @__PURE__ */ jsxs38(
|
|
8050
8205
|
DropdownMenu.CheckboxItem,
|
|
8051
8206
|
{
|
|
8052
8207
|
checked: animateMessages,
|
|
8053
8208
|
onCheckedChange: toggleAnimateMessages,
|
|
8054
8209
|
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",
|
|
8055
8210
|
children: [
|
|
8056
|
-
/* @__PURE__ */
|
|
8057
|
-
/* @__PURE__ */
|
|
8058
|
-
/* @__PURE__ */
|
|
8211
|
+
/* @__PURE__ */ jsx40(Zap4, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8212
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Simulate Messages" }),
|
|
8213
|
+
/* @__PURE__ */ jsx40(
|
|
8059
8214
|
"div",
|
|
8060
8215
|
{
|
|
8061
8216
|
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))]"}`,
|
|
8062
|
-
children: /* @__PURE__ */
|
|
8217
|
+
children: /* @__PURE__ */ jsx40(
|
|
8063
8218
|
"div",
|
|
8064
8219
|
{
|
|
8065
8220
|
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"}`
|
|
@@ -8070,20 +8225,20 @@ var VisualizerDropdownContent = memo32(
|
|
|
8070
8225
|
]
|
|
8071
8226
|
}
|
|
8072
8227
|
),
|
|
8073
|
-
hasChannels && /* @__PURE__ */
|
|
8228
|
+
hasChannels && /* @__PURE__ */ jsxs38(
|
|
8074
8229
|
DropdownMenu.CheckboxItem,
|
|
8075
8230
|
{
|
|
8076
8231
|
checked: hideChannels,
|
|
8077
8232
|
onCheckedChange: toggleChannelsVisibility,
|
|
8078
8233
|
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",
|
|
8079
8234
|
children: [
|
|
8080
|
-
/* @__PURE__ */
|
|
8081
|
-
/* @__PURE__ */
|
|
8082
|
-
/* @__PURE__ */
|
|
8235
|
+
/* @__PURE__ */ jsx40(EyeOff, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8236
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Hide channels" }),
|
|
8237
|
+
/* @__PURE__ */ jsx40(
|
|
8083
8238
|
"div",
|
|
8084
8239
|
{
|
|
8085
8240
|
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))]"}`,
|
|
8086
|
-
children: /* @__PURE__ */
|
|
8241
|
+
children: /* @__PURE__ */ jsx40(
|
|
8087
8242
|
"div",
|
|
8088
8243
|
{
|
|
8089
8244
|
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"}`
|
|
@@ -8094,20 +8249,20 @@ var VisualizerDropdownContent = memo32(
|
|
|
8094
8249
|
]
|
|
8095
8250
|
}
|
|
8096
8251
|
),
|
|
8097
|
-
/* @__PURE__ */
|
|
8252
|
+
/* @__PURE__ */ jsxs38(
|
|
8098
8253
|
DropdownMenu.CheckboxItem,
|
|
8099
8254
|
{
|
|
8100
8255
|
checked: showMinimap,
|
|
8101
8256
|
onCheckedChange: setShowMinimap,
|
|
8102
8257
|
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",
|
|
8103
8258
|
children: [
|
|
8104
|
-
/* @__PURE__ */
|
|
8105
|
-
/* @__PURE__ */
|
|
8106
|
-
/* @__PURE__ */
|
|
8259
|
+
/* @__PURE__ */ jsx40(Map2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8260
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Show minimap" }),
|
|
8261
|
+
/* @__PURE__ */ jsx40(
|
|
8107
8262
|
"div",
|
|
8108
8263
|
{
|
|
8109
8264
|
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))]"}`,
|
|
8110
|
-
children: /* @__PURE__ */
|
|
8265
|
+
children: /* @__PURE__ */ jsx40(
|
|
8111
8266
|
"div",
|
|
8112
8267
|
{
|
|
8113
8268
|
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"}`
|
|
@@ -8118,19 +8273,19 @@ var VisualizerDropdownContent = memo32(
|
|
|
8118
8273
|
]
|
|
8119
8274
|
}
|
|
8120
8275
|
),
|
|
8121
|
-
/* @__PURE__ */
|
|
8122
|
-
/* @__PURE__ */
|
|
8276
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8277
|
+
/* @__PURE__ */ jsxs38(
|
|
8123
8278
|
DropdownMenu.Item,
|
|
8124
8279
|
{
|
|
8125
8280
|
onClick: handleFitView,
|
|
8126
8281
|
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",
|
|
8127
8282
|
children: [
|
|
8128
|
-
/* @__PURE__ */
|
|
8129
|
-
/* @__PURE__ */
|
|
8283
|
+
/* @__PURE__ */ jsx40(Maximize23, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8284
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Fit to view" })
|
|
8130
8285
|
]
|
|
8131
8286
|
}
|
|
8132
8287
|
),
|
|
8133
|
-
/* @__PURE__ */
|
|
8288
|
+
/* @__PURE__ */ jsxs38(
|
|
8134
8289
|
DropdownMenu.Item,
|
|
8135
8290
|
{
|
|
8136
8291
|
onClick: () => {
|
|
@@ -8144,8 +8299,8 @@ var VisualizerDropdownContent = memo32(
|
|
|
8144
8299
|
},
|
|
8145
8300
|
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",
|
|
8146
8301
|
children: [
|
|
8147
|
-
/* @__PURE__ */
|
|
8148
|
-
/* @__PURE__ */
|
|
8302
|
+
/* @__PURE__ */ jsx40(Search2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8303
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Find on canvas" })
|
|
8149
8304
|
]
|
|
8150
8305
|
}
|
|
8151
8306
|
)
|
|
@@ -8153,14 +8308,14 @@ var VisualizerDropdownContent = memo32(
|
|
|
8153
8308
|
}
|
|
8154
8309
|
) })
|
|
8155
8310
|
] }),
|
|
8156
|
-
notesCount > 0 && onOpenNotes && /* @__PURE__ */
|
|
8311
|
+
notesCount > 0 && onOpenNotes && /* @__PURE__ */ jsxs38(
|
|
8157
8312
|
DropdownMenu.Item,
|
|
8158
8313
|
{
|
|
8159
8314
|
onClick: onOpenNotes,
|
|
8160
8315
|
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",
|
|
8161
8316
|
children: [
|
|
8162
|
-
/* @__PURE__ */
|
|
8163
|
-
/* @__PURE__ */
|
|
8317
|
+
/* @__PURE__ */ jsx40(MessageCircle2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8318
|
+
/* @__PURE__ */ jsxs38("span", { className: "flex-1 font-normal", children: [
|
|
8164
8319
|
"View notes (",
|
|
8165
8320
|
notesCount,
|
|
8166
8321
|
")"
|
|
@@ -8168,19 +8323,19 @@ var VisualizerDropdownContent = memo32(
|
|
|
8168
8323
|
]
|
|
8169
8324
|
}
|
|
8170
8325
|
),
|
|
8171
|
-
isDevMode && onSaveLayout && /* @__PURE__ */
|
|
8172
|
-
/* @__PURE__ */
|
|
8173
|
-
/* @__PURE__ */
|
|
8174
|
-
/* @__PURE__ */
|
|
8175
|
-
/* @__PURE__ */
|
|
8176
|
-
/* @__PURE__ */
|
|
8326
|
+
isDevMode && onSaveLayout && /* @__PURE__ */ jsxs38(DropdownMenu.Sub, { children: [
|
|
8327
|
+
/* @__PURE__ */ jsxs38(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: [
|
|
8328
|
+
/* @__PURE__ */ jsx40(Save, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8329
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Layout" }),
|
|
8330
|
+
/* @__PURE__ */ jsx40("span", { className: "text-[10px] text-amber-600 font-medium", children: "DEV" }),
|
|
8331
|
+
/* @__PURE__ */ jsx40(
|
|
8177
8332
|
"svg",
|
|
8178
8333
|
{
|
|
8179
8334
|
className: "w-3 h-3 text-[rgb(var(--ec-page-text-muted))]",
|
|
8180
8335
|
fill: "none",
|
|
8181
8336
|
viewBox: "0 0 24 24",
|
|
8182
8337
|
stroke: "currentColor",
|
|
8183
|
-
children: /* @__PURE__ */
|
|
8338
|
+
children: /* @__PURE__ */ jsx40(
|
|
8184
8339
|
"path",
|
|
8185
8340
|
{
|
|
8186
8341
|
strokeLinecap: "round",
|
|
@@ -8192,34 +8347,34 @@ var VisualizerDropdownContent = memo32(
|
|
|
8192
8347
|
}
|
|
8193
8348
|
)
|
|
8194
8349
|
] }),
|
|
8195
|
-
/* @__PURE__ */
|
|
8350
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs38(
|
|
8196
8351
|
DropdownMenu.SubContent,
|
|
8197
8352
|
{
|
|
8198
8353
|
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]",
|
|
8199
8354
|
sideOffset: 8,
|
|
8200
8355
|
alignOffset: -8,
|
|
8201
8356
|
children: [
|
|
8202
|
-
/* @__PURE__ */
|
|
8357
|
+
/* @__PURE__ */ jsxs38(
|
|
8203
8358
|
DropdownMenu.Item,
|
|
8204
8359
|
{
|
|
8205
8360
|
onClick: handleSaveLayout,
|
|
8206
8361
|
disabled: layoutStatus !== "idle",
|
|
8207
8362
|
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",
|
|
8208
8363
|
children: [
|
|
8209
|
-
layoutStatus === "saving" ? /* @__PURE__ */
|
|
8210
|
-
/* @__PURE__ */
|
|
8364
|
+
layoutStatus === "saving" ? /* @__PURE__ */ jsx40(Loader2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 animate-spin" }) : /* @__PURE__ */ jsx40(Save, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8365
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: layoutStatus === "saving" ? "Saving..." : "Save Layout" })
|
|
8211
8366
|
]
|
|
8212
8367
|
}
|
|
8213
8368
|
),
|
|
8214
|
-
/* @__PURE__ */
|
|
8369
|
+
/* @__PURE__ */ jsxs38(
|
|
8215
8370
|
DropdownMenu.Item,
|
|
8216
8371
|
{
|
|
8217
8372
|
onClick: handleResetLayout,
|
|
8218
8373
|
disabled: layoutStatus !== "idle",
|
|
8219
8374
|
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",
|
|
8220
8375
|
children: [
|
|
8221
|
-
layoutStatus === "resetting" ? /* @__PURE__ */
|
|
8222
|
-
/* @__PURE__ */
|
|
8376
|
+
layoutStatus === "resetting" ? /* @__PURE__ */ jsx40(Loader2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0 animate-spin" }) : /* @__PURE__ */ jsx40(RotateCcw, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8377
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: layoutStatus === "resetting" ? "Resetting..." : "Reset Layout" })
|
|
8223
8378
|
]
|
|
8224
8379
|
}
|
|
8225
8380
|
)
|
|
@@ -8227,75 +8382,75 @@ var VisualizerDropdownContent = memo32(
|
|
|
8227
8382
|
}
|
|
8228
8383
|
) })
|
|
8229
8384
|
] }),
|
|
8230
|
-
isChatEnabled && /* @__PURE__ */
|
|
8231
|
-
/* @__PURE__ */
|
|
8232
|
-
/* @__PURE__ */
|
|
8385
|
+
isChatEnabled && /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
8386
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8387
|
+
/* @__PURE__ */ jsxs38(
|
|
8233
8388
|
DropdownMenu.Item,
|
|
8234
8389
|
{
|
|
8235
8390
|
onClick: openChat,
|
|
8236
8391
|
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",
|
|
8237
8392
|
children: [
|
|
8238
|
-
/* @__PURE__ */
|
|
8239
|
-
/* @__PURE__ */
|
|
8393
|
+
/* @__PURE__ */ jsx40(Sparkles, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8394
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Ask a question" })
|
|
8240
8395
|
]
|
|
8241
8396
|
}
|
|
8242
8397
|
)
|
|
8243
8398
|
] }),
|
|
8244
|
-
/* @__PURE__ */
|
|
8245
|
-
/* @__PURE__ */
|
|
8399
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8400
|
+
/* @__PURE__ */ jsxs38(
|
|
8246
8401
|
DropdownMenu.Item,
|
|
8247
8402
|
{
|
|
8248
8403
|
onClick: handleCopyArchitectureCode,
|
|
8249
8404
|
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",
|
|
8250
8405
|
children: [
|
|
8251
|
-
/* @__PURE__ */
|
|
8252
|
-
/* @__PURE__ */
|
|
8406
|
+
/* @__PURE__ */ jsx40(Code, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8407
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Copy as mermaid" })
|
|
8253
8408
|
]
|
|
8254
8409
|
}
|
|
8255
8410
|
),
|
|
8256
|
-
/* @__PURE__ */
|
|
8411
|
+
/* @__PURE__ */ jsxs38(
|
|
8257
8412
|
DropdownMenu.Item,
|
|
8258
8413
|
{
|
|
8259
8414
|
onClick: handleExportVisual,
|
|
8260
8415
|
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",
|
|
8261
8416
|
children: [
|
|
8262
|
-
/* @__PURE__ */
|
|
8263
|
-
/* @__PURE__ */
|
|
8417
|
+
/* @__PURE__ */ jsx40(DocumentArrowDownIcon, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8418
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Export image" })
|
|
8264
8419
|
]
|
|
8265
8420
|
}
|
|
8266
8421
|
),
|
|
8267
|
-
/* @__PURE__ */
|
|
8422
|
+
/* @__PURE__ */ jsxs38(
|
|
8268
8423
|
DropdownMenu.Item,
|
|
8269
8424
|
{
|
|
8270
8425
|
onClick: () => setIsShareModalOpen(true),
|
|
8271
8426
|
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",
|
|
8272
8427
|
children: [
|
|
8273
|
-
/* @__PURE__ */
|
|
8274
|
-
/* @__PURE__ */
|
|
8428
|
+
/* @__PURE__ */ jsx40(Share2, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8429
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Share Link" })
|
|
8275
8430
|
]
|
|
8276
8431
|
}
|
|
8277
8432
|
),
|
|
8278
|
-
/* @__PURE__ */
|
|
8279
|
-
/* @__PURE__ */
|
|
8433
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8434
|
+
/* @__PURE__ */ jsxs38(
|
|
8280
8435
|
DropdownMenu.Item,
|
|
8281
8436
|
{
|
|
8282
8437
|
onClick: toggleFullScreen,
|
|
8283
8438
|
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",
|
|
8284
8439
|
children: [
|
|
8285
|
-
/* @__PURE__ */
|
|
8286
|
-
/* @__PURE__ */
|
|
8440
|
+
/* @__PURE__ */ jsx40(PresentationChartLineIcon, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8441
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Start Presentation" })
|
|
8287
8442
|
]
|
|
8288
8443
|
}
|
|
8289
8444
|
),
|
|
8290
|
-
/* @__PURE__ */
|
|
8291
|
-
/* @__PURE__ */
|
|
8445
|
+
/* @__PURE__ */ jsx40(DropdownMenu.Separator, { className: "my-1 h-px bg-[rgb(var(--ec-page-border))]" }),
|
|
8446
|
+
/* @__PURE__ */ jsxs38(
|
|
8292
8447
|
DropdownMenu.Item,
|
|
8293
8448
|
{
|
|
8294
8449
|
onClick: openStudioModal,
|
|
8295
8450
|
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",
|
|
8296
8451
|
children: [
|
|
8297
|
-
/* @__PURE__ */
|
|
8298
|
-
/* @__PURE__ */
|
|
8452
|
+
/* @__PURE__ */ jsx40(ExternalLink, { className: "w-3.5 h-3.5 text-[rgb(var(--ec-page-text-muted))] flex-shrink-0" }),
|
|
8453
|
+
/* @__PURE__ */ jsx40("span", { className: "flex-1 font-normal", children: "Open in EventCatalog Studio" })
|
|
8299
8454
|
]
|
|
8300
8455
|
}
|
|
8301
8456
|
)
|
|
@@ -8306,30 +8461,30 @@ VisualizerDropdownContent.displayName = "VisualizerDropdownContent";
|
|
|
8306
8461
|
var VisualizerDropdownContent_default = VisualizerDropdownContent;
|
|
8307
8462
|
|
|
8308
8463
|
// src/components/NodeContextMenu.tsx
|
|
8309
|
-
import { memo as
|
|
8464
|
+
import { memo as memo34 } from "react";
|
|
8310
8465
|
import * as ContextMenu5 from "@radix-ui/react-context-menu";
|
|
8311
|
-
import { Fragment as
|
|
8312
|
-
var NodeContextMenu_default =
|
|
8466
|
+
import { Fragment as Fragment10, jsx as jsx41, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
8467
|
+
var NodeContextMenu_default = memo34(function NodeContextMenu({
|
|
8313
8468
|
items,
|
|
8314
8469
|
children
|
|
8315
8470
|
}) {
|
|
8316
8471
|
const portalContainer = usePortalContainer();
|
|
8317
|
-
if (!items || items.length === 0) return /* @__PURE__ */
|
|
8318
|
-
return /* @__PURE__ */
|
|
8319
|
-
/* @__PURE__ */
|
|
8320
|
-
/* @__PURE__ */
|
|
8472
|
+
if (!items || items.length === 0) return /* @__PURE__ */ jsx41(Fragment10, { children });
|
|
8473
|
+
return /* @__PURE__ */ jsxs39(ContextMenu5.Root, { children: [
|
|
8474
|
+
/* @__PURE__ */ jsx41(ContextMenu5.Trigger, { children }),
|
|
8475
|
+
/* @__PURE__ */ jsx41(ContextMenu5.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx41(
|
|
8321
8476
|
ContextMenu5.Content,
|
|
8322
8477
|
{
|
|
8323
8478
|
className: "min-w-[220px] bg-white rounded-md p-1 shadow-md border border-gray-200 z-50",
|
|
8324
8479
|
onClick: (e) => e.stopPropagation(),
|
|
8325
|
-
children: items.map((item, index) => /* @__PURE__ */
|
|
8326
|
-
item.separator && index > 0 && /* @__PURE__ */
|
|
8327
|
-
/* @__PURE__ */
|
|
8480
|
+
children: items.map((item, index) => /* @__PURE__ */ jsxs39("div", { children: [
|
|
8481
|
+
item.separator && index > 0 && /* @__PURE__ */ jsx41(ContextMenu5.Separator, { className: "h-[1px] bg-gray-200 m-1" }),
|
|
8482
|
+
/* @__PURE__ */ jsx41(
|
|
8328
8483
|
ContextMenu5.Item,
|
|
8329
8484
|
{
|
|
8330
8485
|
asChild: true,
|
|
8331
|
-
className: "text-sm px-2 py-1.5 outline-none cursor-pointer hover:bg-orange-100 rounded-sm flex items-center",
|
|
8332
|
-
children: /* @__PURE__ */
|
|
8486
|
+
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",
|
|
8487
|
+
children: /* @__PURE__ */ jsx41(
|
|
8333
8488
|
"a",
|
|
8334
8489
|
{
|
|
8335
8490
|
href: item.href,
|
|
@@ -8859,7 +9014,7 @@ import {
|
|
|
8859
9014
|
} from "lucide-react";
|
|
8860
9015
|
import { useReactFlow as useReactFlow4 } from "@xyflow/react";
|
|
8861
9016
|
import * as Dialog4 from "@radix-ui/react-dialog";
|
|
8862
|
-
import { Fragment as
|
|
9017
|
+
import { Fragment as Fragment11, jsx as jsx42, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
8863
9018
|
var NODE_TYPE_META = {
|
|
8864
9019
|
service: { icon: ServerIcon2, color: "#ec4899", label: "Service" },
|
|
8865
9020
|
services: { icon: ServerIcon2, color: "#ec4899", label: "Service" },
|
|
@@ -8965,7 +9120,7 @@ function hashStr2(s) {
|
|
|
8965
9120
|
function Avatar2({ name, size = 28 }) {
|
|
8966
9121
|
const initials = name.split(/\s+/).map((w) => w[0]).join("").toUpperCase().slice(0, 2);
|
|
8967
9122
|
const [c1, c2] = AVATAR_PALETTES2[hashStr2(name) % AVATAR_PALETTES2.length];
|
|
8968
|
-
return /* @__PURE__ */
|
|
9123
|
+
return /* @__PURE__ */ jsx42(
|
|
8969
9124
|
"div",
|
|
8970
9125
|
{
|
|
8971
9126
|
style: {
|
|
@@ -8978,7 +9133,7 @@ function Avatar2({ name, size = 28 }) {
|
|
|
8978
9133
|
justifyContent: "center",
|
|
8979
9134
|
flexShrink: 0
|
|
8980
9135
|
},
|
|
8981
|
-
children: /* @__PURE__ */
|
|
9136
|
+
children: /* @__PURE__ */ jsx42(
|
|
8982
9137
|
"span",
|
|
8983
9138
|
{
|
|
8984
9139
|
style: {
|
|
@@ -8997,7 +9152,7 @@ function PriorityBadge({ priority }) {
|
|
|
8997
9152
|
const p = PRIORITY2[priority.toLowerCase()];
|
|
8998
9153
|
if (!p) return null;
|
|
8999
9154
|
const isUrgent = priority === "high" || priority === "critical";
|
|
9000
|
-
return /* @__PURE__ */
|
|
9155
|
+
return /* @__PURE__ */ jsxs40(
|
|
9001
9156
|
"span",
|
|
9002
9157
|
{
|
|
9003
9158
|
style: {
|
|
@@ -9016,7 +9171,7 @@ function PriorityBadge({ priority }) {
|
|
|
9016
9171
|
lineHeight: 1.4
|
|
9017
9172
|
},
|
|
9018
9173
|
children: [
|
|
9019
|
-
isUrgent && /* @__PURE__ */
|
|
9174
|
+
isUrgent && /* @__PURE__ */ jsx42(AlertTriangle2, { style: { width: 9, height: 9 }, strokeWidth: 2.5 }),
|
|
9020
9175
|
p.label
|
|
9021
9176
|
]
|
|
9022
9177
|
}
|
|
@@ -9024,7 +9179,7 @@ function PriorityBadge({ priority }) {
|
|
|
9024
9179
|
}
|
|
9025
9180
|
function NoteCard2({ note, index }) {
|
|
9026
9181
|
const prioStyle = note.priority ? PRIORITY2[note.priority.toLowerCase()] : null;
|
|
9027
|
-
return /* @__PURE__ */
|
|
9182
|
+
return /* @__PURE__ */ jsxs40(
|
|
9028
9183
|
"div",
|
|
9029
9184
|
{
|
|
9030
9185
|
style: {
|
|
@@ -9036,7 +9191,7 @@ function NoteCard2({ note, index }) {
|
|
|
9036
9191
|
boxShadow: "0 1px 3px rgba(0,0,0,0.04)"
|
|
9037
9192
|
},
|
|
9038
9193
|
children: [
|
|
9039
|
-
prioStyle && /* @__PURE__ */
|
|
9194
|
+
prioStyle && /* @__PURE__ */ jsx42(
|
|
9040
9195
|
"div",
|
|
9041
9196
|
{
|
|
9042
9197
|
style: {
|
|
@@ -9050,7 +9205,7 @@ function NoteCard2({ note, index }) {
|
|
|
9050
9205
|
}
|
|
9051
9206
|
}
|
|
9052
9207
|
),
|
|
9053
|
-
/* @__PURE__ */
|
|
9208
|
+
/* @__PURE__ */ jsxs40(
|
|
9054
9209
|
"div",
|
|
9055
9210
|
{
|
|
9056
9211
|
style: {
|
|
@@ -9060,7 +9215,7 @@ function NoteCard2({ note, index }) {
|
|
|
9060
9215
|
marginBottom: 8
|
|
9061
9216
|
},
|
|
9062
9217
|
children: [
|
|
9063
|
-
note.author ? /* @__PURE__ */
|
|
9218
|
+
note.author ? /* @__PURE__ */ jsx42(Avatar2, { name: note.author, size: 24 }) : /* @__PURE__ */ jsx42(
|
|
9064
9219
|
"div",
|
|
9065
9220
|
{
|
|
9066
9221
|
style: {
|
|
@@ -9074,10 +9229,10 @@ function NoteCard2({ note, index }) {
|
|
|
9074
9229
|
justifyContent: "center",
|
|
9075
9230
|
flexShrink: 0
|
|
9076
9231
|
},
|
|
9077
|
-
children: /* @__PURE__ */
|
|
9232
|
+
children: /* @__PURE__ */ jsx42("span", { style: { fontSize: 10, fontWeight: 700, color: AMBER2[700] }, children: index + 1 })
|
|
9078
9233
|
}
|
|
9079
9234
|
),
|
|
9080
|
-
/* @__PURE__ */
|
|
9235
|
+
/* @__PURE__ */ jsx42("div", { style: { flex: 1, minWidth: 0 }, children: note.author && /* @__PURE__ */ jsx42(
|
|
9081
9236
|
"span",
|
|
9082
9237
|
{
|
|
9083
9238
|
style: {
|
|
@@ -9089,11 +9244,11 @@ function NoteCard2({ note, index }) {
|
|
|
9089
9244
|
children: note.author
|
|
9090
9245
|
}
|
|
9091
9246
|
) }),
|
|
9092
|
-
note.priority && /* @__PURE__ */
|
|
9247
|
+
note.priority && /* @__PURE__ */ jsx42(PriorityBadge, { priority: note.priority })
|
|
9093
9248
|
]
|
|
9094
9249
|
}
|
|
9095
9250
|
),
|
|
9096
|
-
/* @__PURE__ */
|
|
9251
|
+
/* @__PURE__ */ jsx42(
|
|
9097
9252
|
"p",
|
|
9098
9253
|
{
|
|
9099
9254
|
style: {
|
|
@@ -9137,7 +9292,7 @@ function AllNotesModal({
|
|
|
9137
9292
|
[nodes, setCenter, getZoom, onClose]
|
|
9138
9293
|
);
|
|
9139
9294
|
if (totalNotes === 0) return null;
|
|
9140
|
-
return /* @__PURE__ */
|
|
9295
|
+
return /* @__PURE__ */ jsx42(
|
|
9141
9296
|
Dialog4.Root,
|
|
9142
9297
|
{
|
|
9143
9298
|
open: isOpen,
|
|
@@ -9147,13 +9302,13 @@ function AllNotesModal({
|
|
|
9147
9302
|
setSelectedIdx(0);
|
|
9148
9303
|
}
|
|
9149
9304
|
},
|
|
9150
|
-
children: /* @__PURE__ */
|
|
9305
|
+
children: /* @__PURE__ */ jsx42(Dialog4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs40(
|
|
9151
9306
|
"div",
|
|
9152
9307
|
{
|
|
9153
9308
|
className: "fixed inset-0 z-[99999]",
|
|
9154
9309
|
style: { isolation: "isolate" },
|
|
9155
9310
|
children: [
|
|
9156
|
-
/* @__PURE__ */
|
|
9311
|
+
/* @__PURE__ */ jsx42(
|
|
9157
9312
|
Dialog4.Overlay,
|
|
9158
9313
|
{
|
|
9159
9314
|
style: {
|
|
@@ -9164,7 +9319,7 @@ function AllNotesModal({
|
|
|
9164
9319
|
}
|
|
9165
9320
|
}
|
|
9166
9321
|
),
|
|
9167
|
-
/* @__PURE__ */
|
|
9322
|
+
/* @__PURE__ */ jsxs40(
|
|
9168
9323
|
Dialog4.Content,
|
|
9169
9324
|
{
|
|
9170
9325
|
style: {
|
|
@@ -9185,7 +9340,7 @@ function AllNotesModal({
|
|
|
9185
9340
|
outline: "none"
|
|
9186
9341
|
},
|
|
9187
9342
|
children: [
|
|
9188
|
-
/* @__PURE__ */
|
|
9343
|
+
/* @__PURE__ */ jsxs40(
|
|
9189
9344
|
"div",
|
|
9190
9345
|
{
|
|
9191
9346
|
style: {
|
|
@@ -9197,7 +9352,7 @@ function AllNotesModal({
|
|
|
9197
9352
|
flexShrink: 0
|
|
9198
9353
|
},
|
|
9199
9354
|
children: [
|
|
9200
|
-
/* @__PURE__ */
|
|
9355
|
+
/* @__PURE__ */ jsx42(
|
|
9201
9356
|
"div",
|
|
9202
9357
|
{
|
|
9203
9358
|
style: {
|
|
@@ -9210,7 +9365,7 @@ function AllNotesModal({
|
|
|
9210
9365
|
justifyContent: "center",
|
|
9211
9366
|
flexShrink: 0
|
|
9212
9367
|
},
|
|
9213
|
-
children: /* @__PURE__ */
|
|
9368
|
+
children: /* @__PURE__ */ jsx42(
|
|
9214
9369
|
MessageCircle3,
|
|
9215
9370
|
{
|
|
9216
9371
|
style: { width: 16, height: 16, color: "#64748b" },
|
|
@@ -9219,8 +9374,8 @@ function AllNotesModal({
|
|
|
9219
9374
|
)
|
|
9220
9375
|
}
|
|
9221
9376
|
),
|
|
9222
|
-
/* @__PURE__ */
|
|
9223
|
-
/* @__PURE__ */
|
|
9377
|
+
/* @__PURE__ */ jsxs40("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
9378
|
+
/* @__PURE__ */ jsx42(
|
|
9224
9379
|
Dialog4.Title,
|
|
9225
9380
|
{
|
|
9226
9381
|
style: {
|
|
@@ -9233,7 +9388,7 @@ function AllNotesModal({
|
|
|
9233
9388
|
children: "Notes"
|
|
9234
9389
|
}
|
|
9235
9390
|
),
|
|
9236
|
-
/* @__PURE__ */
|
|
9391
|
+
/* @__PURE__ */ jsxs40(
|
|
9237
9392
|
Dialog4.Description,
|
|
9238
9393
|
{
|
|
9239
9394
|
style: {
|
|
@@ -9255,7 +9410,7 @@ function AllNotesModal({
|
|
|
9255
9410
|
}
|
|
9256
9411
|
)
|
|
9257
9412
|
] }),
|
|
9258
|
-
/* @__PURE__ */
|
|
9413
|
+
/* @__PURE__ */ jsx42(Dialog4.Close, { asChild: true, children: /* @__PURE__ */ jsx42(
|
|
9259
9414
|
"button",
|
|
9260
9415
|
{
|
|
9261
9416
|
style: {
|
|
@@ -9272,14 +9427,14 @@ function AllNotesModal({
|
|
|
9272
9427
|
flexShrink: 0
|
|
9273
9428
|
},
|
|
9274
9429
|
"aria-label": "Close",
|
|
9275
|
-
children: /* @__PURE__ */
|
|
9430
|
+
children: /* @__PURE__ */ jsx42(X, { style: { width: 15, height: 15 } })
|
|
9276
9431
|
}
|
|
9277
9432
|
) })
|
|
9278
9433
|
]
|
|
9279
9434
|
}
|
|
9280
9435
|
),
|
|
9281
|
-
/* @__PURE__ */
|
|
9282
|
-
/* @__PURE__ */
|
|
9436
|
+
/* @__PURE__ */ jsxs40("div", { style: { display: "flex", flex: 1, overflow: "hidden" }, children: [
|
|
9437
|
+
/* @__PURE__ */ jsx42(
|
|
9283
9438
|
"div",
|
|
9284
9439
|
{
|
|
9285
9440
|
style: {
|
|
@@ -9294,7 +9449,7 @@ function AllNotesModal({
|
|
|
9294
9449
|
const meta = getNodeMeta(group.nodeType);
|
|
9295
9450
|
const IconComp = meta?.icon || MessageCircle3;
|
|
9296
9451
|
const iconColor = meta?.color || "#64748b";
|
|
9297
|
-
return /* @__PURE__ */
|
|
9452
|
+
return /* @__PURE__ */ jsxs40(
|
|
9298
9453
|
"button",
|
|
9299
9454
|
{
|
|
9300
9455
|
onClick: () => setSelectedIdx(i),
|
|
@@ -9313,7 +9468,7 @@ function AllNotesModal({
|
|
|
9313
9468
|
transition: "background 0.1s"
|
|
9314
9469
|
},
|
|
9315
9470
|
children: [
|
|
9316
|
-
/* @__PURE__ */
|
|
9471
|
+
/* @__PURE__ */ jsx42(
|
|
9317
9472
|
"div",
|
|
9318
9473
|
{
|
|
9319
9474
|
style: {
|
|
@@ -9327,7 +9482,7 @@ function AllNotesModal({
|
|
|
9327
9482
|
flexShrink: 0,
|
|
9328
9483
|
transition: "background 0.15s"
|
|
9329
9484
|
},
|
|
9330
|
-
children: /* @__PURE__ */
|
|
9485
|
+
children: /* @__PURE__ */ jsx42(
|
|
9331
9486
|
IconComp,
|
|
9332
9487
|
{
|
|
9333
9488
|
style: {
|
|
@@ -9341,8 +9496,8 @@ function AllNotesModal({
|
|
|
9341
9496
|
)
|
|
9342
9497
|
}
|
|
9343
9498
|
),
|
|
9344
|
-
/* @__PURE__ */
|
|
9345
|
-
/* @__PURE__ */
|
|
9499
|
+
/* @__PURE__ */ jsxs40("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
9500
|
+
/* @__PURE__ */ jsx42(
|
|
9346
9501
|
"div",
|
|
9347
9502
|
{
|
|
9348
9503
|
style: {
|
|
@@ -9357,7 +9512,7 @@ function AllNotesModal({
|
|
|
9357
9512
|
children: group.name
|
|
9358
9513
|
}
|
|
9359
9514
|
),
|
|
9360
|
-
/* @__PURE__ */
|
|
9515
|
+
/* @__PURE__ */ jsxs40(
|
|
9361
9516
|
"div",
|
|
9362
9517
|
{
|
|
9363
9518
|
style: {
|
|
@@ -9380,7 +9535,7 @@ function AllNotesModal({
|
|
|
9380
9535
|
}
|
|
9381
9536
|
)
|
|
9382
9537
|
] }),
|
|
9383
|
-
/* @__PURE__ */
|
|
9538
|
+
/* @__PURE__ */ jsx42(
|
|
9384
9539
|
ChevronRight,
|
|
9385
9540
|
{
|
|
9386
9541
|
style: {
|
|
@@ -9399,7 +9554,7 @@ function AllNotesModal({
|
|
|
9399
9554
|
})
|
|
9400
9555
|
}
|
|
9401
9556
|
),
|
|
9402
|
-
/* @__PURE__ */
|
|
9557
|
+
/* @__PURE__ */ jsx42(
|
|
9403
9558
|
"div",
|
|
9404
9559
|
{
|
|
9405
9560
|
style: {
|
|
@@ -9408,8 +9563,8 @@ function AllNotesModal({
|
|
|
9408
9563
|
display: "flex",
|
|
9409
9564
|
flexDirection: "column"
|
|
9410
9565
|
},
|
|
9411
|
-
children: selected && /* @__PURE__ */
|
|
9412
|
-
/* @__PURE__ */
|
|
9566
|
+
children: selected && /* @__PURE__ */ jsxs40(Fragment11, { children: [
|
|
9567
|
+
/* @__PURE__ */ jsxs40(
|
|
9413
9568
|
"div",
|
|
9414
9569
|
{
|
|
9415
9570
|
style: {
|
|
@@ -9422,7 +9577,7 @@ function AllNotesModal({
|
|
|
9422
9577
|
background: "#fafbfc"
|
|
9423
9578
|
},
|
|
9424
9579
|
children: [
|
|
9425
|
-
/* @__PURE__ */
|
|
9580
|
+
/* @__PURE__ */ jsxs40(
|
|
9426
9581
|
"div",
|
|
9427
9582
|
{
|
|
9428
9583
|
style: {
|
|
@@ -9435,7 +9590,7 @@ function AllNotesModal({
|
|
|
9435
9590
|
const meta = getNodeMeta(selected.nodeType);
|
|
9436
9591
|
const Icon = meta?.icon || MessageCircle3;
|
|
9437
9592
|
const color = meta?.color || "#64748b";
|
|
9438
|
-
return /* @__PURE__ */
|
|
9593
|
+
return /* @__PURE__ */ jsx42(
|
|
9439
9594
|
"div",
|
|
9440
9595
|
{
|
|
9441
9596
|
style: {
|
|
@@ -9448,7 +9603,7 @@ function AllNotesModal({
|
|
|
9448
9603
|
justifyContent: "center",
|
|
9449
9604
|
flexShrink: 0
|
|
9450
9605
|
},
|
|
9451
|
-
children: /* @__PURE__ */
|
|
9606
|
+
children: /* @__PURE__ */ jsx42(
|
|
9452
9607
|
Icon,
|
|
9453
9608
|
{
|
|
9454
9609
|
style: {
|
|
@@ -9462,8 +9617,8 @@ function AllNotesModal({
|
|
|
9462
9617
|
}
|
|
9463
9618
|
);
|
|
9464
9619
|
})(),
|
|
9465
|
-
/* @__PURE__ */
|
|
9466
|
-
/* @__PURE__ */
|
|
9620
|
+
/* @__PURE__ */ jsxs40("div", { children: [
|
|
9621
|
+
/* @__PURE__ */ jsx42(
|
|
9467
9622
|
"div",
|
|
9468
9623
|
{
|
|
9469
9624
|
style: {
|
|
@@ -9475,7 +9630,7 @@ function AllNotesModal({
|
|
|
9475
9630
|
children: selected.name
|
|
9476
9631
|
}
|
|
9477
9632
|
),
|
|
9478
|
-
/* @__PURE__ */
|
|
9633
|
+
/* @__PURE__ */ jsxs40(
|
|
9479
9634
|
"div",
|
|
9480
9635
|
{
|
|
9481
9636
|
style: {
|
|
@@ -9497,7 +9652,7 @@ function AllNotesModal({
|
|
|
9497
9652
|
]
|
|
9498
9653
|
}
|
|
9499
9654
|
),
|
|
9500
|
-
/* @__PURE__ */
|
|
9655
|
+
/* @__PURE__ */ jsxs40(
|
|
9501
9656
|
"button",
|
|
9502
9657
|
{
|
|
9503
9658
|
onClick: () => handleNavigate(selected.nodeId),
|
|
@@ -9524,7 +9679,7 @@ function AllNotesModal({
|
|
|
9524
9679
|
e.currentTarget.style.color = "#475569";
|
|
9525
9680
|
},
|
|
9526
9681
|
children: [
|
|
9527
|
-
/* @__PURE__ */
|
|
9682
|
+
/* @__PURE__ */ jsx42(Locate, { style: { width: 12, height: 12 } }),
|
|
9528
9683
|
"Find on canvas"
|
|
9529
9684
|
]
|
|
9530
9685
|
}
|
|
@@ -9532,7 +9687,7 @@ function AllNotesModal({
|
|
|
9532
9687
|
]
|
|
9533
9688
|
}
|
|
9534
9689
|
),
|
|
9535
|
-
/* @__PURE__ */
|
|
9690
|
+
/* @__PURE__ */ jsx42(
|
|
9536
9691
|
"div",
|
|
9537
9692
|
{
|
|
9538
9693
|
style: {
|
|
@@ -9543,7 +9698,7 @@ function AllNotesModal({
|
|
|
9543
9698
|
flexDirection: "column",
|
|
9544
9699
|
gap: 10
|
|
9545
9700
|
},
|
|
9546
|
-
children: selected.notes.map((note, i) => /* @__PURE__ */
|
|
9701
|
+
children: selected.notes.map((note, i) => /* @__PURE__ */ jsx42(NoteCard2, { note, index: i }, i))
|
|
9547
9702
|
}
|
|
9548
9703
|
)
|
|
9549
9704
|
] })
|
|
@@ -9562,7 +9717,7 @@ function AllNotesModal({
|
|
|
9562
9717
|
|
|
9563
9718
|
// src/components/NodeGraph.tsx
|
|
9564
9719
|
import dagre3 from "dagre";
|
|
9565
|
-
import { Fragment as
|
|
9720
|
+
import { Fragment as Fragment12, jsx as jsx43, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
9566
9721
|
var POSITION_CHANGE_THRESHOLD = 1;
|
|
9567
9722
|
var LARGE_GRAPH_NODE_THRESHOLD = 30;
|
|
9568
9723
|
var NODE_ORIGIN = [0.1, 0.1];
|
|
@@ -9573,29 +9728,34 @@ var MINIMAP_STYLE = {
|
|
|
9573
9728
|
};
|
|
9574
9729
|
var LAYOUT_CHANGE_PANEL_STYLE_WITH_WALKTHROUGH = {
|
|
9575
9730
|
marginBottom: "20px",
|
|
9576
|
-
marginLeft: "
|
|
9731
|
+
marginLeft: "420px"
|
|
9577
9732
|
};
|
|
9578
9733
|
var LAYOUT_CHANGE_PANEL_STYLE_DEFAULT = { marginLeft: "60px" };
|
|
9579
9734
|
var LEGEND_PANEL_STYLE_WITH_MINIMAP = { marginRight: "230px" };
|
|
9580
|
-
var
|
|
9735
|
+
var EXPANDED_WRAPPER_TYPES = /* @__PURE__ */ new Set([
|
|
9736
|
+
"flowExpanded",
|
|
9737
|
+
"messageGroupExpanded"
|
|
9738
|
+
]);
|
|
9739
|
+
var isExpandedWrapper = (type) => type != null && EXPANDED_WRAPPER_TYPES.has(type);
|
|
9740
|
+
var LegendPanel = memo35(function LegendPanel2({
|
|
9581
9741
|
legend,
|
|
9582
9742
|
showMinimap,
|
|
9583
9743
|
onLegendClick
|
|
9584
9744
|
}) {
|
|
9585
|
-
return /* @__PURE__ */
|
|
9745
|
+
return /* @__PURE__ */ jsx43(
|
|
9586
9746
|
Panel,
|
|
9587
9747
|
{
|
|
9588
9748
|
position: "bottom-right",
|
|
9589
9749
|
style: showMinimap ? LEGEND_PANEL_STYLE_WITH_MINIMAP : void 0,
|
|
9590
|
-
children: /* @__PURE__ */
|
|
9591
|
-
([key, { count, colorClass, groupId }]) => /* @__PURE__ */
|
|
9750
|
+
children: /* @__PURE__ */ jsx43("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__ */ jsx43("ul", { className: "m-0 p-0 ", children: Object.entries(legend).map(
|
|
9751
|
+
([key, { count, colorClass, groupId }]) => /* @__PURE__ */ jsxs41(
|
|
9592
9752
|
"li",
|
|
9593
9753
|
{
|
|
9594
9754
|
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",
|
|
9595
9755
|
onClick: () => onLegendClick(key, groupId),
|
|
9596
9756
|
children: [
|
|
9597
|
-
/* @__PURE__ */
|
|
9598
|
-
/* @__PURE__ */
|
|
9757
|
+
/* @__PURE__ */ jsx43("span", { className: `w-2 h-2 block ${colorClass}` }),
|
|
9758
|
+
/* @__PURE__ */ jsxs41("span", { className: "block capitalize", children: [
|
|
9599
9759
|
key,
|
|
9600
9760
|
" (",
|
|
9601
9761
|
count,
|
|
@@ -9717,10 +9877,10 @@ var NodeGraphBuilder = ({
|
|
|
9717
9877
|
}, []);
|
|
9718
9878
|
const nodeTypes = useMemo18(() => {
|
|
9719
9879
|
const wrapWithContextMenu = (Component) => {
|
|
9720
|
-
const Wrapped =
|
|
9880
|
+
const Wrapped = memo35((props) => {
|
|
9721
9881
|
const items = props.data?.contextMenu;
|
|
9722
|
-
if (!items?.length) return /* @__PURE__ */
|
|
9723
|
-
return /* @__PURE__ */
|
|
9882
|
+
if (!items?.length) return /* @__PURE__ */ jsx43(Component, { ...props });
|
|
9883
|
+
return /* @__PURE__ */ jsx43(NodeContextMenu_default, { items, children: /* @__PURE__ */ jsx43(Component, { ...props }) });
|
|
9724
9884
|
});
|
|
9725
9885
|
Wrapped.displayName = `WithContextMenu(${Component.displayName || Component.name || "Component"})`;
|
|
9726
9886
|
return Wrapped;
|
|
@@ -9754,10 +9914,11 @@ var NodeGraphBuilder = ({
|
|
|
9754
9914
|
"data-product": wrapWithContextMenu(DataProduct_default),
|
|
9755
9915
|
"data-products": wrapWithContextMenu(DataProduct_default),
|
|
9756
9916
|
group: GroupNode_default,
|
|
9757
|
-
note:
|
|
9917
|
+
note: memo35((props) => /* @__PURE__ */ jsx43(NoteNode_default, { ...props, readOnly: true })),
|
|
9758
9918
|
field: wrapWithContextMenu(FieldNode_default),
|
|
9759
9919
|
messageGroup: MessageGroupNode_default,
|
|
9760
|
-
messageGroupExpanded: MessageGroupExpandedNode_default
|
|
9920
|
+
messageGroupExpanded: MessageGroupExpandedNode_default,
|
|
9921
|
+
flowExpanded: FlowExpandedNode_default
|
|
9761
9922
|
};
|
|
9762
9923
|
}, []);
|
|
9763
9924
|
const edgeTypes2 = useMemo18(
|
|
@@ -9887,6 +10048,23 @@ var NodeGraphBuilder = ({
|
|
|
9887
10048
|
edgesRef.current = edges;
|
|
9888
10049
|
const hideChannelsRef = useRef6(hideChannels);
|
|
9889
10050
|
hideChannelsRef.current = hideChannels;
|
|
10051
|
+
const wrapperNodeIds = useMemo18(() => {
|
|
10052
|
+
const ids = /* @__PURE__ */ new Set();
|
|
10053
|
+
nodes.forEach((n) => {
|
|
10054
|
+
if (isExpandedWrapper(n.type)) ids.add(n.id);
|
|
10055
|
+
});
|
|
10056
|
+
return ids;
|
|
10057
|
+
}, [nodes]);
|
|
10058
|
+
const walkthroughNodes = useMemo18(
|
|
10059
|
+
() => wrapperNodeIds.size === 0 ? nodes : nodes.filter((n) => !wrapperNodeIds.has(n.id)),
|
|
10060
|
+
[nodes, wrapperNodeIds]
|
|
10061
|
+
);
|
|
10062
|
+
const walkthroughEdges = useMemo18(
|
|
10063
|
+
() => wrapperNodeIds.size === 0 ? edges : edges.filter(
|
|
10064
|
+
(e) => !wrapperNodeIds.has(e.source) && !wrapperNodeIds.has(e.target)
|
|
10065
|
+
),
|
|
10066
|
+
[edges, wrapperNodeIds]
|
|
10067
|
+
);
|
|
9890
10068
|
const animateLayout = useCallback12(() => {
|
|
9891
10069
|
const wrapper = reactFlowWrapperRef.current;
|
|
9892
10070
|
if (!wrapper) return;
|
|
@@ -9922,6 +10100,9 @@ var NodeGraphBuilder = ({
|
|
|
9922
10100
|
const positioned = nextNodes.map((node) => {
|
|
9923
10101
|
if (node.parentId) {
|
|
9924
10102
|
const parent = nextNodes.find((n) => n.id === node.parentId);
|
|
10103
|
+
if (parent?.type === "flowExpanded") {
|
|
10104
|
+
return node;
|
|
10105
|
+
}
|
|
9925
10106
|
const parentWidth = parent?.style?.width || 380;
|
|
9926
10107
|
const childWidth = 240;
|
|
9927
10108
|
const xOffset = Math.max(20, (parentWidth - childWidth) / 2);
|
|
@@ -9941,10 +10122,62 @@ var NodeGraphBuilder = ({
|
|
|
9941
10122
|
});
|
|
9942
10123
|
return positioned;
|
|
9943
10124
|
}, []);
|
|
10125
|
+
const layoutSubFlowChildren = useCallback12(
|
|
10126
|
+
(children, edges2, sizeOf, opts) => {
|
|
10127
|
+
const { padding, headerH, fallbackW = 240, fallbackH = 120 } = opts;
|
|
10128
|
+
const g = new dagre3.graphlib.Graph();
|
|
10129
|
+
g.setGraph({ rankdir: "LR", ranksep: 360, nodesep: 200 });
|
|
10130
|
+
g.setDefaultEdgeLabel(() => ({}));
|
|
10131
|
+
const childIds = new Set(children.map((c) => c.id));
|
|
10132
|
+
children.forEach((c) => {
|
|
10133
|
+
const { w, h } = sizeOf(c);
|
|
10134
|
+
g.setNode(c.id, { width: w, height: h });
|
|
10135
|
+
});
|
|
10136
|
+
edges2.forEach((e) => {
|
|
10137
|
+
if (childIds.has(e.source) && childIds.has(e.target)) {
|
|
10138
|
+
g.setEdge(e.source, e.target);
|
|
10139
|
+
}
|
|
10140
|
+
});
|
|
10141
|
+
dagre3.layout(g);
|
|
10142
|
+
let minX = Infinity;
|
|
10143
|
+
let minY = Infinity;
|
|
10144
|
+
let maxX = -Infinity;
|
|
10145
|
+
let maxY = -Infinity;
|
|
10146
|
+
const positions = /* @__PURE__ */ new Map();
|
|
10147
|
+
children.forEach((c) => {
|
|
10148
|
+
const pos = g.node(c.id);
|
|
10149
|
+
if (!pos) return;
|
|
10150
|
+
const x = pos.x - pos.width / 2;
|
|
10151
|
+
const y = pos.y - pos.height / 2;
|
|
10152
|
+
positions.set(c.id, { x, y });
|
|
10153
|
+
minX = Math.min(minX, x);
|
|
10154
|
+
minY = Math.min(minY, y);
|
|
10155
|
+
maxX = Math.max(maxX, x + pos.width);
|
|
10156
|
+
maxY = Math.max(maxY, y + pos.height);
|
|
10157
|
+
});
|
|
10158
|
+
const offsetX = padding - (Number.isFinite(minX) ? minX : 0);
|
|
10159
|
+
const offsetY = headerH + padding - (Number.isFinite(minY) ? minY : 0);
|
|
10160
|
+
const positioned = children.map((c) => {
|
|
10161
|
+
const p = positions.get(c.id);
|
|
10162
|
+
if (!p) return c;
|
|
10163
|
+
return { ...c, position: { x: p.x + offsetX, y: p.y + offsetY } };
|
|
10164
|
+
});
|
|
10165
|
+
const finalPositions = /* @__PURE__ */ new Map();
|
|
10166
|
+
positions.forEach(
|
|
10167
|
+
(p, id) => finalPositions.set(id, { x: p.x + offsetX, y: p.y + offsetY })
|
|
10168
|
+
);
|
|
10169
|
+
const width = Number.isFinite(minX) ? maxX - minX + padding * 2 : fallbackW + padding * 2;
|
|
10170
|
+
const height = Number.isFinite(minY) ? maxY - minY + headerH + padding * 2 : fallbackH + headerH + padding * 2;
|
|
10171
|
+
return { positioned, positions: finalPositions, width, height };
|
|
10172
|
+
},
|
|
10173
|
+
[]
|
|
10174
|
+
);
|
|
9944
10175
|
const handleCollapseGroup = useCallback12(
|
|
9945
10176
|
(e) => {
|
|
9946
10177
|
const target = e.target;
|
|
9947
|
-
const collapseBtn = target.closest(
|
|
10178
|
+
const collapseBtn = target.closest(
|
|
10179
|
+
".ec-collapse-group-btn, .ec-collapse-flow-btn"
|
|
10180
|
+
);
|
|
9948
10181
|
if (!collapseBtn) return;
|
|
9949
10182
|
e.stopPropagation();
|
|
9950
10183
|
const nodeWrapper = target.closest("[data-id]");
|
|
@@ -9954,23 +10187,26 @@ var NodeGraphBuilder = ({
|
|
|
9954
10187
|
const currentNodes = nodesRef.current;
|
|
9955
10188
|
const currentEdges = edgesRef.current;
|
|
9956
10189
|
const expandedNode = currentNodes.find((n) => n.id === groupNodeId);
|
|
9957
|
-
if (!expandedNode || expandedNode.type
|
|
10190
|
+
if (!expandedNode || !isExpandedWrapper(expandedNode.type)) return;
|
|
10191
|
+
const stashed = expandedNode.data.__preExpansion;
|
|
10192
|
+
const originalNode = stashed?.node ?? initialNodes.find(
|
|
10193
|
+
(n) => n.id === groupNodeId && (n.type === "messageGroup" || n.type === "flows" || n.type === "flow")
|
|
10194
|
+
);
|
|
10195
|
+
if (!originalNode) return;
|
|
10196
|
+
const originalEdges = stashed?.edges ?? initialEdges.filter(
|
|
10197
|
+
(edge) => edge.source === groupNodeId || edge.target === groupNodeId
|
|
10198
|
+
);
|
|
9958
10199
|
const childNodeIds = new Set(
|
|
9959
10200
|
currentNodes.filter((n) => n.parentId === groupNodeId).map((n) => n.id)
|
|
9960
10201
|
);
|
|
9961
|
-
const originalNode = initialNodes.find(
|
|
9962
|
-
(n) => n.id === groupNodeId && n.type === "messageGroup"
|
|
9963
|
-
);
|
|
9964
|
-
if (!originalNode) return;
|
|
9965
10202
|
const originalData = originalNode.data;
|
|
9966
|
-
const
|
|
10203
|
+
const preExistingIds = new Set(
|
|
10204
|
+
stashed ? stashed.nodeIds : initialNodes.map((n) => n.id)
|
|
10205
|
+
);
|
|
9967
10206
|
const downstreamNodeIds = new Set(
|
|
9968
|
-
(originalData.expandedNodes || []).map((n) => n.id).filter((id) => !
|
|
10207
|
+
(originalData.expandedNodes || []).map((n) => n.id).filter((id) => !preExistingIds.has(id))
|
|
9969
10208
|
);
|
|
9970
10209
|
const isDownstreamEdge = (edge) => edge.id.startsWith(`${groupNodeId}__`);
|
|
9971
|
-
const originalEdges = initialEdges.filter(
|
|
9972
|
-
(edge) => edge.source === groupNodeId || edge.target === groupNodeId
|
|
9973
|
-
);
|
|
9974
10210
|
animateLayout();
|
|
9975
10211
|
setNodes((prev) => {
|
|
9976
10212
|
const nextEdges = currentEdges.filter(
|
|
@@ -9993,6 +10229,9 @@ var NodeGraphBuilder = ({
|
|
|
9993
10229
|
);
|
|
9994
10230
|
return [...without, ...originalEdges];
|
|
9995
10231
|
});
|
|
10232
|
+
requestAnimationFrame(() => {
|
|
10233
|
+
fitView({ duration: 400, padding: 0.2 });
|
|
10234
|
+
});
|
|
9996
10235
|
},
|
|
9997
10236
|
[
|
|
9998
10237
|
initialNodes,
|
|
@@ -10000,7 +10239,8 @@ var NodeGraphBuilder = ({
|
|
|
10000
10239
|
setNodes,
|
|
10001
10240
|
setEdges,
|
|
10002
10241
|
relayoutGraph,
|
|
10003
|
-
animateLayout
|
|
10242
|
+
animateLayout,
|
|
10243
|
+
fitView
|
|
10004
10244
|
]
|
|
10005
10245
|
);
|
|
10006
10246
|
useEffect8(() => {
|
|
@@ -10092,9 +10332,10 @@ var NodeGraphBuilder = ({
|
|
|
10092
10332
|
const isEntityVisualizer = nodesRef.current.some(
|
|
10093
10333
|
(n) => n.type === "entities"
|
|
10094
10334
|
);
|
|
10095
|
-
|
|
10335
|
+
const isExpandableFlow = (node.type === "flows" || node.type === "flow") && Array.isArray(node.data?.expandedNodes) && node.data.expandedNodes.length > 0;
|
|
10336
|
+
if ((isFlow || isEntityVisualizer) && !isExpandableFlow) return;
|
|
10096
10337
|
if (node.type === "domain" || node.type === "domains") return;
|
|
10097
|
-
if (node.type
|
|
10338
|
+
if (isExpandedWrapper(node.type)) return;
|
|
10098
10339
|
if (node.type === "messageGroup") {
|
|
10099
10340
|
const groupData = node.data;
|
|
10100
10341
|
const groupNodeId = node.id;
|
|
@@ -10102,17 +10343,24 @@ var NodeGraphBuilder = ({
|
|
|
10102
10343
|
const childCount = groupData.messages?.length || 0;
|
|
10103
10344
|
const containerWidth = 380;
|
|
10104
10345
|
const containerHeight = childCount * 190 + 100;
|
|
10346
|
+
const preExpansionEdges = edgesRef.current.filter(
|
|
10347
|
+
(e) => e.source === groupNodeId || e.target === groupNodeId
|
|
10348
|
+
);
|
|
10349
|
+
const preExpansionNodeIds = nodesRef.current.map((n) => n.id);
|
|
10105
10350
|
const expandedContainerNode = {
|
|
10106
10351
|
id: groupNodeId,
|
|
10107
|
-
// reuse the same ID
|
|
10108
10352
|
type: "messageGroupExpanded",
|
|
10109
10353
|
position: node.position,
|
|
10110
|
-
// will be recalculated by dagre
|
|
10111
10354
|
data: {
|
|
10112
10355
|
groupName: groupData.groupName,
|
|
10113
10356
|
direction: groupData.direction,
|
|
10114
10357
|
messageCount: childCount,
|
|
10115
|
-
onCollapse: groupNodeId
|
|
10358
|
+
onCollapse: groupNodeId,
|
|
10359
|
+
__preExpansion: {
|
|
10360
|
+
node,
|
|
10361
|
+
edges: preExpansionEdges,
|
|
10362
|
+
nodeIds: preExpansionNodeIds
|
|
10363
|
+
}
|
|
10116
10364
|
},
|
|
10117
10365
|
style: {
|
|
10118
10366
|
width: containerWidth,
|
|
@@ -10237,6 +10485,170 @@ var NodeGraphBuilder = ({
|
|
|
10237
10485
|
});
|
|
10238
10486
|
});
|
|
10239
10487
|
});
|
|
10488
|
+
requestAnimationFrame(() => {
|
|
10489
|
+
fitView({ duration: 400, padding: 0.2 });
|
|
10490
|
+
});
|
|
10491
|
+
return;
|
|
10492
|
+
}
|
|
10493
|
+
if (isExpandableFlow) {
|
|
10494
|
+
const flowData = node.data;
|
|
10495
|
+
const flowNodeId = node.id;
|
|
10496
|
+
const subFlowNodes = flowData.expandedNodes || [];
|
|
10497
|
+
const subFlowEdges = flowData.expandedEdges || [];
|
|
10498
|
+
const initialChildNodes = subFlowNodes.map((child) => ({
|
|
10499
|
+
...child,
|
|
10500
|
+
parentId: flowNodeId,
|
|
10501
|
+
extent: "parent",
|
|
10502
|
+
position: { x: 0, y: 0 }
|
|
10503
|
+
}));
|
|
10504
|
+
const CHILD_PADDING = 60;
|
|
10505
|
+
const HEADER_H = 60;
|
|
10506
|
+
const EST_W = 240;
|
|
10507
|
+
const EST_H = 120;
|
|
10508
|
+
const {
|
|
10509
|
+
positioned: childNodes,
|
|
10510
|
+
width: containerWidth,
|
|
10511
|
+
height: containerHeight
|
|
10512
|
+
} = layoutSubFlowChildren(
|
|
10513
|
+
initialChildNodes,
|
|
10514
|
+
subFlowEdges,
|
|
10515
|
+
() => ({ w: EST_W, h: EST_H }),
|
|
10516
|
+
{ padding: CHILD_PADDING, headerH: HEADER_H }
|
|
10517
|
+
);
|
|
10518
|
+
const preExpansionEdges = edgesRef.current.filter(
|
|
10519
|
+
(e) => e.source === flowNodeId || e.target === flowNodeId
|
|
10520
|
+
);
|
|
10521
|
+
const preExpansionNodeIds = nodesRef.current.map((n) => n.id);
|
|
10522
|
+
const expandedContainerNode = {
|
|
10523
|
+
id: flowNodeId,
|
|
10524
|
+
type: "flowExpanded",
|
|
10525
|
+
position: node.position,
|
|
10526
|
+
data: {
|
|
10527
|
+
flowName: flowData.flow?.name || flowData.flow?.data?.name,
|
|
10528
|
+
version: flowData.flow?.version || flowData.flow?.data?.version,
|
|
10529
|
+
__preExpansion: {
|
|
10530
|
+
node,
|
|
10531
|
+
edges: preExpansionEdges,
|
|
10532
|
+
nodeIds: preExpansionNodeIds
|
|
10533
|
+
}
|
|
10534
|
+
},
|
|
10535
|
+
style: {
|
|
10536
|
+
width: containerWidth,
|
|
10537
|
+
height: containerHeight,
|
|
10538
|
+
background: "transparent",
|
|
10539
|
+
border: "none",
|
|
10540
|
+
padding: 0,
|
|
10541
|
+
overflow: "visible"
|
|
10542
|
+
}
|
|
10543
|
+
};
|
|
10544
|
+
const childIds = new Set(childNodes.map((n) => n.id));
|
|
10545
|
+
const hasIncoming = /* @__PURE__ */ new Set();
|
|
10546
|
+
const hasOutgoing = /* @__PURE__ */ new Set();
|
|
10547
|
+
for (const e of subFlowEdges) {
|
|
10548
|
+
if (childIds.has(e.target)) hasIncoming.add(e.target);
|
|
10549
|
+
if (childIds.has(e.source)) hasOutgoing.add(e.source);
|
|
10550
|
+
}
|
|
10551
|
+
const entryChildIds = childNodes.map((n) => n.id).filter((id) => !hasIncoming.has(id));
|
|
10552
|
+
const terminalChildIds = childNodes.map((n) => n.id).filter((id) => !hasOutgoing.has(id));
|
|
10553
|
+
const currentEdges = edgesRef.current;
|
|
10554
|
+
const predecessorEdges = currentEdges.filter(
|
|
10555
|
+
(e) => e.target === flowNodeId
|
|
10556
|
+
);
|
|
10557
|
+
const successorEdges = currentEdges.filter(
|
|
10558
|
+
(e) => e.source === flowNodeId
|
|
10559
|
+
);
|
|
10560
|
+
const stitchedPredecessors = [];
|
|
10561
|
+
for (const e of predecessorEdges) {
|
|
10562
|
+
for (const entryId of entryChildIds.length > 0 ? entryChildIds : [flowNodeId]) {
|
|
10563
|
+
stitchedPredecessors.push({
|
|
10564
|
+
...e,
|
|
10565
|
+
id: `${e.id}__to__${entryId}`,
|
|
10566
|
+
target: entryId
|
|
10567
|
+
});
|
|
10568
|
+
}
|
|
10569
|
+
}
|
|
10570
|
+
const stitchedSuccessors = [];
|
|
10571
|
+
for (const e of successorEdges) {
|
|
10572
|
+
for (const terminalId of terminalChildIds.length > 0 ? terminalChildIds : [flowNodeId]) {
|
|
10573
|
+
stitchedSuccessors.push({
|
|
10574
|
+
...e,
|
|
10575
|
+
id: `${e.id}__from__${terminalId}`,
|
|
10576
|
+
source: terminalId
|
|
10577
|
+
});
|
|
10578
|
+
}
|
|
10579
|
+
}
|
|
10580
|
+
animateLayout();
|
|
10581
|
+
setNodes((prev) => {
|
|
10582
|
+
const without = prev.filter((n) => n.id !== flowNodeId);
|
|
10583
|
+
const next = [...without, expandedContainerNode, ...childNodes];
|
|
10584
|
+
const nextEdges = [
|
|
10585
|
+
...currentEdges.filter(
|
|
10586
|
+
(e) => e.source !== flowNodeId && e.target !== flowNodeId
|
|
10587
|
+
),
|
|
10588
|
+
...subFlowEdges,
|
|
10589
|
+
...stitchedPredecessors,
|
|
10590
|
+
...stitchedSuccessors
|
|
10591
|
+
];
|
|
10592
|
+
return relayoutGraph(next, nextEdges);
|
|
10593
|
+
});
|
|
10594
|
+
setEdges((prev) => {
|
|
10595
|
+
const without = prev.filter(
|
|
10596
|
+
(e) => e.source !== flowNodeId && e.target !== flowNodeId
|
|
10597
|
+
);
|
|
10598
|
+
return [
|
|
10599
|
+
...without,
|
|
10600
|
+
...subFlowEdges,
|
|
10601
|
+
...stitchedPredecessors,
|
|
10602
|
+
...stitchedSuccessors
|
|
10603
|
+
];
|
|
10604
|
+
});
|
|
10605
|
+
requestAnimationFrame(() => {
|
|
10606
|
+
const currentChildren = nodesRef.current.filter(
|
|
10607
|
+
(n) => n.parentId === flowNodeId
|
|
10608
|
+
);
|
|
10609
|
+
if (currentChildren.length === 0) return;
|
|
10610
|
+
const measurements = /* @__PURE__ */ new Map();
|
|
10611
|
+
currentChildren.forEach((n) => {
|
|
10612
|
+
const el = document.querySelector(
|
|
10613
|
+
`[data-id="${n.id}"]`
|
|
10614
|
+
);
|
|
10615
|
+
measurements.set(n.id, {
|
|
10616
|
+
w: el?.offsetWidth ?? EST_W,
|
|
10617
|
+
h: el?.offsetHeight ?? EST_H
|
|
10618
|
+
});
|
|
10619
|
+
});
|
|
10620
|
+
const {
|
|
10621
|
+
positions,
|
|
10622
|
+
width: actualContainerW,
|
|
10623
|
+
height: actualContainerH
|
|
10624
|
+
} = layoutSubFlowChildren(
|
|
10625
|
+
currentChildren,
|
|
10626
|
+
subFlowEdges,
|
|
10627
|
+
(n) => measurements.get(n.id) ?? { w: EST_W, h: EST_H },
|
|
10628
|
+
{ padding: CHILD_PADDING, headerH: HEADER_H }
|
|
10629
|
+
);
|
|
10630
|
+
setNodes(
|
|
10631
|
+
(prev) => prev.map((n) => {
|
|
10632
|
+
if (n.id === flowNodeId) {
|
|
10633
|
+
return {
|
|
10634
|
+
...n,
|
|
10635
|
+
style: {
|
|
10636
|
+
...n.style,
|
|
10637
|
+
width: actualContainerW,
|
|
10638
|
+
height: actualContainerH
|
|
10639
|
+
}
|
|
10640
|
+
};
|
|
10641
|
+
}
|
|
10642
|
+
if (n.parentId !== flowNodeId) return n;
|
|
10643
|
+
const p = positions.get(n.id);
|
|
10644
|
+
if (!p) return n;
|
|
10645
|
+
return { ...n, position: { x: p.x, y: p.y } };
|
|
10646
|
+
})
|
|
10647
|
+
);
|
|
10648
|
+
});
|
|
10649
|
+
requestAnimationFrame(() => {
|
|
10650
|
+
fitView({ duration: 400, padding: 0.2 });
|
|
10651
|
+
});
|
|
10240
10652
|
return;
|
|
10241
10653
|
}
|
|
10242
10654
|
setFocusedNodeId(node.id);
|
|
@@ -10670,7 +11082,7 @@ var NodeGraphBuilder = ({
|
|
|
10670
11082
|
() => edges.some((edge) => edge.type === "flow-edge"),
|
|
10671
11083
|
[edges]
|
|
10672
11084
|
);
|
|
10673
|
-
return /* @__PURE__ */
|
|
11085
|
+
return /* @__PURE__ */ jsx43(
|
|
10674
11086
|
"div",
|
|
10675
11087
|
{
|
|
10676
11088
|
ref: reactFlowWrapperRef,
|
|
@@ -10682,22 +11094,22 @@ var NodeGraphBuilder = ({
|
|
|
10682
11094
|
display: "flex",
|
|
10683
11095
|
flexDirection: "column"
|
|
10684
11096
|
},
|
|
10685
|
-
children: /* @__PURE__ */
|
|
10686
|
-
isMermaidView ? /* @__PURE__ */
|
|
10687
|
-
/* @__PURE__ */
|
|
10688
|
-
/* @__PURE__ */
|
|
10689
|
-
/* @__PURE__ */
|
|
11097
|
+
children: /* @__PURE__ */ jsxs41(PortalContainerProvider, { value: reactFlowWrapperRef.current, children: [
|
|
11098
|
+
isMermaidView ? /* @__PURE__ */ jsxs41(Fragment12, { children: [
|
|
11099
|
+
/* @__PURE__ */ jsxs41("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: [
|
|
11100
|
+
/* @__PURE__ */ jsx43("div", { className: "flex space-x-2 ml-4", children: /* @__PURE__ */ jsxs41(DropdownMenu2.Root, { children: [
|
|
11101
|
+
/* @__PURE__ */ jsx43(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs41(
|
|
10690
11102
|
"button",
|
|
10691
11103
|
{
|
|
10692
11104
|
className: "py-2.5 px-4 bg-[rgb(var(--ec-page-bg))] hover:bg-[rgb(var(--ec-accent-subtle)/0.4)] 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-all duration-200 hover:border-[rgb(var(--ec-accent)/0.3)] group whitespace-nowrap",
|
|
10693
11105
|
"aria-label": "Open menu",
|
|
10694
11106
|
children: [
|
|
10695
|
-
title && /* @__PURE__ */
|
|
10696
|
-
/* @__PURE__ */
|
|
11107
|
+
title && /* @__PURE__ */ jsx43("span", { className: "text-base font-medium text-[rgb(var(--ec-page-text))] leading-tight", children: title }),
|
|
11108
|
+
/* @__PURE__ */ jsx43(MoreVertical, { className: "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" })
|
|
10697
11109
|
]
|
|
10698
11110
|
}
|
|
10699
11111
|
) }),
|
|
10700
|
-
/* @__PURE__ */
|
|
11112
|
+
/* @__PURE__ */ jsx43(DropdownMenu2.Portal, { container: reactFlowWrapperRef.current, children: /* @__PURE__ */ jsxs41(
|
|
10701
11113
|
DropdownMenu2.Content,
|
|
10702
11114
|
{
|
|
10703
11115
|
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",
|
|
@@ -10705,8 +11117,8 @@ var NodeGraphBuilder = ({
|
|
|
10705
11117
|
align: "end",
|
|
10706
11118
|
alignOffset: -180,
|
|
10707
11119
|
children: [
|
|
10708
|
-
/* @__PURE__ */
|
|
10709
|
-
/* @__PURE__ */
|
|
11120
|
+
/* @__PURE__ */ jsx43(DropdownMenu2.Arrow, { className: "fill-[rgb(var(--ec-page-bg))] stroke-[rgb(var(--ec-page-border))] stroke-1" }),
|
|
11121
|
+
/* @__PURE__ */ jsx43(
|
|
10710
11122
|
VisualizerDropdownContent_default,
|
|
10711
11123
|
{
|
|
10712
11124
|
isMermaidView,
|
|
@@ -10736,7 +11148,7 @@ var NodeGraphBuilder = ({
|
|
|
10736
11148
|
}
|
|
10737
11149
|
) })
|
|
10738
11150
|
] }) }),
|
|
10739
|
-
mode === "full" && showSearch && /* @__PURE__ */
|
|
11151
|
+
mode === "full" && showSearch && /* @__PURE__ */ jsx43("div", { className: "flex justify-end items-center gap-2", children: !isMermaidView && /* @__PURE__ */ jsx43("div", { className: "w-96", children: /* @__PURE__ */ jsx43(
|
|
10740
11152
|
VisualiserSearch_default,
|
|
10741
11153
|
{
|
|
10742
11154
|
ref: searchRef,
|
|
@@ -10746,7 +11158,7 @@ var NodeGraphBuilder = ({
|
|
|
10746
11158
|
}
|
|
10747
11159
|
) }) })
|
|
10748
11160
|
] }),
|
|
10749
|
-
/* @__PURE__ */
|
|
11161
|
+
/* @__PURE__ */ jsx43("div", { className: "flex-1 overflow-hidden relative", children: /* @__PURE__ */ jsx43(
|
|
10750
11162
|
MermaidView_default,
|
|
10751
11163
|
{
|
|
10752
11164
|
nodes,
|
|
@@ -10754,7 +11166,7 @@ var NodeGraphBuilder = ({
|
|
|
10754
11166
|
maxTextSize
|
|
10755
11167
|
}
|
|
10756
11168
|
) })
|
|
10757
|
-
] }) : /* @__PURE__ */
|
|
11169
|
+
] }) : /* @__PURE__ */ jsxs41(
|
|
10758
11170
|
ReactFlow2,
|
|
10759
11171
|
{
|
|
10760
11172
|
nodeTypes,
|
|
@@ -10780,30 +11192,30 @@ var NodeGraphBuilder = ({
|
|
|
10780
11192
|
zoomOnScroll,
|
|
10781
11193
|
className: "relative",
|
|
10782
11194
|
children: [
|
|
10783
|
-
/* @__PURE__ */
|
|
11195
|
+
/* @__PURE__ */ jsxs41(
|
|
10784
11196
|
Panel,
|
|
10785
11197
|
{
|
|
10786
11198
|
position: "top-center",
|
|
10787
11199
|
className: "w-full pr-6 pointer-events-none",
|
|
10788
11200
|
children: [
|
|
10789
|
-
/* @__PURE__ */
|
|
10790
|
-
/* @__PURE__ */
|
|
10791
|
-
/* @__PURE__ */
|
|
11201
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex space-x-2 justify-between items-center pointer-events-auto", children: [
|
|
11202
|
+
/* @__PURE__ */ jsx43("div", { className: "flex space-x-2 ml-4", children: /* @__PURE__ */ jsxs41(DropdownMenu2.Root, { children: [
|
|
11203
|
+
/* @__PURE__ */ jsx43(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs41(
|
|
10792
11204
|
"button",
|
|
10793
11205
|
{
|
|
10794
11206
|
className: "py-2.5 px-4 bg-[rgb(var(--ec-page-bg))] hover:bg-[rgb(var(--ec-accent-subtle)/0.4)] 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-all duration-200 hover:border-[rgb(var(--ec-accent)/0.3)] group whitespace-nowrap",
|
|
10795
11207
|
"aria-label": "Open menu",
|
|
10796
11208
|
children: [
|
|
10797
|
-
title && /* @__PURE__ */
|
|
10798
|
-
/* @__PURE__ */
|
|
11209
|
+
title && /* @__PURE__ */ jsx43("span", { className: "text-base font-medium text-[rgb(var(--ec-page-text))] leading-tight", children: title }),
|
|
11210
|
+
/* @__PURE__ */ jsx43(MoreVertical, { className: "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" })
|
|
10799
11211
|
]
|
|
10800
11212
|
}
|
|
10801
11213
|
) }),
|
|
10802
|
-
/* @__PURE__ */
|
|
11214
|
+
/* @__PURE__ */ jsx43(
|
|
10803
11215
|
DropdownMenu2.Portal,
|
|
10804
11216
|
{
|
|
10805
11217
|
container: reactFlowWrapperRef.current,
|
|
10806
|
-
children: /* @__PURE__ */
|
|
11218
|
+
children: /* @__PURE__ */ jsxs41(
|
|
10807
11219
|
DropdownMenu2.Content,
|
|
10808
11220
|
{
|
|
10809
11221
|
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",
|
|
@@ -10811,8 +11223,8 @@ var NodeGraphBuilder = ({
|
|
|
10811
11223
|
align: "end",
|
|
10812
11224
|
alignOffset: -180,
|
|
10813
11225
|
children: [
|
|
10814
|
-
/* @__PURE__ */
|
|
10815
|
-
/* @__PURE__ */
|
|
11226
|
+
/* @__PURE__ */ jsx43(DropdownMenu2.Arrow, { className: "fill-[rgb(var(--ec-page-bg))] stroke-[rgb(var(--ec-page-border))] stroke-1" }),
|
|
11227
|
+
/* @__PURE__ */ jsx43(
|
|
10816
11228
|
VisualizerDropdownContent_default,
|
|
10817
11229
|
{
|
|
10818
11230
|
isMermaidView,
|
|
@@ -10846,7 +11258,7 @@ var NodeGraphBuilder = ({
|
|
|
10846
11258
|
}
|
|
10847
11259
|
)
|
|
10848
11260
|
] }) }),
|
|
10849
|
-
mode === "full" && showSearch && /* @__PURE__ */
|
|
11261
|
+
mode === "full" && showSearch && /* @__PURE__ */ jsx43("div", { className: "flex justify-end items-center gap-2", children: !isMermaidView && /* @__PURE__ */ jsx43("div", { className: "w-96", children: /* @__PURE__ */ jsx43(
|
|
10850
11262
|
VisualiserSearch_default,
|
|
10851
11263
|
{
|
|
10852
11264
|
ref: searchRef,
|
|
@@ -10856,9 +11268,9 @@ var NodeGraphBuilder = ({
|
|
|
10856
11268
|
}
|
|
10857
11269
|
) }) })
|
|
10858
11270
|
] }),
|
|
10859
|
-
links.length > 0 && /* @__PURE__ */
|
|
10860
|
-
/* @__PURE__ */
|
|
10861
|
-
/* @__PURE__ */
|
|
11271
|
+
links.length > 0 && /* @__PURE__ */ jsx43("div", { className: "flex justify-end mt-3", children: /* @__PURE__ */ jsxs41("div", { className: "relative flex items-center -mt-1", children: [
|
|
11272
|
+
/* @__PURE__ */ jsx43("span", { className: "absolute left-2 pointer-events-none flex items-center h-full", children: /* @__PURE__ */ jsx43(HistoryIcon, { className: "h-4 w-4 text-[rgb(var(--ec-page-text-muted))]" }) }),
|
|
11273
|
+
/* @__PURE__ */ jsx43(
|
|
10862
11274
|
"select",
|
|
10863
11275
|
{
|
|
10864
11276
|
value: links.find(
|
|
@@ -10873,10 +11285,10 @@ var NodeGraphBuilder = ({
|
|
|
10873
11285
|
},
|
|
10874
11286
|
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))]",
|
|
10875
11287
|
style: { minWidth: 120, height: "26px" },
|
|
10876
|
-
children: links.map((link) => /* @__PURE__ */
|
|
11288
|
+
children: links.map((link) => /* @__PURE__ */ jsx43("option", { value: link.url, children: link.label }, link.url))
|
|
10877
11289
|
}
|
|
10878
11290
|
),
|
|
10879
|
-
/* @__PURE__ */
|
|
11291
|
+
/* @__PURE__ */ jsx43("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx43(
|
|
10880
11292
|
"svg",
|
|
10881
11293
|
{
|
|
10882
11294
|
className: "w-4 h-4 text-[rgb(var(--ec-page-text-muted))]",
|
|
@@ -10884,7 +11296,7 @@ var NodeGraphBuilder = ({
|
|
|
10884
11296
|
stroke: "currentColor",
|
|
10885
11297
|
strokeWidth: "2",
|
|
10886
11298
|
viewBox: "0 0 24 24",
|
|
10887
|
-
children: /* @__PURE__ */
|
|
11299
|
+
children: /* @__PURE__ */ jsx43(
|
|
10888
11300
|
"path",
|
|
10889
11301
|
{
|
|
10890
11302
|
strokeLinecap: "round",
|
|
@@ -10898,9 +11310,9 @@ var NodeGraphBuilder = ({
|
|
|
10898
11310
|
]
|
|
10899
11311
|
}
|
|
10900
11312
|
),
|
|
10901
|
-
includeBackground && /* @__PURE__ */
|
|
10902
|
-
includeBackground && /* @__PURE__ */
|
|
10903
|
-
showMinimap && /* @__PURE__ */
|
|
11313
|
+
includeBackground && /* @__PURE__ */ jsx43(Background2, { color: "var(--ec-bg-dots)", gap: 16 }),
|
|
11314
|
+
includeBackground && /* @__PURE__ */ jsx43(Controls2, {}),
|
|
11315
|
+
showMinimap && /* @__PURE__ */ jsx43(
|
|
10904
11316
|
MiniMap,
|
|
10905
11317
|
{
|
|
10906
11318
|
nodeStrokeWidth: 3,
|
|
@@ -10909,24 +11321,24 @@ var NodeGraphBuilder = ({
|
|
|
10909
11321
|
style: MINIMAP_STYLE
|
|
10910
11322
|
}
|
|
10911
11323
|
),
|
|
10912
|
-
isFlowVisualization && showFlowWalkthrough && /* @__PURE__ */
|
|
11324
|
+
isFlowVisualization && showFlowWalkthrough && /* @__PURE__ */ jsx43(Panel, { position: "bottom-left", children: /* @__PURE__ */ jsx43(
|
|
10913
11325
|
StepWalkthrough_default,
|
|
10914
11326
|
{
|
|
10915
|
-
nodes,
|
|
10916
|
-
edges,
|
|
11327
|
+
nodes: walkthroughNodes,
|
|
11328
|
+
edges: walkthroughEdges,
|
|
10917
11329
|
isFlowVisualization,
|
|
10918
11330
|
onStepChange: handleStepChange,
|
|
10919
11331
|
mode
|
|
10920
11332
|
}
|
|
10921
11333
|
) }),
|
|
10922
|
-
isDevMode && hasLayoutChanges && /* @__PURE__ */
|
|
11334
|
+
isDevMode && hasLayoutChanges && /* @__PURE__ */ jsx43(
|
|
10923
11335
|
Panel,
|
|
10924
11336
|
{
|
|
10925
11337
|
position: "bottom-left",
|
|
10926
11338
|
style: isFlowVisualization && showFlowWalkthrough ? LAYOUT_CHANGE_PANEL_STYLE_WITH_WALKTHROUGH : LAYOUT_CHANGE_PANEL_STYLE_DEFAULT,
|
|
10927
|
-
children: /* @__PURE__ */
|
|
10928
|
-
/* @__PURE__ */
|
|
10929
|
-
/* @__PURE__ */
|
|
11339
|
+
children: /* @__PURE__ */ jsxs41("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: [
|
|
11340
|
+
/* @__PURE__ */ jsx43("span", { className: "text-xs text-[rgb(var(--ec-page-text-muted))]", children: "Layout changed" }),
|
|
11341
|
+
/* @__PURE__ */ jsx43(
|
|
10930
11342
|
"button",
|
|
10931
11343
|
{
|
|
10932
11344
|
onClick: handleQuickSaveLayout,
|
|
@@ -10938,7 +11350,7 @@ var NodeGraphBuilder = ({
|
|
|
10938
11350
|
] })
|
|
10939
11351
|
}
|
|
10940
11352
|
),
|
|
10941
|
-
includeKey && /* @__PURE__ */
|
|
11353
|
+
includeKey && /* @__PURE__ */ jsx43(
|
|
10942
11354
|
LegendPanel,
|
|
10943
11355
|
{
|
|
10944
11356
|
legend,
|
|
@@ -10949,14 +11361,14 @@ var NodeGraphBuilder = ({
|
|
|
10949
11361
|
]
|
|
10950
11362
|
}
|
|
10951
11363
|
),
|
|
10952
|
-
/* @__PURE__ */
|
|
11364
|
+
/* @__PURE__ */ jsx43(
|
|
10953
11365
|
StudioModal_default,
|
|
10954
11366
|
{
|
|
10955
11367
|
isOpen: isStudioModalOpen || false,
|
|
10956
11368
|
onClose: () => setIsStudioModalOpen(false)
|
|
10957
11369
|
}
|
|
10958
11370
|
),
|
|
10959
|
-
/* @__PURE__ */
|
|
11371
|
+
/* @__PURE__ */ jsx43(
|
|
10960
11372
|
FocusModeModal_default,
|
|
10961
11373
|
{
|
|
10962
11374
|
isOpen: focusModeOpen,
|
|
@@ -10970,7 +11382,7 @@ var NodeGraphBuilder = ({
|
|
|
10970
11382
|
edgeTypes: edgeTypes2
|
|
10971
11383
|
}
|
|
10972
11384
|
),
|
|
10973
|
-
/* @__PURE__ */
|
|
11385
|
+
/* @__PURE__ */ jsx43(
|
|
10974
11386
|
AllNotesModal,
|
|
10975
11387
|
{
|
|
10976
11388
|
noteGroups: allNoteGroups,
|
|
@@ -10979,8 +11391,8 @@ var NodeGraphBuilder = ({
|
|
|
10979
11391
|
nodes
|
|
10980
11392
|
}
|
|
10981
11393
|
),
|
|
10982
|
-
isShareModalOpen && /* @__PURE__ */
|
|
10983
|
-
/* @__PURE__ */
|
|
11394
|
+
isShareModalOpen && /* @__PURE__ */ jsxs41(Fragment12, { children: [
|
|
11395
|
+
/* @__PURE__ */ jsx43(
|
|
10984
11396
|
"div",
|
|
10985
11397
|
{
|
|
10986
11398
|
className: "fixed inset-0 bg-black/20 z-40",
|
|
@@ -10988,13 +11400,13 @@ var NodeGraphBuilder = ({
|
|
|
10988
11400
|
style: { animation: "fadeIn 150ms ease-out" }
|
|
10989
11401
|
}
|
|
10990
11402
|
),
|
|
10991
|
-
/* @__PURE__ */
|
|
11403
|
+
/* @__PURE__ */ jsxs41(
|
|
10992
11404
|
"div",
|
|
10993
11405
|
{
|
|
10994
11406
|
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))]",
|
|
10995
11407
|
style: { animation: "slideInCenter 250ms ease-out" },
|
|
10996
11408
|
children: [
|
|
10997
|
-
/* @__PURE__ */
|
|
11409
|
+
/* @__PURE__ */ jsx43("style", { children: `
|
|
10998
11410
|
@keyframes fadeIn {
|
|
10999
11411
|
from { opacity: 0; }
|
|
11000
11412
|
to { opacity: 1; }
|
|
@@ -11004,21 +11416,21 @@ var NodeGraphBuilder = ({
|
|
|
11004
11416
|
to { opacity: 1; transform: translate(-50%, -50%); }
|
|
11005
11417
|
}
|
|
11006
11418
|
` }),
|
|
11007
|
-
/* @__PURE__ */
|
|
11008
|
-
/* @__PURE__ */
|
|
11009
|
-
/* @__PURE__ */
|
|
11419
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex justify-between items-start mb-4", children: [
|
|
11420
|
+
/* @__PURE__ */ jsx43("h3", { className: "text-lg font-semibold text-[rgb(var(--ec-page-text))]", children: "Share Link" }),
|
|
11421
|
+
/* @__PURE__ */ jsx43(
|
|
11010
11422
|
"button",
|
|
11011
11423
|
{
|
|
11012
11424
|
onClick: () => setIsShareModalOpen(false),
|
|
11013
11425
|
className: "text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors",
|
|
11014
11426
|
"aria-label": "Close modal",
|
|
11015
|
-
children: /* @__PURE__ */
|
|
11427
|
+
children: /* @__PURE__ */ jsx43(ExternalLink2, { className: "w-5 h-5 rotate-180" })
|
|
11016
11428
|
}
|
|
11017
11429
|
)
|
|
11018
11430
|
] }),
|
|
11019
|
-
/* @__PURE__ */
|
|
11020
|
-
/* @__PURE__ */
|
|
11021
|
-
/* @__PURE__ */
|
|
11431
|
+
/* @__PURE__ */ jsx43("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." }),
|
|
11432
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex gap-2", children: [
|
|
11433
|
+
/* @__PURE__ */ jsx43(
|
|
11022
11434
|
"input",
|
|
11023
11435
|
{
|
|
11024
11436
|
type: "text",
|
|
@@ -11027,15 +11439,15 @@ var NodeGraphBuilder = ({
|
|
|
11027
11439
|
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))]"
|
|
11028
11440
|
}
|
|
11029
11441
|
),
|
|
11030
|
-
/* @__PURE__ */
|
|
11442
|
+
/* @__PURE__ */ jsxs41(
|
|
11031
11443
|
"button",
|
|
11032
11444
|
{
|
|
11033
11445
|
onClick: handleCopyShareUrl,
|
|
11034
11446
|
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"}`,
|
|
11035
11447
|
"aria-label": shareUrlCopySuccess ? "Copied!" : "Copy link",
|
|
11036
11448
|
children: [
|
|
11037
|
-
shareUrlCopySuccess ? /* @__PURE__ */
|
|
11038
|
-
/* @__PURE__ */
|
|
11449
|
+
shareUrlCopySuccess ? /* @__PURE__ */ jsx43(CheckIcon3, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx43(ClipboardIcon3, { className: "w-4 h-4" }),
|
|
11450
|
+
/* @__PURE__ */ jsx43("span", { children: shareUrlCopySuccess ? "Copied!" : "Copy" })
|
|
11039
11451
|
]
|
|
11040
11452
|
}
|
|
11041
11453
|
)
|
|
@@ -11114,9 +11526,9 @@ var NodeGraph = ({
|
|
|
11114
11526
|
}
|
|
11115
11527
|
}, []);
|
|
11116
11528
|
if (!elem) return null;
|
|
11117
|
-
return /* @__PURE__ */
|
|
11118
|
-
/* @__PURE__ */
|
|
11119
|
-
/* @__PURE__ */
|
|
11529
|
+
return /* @__PURE__ */ jsx43("div", { children: createPortal(
|
|
11530
|
+
/* @__PURE__ */ jsxs41(ReactFlowProvider2, { children: [
|
|
11531
|
+
/* @__PURE__ */ jsx43(
|
|
11120
11532
|
NodeGraphBuilder,
|
|
11121
11533
|
{
|
|
11122
11534
|
edges,
|
|
@@ -11148,11 +11560,11 @@ var NodeGraph = ({
|
|
|
11148
11560
|
onResetLayout
|
|
11149
11561
|
}
|
|
11150
11562
|
),
|
|
11151
|
-
showFooter && /* @__PURE__ */
|
|
11152
|
-
footerLabel && /* @__PURE__ */
|
|
11153
|
-
href && /* @__PURE__ */
|
|
11154
|
-
/* @__PURE__ */
|
|
11155
|
-
/* @__PURE__ */
|
|
11563
|
+
showFooter && /* @__PURE__ */ jsxs41("div", { className: "flex justify-between", id: "visualiser-footer", children: [
|
|
11564
|
+
footerLabel && /* @__PURE__ */ jsx43("div", { className: "py-2 w-full text-left ", children: /* @__PURE__ */ jsx43("span", { className: " text-sm no-underline py-2 text-[rgb(var(--ec-page-text-muted))]", children: footerLabel }) }),
|
|
11565
|
+
href && /* @__PURE__ */ jsxs41("div", { className: "py-2 w-full text-right flex justify-between", children: [
|
|
11566
|
+
/* @__PURE__ */ jsx43("span", {}),
|
|
11567
|
+
/* @__PURE__ */ jsxs41(
|
|
11156
11568
|
"a",
|
|
11157
11569
|
{
|
|
11158
11570
|
className: " text-sm underline text-[rgb(var(--ec-page-text))] hover:text-[rgb(var(--ec-accent))]",
|
|
@@ -11189,6 +11601,7 @@ var nodeComponents = {
|
|
|
11189
11601
|
domain: Domain_default,
|
|
11190
11602
|
entity: Entity_default,
|
|
11191
11603
|
flow: Flow_default,
|
|
11604
|
+
flowExpanded: FlowExpandedNode_default,
|
|
11192
11605
|
group: GroupNode_default,
|
|
11193
11606
|
step: Step_default,
|
|
11194
11607
|
user: User_default,
|
|
@@ -11231,6 +11644,7 @@ export {
|
|
|
11231
11644
|
ExternalSystem2_default as ExternalSystem2Node,
|
|
11232
11645
|
FieldNode_default as Field,
|
|
11233
11646
|
FlowEdge_default as FlowEdge,
|
|
11647
|
+
FlowExpandedNode_default as FlowExpandedNode,
|
|
11234
11648
|
Flow_default as FlowNode,
|
|
11235
11649
|
FocusModeModal_default as FocusModeModal,
|
|
11236
11650
|
GroupNode_default as GroupNode,
|