@eventcatalog/visualiser 5.0.0-beta.3 → 5.0.0-beta.4

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.js CHANGED
@@ -258,6 +258,7 @@ var HANDLE_GLOW = {
258
258
  actor: glow("234, 179, 8"),
259
259
  external: glow("168, 85, 247"),
260
260
  dataProduct: glow("99, 102, 241"),
261
+ view: glow("14, 165, 233"),
261
262
  // Nodes without a colour of their own (fields, message groups, custom steps)
262
263
  generic: glow("251, 146, 60")
263
264
  };
@@ -3764,29 +3765,63 @@ var import_react26 = require("react");
3764
3765
  var import_lucide_react14 = require("lucide-react");
3765
3766
  var import_react27 = require("@xyflow/react");
3766
3767
  var import_jsx_runtime15 = require("react/jsx-runtime");
3767
- function classNames9(...classes) {
3768
- return classes.filter(Boolean).join(" ");
3769
- }
3768
+ var VIEW_COLOR = "#0ea5e9";
3769
+ var GlowHandle13 = (0, import_react26.memo)(function GlowHandle14({
3770
+ side
3771
+ }) {
3772
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3773
+ "div",
3774
+ {
3775
+ className: "ec-handle-glow",
3776
+ style: {
3777
+ position: "absolute",
3778
+ top: "50%",
3779
+ [side]: -6,
3780
+ transform: "translateY(-50%)",
3781
+ width: 12,
3782
+ height: 12,
3783
+ borderRadius: "50%",
3784
+ background: "linear-gradient(135deg, #38bdf8, #0284c7)",
3785
+ border: "2px solid rgb(var(--ec-page-bg))",
3786
+ zIndex: 20,
3787
+ ...HANDLE_GLOW.view,
3788
+ pointerEvents: "none"
3789
+ }
3790
+ }
3791
+ );
3792
+ });
3770
3793
  var ViewNode_default = (0, import_react26.memo)(function View(props) {
3771
- const { data: _data, selected } = props;
3772
- const { name, summary, screenshot } = props.data.view;
3794
+ const {
3795
+ name,
3796
+ version,
3797
+ summary,
3798
+ screenshot,
3799
+ owners = EMPTY_ARRAY,
3800
+ notes
3801
+ } = props.data.view;
3773
3802
  const mode = props.data.mode || "simple";
3774
- const nodeLabel = "View";
3803
+ const ownersNormalized = (0, import_react26.useMemo)(() => normalizeOwners(owners), [owners]);
3804
+ const targetConnections = (0, import_react27.useNodeConnections)({ handleType: "target" });
3805
+ const sourceConnections = (0, import_react27.useNodeConnections)({ handleType: "source" });
3775
3806
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
3776
3807
  "div",
3777
3808
  {
3778
- className: classNames9(
3779
- "rounded-md border flex justify-start bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] min-h-[100px] relative",
3780
- selected ? "border-blue-600 ring-2 ring-blue-500 shadow-lg" : "border-blue-400"
3781
- ),
3782
- style: NODE_WIDTH_STYLE,
3809
+ className: [
3810
+ "relative min-w-48 max-w-60 rounded-xl border-2 border-sky-500 overflow-visible",
3811
+ props.selected ? "ring-2 ring-sky-400/60 ring-offset-2" : ""
3812
+ ].join(" "),
3813
+ style: {
3814
+ background: "rgb(var(--ec-card-bg))",
3815
+ boxShadow: "0 2px 12px rgba(14, 165, 233, 0.15)"
3816
+ },
3783
3817
  children: [
3818
+ props.data.isFocused && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FocusedResourceIndicator, {}),
3784
3819
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3785
3820
  import_react27.Handle,
3786
3821
  {
3787
3822
  type: "target",
3788
3823
  position: import_react27.Position.Left,
3789
- className: "!left-[-1px] !w-2.5 !h-2.5 !bg-blue-500 !border !border-blue-600 !rounded-full !z-10"
3824
+ style: HIDDEN_HANDLE_STYLE
3790
3825
  }
3791
3826
  ),
3792
3827
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
@@ -3794,53 +3829,59 @@ var ViewNode_default = (0, import_react26.memo)(function View(props) {
3794
3829
  {
3795
3830
  type: "source",
3796
3831
  position: import_react27.Position.Right,
3797
- className: "!right-[-1px] !w-2.5 !h-2.5 !bg-blue-500 !border !border-blue-600 !rounded-full !z-10"
3798
- }
3799
- ),
3800
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
3801
- "div",
3802
- {
3803
- className: `bg-gradient-to-b from-blue-500 to-blue-700 relative flex flex-col items-center w-5 justify-between rounded-l-sm text-blue-100 border-r-[1px] border-blue-500`,
3804
- children: [
3805
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3806
- import_lucide_react14.MonitorIcon,
3807
- {
3808
- className: `w-4 h-4 opacity-90 text-white mt-1 ${mode === "full" ? "mb-2" : "mb-1"}`
3809
- }
3810
- ),
3811
- mode === "full" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3812
- "span",
3813
- {
3814
- className: "text-center text-[8px] text-white font-bold uppercase mb-4",
3815
- style: ROTATED_LABEL_STYLE,
3816
- children: nodeLabel
3817
- }
3818
- )
3819
- ]
3832
+ style: HIDDEN_HANDLE_STYLE
3820
3833
  }
3821
3834
  ),
3822
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "p-1 flex-1", children: [
3823
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "pb-1", children: [
3824
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-bold block pt-0.5 pb-0.5", children: name }),
3825
- mode === "simple" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[10px] text-[rgb(var(--ec-page-text-muted))] font-light block pt-0.5 pb-0.5", children: nodeLabel })
3835
+ notes && notes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(NotesIndicator, { notes, resourceName: name }),
3836
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(GlowHandle13, { side: "left" }),
3837
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(GlowHandle13, { side: "right" }),
3838
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "absolute -top-2.5 left-2.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("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-sky-500", children: [
3839
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react14.MonitorIcon, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
3840
+ "View"
3841
+ ] }) }),
3842
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "px-3 pt-3.5 pb-2.5", children: [
3843
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-baseline gap-1 min-w-0", children: [
3844
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3845
+ TruncatedResourceName,
3846
+ {
3847
+ value: name,
3848
+ tooltipBorderColor: VIEW_COLOR,
3849
+ className: "text-[13px] font-semibold leading-snug text-[rgb(var(--ec-page-text))] truncate",
3850
+ children: name
3851
+ }
3852
+ ),
3853
+ version && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "text-[10px] font-normal text-[rgb(var(--ec-page-text-muted))] shrink-0", children: [
3854
+ "(v",
3855
+ version,
3856
+ ")"
3857
+ ] })
3826
3858
  ] }),
3827
- summary && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "pb-1", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3859
+ mode === "full" && summary && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3828
3860
  "div",
3829
3861
  {
3830
- className: "text-[8px] font-light text-[rgb(var(--ec-page-text-muted))] block leading-tight overflow-hidden",
3862
+ className: "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden",
3831
3863
  style: LINE_CLAMP_STYLE,
3832
3864
  title: summary,
3833
3865
  children: summary
3834
3866
  }
3835
- ) }),
3836
- screenshot && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "py-1", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3867
+ ),
3868
+ mode === "full" && screenshot && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3837
3869
  "img",
3838
3870
  {
3839
3871
  src: screenshot,
3840
3872
  alt: `${name} screenshot`,
3841
- className: "w-full max-w-40 h-20 object-cover rounded border border-[rgb(var(--ec-page-border))]"
3873
+ className: "mt-2 w-full h-24 object-cover rounded-md border border-[rgb(var(--ec-page-border))]"
3842
3874
  }
3843
- ) })
3875
+ ),
3876
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3877
+ OwnerIndicator,
3878
+ {
3879
+ owners: ownersNormalized,
3880
+ accentColor: "bg-sky-400",
3881
+ borderColor: "rgba(14,165,233,0.08)",
3882
+ iconClass: "text-sky-300"
3883
+ }
3884
+ )
3844
3885
  ] })
3845
3886
  ]
3846
3887
  }
@@ -3852,7 +3893,7 @@ var import_react28 = require("react");
3852
3893
  var import_lucide_react15 = require("lucide-react");
3853
3894
  var import_react29 = require("@xyflow/react");
3854
3895
  var import_jsx_runtime16 = require("react/jsx-runtime");
3855
- function GlowHandle13({ side }) {
3896
+ function GlowHandle15({ side }) {
3856
3897
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3857
3898
  "div",
3858
3899
  {
@@ -3874,7 +3915,7 @@ function GlowHandle13({ side }) {
3874
3915
  }
3875
3916
  );
3876
3917
  }
3877
- function classNames10(...classes) {
3918
+ function classNames9(...classes) {
3878
3919
  return classes.filter(Boolean).join(" ");
3879
3920
  }
3880
3921
  function PostItActor(props) {
@@ -3883,7 +3924,7 @@ function PostItActor(props) {
3883
3924
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3884
3925
  "div",
3885
3926
  {
3886
- className: classNames10(
3927
+ className: classNames9(
3887
3928
  "relative min-w-44 max-w-56 min-h-[120px]",
3888
3929
  props?.selected ? "ring-2 ring-yellow-400/60 ring-offset-1" : ""
3889
3930
  ),
@@ -3951,7 +3992,7 @@ function PostItActor(props) {
3951
3992
  as: "div",
3952
3993
  value: name,
3953
3994
  tooltipBorderColor: "#eab308",
3954
- className: classNames10(
3995
+ className: classNames9(
3955
3996
  "text-[13px] font-bold leading-snug truncate",
3956
3997
  deprecated ? "text-yellow-950/40 line-through" : "text-yellow-950"
3957
3998
  ),
@@ -3982,7 +4023,7 @@ function DefaultActor(props) {
3982
4023
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3983
4024
  "div",
3984
4025
  {
3985
- className: classNames10(
4026
+ className: classNames9(
3986
4027
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
3987
4028
  props?.selected ? "ring-2 ring-yellow-400/60 ring-offset-2" : "",
3988
4029
  deprecated ? "border-dashed border-red-500" : draft ? `border-dashed ${isDark ? "border-yellow-400" : "border-yellow-400/60"}` : "border-yellow-500"
@@ -4009,12 +4050,12 @@ function DefaultActor(props) {
4009
4050
  }
4010
4051
  ),
4011
4052
  notes && notes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(NotesIndicator, { notes, resourceName: name }),
4012
- targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GlowHandle13, { side: "left" }),
4013
- sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GlowHandle13, { side: "right" }),
4053
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GlowHandle15, { side: "left" }),
4054
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GlowHandle15, { side: "right" }),
4014
4055
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
4015
4056
  "span",
4016
4057
  {
4017
- className: classNames10(
4058
+ className: classNames9(
4018
4059
  "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
4019
4060
  deprecated ? "bg-red-500" : "bg-yellow-500"
4020
4061
  ),
@@ -4398,7 +4439,7 @@ var import_react37 = require("react");
4398
4439
  var import_lucide_react20 = require("lucide-react");
4399
4440
  var import_react38 = require("@xyflow/react");
4400
4441
  var import_jsx_runtime20 = require("react/jsx-runtime");
4401
- function GlowHandle14({ side }) {
4442
+ function GlowHandle16({ side }) {
4402
4443
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
4403
4444
  "div",
4404
4445
  {
@@ -4420,7 +4461,7 @@ function GlowHandle14({ side }) {
4420
4461
  }
4421
4462
  );
4422
4463
  }
4423
- function classNames11(...classes) {
4464
+ function classNames10(...classes) {
4424
4465
  return classes.filter(Boolean).join(" ");
4425
4466
  }
4426
4467
  function PostItExternalSystem(props) {
@@ -4429,7 +4470,7 @@ function PostItExternalSystem(props) {
4429
4470
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
4430
4471
  "div",
4431
4472
  {
4432
- className: classNames11(
4473
+ className: classNames10(
4433
4474
  "relative min-w-44 max-w-56 min-h-[120px]",
4434
4475
  props?.selected ? "ring-2 ring-purple-400/60 ring-offset-1" : ""
4435
4476
  ),
@@ -4497,7 +4538,7 @@ function PostItExternalSystem(props) {
4497
4538
  as: "div",
4498
4539
  value: name,
4499
4540
  tooltipBorderColor: "#a855f7",
4500
- className: classNames11(
4541
+ className: classNames10(
4501
4542
  "text-[13px] font-bold leading-snug truncate",
4502
4543
  deprecated ? "text-purple-950/40 line-through" : "text-purple-950"
4503
4544
  ),
@@ -4532,7 +4573,7 @@ function DefaultExternalSystem(props) {
4532
4573
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
4533
4574
  "div",
4534
4575
  {
4535
- className: classNames11(
4576
+ className: classNames10(
4536
4577
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
4537
4578
  props?.selected ? "ring-2 ring-purple-400/60 ring-offset-2" : "",
4538
4579
  deprecated ? "border-dashed border-red-500" : draft ? `border-dashed ${isDark ? "border-purple-400" : "border-purple-400/60"}` : "border-purple-500"
@@ -4559,12 +4600,12 @@ function DefaultExternalSystem(props) {
4559
4600
  }
4560
4601
  ),
4561
4602
  notes && notes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(NotesIndicator, { notes, resourceName: name }),
4562
- targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GlowHandle14, { side: "left" }),
4563
- sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GlowHandle14, { side: "right" }),
4603
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GlowHandle16, { side: "left" }),
4604
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(GlowHandle16, { side: "right" }),
4564
4605
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
4565
4606
  "span",
4566
4607
  {
4567
- className: classNames11(
4608
+ className: classNames10(
4568
4609
  "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
4569
4610
  deprecated ? "bg-red-500" : "bg-purple-500"
4570
4611
  ),
@@ -4683,7 +4724,7 @@ var config_default4 = {
4683
4724
  var import_react40 = require("@xyflow/react");
4684
4725
  var import_react41 = require("react");
4685
4726
  var import_jsx_runtime21 = require("react/jsx-runtime");
4686
- function classNames12(...classes) {
4727
+ function classNames11(...classes) {
4687
4728
  return classes.filter(Boolean).join(" ");
4688
4729
  }
4689
4730
  var AVAILABLE_COLORS = {
@@ -4850,7 +4891,7 @@ var NoteNode_default = (0, import_react41.memo)(function NoteNodeComponent({
4850
4891
  "button",
4851
4892
  {
4852
4893
  onClick: () => handleColorChange(colorKey),
4853
- className: classNames12(
4894
+ className: classNames11(
4854
4895
  "w-6 h-6 rounded-full border-2",
4855
4896
  AVAILABLE_COLORS[colorKey].bg,
4856
4897
  AVAILABLE_COLORS[colorKey].border,
@@ -4864,7 +4905,7 @@ var NoteNode_default = (0, import_react41.memo)(function NoteNodeComponent({
4864
4905
  "div",
4865
4906
  {
4866
4907
  onDoubleClick: handleDoubleClick,
4867
- className: classNames12(
4908
+ className: classNames11(
4868
4909
  "w-full h-full rounded-lg border p-3 flex flex-col min-w-[150px] min-h-[150px] relative",
4869
4910
  colorClasses.bg,
4870
4911
  colorClasses.border,
@@ -4883,7 +4924,7 @@ var NoteNode_default = (0, import_react41.memo)(function NoteNodeComponent({
4883
4924
  onChange: handleTextChange,
4884
4925
  onBlur: handleBlur,
4885
4926
  onKeyDown: handleKeyDown,
4886
- className: classNames12(
4927
+ className: classNames11(
4887
4928
  "w-full flex-1 bg-transparent border-none outline-none resize-none text-[10px] p-0 m-0",
4888
4929
  colorClasses.text,
4889
4930
  colorClasses.placeholder
@@ -4935,7 +4976,7 @@ var import_react42 = require("react");
4935
4976
  var import_lucide_react22 = require("lucide-react");
4936
4977
  var import_react43 = require("@xyflow/react");
4937
4978
  var import_jsx_runtime22 = require("react/jsx-runtime");
4938
- function GlowHandle15({ side }) {
4979
+ function GlowHandle17({ side }) {
4939
4980
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
4940
4981
  "div",
4941
4982
  {
@@ -4957,7 +4998,7 @@ function GlowHandle15({ side }) {
4957
4998
  }
4958
4999
  );
4959
5000
  }
4960
- function classNames13(...classes) {
5001
+ function classNames12(...classes) {
4961
5002
  return classes.filter(Boolean).join(" ");
4962
5003
  }
4963
5004
  var FieldNode_default = (0, import_react42.memo)(function Field(props) {
@@ -4969,7 +5010,7 @@ var FieldNode_default = (0, import_react42.memo)(function Field(props) {
4969
5010
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
4970
5011
  "div",
4971
5012
  {
4972
- className: classNames13(
5013
+ className: classNames12(
4973
5014
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
4974
5015
  props?.selected ? "ring-2 ring-cyan-400/60 ring-offset-2" : "",
4975
5016
  "border-cyan-500"
@@ -4995,8 +5036,8 @@ var FieldNode_default = (0, import_react42.memo)(function Field(props) {
4995
5036
  style: HIDDEN_HANDLE_STYLE
4996
5037
  }
4997
5038
  ),
4998
- targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GlowHandle15, { side: "left" }),
4999
- sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GlowHandle15, { side: "right" }),
5039
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GlowHandle17, { side: "left" }),
5040
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GlowHandle17, { side: "right" }),
5000
5041
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "absolute -top-2.5 left-2.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm bg-cyan-600", children: [
5001
5042
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react22.Database, { className: "w-2.5 h-2.5", strokeWidth: 2.5 }),
5002
5043
  "Field"
@@ -5171,7 +5212,7 @@ function getIcon(iconName) {
5171
5212
 
5172
5213
  // src/nodes/Flow.tsx
5173
5214
  var import_jsx_runtime24 = require("react/jsx-runtime");
5174
- function classNames14(...classes) {
5215
+ function classNames13(...classes) {
5175
5216
  return classes.filter(Boolean).join(" ");
5176
5217
  }
5177
5218
  var Flow_default = (0, import_react45.memo)(function FlowNode({
@@ -5215,7 +5256,7 @@ var Flow_default = (0, import_react45.memo)(function FlowNode({
5215
5256
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5216
5257
  "div",
5217
5258
  {
5218
- className: classNames14(
5259
+ className: classNames13(
5219
5260
  `relative rounded-md border flex justify-start bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] border-${color}-400`
5220
5261
  ),
5221
5262
  style: NODE_WIDTH_STYLE,
@@ -5223,7 +5264,7 @@ var Flow_default = (0, import_react45.memo)(function FlowNode({
5223
5264
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5224
5265
  "div",
5225
5266
  {
5226
- className: classNames14(
5267
+ className: classNames13(
5227
5268
  `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`,
5228
5269
  `border-r-[1px] border-${color}-500`
5229
5270
  ),
@@ -5246,7 +5287,7 @@ var Flow_default = (0, import_react45.memo)(function FlowNode({
5246
5287
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5247
5288
  "div",
5248
5289
  {
5249
- className: classNames14(
5290
+ className: classNames13(
5250
5291
  mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
5251
5292
  ),
5252
5293
  children: [
@@ -5459,7 +5500,7 @@ var import_react49 = require("react");
5459
5500
  var import_solid = require("@heroicons/react/20/solid");
5460
5501
  var import_jsx_runtime26 = require("react/jsx-runtime");
5461
5502
  var ENTITY_TARGET_HANDLE_ID = "__eventcatalog-entity-target";
5462
- function classNames15(...classes) {
5503
+ function classNames14(...classes) {
5463
5504
  return classes.filter(Boolean).join(" ");
5464
5505
  }
5465
5506
  var getPropertyTypeLabel = (property) => {
@@ -5542,7 +5583,7 @@ var Entity_default = (0, import_react49.memo)(function EntityNode({
5542
5583
  /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
5543
5584
  "div",
5544
5585
  {
5545
- className: classNames15(
5586
+ className: classNames14(
5546
5587
  "relative flex items-center justify-between py-2 pr-4 hover:bg-[rgb(var(--ec-page-border)/0.2)]",
5547
5588
  isExpandable && "nodrag nopan cursor-pointer"
5548
5589
  ),
@@ -5624,7 +5665,7 @@ var Entity_default = (0, import_react49.memo)(function EntityNode({
5624
5665
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ContextMenu2.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
5625
5666
  "div",
5626
5667
  {
5627
- className: classNames15(
5668
+ className: classNames14(
5628
5669
  "bg-[rgb(var(--ec-card-bg))] border rounded-lg shadow-sm min-w-[200px]",
5629
5670
  externalToDomain ? "border-amber-500/60" : "border-blue-400/50"
5630
5671
  ),
@@ -5632,7 +5673,7 @@ var Entity_default = (0, import_react49.memo)(function EntityNode({
5632
5673
  /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
5633
5674
  "div",
5634
5675
  {
5635
- className: classNames15(
5676
+ className: classNames14(
5636
5677
  "relative px-4 py-2 rounded-t-lg border-b border-[rgb(var(--ec-page-border))]",
5637
5678
  externalToDomain ? "bg-amber-500/20" : "bg-blue-500/15"
5638
5679
  ),
@@ -5721,7 +5762,7 @@ var import_react50 = require("react");
5721
5762
  var import_solid2 = require("@heroicons/react/20/solid");
5722
5763
  var import_react51 = require("@xyflow/react");
5723
5764
  var import_jsx_runtime27 = require("react/jsx-runtime");
5724
- function classNames16(...classes) {
5765
+ function classNames15(...classes) {
5725
5766
  return classes.filter(Boolean).join(" ");
5726
5767
  }
5727
5768
  var User_default = (0, import_react50.memo)(function UserNode({
@@ -5740,7 +5781,7 @@ var User_default = (0, import_react50.memo)(function UserNode({
5740
5781
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
5741
5782
  "div",
5742
5783
  {
5743
- className: classNames16(
5784
+ className: classNames15(
5744
5785
  `rounded-md border flex justify-start bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] border-yellow-400`,
5745
5786
  mode === "full" ? "min-h-[5em]" : "min-h-[2em]"
5746
5787
  ),
@@ -5749,7 +5790,7 @@ var User_default = (0, import_react50.memo)(function UserNode({
5749
5790
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
5750
5791
  "div",
5751
5792
  {
5752
- className: classNames16(
5793
+ className: classNames15(
5753
5794
  "bg-gradient-to-b from-yellow-400 to-yellow-600 relative flex flex-col items-center w-5 justify-between rounded-l-sm text-orange-100-500",
5754
5795
  `border-r-[1px] border-yellow-500`
5755
5796
  ),
@@ -5786,7 +5827,7 @@ var User_default = (0, import_react50.memo)(function UserNode({
5786
5827
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5787
5828
  "div",
5788
5829
  {
5789
- className: classNames16(
5830
+ className: classNames15(
5790
5831
  mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
5791
5832
  ),
5792
5833
  children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
@@ -5813,7 +5854,7 @@ var User_default = (0, import_react50.memo)(function UserNode({
5813
5854
  var import_react52 = require("react");
5814
5855
  var import_react53 = require("@xyflow/react");
5815
5856
  var import_jsx_runtime28 = require("react/jsx-runtime");
5816
- function classNames17(...classes) {
5857
+ function classNames16(...classes) {
5817
5858
  return classes.filter(Boolean).join(" ");
5818
5859
  }
5819
5860
  var Step_default = (0, import_react52.memo)(function StepNode({
@@ -5826,7 +5867,7 @@ var Step_default = (0, import_react52.memo)(function StepNode({
5826
5867
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
5827
5868
  "div",
5828
5869
  {
5829
- className: classNames17(
5870
+ className: classNames16(
5830
5871
  "rounded-md border flex justify-start bg-[rgb(var(--ec-card-bg))] text-[rgb(var(--ec-page-text))] border-blue-400 min-h-[3em]"
5831
5872
  ),
5832
5873
  style: NODE_WIDTH_STYLE,
@@ -5834,7 +5875,7 @@ var Step_default = (0, import_react52.memo)(function StepNode({
5834
5875
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
5835
5876
  "div",
5836
5877
  {
5837
- className: classNames17(
5878
+ className: classNames16(
5838
5879
  "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",
5839
5880
  `border-r-[1px] border-gray-500`
5840
5881
  ),
@@ -5879,7 +5920,7 @@ var Step_default = (0, import_react52.memo)(function StepNode({
5879
5920
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
5880
5921
  "div",
5881
5922
  {
5882
- className: classNames17(
5923
+ className: classNames16(
5883
5924
  mode === "full" ? `border-b border-[rgb(var(--ec-page-border))]` : ""
5884
5925
  ),
5885
5926
  children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
@@ -6072,7 +6113,7 @@ var import_react56 = require("@xyflow/react");
6072
6113
  var import_lucide_react27 = require("lucide-react");
6073
6114
  var import_react57 = require("react");
6074
6115
  var import_jsx_runtime30 = require("react/jsx-runtime");
6075
- function classNames18(...classes) {
6116
+ function classNames17(...classes) {
6076
6117
  return classes.filter(Boolean).join(" ");
6077
6118
  }
6078
6119
  var System_default = (0, import_react57.memo)(function SystemNode({ data }) {
@@ -6113,7 +6154,7 @@ var System_default = (0, import_react57.memo)(function SystemNode({ data }) {
6113
6154
  },
6114
6155
  title: `Open the ${name} map`
6115
6156
  },
6116
- className: classNames18(
6157
+ className: classNames17(
6117
6158
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
6118
6159
  opensMap && "cursor-pointer",
6119
6160
  isExternal ? "border-dashed border-violet-400" : "border-violet-500"
@@ -6164,7 +6205,7 @@ var System_default = (0, import_react57.memo)(function SystemNode({ data }) {
6164
6205
  mode === "full" && summary && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
6165
6206
  "div",
6166
6207
  {
6167
- className: classNames18(
6208
+ className: classNames17(
6168
6209
  "mt-1.5 text-[9px] text-[rgb(var(--ec-page-text-muted))] leading-relaxed overflow-hidden"
6169
6210
  ),
6170
6211
  style: LINE_CLAMP_STYLE,
@@ -6434,13 +6475,13 @@ var PALETTES = {
6434
6475
  pillBorder: "#f43f5e"
6435
6476
  }
6436
6477
  };
6437
- function classNames19(...classes) {
6478
+ function classNames18(...classes) {
6438
6479
  return classes.filter(Boolean).join(" ");
6439
6480
  }
6440
6481
  function getPalette(color) {
6441
6482
  return PALETTES[color || "blue"] ?? PALETTES.blue;
6442
6483
  }
6443
- function GlowHandle16({
6484
+ function GlowHandle18({
6444
6485
  side,
6445
6486
  gradient
6446
6487
  }) {
@@ -6489,7 +6530,7 @@ var Custom_default = (0, import_react59.memo)(function CustomNode({ data, select
6489
6530
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ContextMenu4.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
6490
6531
  "div",
6491
6532
  {
6492
- className: classNames19(
6533
+ className: classNames18(
6493
6534
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
6494
6535
  selected ? palette.ring : "",
6495
6536
  palette.border
@@ -6516,12 +6557,12 @@ var Custom_default = (0, import_react59.memo)(function CustomNode({ data, select
6516
6557
  style: HIDDEN_HANDLE_STYLE
6517
6558
  }
6518
6559
  ),
6519
- targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GlowHandle16, { side: "left", gradient: palette.glow }),
6520
- sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GlowHandle16, { side: "right", gradient: palette.glow }),
6560
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GlowHandle18, { side: "left", gradient: palette.glow }),
6561
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(GlowHandle18, { side: "right", gradient: palette.glow }),
6521
6562
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "absolute -top-3 left-2.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
6522
6563
  "span",
6523
6564
  {
6524
- className: classNames19(
6565
+ className: classNames18(
6525
6566
  "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
6526
6567
  palette.badge
6527
6568
  ),
@@ -6629,7 +6670,7 @@ var import_react63 = require("react");
6629
6670
  var import_lucide_react29 = require("lucide-react");
6630
6671
  var import_react64 = require("@xyflow/react");
6631
6672
  var import_jsx_runtime34 = require("react/jsx-runtime");
6632
- function GlowHandle17({ side }) {
6673
+ function GlowHandle19({ side }) {
6633
6674
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6634
6675
  "div",
6635
6676
  {
@@ -6651,7 +6692,7 @@ function GlowHandle17({ side }) {
6651
6692
  }
6652
6693
  );
6653
6694
  }
6654
- function classNames20(...classes) {
6695
+ function classNames19(...classes) {
6655
6696
  return classes.filter(Boolean).join(" ");
6656
6697
  }
6657
6698
  function PostItDataProduct(props) {
@@ -6661,7 +6702,7 @@ function PostItDataProduct(props) {
6661
6702
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6662
6703
  "div",
6663
6704
  {
6664
- className: classNames20(
6705
+ className: classNames19(
6665
6706
  "relative min-w-44 max-w-56 min-h-[120px]",
6666
6707
  props?.selected ? "ring-2 ring-indigo-400/60 ring-offset-1" : ""
6667
6708
  ),
@@ -6738,7 +6779,7 @@ function PostItDataProduct(props) {
6738
6779
  as: "div",
6739
6780
  value: name,
6740
6781
  tooltipBorderColor: "#6366f1",
6741
- className: classNames20(
6782
+ className: classNames19(
6742
6783
  "text-[13px] font-bold leading-snug min-w-0 truncate",
6743
6784
  deprecated ? "text-indigo-950/40 line-through" : "text-indigo-950"
6744
6785
  ),
@@ -6775,7 +6816,7 @@ function DefaultDataProduct(props) {
6775
6816
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6776
6817
  "div",
6777
6818
  {
6778
- className: classNames20(
6819
+ className: classNames19(
6779
6820
  "relative min-w-48 max-w-60 rounded-xl border-2 overflow-visible",
6780
6821
  props?.selected ? "ring-2 ring-indigo-400/60 ring-offset-2" : "",
6781
6822
  deprecated ? "border-dashed border-red-500" : draft ? `border-dashed ${isDark ? "border-indigo-400" : "border-indigo-400/60"}` : "border-indigo-500"
@@ -6802,12 +6843,12 @@ function DefaultDataProduct(props) {
6802
6843
  }
6803
6844
  ),
6804
6845
  notes && notes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(NotesIndicator, { notes, resourceName: name }),
6805
- targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(GlowHandle17, { side: "left" }),
6806
- sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(GlowHandle17, { side: "right" }),
6846
+ targetConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(GlowHandle19, { side: "left" }),
6847
+ sourceConnections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(GlowHandle19, { side: "right" }),
6807
6848
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "absolute -top-2.5 left-2.5 flex items-center gap-1.5 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6808
6849
  "span",
6809
6850
  {
6810
- className: classNames20(
6851
+ className: classNames19(
6811
6852
  "inline-flex items-center gap-1 text-[7px] font-bold uppercase tracking-widest text-white px-1.5 py-0.5 rounded shadow-sm",
6812
6853
  deprecated ? "bg-red-500" : "bg-indigo-500"
6813
6854
  ),