@loopstack/loopstack-studio 0.29.4 → 0.30.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.
Files changed (114) hide show
  1. package/dist/_virtual/rolldown_runtime.js +3 -1
  2. package/dist/api/config.js +5 -4
  3. package/dist/api/environments.js +5 -1
  4. package/dist/api/processor.js +4 -1
  5. package/dist/app/EnvironmentEmbedRoot.js +22 -30
  6. package/dist/components/ai-elements/code-block.js +4 -4
  7. package/dist/components/dynamic-form/CodeContent.js +1 -1
  8. package/dist/components/dynamic-form/Form.js +31 -51
  9. package/dist/components/dynamic-form/FormBody.js +1 -1
  10. package/dist/components/motion/FadeIn.js +72 -0
  11. package/dist/components/motion/StreamingText.js +49 -0
  12. package/dist/components/ui/accordion.js +2 -2
  13. package/dist/components/ui-widgets/UiWidget.js +11 -10
  14. package/dist/components/ui-widgets/widgets/AiPromptInput.js +31 -28
  15. package/dist/events/sse-client-events.js +7 -1
  16. package/dist/features/code-explorer/components/FileContentViewer.js +2 -2
  17. package/dist/features/debug/components/WorkflowFlowViewer.js +49 -51
  18. package/dist/features/documents/DocumentRenderer.js +18 -17
  19. package/dist/features/documents/components/DocumentItem.js +42 -20
  20. package/dist/features/documents/components/DocumentList.js +34 -36
  21. package/dist/features/documents/components/DocumentMetadataPills.js +102 -49
  22. package/dist/features/documents/document-details/DocumentDetails.js +577 -377
  23. package/dist/features/documents/document-details/PromptDetails.js +118 -130
  24. package/dist/features/documents/document-details/document-debug-utils.js +100 -0
  25. package/dist/features/documents/renderers/ChoicesRenderer.js +41 -38
  26. package/dist/features/documents/renderers/ConfirmPromptRenderer.js +31 -28
  27. package/dist/features/documents/renderers/DocumentFormRenderer.js +62 -70
  28. package/dist/features/documents/renderers/LlmMessage.js +52 -47
  29. package/dist/features/documents/renderers/TextPromptRenderer.js +32 -29
  30. package/dist/features/documents/renderers/useDocumentTransition.js +4 -4
  31. package/dist/features/feature-registry/FeatureRegistryProvider.js +32 -10
  32. package/dist/features/feature-registry/available-features.js +12 -0
  33. package/dist/features/feature-registry/index.js +2 -1
  34. package/dist/features/file-explorer/components/FileExplorerPanel.js +55 -51
  35. package/dist/features/git/components/GitBranchBadge.js +31 -0
  36. package/dist/features/git/components/GitCommitList.js +46 -0
  37. package/dist/features/git/components/GitRemoteStatus.js +84 -0
  38. package/dist/features/git/components/WorkbenchGitPanel.js +81 -0
  39. package/dist/features/git/git-feature.js +12 -0
  40. package/dist/features/git/hooks/useGit.js +78 -0
  41. package/dist/features/git/index.js +1 -0
  42. package/dist/features/oauth/OAuthPromptRenderer.js +137 -142
  43. package/dist/features/runs/Runs.js +4 -4
  44. package/dist/features/secrets/components/WorkbenchSecretsPanel.js +1 -1
  45. package/dist/features/secrets/renderers/SecretInputRenderer.js +30 -29
  46. package/dist/features/workbench/Workbench.js +25 -33
  47. package/dist/features/workbench/WorkflowItem.js +9 -9
  48. package/dist/features/workbench/WorkflowList.js +61 -62
  49. package/dist/features/workbench/components/NewRunDialog.js +237 -209
  50. package/dist/features/workbench/components/RecentRunItem.js +3 -3
  51. package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +8 -8
  52. package/dist/features/workbench/components/WorkbenchIconSidebar.js +1 -1
  53. package/dist/features/workbench/components/WorkbenchSidebarShell.js +3 -3
  54. package/dist/features/workbench/components/WorkflowForms.js +11 -10
  55. package/dist/features/workbench/components/WorkflowHistoryItem.js +16 -36
  56. package/dist/features/workbench/components/WorkflowHistoryList.js +19 -17
  57. package/dist/features/workbench/components/buttons/WorkflowButtons.js +3 -3
  58. package/dist/features/workbench/hooks/useLlmStreamingDocuments.js +159 -0
  59. package/dist/features/workbench/hooks/useWorkflowData.js +58 -31
  60. package/dist/features/workbench/index.js +2 -2
  61. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +53 -53
  62. package/dist/features/workspaces/Workspaces.js +134 -125
  63. package/dist/features/workspaces/components/CreateWorkspace.js +115 -107
  64. package/dist/features/workspaces/components/ExecutionTimeline.js +2 -2
  65. package/dist/features/workspaces/components/WorkflowRunForm.js +127 -104
  66. package/dist/features/workspaces/components/WorkspaceHomePage.js +6 -89
  67. package/dist/features/workspaces/components/workflow-form/ArgumentsView.js +1 -1
  68. package/dist/features/workspaces/components/workflow-form/SelectionView.js +15 -15
  69. package/dist/hooks/index.js +3 -2
  70. package/dist/hooks/query-keys.js +43 -30
  71. package/dist/hooks/useConfig.js +28 -22
  72. package/dist/hooks/useEnvironments.js +27 -2
  73. package/dist/hooks/useProcessor.js +14 -1
  74. package/dist/hooks/useWorkflows.js +4 -4
  75. package/dist/index.d.ts +116 -15
  76. package/dist/index.js +9 -8
  77. package/dist/node_modules/d3/src/index.js +13 -13
  78. package/dist/node_modules/d3-scale/src/continuous.js +16 -16
  79. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-3BPJPVTR.js +43 -43
  80. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-GPEHLZMM.js +270 -270
  81. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AAUBKEIU.js +90 -90
  82. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-3OPIFGDE.js +458 -458
  83. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js +3 -3
  84. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5ZQYHXKU.js +37 -37
  85. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-727SXJPM.js +208 -208
  86. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.js +145 -145
  87. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ND2GUHAM.js +7 -7
  88. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-O5CBEL6O.js +41 -41
  89. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-WU5MYG2G.js +3 -3
  90. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js +6 -6
  91. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-KO2AKTUF.js +30 -30
  92. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-OG6HWLK6.js +82 -82
  93. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-TEJ5UH35.js +65 -65
  94. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-I6XJVG4X.js +227 -227
  95. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-6RSMTGT7.js +104 -104
  96. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-PVQCEYII.js +104 -104
  97. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-JHISSGLW.js +49 -49
  98. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-W4KKPZXB.js +101 -101
  99. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-5OEKKPKP.js +20 -20
  100. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-3UESZ5HK.js +354 -354
  101. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-AJRCARHV.js +53 -53
  102. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-PNZ67QCA.js +113 -113
  103. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/vennDiagram-CIIHVFJN.js +90 -90
  104. package/dist/node_modules/mermaid/dist/mermaid.core.js +156 -156
  105. package/dist/node_modules/motion/dist/es/react.js +9 -2
  106. package/dist/pages/DebugWorkflowDetailsPage.js +2 -2
  107. package/dist/pages/DebugWorkflowsPage.js +76 -106
  108. package/dist/pages/EmbedWorkbenchPage.js +1 -1
  109. package/dist/pages/PreviewWorkbenchPage.js +6 -6
  110. package/dist/pages/WorkbenchPage.js +43 -47
  111. package/dist/pages/WorkflowDebugPage.js +6 -12
  112. package/dist/pages/WorkspacePage.js +40 -66
  113. package/dist/pages/WorkspaceRunsPage.js +24 -31
  114. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
+ import select_default from "../../../../d3-selection/src/select.js";
1
2
  import { __name, log } from "./chunk-AGHRB4JF.js";
2
3
  import rgba_default from "../../../../khroma/dist/methods/rgba.js";
3
4
  import channel_default from "../../../../khroma/dist/methods/channel.js";
4
5
  import { clear, common_default, configureSvgSize, getConfig, getConfig2, getEffectiveHtmlLabels, getUrl, sanitizeText } from "./chunk-CSCIHK7Q.js";
5
- import select_default from "../../../../d3-selection/src/select.js";
6
6
  import line_default from "../../../../d3-shape/src/line.js";
7
7
  import basis_default from "../../../../d3-shape/src/curve/basis.js";
8
8
  import "../../../../d3/src/index.js";
@@ -15,7 +15,7 @@ import { getIconStyles } from "./chunk-FMBD7UC4.js";
15
15
  import { Graph } from "../../../../dagre-d3-es/src/graphlib/graph.js";
16
16
  import "../../../../dagre-d3-es/src/graphlib/index.js";
17
17
  var parser = (function() {
18
- var S = /* @__PURE__ */ __name(function(e, S, C, w) {
18
+ var e = /* @__PURE__ */ __name(function(e, S, C, w) {
19
19
  for (C ||= {}, w = e.length; w--; C[e[w]] = S);
20
20
  return C;
21
21
  }, "o"), C = [1, 15], w = [1, 7], T = [1, 13], E = [1, 14], D = [1, 19], O = [1, 16], k = [1, 17], A = [1, 18], j = [8, 30], M = [
@@ -388,7 +388,7 @@ var parser = (function() {
388
388
  46: A
389
389
  },
390
390
  { 8: [1, 20] },
391
- S(j, [2, 12], {
391
+ e(j, [2, 12], {
392
392
  13: 4,
393
393
  19: 5,
394
394
  20: 6,
@@ -407,19 +407,19 @@ var parser = (function() {
407
407
  43: k,
408
408
  46: A
409
409
  }),
410
- S(M, [2, 16], {
410
+ e(M, [2, 16], {
411
411
  14: 22,
412
412
  15: N,
413
413
  16: P
414
414
  }),
415
- S(M, [2, 17]),
416
- S(M, [2, 18]),
417
- S(M, [2, 19]),
418
- S(M, [2, 20]),
419
- S(M, [2, 21]),
420
- S(M, [2, 22]),
421
- S(F, [2, 25], { 27: [1, 25] }),
422
- S(M, [2, 26]),
415
+ e(M, [2, 17]),
416
+ e(M, [2, 18]),
417
+ e(M, [2, 19]),
418
+ e(M, [2, 20]),
419
+ e(M, [2, 21]),
420
+ e(M, [2, 22]),
421
+ e(F, [2, 25], { 27: [1, 25] }),
422
+ e(M, [2, 26]),
423
423
  {
424
424
  19: 26,
425
425
  26: 12,
@@ -450,20 +450,20 @@ var parser = (function() {
450
450
  },
451
451
  { 44: [1, 30] },
452
452
  { 47: [1, 31] },
453
- S(I, [2, 29], {
453
+ e(I, [2, 29], {
454
454
  32: 32,
455
455
  35: [1, 33],
456
456
  37: [1, 34]
457
457
  }),
458
458
  { 1: [2, 7] },
459
- S(j, [2, 13]),
459
+ e(j, [2, 13]),
460
460
  {
461
461
  26: 35,
462
462
  31: D
463
463
  },
464
464
  { 31: [2, 14] },
465
465
  { 17: [1, 36] },
466
- S(F, [2, 24]),
466
+ e(F, [2, 24]),
467
467
  {
468
468
  10: C,
469
469
  11: 37,
@@ -491,25 +491,25 @@ var parser = (function() {
491
491
  { 41: [1, 40] },
492
492
  { 45: [1, 41] },
493
493
  { 48: [1, 42] },
494
- S(I, [2, 30]),
494
+ e(I, [2, 30]),
495
495
  { 18: [1, 43] },
496
496
  { 18: [1, 44] },
497
- S(F, [2, 23]),
497
+ e(F, [2, 23]),
498
498
  { 18: [1, 45] },
499
499
  { 30: [1, 46] },
500
- S(M, [2, 28]),
501
- S(M, [2, 35]),
502
- S(M, [2, 36]),
503
- S(M, [2, 37]),
504
- S(M, [2, 38]),
500
+ e(M, [2, 28]),
501
+ e(M, [2, 35]),
502
+ e(M, [2, 36]),
503
+ e(M, [2, 37]),
504
+ e(M, [2, 38]),
505
505
  { 36: [1, 47] },
506
506
  {
507
507
  33: 48,
508
508
  34: L
509
509
  },
510
510
  { 15: [1, 50] },
511
- S(M, [2, 27]),
512
- S(I, [2, 33]),
511
+ e(M, [2, 27]),
512
+ e(I, [2, 33]),
513
513
  { 38: [1, 51] },
514
514
  {
515
515
  33: 52,
@@ -517,7 +517,7 @@ var parser = (function() {
517
517
  38: [2, 31]
518
518
  },
519
519
  { 31: [2, 15] },
520
- S(I, [2, 34]),
520
+ e(I, [2, 34]),
521
521
  { 38: [2, 32] }
522
522
  ],
523
523
  defaultActions: {
@@ -533,10 +533,10 @@ var parser = (function() {
533
533
  throw C.hash = S, C;
534
534
  }
535
535
  }, "parseError"),
536
- parse: /* @__PURE__ */ __name(function(S) {
536
+ parse: /* @__PURE__ */ __name(function(e) {
537
537
  var C = this, w = [0], T = [], E = [null], D = [], O = this.table, k = "", A = 0, j = 0, M = 0, N = 2, P = 1, F = D.slice.call(arguments, 1), I = Object.create(this.lexer), L = { yy: {} };
538
538
  for (var R in this.yy) Object.prototype.hasOwnProperty.call(this.yy, R) && (L.yy[R] = this.yy[R]);
539
- I.setInput(S, L.yy), L.yy.lexer = I, L.yy.parser = this, I.yylloc === void 0 && (I.yylloc = {});
539
+ I.setInput(e, L.yy), L.yy.lexer = I, L.yy.parser = this, I.yylloc === void 0 && (I.yylloc = {});
540
540
  var z = I.yylloc;
541
541
  D.push(z);
542
542
  var B = I.options && I.options.ranges;
@@ -1181,7 +1181,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
1181
1181
  }
1182
1182
  C.classes ||= [], C.classes.push(S);
1183
1183
  });
1184
- }, "setCssClass"), populateBlockDatabase = /* @__PURE__ */ __name((e, C) => {
1184
+ }, "setCssClass"), populateBlockDatabase = /* @__PURE__ */ __name((e, S) => {
1185
1185
  let w = e.flat(), T = [], E = w.find((e) => e?.type === "column-setting")?.columns ?? -1;
1186
1186
  for (let e of w) {
1187
1187
  if (typeof E == "number" && E > 0 && e.type !== "column-setting" && typeof e.widthInColumns == "number" && e.widthInColumns > E && log.warn(`Block ${e.id} width ${e.widthInColumns} exceeds configured column width ${E}`), e.label &&= sanitizeText2(e.label), e.type === "classDef") {
@@ -1196,7 +1196,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
1196
1196
  e?.stylesStr && addStyle2Node(e.id, e?.stylesStr);
1197
1197
  continue;
1198
1198
  }
1199
- if (e.type === "column-setting") C.columns = e.columns ?? -1;
1199
+ if (e.type === "column-setting") S.columns = e.columns ?? -1;
1200
1200
  else if (e.type === "edge") {
1201
1201
  let S = (edgeCount.get(e.id) ?? 0) + 1;
1202
1202
  edgeCount.set(e.id, S), e.id = S + "-" + e.id, edgeList.push(e);
@@ -1212,7 +1212,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
1212
1212
  } else S === void 0 && T.push(e);
1213
1213
  }
1214
1214
  }
1215
- C.children = T;
1215
+ S.children = T;
1216
1216
  }, "populateBlockDatabase"), blocks = [], rootBlock = {
1217
1217
  id: "root",
1218
1218
  type: "composite",
@@ -1313,8 +1313,8 @@ var cnt = 0, blockDB_default = {
1313
1313
  }, "setDiagramId"),
1314
1314
  getDiagramId: /* @__PURE__ */ __name(() => diagramId, "getDiagramId")
1315
1315
  }, fade = /* @__PURE__ */ __name((e, S) => {
1316
- let T = channel_default;
1317
- return rgba_default(T(e, "r"), T(e, "g"), T(e, "b"), S);
1316
+ let C = channel_default;
1317
+ return rgba_default(C(e, "r"), C(e, "g"), C(e, "b"), S);
1318
1318
  }, "fade"), styles_default = /* @__PURE__ */ __name((e) => `.label {
1319
1319
  font-family: ${e.fontFamily};
1320
1320
  color: ${e.nodeTextColor || e.textColor};
@@ -1443,8 +1443,8 @@ var cnt = 0, blockDB_default = {
1443
1443
  markers[S](e, C, w);
1444
1444
  });
1445
1445
  }, "insertMarkers"), markers = {
1446
- extension: /* @__PURE__ */ __name((e, C, w) => {
1447
- log.trace("Making markers for ", w), e.append("defs").append("marker").attr("id", w + "_" + C + "-extensionStart").attr("class", "marker extension " + C).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", w + "_" + C + "-extensionEnd").attr("class", "marker extension " + C).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
1446
+ extension: /* @__PURE__ */ __name((e, S, w) => {
1447
+ log.trace("Making markers for ", w), e.append("defs").append("marker").attr("id", w + "_" + S + "-extensionStart").attr("class", "marker extension " + S).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", w + "_" + S + "-extensionEnd").attr("class", "marker extension " + S).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
1448
1448
  }, "extension"),
1449
1449
  composition: /* @__PURE__ */ __name((e, S, C) => {
1450
1450
  e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionStart").attr("class", "marker composition " + S).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionEnd").attr("class", "marker composition " + S).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
@@ -1487,7 +1487,7 @@ function calculateBlockPosition(e, S) {
1487
1487
  }
1488
1488
  __name(calculateBlockPosition, "calculateBlockPosition");
1489
1489
  var getMaxChildSize = /* @__PURE__ */ __name((e) => {
1490
- let C = 0, w = 0;
1490
+ let S = 0, w = 0;
1491
1491
  for (let T of e.children) {
1492
1492
  let { width: e, height: E, x: D, y: O } = T.size ?? {
1493
1493
  width: 0,
@@ -1497,14 +1497,14 @@ var getMaxChildSize = /* @__PURE__ */ __name((e) => {
1497
1497
  };
1498
1498
  if (log.debug("getMaxChildSize abc95 child:", T.id, "width:", e, "height:", E, "x:", D, "y:", O, T.type), T.type === "space") continue;
1499
1499
  let k = e / (T.widthInColumns ?? 1);
1500
- k > C && (C = k), E > w && (w = E);
1500
+ k > S && (S = k), E > w && (w = E);
1501
1501
  }
1502
1502
  return {
1503
- width: C,
1503
+ width: S,
1504
1504
  height: w
1505
1505
  };
1506
1506
  }, "getMaxChildSize");
1507
- function setBlockSizes(e, C, w = 0, T = 0) {
1507
+ function setBlockSizes(e, S, w = 0, T = 0) {
1508
1508
  log.debug("setBlockSizes abc95 (start)", e.id, e?.size?.x, "block width =", e?.size, "siblingWidth", w), e?.size?.width || (e.size = {
1509
1509
  width: w,
1510
1510
  height: T,
@@ -1513,11 +1513,11 @@ function setBlockSizes(e, C, w = 0, T = 0) {
1513
1513
  });
1514
1514
  let E = 0, D = 0;
1515
1515
  if (e.children?.length > 0) {
1516
- for (let S of e.children) setBlockSizes(S, C);
1516
+ for (let C of e.children) setBlockSizes(C, S);
1517
1517
  let O = getMaxChildSize(e);
1518
1518
  E = O.width, D = O.height, log.debug("setBlockSizes abc95 maxWidth of", e.id, ":s children is ", E, D);
1519
- for (let C of e.children) C.size && (log.debug(`abc95 Setting size of children of ${e.id} id=${C.id} ${E} ${D} ${JSON.stringify(C.size)}`), C.size.width = E * (C.widthInColumns ?? 1) + padding * ((C.widthInColumns ?? 1) - 1), C.size.height = D, C.size.x = 0, C.size.y = 0, log.debug(`abc95 updating size of ${e.id} children child:${C.id} maxWidth:${E} maxHeight:${D}`));
1520
- for (let S of e.children) setBlockSizes(S, C, E, D);
1519
+ for (let S of e.children) S.size && (log.debug(`abc95 Setting size of children of ${e.id} id=${S.id} ${E} ${D} ${JSON.stringify(S.size)}`), S.size.width = E * (S.widthInColumns ?? 1) + padding * ((S.widthInColumns ?? 1) - 1), S.size.height = D, S.size.x = 0, S.size.y = 0, log.debug(`abc95 updating size of ${e.id} children child:${S.id} maxWidth:${E} maxHeight:${D}`));
1520
+ for (let C of e.children) setBlockSizes(C, S, E, D);
1521
1521
  let k = e.columns ?? -1, A = 0;
1522
1522
  for (let S of e.children) A += S.widthInColumns ?? 1;
1523
1523
  let j = e.children.length;
@@ -1525,15 +1525,15 @@ function setBlockSizes(e, C, w = 0, T = 0) {
1525
1525
  let M = Math.ceil(A / j), N = j * (E + padding) + padding, P = M * (D + padding) + padding;
1526
1526
  if (N < w) {
1527
1527
  log.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${w} siblingHeight ${T} width ${N}`), N = w, P = T;
1528
- let C = (w - j * padding - padding) / j, O = (T - M * padding - padding) / M;
1529
- log.debug("Size indata abc88", e.id, "childWidth", C, "maxWidth", E), log.debug("Size indata abc88", e.id, "childHeight", O, "maxHeight", D), log.debug("Size indata abc88 xSize", j, "padding", padding);
1530
- for (let S of e.children) S.size && (S.size.width = C, S.size.height = O, S.size.x = 0, S.size.y = 0);
1528
+ let S = (w - j * padding - padding) / j, O = (T - M * padding - padding) / M;
1529
+ log.debug("Size indata abc88", e.id, "childWidth", S, "maxWidth", E), log.debug("Size indata abc88", e.id, "childHeight", O, "maxHeight", D), log.debug("Size indata abc88 xSize", j, "padding", padding);
1530
+ for (let C of e.children) C.size && (C.size.width = S, C.size.height = O, C.size.x = 0, C.size.y = 0);
1531
1531
  }
1532
1532
  if (log.debug(`abc95 (finale calc) ${e.id} xSize ${j} ySize ${M} columns ${k}${e.children.length} width=${Math.max(N, e.size?.width || 0)}`), N < (e?.size?.width || 0)) {
1533
1533
  N = e?.size?.width || 0;
1534
- let C = k > 0 ? Math.min(e.children.length, k) : e.children.length;
1535
- if (C > 0) {
1536
- let w = (N - C * padding - padding) / C;
1534
+ let S = k > 0 ? Math.min(e.children.length, k) : e.children.length;
1535
+ if (S > 0) {
1536
+ let w = (N - S * padding - padding) / S;
1537
1537
  log.debug("abc95 (growing to fit) width", e.id, N, e.size?.width, w);
1538
1538
  for (let S of e.children) S.size && (S.size.width = w);
1539
1539
  }
@@ -1548,7 +1548,7 @@ function setBlockSizes(e, C, w = 0, T = 0) {
1548
1548
  log.debug("setBlockSizes abc94 (done)", e.id, e?.size?.x, e?.size?.width, e?.size?.y, e?.size?.height);
1549
1549
  }
1550
1550
  __name(setBlockSizes, "setBlockSizes");
1551
- function layoutBlocks(e, C) {
1551
+ function layoutBlocks(e, S) {
1552
1552
  log.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);
1553
1553
  let w = e.columns ?? -1;
1554
1554
  if (log.debug("layoutBlocks columns abc95", e.id, "=>", w, e), e.children && e.children.length > 0) {
@@ -1580,10 +1580,10 @@ function layoutBlocks(e, C) {
1580
1580
  if (F != j && (j = F, A = e?.size?.x ? e?.size?.x + (-e?.size?.width / 2 || 0) : -padding, log.debug("New row in layout for block", e.id, " and child ", T.id, j)), log.debug(`abc89 layout blocks (child) id: ${T.id} Pos: ${k} (px, py) ${P},${F} (${E?.size?.x},${E?.size?.y}) parent: ${E.id} width: ${M}${padding}`), E.size) {
1581
1581
  let e = M / 2;
1582
1582
  T.size.x = A + padding + e, log.debug(`abc91 layout blocks (calc) px, pyid:${T.id} startingPos=X${A} new startingPosX${T.size.x} ${e} padding=${padding} width=${M} halfWidth=${e} => x:${T.size.x} y:${T.size.y} ${T.widthInColumns} (width * (child?.w || 1)) / 2 ${M * (T?.widthInColumns ?? 1) / 2}`), A = T.size.x + e;
1583
- let C = O.get(F) ?? 0, w = D.get(F) ?? N;
1584
- T.size.y = E.size.y - E.size.height / 2 + C + w / 2 + padding, log.debug(`abc88 layout blocks (calc) px, pyid:${T.id}startingPosX${A}${padding}${e}=>x:${T.size.x}y:${T.size.y}${T.widthInColumns}(width * (child?.w || 1)) / 2${M * (T?.widthInColumns ?? 1) / 2}`);
1583
+ let S = O.get(F) ?? 0, w = D.get(F) ?? N;
1584
+ T.size.y = E.size.y - E.size.height / 2 + S + w / 2 + padding, log.debug(`abc88 layout blocks (calc) px, pyid:${T.id}startingPosX${A}${padding}${e}=>x:${T.size.x}y:${T.size.y}${T.widthInColumns}(width * (child?.w || 1)) / 2${M * (T?.widthInColumns ?? 1) / 2}`);
1585
1585
  }
1586
- T.children && layoutBlocks(T, C);
1586
+ T.children && layoutBlocks(T, S);
1587
1587
  let I = T?.widthInColumns ?? 1;
1588
1588
  w > 0 && (I = Math.min(I, w - k % w)), k += I, log.debug("abc88 columnsPos", T, k);
1589
1589
  }
@@ -1616,10 +1616,10 @@ function findBounds(e, { minX: S, minY: C, maxX: w, maxY: T } = {
1616
1616
  }
1617
1617
  __name(findBounds, "findBounds");
1618
1618
  function layout(e) {
1619
- let C = e.getBlock("root");
1620
- if (!C) return;
1621
- setBlockSizes(C, e, 0, 0), layoutBlocks(C, e), log.debug("getBlocks", JSON.stringify(C, null, 2));
1622
- let { minX: w, minY: T, maxX: E, maxY: D } = findBounds(C), O = D - T;
1619
+ let S = e.getBlock("root");
1620
+ if (!S) return;
1621
+ setBlockSizes(S, e, 0, 0), layoutBlocks(S, e), log.debug("getBlocks", JSON.stringify(S, null, 2));
1622
+ let { minX: w, minY: T, maxX: E, maxY: D } = findBounds(S), O = D - T;
1623
1623
  return {
1624
1624
  x: w,
1625
1625
  y: T,
@@ -1652,88 +1652,88 @@ var createLabel_default = /* @__PURE__ */ __name(async (e, S, C, w = !1, T = !1)
1652
1652
  composition: "composition",
1653
1653
  dependency: "dependency",
1654
1654
  lollipop: "lollipop"
1655
- }, addEdgeMarker = /* @__PURE__ */ __name((e, C, w, T, E, D) => {
1655
+ }, addEdgeMarker = /* @__PURE__ */ __name((e, S, w, T, E, D) => {
1656
1656
  let O = arrowTypesMap[w];
1657
1657
  if (!O) {
1658
1658
  log.warn(`Unknown arrow type: ${w}`);
1659
1659
  return;
1660
1660
  }
1661
- let k = C === "start" ? "Start" : "End";
1662
- e.attr(`marker-${C}`, `url(${T}#${E}_${D}-${O}${k})`);
1663
- }, "addEdgeMarker"), edgeLabels = {}, terminalLabels = {}, insertEdgeLabel = /* @__PURE__ */ __name(async (e, S) => {
1664
- let C = getConfig2(), w = getEffectiveHtmlLabels(C), T = e.insert("g").attr("class", "edgeLabel"), E = T.insert("g").attr("class", "label"), D = S.labelType === "markdown", O = await createText(e, S.label, {
1665
- style: S.labelStyle,
1666
- useHtmlLabels: w,
1667
- addSvgBackground: D,
1661
+ let k = S === "start" ? "Start" : "End";
1662
+ e.attr(`marker-${S}`, `url(${T}#${E}_${D}-${O}${k})`);
1663
+ }, "addEdgeMarker"), edgeLabels = {}, terminalLabels = {}, insertEdgeLabel = /* @__PURE__ */ __name(async (S, C) => {
1664
+ let w = getConfig2(), T = getEffectiveHtmlLabels(w), E = S.insert("g").attr("class", "edgeLabel"), D = E.insert("g").attr("class", "label"), O = C.labelType === "markdown", k = await createText(S, C.label, {
1665
+ style: C.labelStyle,
1666
+ useHtmlLabels: T,
1667
+ addSvgBackground: O,
1668
1668
  isNode: !1,
1669
- markdown: D,
1670
- width: D ? void 0 : Infinity
1671
- }, C);
1672
- E.node().appendChild(O);
1673
- let j = O.getBBox(), M = j;
1674
- if (w) {
1675
- let e = O.children[0], S = select_default(O);
1676
- j = e.getBoundingClientRect(), M = j, S.attr("width", j.width), S.attr("height", j.height);
1669
+ markdown: O,
1670
+ width: O ? void 0 : Infinity
1671
+ }, w);
1672
+ D.node().appendChild(k);
1673
+ let M = k.getBBox(), N = M;
1674
+ if (T) {
1675
+ let S = k.children[0], C = select_default(k);
1676
+ M = S.getBoundingClientRect(), N = M, C.attr("width", M.width), C.attr("height", M.height);
1677
1677
  } else {
1678
- let e = select_default(O).select("text").node();
1679
- e && typeof e.getBBox == "function" && (M = e.getBBox());
1678
+ let S = select_default(k).select("text").node();
1679
+ S && typeof S.getBBox == "function" && (N = S.getBBox());
1680
1680
  }
1681
- E.attr("transform", computeLabelTransform(M, w)), edgeLabels[S.id] = T, S.width = j.width, S.height = j.height;
1681
+ D.attr("transform", computeLabelTransform(N, T)), edgeLabels[C.id] = E, C.width = M.width, C.height = M.height;
1682
1682
  let P;
1683
- if (S.startLabelLeft) {
1684
- let C = e.insert("g").attr("class", "edgeTerminals"), T = C.insert("g").attr("class", "inner"), E = await createLabel_default(T, S.startLabelLeft, S.labelStyle);
1685
- P = E;
1686
- let D = E.getBBox();
1687
- if (w) {
1688
- let e = E.children[0], S = select_default(E);
1689
- D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
1683
+ if (C.startLabelLeft) {
1684
+ let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(E, C.startLabelLeft, C.labelStyle);
1685
+ P = D;
1686
+ let O = D.getBBox();
1687
+ if (T) {
1688
+ let S = D.children[0], C = select_default(D);
1689
+ O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
1690
1690
  }
1691
- T.attr("transform", computeLabelTransform(D, w)), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].startLeft = C, setTerminalWidth(P, S.startLabelLeft);
1691
+ E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].startLeft = w, setTerminalWidth(P, C.startLabelLeft);
1692
1692
  }
1693
- if (S.startLabelRight) {
1694
- let C = e.insert("g").attr("class", "edgeTerminals"), T = C.insert("g").attr("class", "inner"), E = await createLabel_default(T, S.startLabelRight, S.labelStyle);
1695
- P = E;
1696
- let D = E.getBBox();
1697
- if (w) {
1698
- let e = E.children[0], S = select_default(E);
1699
- D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
1693
+ if (C.startLabelRight) {
1694
+ let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(E, C.startLabelRight, C.labelStyle);
1695
+ P = D;
1696
+ let O = D.getBBox();
1697
+ if (T) {
1698
+ let S = D.children[0], C = select_default(D);
1699
+ O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
1700
1700
  }
1701
- T.attr("transform", computeLabelTransform(D, w)), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].startRight = C, setTerminalWidth(P, S.startLabelRight);
1701
+ E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].startRight = w, setTerminalWidth(P, C.startLabelRight);
1702
1702
  }
1703
- if (S.endLabelLeft) {
1704
- let C = e.insert("g").attr("class", "edgeTerminals"), T = C.insert("g").attr("class", "inner"), E = await createLabel_default(C, S.endLabelLeft, S.labelStyle);
1705
- P = E;
1706
- let D = E.getBBox();
1707
- if (w) {
1708
- let e = E.children[0], S = select_default(E);
1709
- D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
1703
+ if (C.endLabelLeft) {
1704
+ let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(w, C.endLabelLeft, C.labelStyle);
1705
+ P = D;
1706
+ let O = D.getBBox();
1707
+ if (T) {
1708
+ let S = D.children[0], C = select_default(D);
1709
+ O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
1710
1710
  }
1711
- T.attr("transform", computeLabelTransform(D, w)), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].endLeft = C, setTerminalWidth(P, S.endLabelLeft);
1711
+ E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].endLeft = w, setTerminalWidth(P, C.endLabelLeft);
1712
1712
  }
1713
- if (S.endLabelRight) {
1714
- let C = e.insert("g").attr("class", "edgeTerminals"), T = C.insert("g").attr("class", "inner"), E = await createLabel_default(C, S.endLabelRight, S.labelStyle);
1715
- P = E;
1716
- let D = E.getBBox();
1717
- if (w) {
1718
- let e = E.children[0], S = select_default(E);
1719
- D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
1713
+ if (C.endLabelRight) {
1714
+ let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(w, C.endLabelRight, C.labelStyle);
1715
+ P = D;
1716
+ let O = D.getBBox();
1717
+ if (T) {
1718
+ let S = D.children[0], C = select_default(D);
1719
+ O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
1720
1720
  }
1721
- T.attr("transform", computeLabelTransform(D, w)), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].endRight = C, setTerminalWidth(P, S.endLabelRight);
1721
+ E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].endRight = w, setTerminalWidth(P, C.endLabelRight);
1722
1722
  }
1723
- return O;
1723
+ return k;
1724
1724
  }, "insertEdgeLabel");
1725
1725
  function setTerminalWidth(e, S) {
1726
1726
  getEffectiveHtmlLabels(getConfig2()) && e && (e.style.width = S.length * 9 + "px", e.style.height = "12px");
1727
1727
  }
1728
1728
  __name(setTerminalWidth, "setTerminalWidth");
1729
- var positionEdgeLabel = /* @__PURE__ */ __name((e, C) => {
1730
- log.debug("Moving label abc88 ", e.id, e.label, edgeLabels[e.id], C);
1731
- let w = C.updatedPath ? C.updatedPath : C.originalPath, { subGraphTitleTotalMargin: T } = getSubGraphTitleMargins(getConfig2());
1729
+ var positionEdgeLabel = /* @__PURE__ */ __name((e, S) => {
1730
+ log.debug("Moving label abc88 ", e.id, e.label, edgeLabels[e.id], S);
1731
+ let w = S.updatedPath ? S.updatedPath : S.originalPath, { subGraphTitleTotalMargin: T } = getSubGraphTitleMargins(getConfig2());
1732
1732
  if (e.label) {
1733
1733
  let E = edgeLabels[e.id], D = e.x, O = e.y;
1734
1734
  if (w) {
1735
1735
  let T = utils_default.calcLabelPosition(w);
1736
- log.debug("Moving label " + e.label + " from (", D, ",", O, ") to (", T.x, ",", T.y, ") abc88"), C.updatedPath && (D = T.x, O = T.y);
1736
+ log.debug("Moving label " + e.label + " from (", D, ",", O, ") to (", T.x, ",", T.y, ") abc88"), S.updatedPath && (D = T.x, O = T.y);
1737
1737
  }
1738
1738
  E.attr("transform", `translate(${D}, ${O + T / 2})`);
1739
1739
  }
@@ -1772,49 +1772,49 @@ var positionEdgeLabel = /* @__PURE__ */ __name((e, C) => {
1772
1772
  }, "positionEdgeLabel"), outsideNode = /* @__PURE__ */ __name((e, S) => {
1773
1773
  let C = e.x, w = e.y, T = Math.abs(S.x - C), E = Math.abs(S.y - w), D = e.width / 2, O = e.height / 2;
1774
1774
  return T >= D || E >= O;
1775
- }, "outsideNode"), intersection = /* @__PURE__ */ __name((e, C, w) => {
1775
+ }, "outsideNode"), intersection = /* @__PURE__ */ __name((e, S, w) => {
1776
1776
  log.debug(`intersection calc abc89:
1777
- outsidePoint: ${JSON.stringify(C)}
1777
+ outsidePoint: ${JSON.stringify(S)}
1778
1778
  insidePoint : ${JSON.stringify(w)}
1779
1779
  node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);
1780
- let T = e.x, E = e.y, D = Math.abs(T - w.x), O = e.width / 2, k = w.x < C.x ? O - D : O + D, A = e.height / 2, j = Math.abs(C.y - w.y), M = Math.abs(C.x - w.x);
1781
- if (Math.abs(E - C.y) * O > Math.abs(T - C.x) * A) {
1782
- let e = w.y < C.y ? C.y - A - E : E - A - C.y;
1780
+ let T = e.x, E = e.y, D = Math.abs(T - w.x), O = e.width / 2, k = w.x < S.x ? O - D : O + D, A = e.height / 2, j = Math.abs(S.y - w.y), M = Math.abs(S.x - w.x);
1781
+ if (Math.abs(E - S.y) * O > Math.abs(T - S.x) * A) {
1782
+ let e = w.y < S.y ? S.y - A - E : E - A - S.y;
1783
1783
  k = M * e / j;
1784
1784
  let T = {
1785
- x: w.x < C.x ? w.x + k : w.x - M + k,
1786
- y: w.y < C.y ? w.y + j - e : w.y - j + e
1785
+ x: w.x < S.x ? w.x + k : w.x - M + k,
1786
+ y: w.y < S.y ? w.y + j - e : w.y - j + e
1787
1787
  };
1788
- return k === 0 && (T.x = C.x, T.y = C.y), M === 0 && (T.x = C.x), j === 0 && (T.y = C.y), log.debug(`abc89 topp/bott calc, Q ${j}, q ${e}, R ${M}, r ${k}`, T), T;
1788
+ return k === 0 && (T.x = S.x, T.y = S.y), M === 0 && (T.x = S.x), j === 0 && (T.y = S.y), log.debug(`abc89 topp/bott calc, Q ${j}, q ${e}, R ${M}, r ${k}`, T), T;
1789
1789
  } else {
1790
- k = w.x < C.x ? C.x - O - T : T - O - C.x;
1791
- let e = j * k / M, E = w.x < C.x ? w.x + M - k : w.x - M + k, D = w.y < C.y ? w.y + e : w.y - e;
1790
+ k = w.x < S.x ? S.x - O - T : T - O - S.x;
1791
+ let e = j * k / M, E = w.x < S.x ? w.x + M - k : w.x - M + k, D = w.y < S.y ? w.y + e : w.y - e;
1792
1792
  return log.debug(`sides calc abc89, Q ${j}, q ${e}, R ${M}, r ${k}`, {
1793
1793
  _x: E,
1794
1794
  _y: D
1795
- }), k === 0 && (E = C.x, D = C.y), M === 0 && (E = C.x), j === 0 && (D = C.y), {
1795
+ }), k === 0 && (E = S.x, D = S.y), M === 0 && (E = S.x), j === 0 && (D = S.y), {
1796
1796
  x: E,
1797
1797
  y: D
1798
1798
  };
1799
1799
  }
1800
- }, "intersection"), cutPathAtIntersect = /* @__PURE__ */ __name((e, C) => {
1801
- log.debug("abc88 cutPathAtIntersect", e, C);
1800
+ }, "intersection"), cutPathAtIntersect = /* @__PURE__ */ __name((e, S) => {
1801
+ log.debug("abc88 cutPathAtIntersect", e, S);
1802
1802
  let w = [], T = e[0], E = !1;
1803
1803
  return e.forEach((e) => {
1804
- if (!outsideNode(C, e) && !E) {
1805
- let S = intersection(C, T, e), D = !1;
1804
+ if (!outsideNode(S, e) && !E) {
1805
+ let C = intersection(S, T, e), D = !1;
1806
1806
  w.forEach((e) => {
1807
- D ||= e.x === S.x && e.y === S.y;
1808
- }), w.some((e) => e.x === S.x && e.y === S.y) || w.push(S), E = !0;
1807
+ D ||= e.x === C.x && e.y === C.y;
1808
+ }), w.some((e) => e.x === C.x && e.y === C.y) || w.push(C), E = !0;
1809
1809
  } else T = e, E || w.push(e);
1810
1810
  }), w;
1811
- }, "cutPathAtIntersect"), insertEdge = /* @__PURE__ */ __name(function(e, C, w, T, E, D, O) {
1812
- let A = w.points;
1813
- log.debug("abc88 InsertEdge: edge=", w, "e=", C);
1814
- let M = !1, N = D.node(C.v);
1815
- var I = D.node(C.w);
1816
- I?.intersect && N?.intersect && (A = A.slice(1, w.points.length - 1), A.unshift(N.intersect(A[0])), A.push(I.intersect(A[A.length - 1]))), w.toCluster && (log.debug("to cluster abc88", T[w.toCluster]), A = cutPathAtIntersect(w.points, T[w.toCluster].node), M = !0), w.fromCluster && (log.debug("from cluster abc88", T[w.fromCluster]), A = cutPathAtIntersect(A.reverse(), T[w.fromCluster].node).reverse(), M = !0);
1817
- let R = A.filter((e) => !Number.isNaN(e.y)), z = basis_default;
1811
+ }, "cutPathAtIntersect"), insertEdge = /* @__PURE__ */ __name(function(e, S, w, T, E, D, O) {
1812
+ let k = w.points;
1813
+ log.debug("abc88 InsertEdge: edge=", w, "e=", S);
1814
+ let j = !1, N = D.node(S.v);
1815
+ var I = D.node(S.w);
1816
+ I?.intersect && N?.intersect && (k = k.slice(1, w.points.length - 1), k.unshift(N.intersect(k[0])), k.push(I.intersect(k[k.length - 1]))), w.toCluster && (log.debug("to cluster abc88", T[w.toCluster]), k = cutPathAtIntersect(w.points, T[w.toCluster].node), j = !0), w.fromCluster && (log.debug("from cluster abc88", T[w.fromCluster]), k = cutPathAtIntersect(k.reverse(), T[w.fromCluster].node).reverse(), j = !0);
1817
+ let R = k.filter((e) => !Number.isNaN(e.y)), z = basis_default;
1818
1818
  w.curve && (E === "graph" || E === "flowchart") && (z = w.curve);
1819
1819
  let { x: B, y: V } = getLineFunctionsWithOffset(w), H = line_default().x(B).y(V).curve(z), U;
1820
1820
  switch (w.thickness) {
@@ -1843,7 +1843,7 @@ var positionEdgeLabel = /* @__PURE__ */ __name((e, C) => {
1843
1843
  let W = e.append("path").attr("d", H(R)).attr("id", w.id).attr("class", " " + U + (w.classes ? " " + w.classes : "")).attr("style", w.style), G = "";
1844
1844
  (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) && (G = getUrl(!0)), addEdgeMarkers(W, w, G, O, E);
1845
1845
  let K = {};
1846
- return M && (K.updatedPath = A), K.originalPath = w.points, K;
1846
+ return j && (K.updatedPath = k), K.originalPath = w.points, K;
1847
1847
  }, "insertEdge"), expandAndDeduplicateDirections = /* @__PURE__ */ __name((e) => {
1848
1848
  let S = /* @__PURE__ */ new Set();
1849
1849
  for (let C of e) switch (C) {
@@ -2331,27 +2331,27 @@ var intersect_default = {
2331
2331
  y: w + A
2332
2332
  };
2333
2333
  }, "intersectRect")
2334
- }, labelHelper = /* @__PURE__ */ __name(async (e, S, C, w) => {
2335
- let T = getConfig2(), E, D = S.useHtmlLabels || getEffectiveHtmlLabels(T);
2336
- E = C || "node default";
2337
- let O = e.insert("g").attr("class", E).attr("id", S.domId || S.id), j = O.insert("g").attr("class", "label").attr("style", S.labelStyle), P;
2338
- P = S.labelText === void 0 ? "" : typeof S.labelText == "string" ? S.labelText : S.labelText[0];
2334
+ }, labelHelper = /* @__PURE__ */ __name(async (S, C, w, T) => {
2335
+ let E = getConfig2(), D, O = C.useHtmlLabels || getEffectiveHtmlLabels(E);
2336
+ D = w || "node default";
2337
+ let k = S.insert("g").attr("class", D).attr("id", C.domId || C.id), M = k.insert("g").attr("class", "label").attr("style", C.labelStyle), P;
2338
+ P = C.labelText === void 0 ? "" : typeof C.labelText == "string" ? C.labelText : C.labelText[0];
2339
2339
  let F;
2340
- F = S.labelType === "markdown" ? createText(j, sanitizeText(decodeEntities(P), T), {
2341
- useHtmlLabels: D,
2342
- width: S.width || T.flowchart.wrappingWidth,
2340
+ F = C.labelType === "markdown" ? createText(M, sanitizeText(decodeEntities(P), E), {
2341
+ useHtmlLabels: O,
2342
+ width: C.width || E.flowchart.wrappingWidth,
2343
2343
  classes: "markdown-node-label"
2344
- }, T) : await createLabel_default(j, sanitizeText(decodeEntities(P), T), S.labelStyle, !1, w);
2345
- let I = F.getBBox(), L = S.padding / 2;
2346
- if (getEffectiveHtmlLabels(T)) {
2347
- let e = F.children[0], S = select_default(F);
2348
- await configureLabelImages(e, P), I = e.getBoundingClientRect(), S.attr("width", I.width), S.attr("height", I.height);
2344
+ }, E) : await createLabel_default(M, sanitizeText(decodeEntities(P), E), C.labelStyle, !1, T);
2345
+ let I = F.getBBox(), L = C.padding / 2;
2346
+ if (getEffectiveHtmlLabels(E)) {
2347
+ let S = F.children[0], C = select_default(F);
2348
+ await configureLabelImages(S, P), I = S.getBoundingClientRect(), C.attr("width", I.width), C.attr("height", I.height);
2349
2349
  }
2350
- return D ? j.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")") : j.attr("transform", "translate(0, " + -I.height / 2 + ")"), S.centerLabel && j.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")"), j.insert("rect", ":first-child"), {
2351
- shapeSvg: O,
2350
+ return O ? M.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")") : M.attr("transform", "translate(0, " + -I.height / 2 + ")"), C.centerLabel && M.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")"), M.insert("rect", ":first-child"), {
2351
+ shapeSvg: k,
2352
2352
  bbox: I,
2353
2353
  halfPadding: L,
2354
- label: j
2354
+ label: M
2355
2355
  };
2356
2356
  }, "labelHelper"), updateNodeBounds = /* @__PURE__ */ __name((e, S) => {
2357
2357
  let C = S.node().getBBox();
@@ -2363,16 +2363,16 @@ function insertPolygonShape(e, S, C, w) {
2363
2363
  }).join(" ")).attr("class", "label-container").attr("transform", "translate(" + -S / 2 + "," + C / 2 + ")");
2364
2364
  }
2365
2365
  __name(insertPolygonShape, "insertPolygonShape");
2366
- var note_default = /* @__PURE__ */ __name(async (e, C) => {
2367
- C.useHtmlLabels || getEffectiveHtmlLabels(getConfig2()) || (C.centerLabel = !0);
2368
- let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, C, "node " + C.classes, !0);
2369
- log.info("Classes = ", C.classes);
2366
+ var note_default = /* @__PURE__ */ __name(async (e, S) => {
2367
+ S.useHtmlLabels || getEffectiveHtmlLabels(getConfig2()) || (S.centerLabel = !0);
2368
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes, !0);
2369
+ log.info("Classes = ", S.classes);
2370
2370
  let D = w.insert("rect", ":first-child");
2371
- return D.attr("rx", C.rx).attr("ry", C.ry).attr("x", -T.width / 2 - E).attr("y", -T.height / 2 - E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), updateNodeBounds(C, D), C.intersect = function(e) {
2372
- return intersect_default.rect(C, e);
2371
+ return D.attr("rx", S.rx).attr("ry", S.ry).attr("x", -T.width / 2 - E).attr("y", -T.height / 2 - E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), updateNodeBounds(S, D), S.intersect = function(e) {
2372
+ return intersect_default.rect(S, e);
2373
2373
  }, w;
2374
- }, "note"), formatClass = /* @__PURE__ */ __name((e) => e ? " " + e : "", "formatClass"), getClassesFromNode = /* @__PURE__ */ __name((e, S) => `${S || "node default"}${formatClass(e.classes)} ${formatClass(e.class)}`, "getClassesFromNode"), question = /* @__PURE__ */ __name(async (e, C) => {
2375
- let { shapeSvg: w, bbox: T } = await labelHelper(e, C, getClassesFromNode(C, void 0), !0), E = T.width + C.padding + (T.height + C.padding), D = [
2374
+ }, "note"), formatClass = /* @__PURE__ */ __name((e) => e ? " " + e : "", "formatClass"), getClassesFromNode = /* @__PURE__ */ __name((e, S) => `${S || "node default"}${formatClass(e.classes)} ${formatClass(e.class)}`, "getClassesFromNode"), question = /* @__PURE__ */ __name(async (e, S) => {
2375
+ let { shapeSvg: w, bbox: T } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), E = T.width + S.padding + (T.height + S.padding), D = [
2376
2376
  {
2377
2377
  x: E / 2,
2378
2378
  y: 0
@@ -2392,8 +2392,8 @@ var note_default = /* @__PURE__ */ __name(async (e, C) => {
2392
2392
  ];
2393
2393
  log.info("Question main (Circle)");
2394
2394
  let O = insertPolygonShape(w, E, E, D);
2395
- return O.attr("style", C.style), updateNodeBounds(C, O), C.intersect = function(e) {
2396
- return log.warn("Intersect called"), intersect_default.polygon(C, D, e);
2395
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2396
+ return log.warn("Intersect called"), intersect_default.polygon(S, D, e);
2397
2397
  }, w;
2398
2398
  }, "question"), choice = /* @__PURE__ */ __name((e, S) => {
2399
2399
  let C = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id);
@@ -2604,88 +2604,88 @@ var note_default = /* @__PURE__ */ __name(async (e, C) => {
2604
2604
  }
2605
2605
  return C;
2606
2606
  }, C;
2607
- }, "cylinder"), rect = /* @__PURE__ */ __name(async (e, C) => {
2608
- let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, C, "node " + C.classes + " " + C.class, !0), D = w.insert("rect", ":first-child"), O = C.positioned ? C.width : T.width + C.padding, k = C.positioned ? C.height : T.height + C.padding, A = C.positioned ? -O / 2 : -T.width / 2 - E, j = C.positioned ? -k / 2 : -T.height / 2 - E;
2609
- if (D.attr("class", "basic label-container").attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), C.props) {
2610
- let e = new Set(Object.keys(C.props));
2611
- C.props.borders && (applyNodePropertyBorders(D, C.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
2607
+ }, "cylinder"), rect = /* @__PURE__ */ __name(async (e, S) => {
2608
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes + " " + S.class, !0), D = w.insert("rect", ":first-child"), O = S.positioned ? S.width : T.width + S.padding, k = S.positioned ? S.height : T.height + S.padding, A = S.positioned ? -O / 2 : -T.width / 2 - E, j = S.positioned ? -k / 2 : -T.height / 2 - E;
2609
+ if (D.attr("class", "basic label-container").attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), S.props) {
2610
+ let e = new Set(Object.keys(S.props));
2611
+ S.props.borders && (applyNodePropertyBorders(D, S.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
2612
2612
  log.warn(`Unknown node property ${e}`);
2613
2613
  });
2614
2614
  }
2615
- return updateNodeBounds(C, D), C.intersect = function(e) {
2616
- return intersect_default.rect(C, e);
2615
+ return updateNodeBounds(S, D), S.intersect = function(e) {
2616
+ return intersect_default.rect(S, e);
2617
2617
  }, w;
2618
- }, "rect"), composite = /* @__PURE__ */ __name(async (e, C) => {
2619
- let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, C, "node " + C.classes, !0), D = w.insert("rect", ":first-child"), O = C.positioned ? C.width : T.width + C.padding, k = C.positioned ? C.height : T.height + C.padding, A = C.positioned ? -O / 2 : -T.width / 2 - E, j = C.positioned ? -k / 2 : -T.height / 2 - E;
2620
- if (D.attr("class", "basic cluster composite label-container").attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), C.props) {
2621
- let e = new Set(Object.keys(C.props));
2622
- C.props.borders && (applyNodePropertyBorders(D, C.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
2618
+ }, "rect"), composite = /* @__PURE__ */ __name(async (e, S) => {
2619
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes, !0), D = w.insert("rect", ":first-child"), O = S.positioned ? S.width : T.width + S.padding, k = S.positioned ? S.height : T.height + S.padding, A = S.positioned ? -O / 2 : -T.width / 2 - E, j = S.positioned ? -k / 2 : -T.height / 2 - E;
2620
+ if (D.attr("class", "basic cluster composite label-container").attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), S.props) {
2621
+ let e = new Set(Object.keys(S.props));
2622
+ S.props.borders && (applyNodePropertyBorders(D, S.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
2623
2623
  log.warn(`Unknown node property ${e}`);
2624
2624
  });
2625
2625
  }
2626
- return updateNodeBounds(C, D), C.intersect = function(e) {
2627
- return intersect_default.rect(C, e);
2626
+ return updateNodeBounds(S, D), S.intersect = function(e) {
2627
+ return intersect_default.rect(S, e);
2628
2628
  }, w;
2629
- }, "composite"), labelRect = /* @__PURE__ */ __name(async (e, C) => {
2630
- let { shapeSvg: w } = await labelHelper(e, C, "label", !0);
2631
- log.trace("Classes = ", C.class);
2629
+ }, "composite"), labelRect = /* @__PURE__ */ __name(async (e, S) => {
2630
+ let { shapeSvg: w } = await labelHelper(e, S, "label", !0);
2631
+ log.trace("Classes = ", S.class);
2632
2632
  let T = w.insert("rect", ":first-child");
2633
- if (T.attr("width", 0).attr("height", 0), w.attr("class", "label edgeLabel"), C.props) {
2634
- let e = new Set(Object.keys(C.props));
2635
- C.props.borders && (applyNodePropertyBorders(T, C.props.borders, 0, 0), e.delete("borders")), e.forEach((e) => {
2633
+ if (T.attr("width", 0).attr("height", 0), w.attr("class", "label edgeLabel"), S.props) {
2634
+ let e = new Set(Object.keys(S.props));
2635
+ S.props.borders && (applyNodePropertyBorders(T, S.props.borders, 0, 0), e.delete("borders")), e.forEach((e) => {
2636
2636
  log.warn(`Unknown node property ${e}`);
2637
2637
  });
2638
2638
  }
2639
- return updateNodeBounds(C, T), C.intersect = function(e) {
2640
- return intersect_default.rect(C, e);
2639
+ return updateNodeBounds(S, T), S.intersect = function(e) {
2640
+ return intersect_default.rect(S, e);
2641
2641
  }, w;
2642
2642
  }, "labelRect");
2643
- function applyNodePropertyBorders(C, w, T, E) {
2643
+ function applyNodePropertyBorders(e, w, T, E) {
2644
2644
  let D = [], O = /* @__PURE__ */ __name((e) => {
2645
2645
  D.push(e, 0);
2646
2646
  }, "addBorder"), k = /* @__PURE__ */ __name((e) => {
2647
2647
  D.push(0, e);
2648
2648
  }, "skipBorder");
2649
- w.includes("t") ? (log.debug("add top border"), O(T)) : k(T), w.includes("r") ? (log.debug("add right border"), O(E)) : k(E), w.includes("b") ? (log.debug("add bottom border"), O(T)) : k(T), w.includes("l") ? (log.debug("add left border"), O(E)) : k(E), C.attr("stroke-dasharray", D.join(" "));
2649
+ w.includes("t") ? (log.debug("add top border"), O(T)) : k(T), w.includes("r") ? (log.debug("add right border"), O(E)) : k(E), w.includes("b") ? (log.debug("add bottom border"), O(T)) : k(T), w.includes("l") ? (log.debug("add left border"), O(E)) : k(E), e.attr("stroke-dasharray", D.join(" "));
2650
2650
  }
2651
2651
  __name(applyNodePropertyBorders, "applyNodePropertyBorders");
2652
- var rectWithTitle = /* @__PURE__ */ __name(async (e, C) => {
2653
- let w;
2654
- w = C.classes ? "node " + C.classes : "node default";
2655
- let T = e.insert("g").attr("class", w).attr("id", C.domId || C.id), E = T.insert("rect", ":first-child"), D = T.insert("line"), O = T.insert("g").attr("class", "label"), j = C.labelText.flat ? C.labelText.flat() : C.labelText, M = "";
2656
- M = typeof j == "object" ? j[0] : j, log.info("Label text abc79", M, j, typeof j == "object");
2657
- let P = await createLabel_default(O, M, C.labelStyle, !0, !0), F = {
2652
+ var rectWithTitle = /* @__PURE__ */ __name(async (S, w) => {
2653
+ let T;
2654
+ T = w.classes ? "node " + w.classes : "node default";
2655
+ let E = S.insert("g").attr("class", T).attr("id", w.domId || w.id), D = E.insert("rect", ":first-child"), O = E.insert("line"), k = E.insert("g").attr("class", "label"), M = w.labelText.flat ? w.labelText.flat() : w.labelText, N = "";
2656
+ N = typeof M == "object" ? M[0] : M, log.info("Label text abc79", N, M, typeof M == "object");
2657
+ let P = await createLabel_default(k, N, w.labelStyle, !0, !0), F = {
2658
2658
  width: 0,
2659
2659
  height: 0
2660
2660
  };
2661
2661
  if (getEffectiveHtmlLabels(getConfig2())) {
2662
- let e = P.children[0], S = select_default(P);
2663
- F = e.getBoundingClientRect(), S.attr("width", F.width), S.attr("height", F.height);
2662
+ let S = P.children[0], C = select_default(P);
2663
+ F = S.getBoundingClientRect(), C.attr("width", F.width), C.attr("height", F.height);
2664
2664
  }
2665
- log.info("Text 2", j);
2666
- let I = j.slice(1, j.length), L = P.getBBox(), R = await createLabel_default(O, I.join ? I.join("<br/>") : I, C.labelStyle, !0, !0);
2665
+ log.info("Text 2", M);
2666
+ let I = M.slice(1, M.length), L = P.getBBox(), R = await createLabel_default(k, I.join ? I.join("<br/>") : I, w.labelStyle, !0, !0);
2667
2667
  if (getEffectiveHtmlLabels(getConfig2())) {
2668
- let e = R.children[0], S = select_default(R);
2669
- F = e.getBoundingClientRect(), S.attr("width", F.width), S.attr("height", F.height);
2668
+ let S = R.children[0], C = select_default(R);
2669
+ F = S.getBoundingClientRect(), C.attr("width", F.width), C.attr("height", F.height);
2670
2670
  }
2671
- let z = C.padding / 2;
2672
- return select_default(R).attr("transform", "translate( " + (F.width > L.width ? 0 : (L.width - F.width) / 2) + ", " + (L.height + z + 5) + ")"), select_default(P).attr("transform", "translate( " + (F.width < L.width ? 0 : -(L.width - F.width) / 2) + ", 0)"), F = O.node().getBBox(), O.attr("transform", "translate(" + -F.width / 2 + ", " + (-F.height / 2 - z + 3) + ")"), E.attr("class", "outer title-state").attr("x", -F.width / 2 - z).attr("y", -F.height / 2 - z).attr("width", F.width + C.padding).attr("height", F.height + C.padding), D.attr("class", "divider").attr("x1", -F.width / 2 - z).attr("x2", F.width / 2 + z).attr("y1", -F.height / 2 - z + L.height + z).attr("y2", -F.height / 2 - z + L.height + z), updateNodeBounds(C, E), C.intersect = function(e) {
2673
- return intersect_default.rect(C, e);
2674
- }, T;
2671
+ let z = w.padding / 2;
2672
+ return select_default(R).attr("transform", "translate( " + (F.width > L.width ? 0 : (L.width - F.width) / 2) + ", " + (L.height + z + 5) + ")"), select_default(P).attr("transform", "translate( " + (F.width < L.width ? 0 : -(L.width - F.width) / 2) + ", 0)"), F = k.node().getBBox(), k.attr("transform", "translate(" + -F.width / 2 + ", " + (-F.height / 2 - z + 3) + ")"), D.attr("class", "outer title-state").attr("x", -F.width / 2 - z).attr("y", -F.height / 2 - z).attr("width", F.width + w.padding).attr("height", F.height + w.padding), O.attr("class", "divider").attr("x1", -F.width / 2 - z).attr("x2", F.width / 2 + z).attr("y1", -F.height / 2 - z + L.height + z).attr("y2", -F.height / 2 - z + L.height + z), updateNodeBounds(w, D), w.intersect = function(e) {
2673
+ return intersect_default.rect(w, e);
2674
+ }, E;
2675
2675
  }, "rectWithTitle"), stadium = /* @__PURE__ */ __name(async (e, S) => {
2676
2676
  let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.height + S.padding, E = w.width + T / 4 + S.padding;
2677
2677
  return updateNodeBounds(S, C.insert("rect", ":first-child").attr("style", S.style).attr("rx", T / 2).attr("ry", T / 2).attr("x", -E / 2).attr("y", -T / 2).attr("width", E).attr("height", T)), S.intersect = function(e) {
2678
2678
  return intersect_default.rect(S, e);
2679
2679
  }, C;
2680
- }, "stadium"), circle2 = /* @__PURE__ */ __name(async (e, C) => {
2681
- let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, C, getClassesFromNode(C, void 0), !0), D = w.insert("circle", ":first-child");
2682
- return D.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), log.info("Circle main"), updateNodeBounds(C, D), C.intersect = function(e) {
2683
- return log.info("Circle intersect", C, T.width / 2 + E, e), intersect_default.circle(C, T.width / 2 + E, e);
2680
+ }, "stadium"), circle2 = /* @__PURE__ */ __name(async (e, S) => {
2681
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), D = w.insert("circle", ":first-child");
2682
+ return D.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), log.info("Circle main"), updateNodeBounds(S, D), S.intersect = function(e) {
2683
+ return log.info("Circle intersect", S, T.width / 2 + E, e), intersect_default.circle(S, T.width / 2 + E, e);
2684
2684
  }, w;
2685
- }, "circle"), doublecircle = /* @__PURE__ */ __name(async (e, C) => {
2686
- let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, C, getClassesFromNode(C, void 0), !0), D = w.insert("g", ":first-child"), O = D.insert("circle"), k = D.insert("circle");
2687
- return D.attr("class", C.class), O.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E + 5).attr("width", T.width + C.padding + 10).attr("height", T.height + C.padding + 10), k.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), log.info("DoubleCircle main"), updateNodeBounds(C, O), C.intersect = function(e) {
2688
- return log.info("DoubleCircle intersect", C, T.width / 2 + E + 5, e), intersect_default.circle(C, T.width / 2 + E + 5, e);
2685
+ }, "circle"), doublecircle = /* @__PURE__ */ __name(async (e, S) => {
2686
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), D = w.insert("g", ":first-child"), O = D.insert("circle"), k = D.insert("circle");
2687
+ return D.attr("class", S.class), O.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E + 5).attr("width", T.width + S.padding + 10).attr("height", T.height + S.padding + 10), k.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), log.info("DoubleCircle main"), updateNodeBounds(S, O), S.intersect = function(e) {
2688
+ return log.info("DoubleCircle intersect", S, T.width / 2 + E + 5, e), intersect_default.circle(S, T.width / 2 + E + 5, e);
2689
2689
  }, w;
2690
2690
  }, "doublecircle"), subroutine = /* @__PURE__ */ __name(async (e, S) => {
2691
2691
  let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
@@ -2774,62 +2774,62 @@ var rectWithTitle = /* @__PURE__ */ __name(async (e, C) => {
2774
2774
  subroutine,
2775
2775
  fork: forkJoin,
2776
2776
  join: forkJoin,
2777
- class_box: /* @__PURE__ */ __name(async (e, S) => {
2778
- let C = S.padding / 2, w;
2779
- w = S.classes ? "node " + S.classes : "node default";
2780
- let T = e.insert("g").attr("class", w).attr("id", S.domId || S.id), E = T.insert("rect", ":first-child"), D = T.insert("line"), O = T.insert("line"), j = 0, M = 4, P = T.insert("g").attr("class", "label"), F = 0, I = S.classData.annotations?.[0], L = await createLabel_default(P, S.classData.annotations[0] ? "«" + S.classData.annotations[0] + "»" : "", S.labelStyle, !0, !0), R = L.getBBox();
2777
+ class_box: /* @__PURE__ */ __name(async (S, C) => {
2778
+ let w = C.padding / 2, T;
2779
+ T = C.classes ? "node " + C.classes : "node default";
2780
+ let E = S.insert("g").attr("class", T).attr("id", C.domId || C.id), D = E.insert("rect", ":first-child"), O = E.insert("line"), k = E.insert("line"), M = 0, N = 4, P = E.insert("g").attr("class", "label"), F = 0, I = C.classData.annotations?.[0], L = await createLabel_default(P, C.classData.annotations[0] ? "«" + C.classData.annotations[0] + "»" : "", C.labelStyle, !0, !0), R = L.getBBox();
2781
2781
  if (getEffectiveHtmlLabels(getConfig2())) {
2782
- let e = L.children[0], S = select_default(L);
2783
- R = e.getBoundingClientRect(), S.attr("width", R.width), S.attr("height", R.height);
2782
+ let S = L.children[0], C = select_default(L);
2783
+ R = S.getBoundingClientRect(), C.attr("width", R.width), C.attr("height", R.height);
2784
2784
  }
2785
- S.classData.annotations[0] && (M += R.height + 4, j += R.width);
2786
- let z = S.classData.label;
2787
- S.classData.type !== void 0 && S.classData.type !== "" && (getEffectiveHtmlLabels(getConfig2()) ? z += "&lt;" + S.classData.type + "&gt;" : z += "<" + S.classData.type + ">");
2788
- let B = await createLabel_default(P, z, S.labelStyle, !0, !0);
2785
+ C.classData.annotations[0] && (N += R.height + 4, M += R.width);
2786
+ let z = C.classData.label;
2787
+ C.classData.type !== void 0 && C.classData.type !== "" && (getEffectiveHtmlLabels(getConfig2()) ? z += "&lt;" + C.classData.type + "&gt;" : z += "<" + C.classData.type + ">");
2788
+ let B = await createLabel_default(P, z, C.labelStyle, !0, !0);
2789
2789
  select_default(B).attr("class", "classTitle");
2790
2790
  let V = B.getBBox();
2791
2791
  if (getEffectiveHtmlLabels(getConfig2())) {
2792
- let e = B.children[0], S = select_default(B);
2793
- V = e.getBoundingClientRect(), S.attr("width", V.width), S.attr("height", V.height);
2792
+ let S = B.children[0], C = select_default(B);
2793
+ V = S.getBoundingClientRect(), C.attr("width", V.width), C.attr("height", V.height);
2794
2794
  }
2795
- M += V.height + 4, V.width > j && (j = V.width);
2795
+ N += V.height + 4, V.width > M && (M = V.width);
2796
2796
  let H = [];
2797
- S.classData.members.forEach(async (e) => {
2798
- let C = e.getDisplayDetails(), w = C.displayText;
2799
- getEffectiveHtmlLabels(getConfig2()) && (w = w.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2800
- let T = await createLabel_default(P, w, C.cssStyle ? C.cssStyle : S.labelStyle, !0, !0), E = T.getBBox();
2797
+ C.classData.members.forEach(async (S) => {
2798
+ let w = S.getDisplayDetails(), T = w.displayText;
2799
+ getEffectiveHtmlLabels(getConfig2()) && (T = T.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2800
+ let E = await createLabel_default(P, T, w.cssStyle ? w.cssStyle : C.labelStyle, !0, !0), D = E.getBBox();
2801
2801
  if (getEffectiveHtmlLabels(getConfig2())) {
2802
- let e = T.children[0], S = select_default(T);
2803
- E = e.getBoundingClientRect(), S.attr("width", E.width), S.attr("height", E.height);
2802
+ let S = E.children[0], C = select_default(E);
2803
+ D = S.getBoundingClientRect(), C.attr("width", D.width), C.attr("height", D.height);
2804
2804
  }
2805
- E.width > j && (j = E.width), M += E.height + 4, H.push(T);
2806
- }), M += 8;
2805
+ D.width > M && (M = D.width), N += D.height + 4, H.push(E);
2806
+ }), N += 8;
2807
2807
  let U = [];
2808
- if (S.classData.methods.forEach(async (e) => {
2809
- let C = e.getDisplayDetails(), w = C.displayText;
2810
- getEffectiveHtmlLabels(getConfig2()) && (w = w.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2811
- let T = await createLabel_default(P, w, C.cssStyle ? C.cssStyle : S.labelStyle, !0, !0), E = T.getBBox();
2808
+ if (C.classData.methods.forEach(async (S) => {
2809
+ let w = S.getDisplayDetails(), T = w.displayText;
2810
+ getEffectiveHtmlLabels(getConfig2()) && (T = T.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2811
+ let E = await createLabel_default(P, T, w.cssStyle ? w.cssStyle : C.labelStyle, !0, !0), D = E.getBBox();
2812
2812
  if (getEffectiveHtmlLabels(getConfig2())) {
2813
- let e = T.children[0], S = select_default(T);
2814
- E = e.getBoundingClientRect(), S.attr("width", E.width), S.attr("height", E.height);
2813
+ let S = E.children[0], C = select_default(E);
2814
+ D = S.getBoundingClientRect(), C.attr("width", D.width), C.attr("height", D.height);
2815
2815
  }
2816
- E.width > j && (j = E.width), M += E.height + 4, U.push(T);
2817
- }), M += 8, I) {
2818
- let e = (j - R.width) / 2;
2819
- select_default(L).attr("transform", "translate( " + (-1 * j / 2 + e) + ", " + -1 * M / 2 + ")"), F = R.height + 4;
2816
+ D.width > M && (M = D.width), N += D.height + 4, U.push(E);
2817
+ }), N += 8, I) {
2818
+ let S = (M - R.width) / 2;
2819
+ select_default(L).attr("transform", "translate( " + (-1 * M / 2 + S) + ", " + -1 * N / 2 + ")"), F = R.height + 4;
2820
2820
  }
2821
- let W = (j - V.width) / 2;
2822
- return select_default(B).attr("transform", "translate( " + (-1 * j / 2 + W) + ", " + (-1 * M / 2 + F) + ")"), F += V.height + 4, D.attr("class", "divider").attr("x1", -j / 2 - C).attr("x2", j / 2 + C).attr("y1", -M / 2 - C + 8 + F).attr("y2", -M / 2 - C + 8 + F), F += 8, H.forEach((e) => {
2823
- select_default(e).attr("transform", "translate( " + -j / 2 + ", " + (-1 * M / 2 + F + 8 / 2) + ")");
2824
- let S = e?.getBBox();
2825
- F += (S?.height ?? 0) + 4;
2826
- }), F += 8, O.attr("class", "divider").attr("x1", -j / 2 - C).attr("x2", j / 2 + C).attr("y1", -M / 2 - C + 8 + F).attr("y2", -M / 2 - C + 8 + F), F += 8, U.forEach((e) => {
2827
- select_default(e).attr("transform", "translate( " + -j / 2 + ", " + (-1 * M / 2 + F) + ")");
2828
- let S = e?.getBBox();
2829
- F += (S?.height ?? 0) + 4;
2830
- }), E.attr("style", S.style).attr("class", "outer title-state").attr("x", -j / 2 - C).attr("y", -(M / 2) - C).attr("width", j + S.padding).attr("height", M + S.padding), updateNodeBounds(S, E), S.intersect = function(e) {
2831
- return intersect_default.rect(S, e);
2832
- }, T;
2821
+ let W = (M - V.width) / 2;
2822
+ return select_default(B).attr("transform", "translate( " + (-1 * M / 2 + W) + ", " + (-1 * N / 2 + F) + ")"), F += V.height + 4, O.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, H.forEach((S) => {
2823
+ select_default(S).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F + 8 / 2) + ")");
2824
+ let C = S?.getBBox();
2825
+ F += (C?.height ?? 0) + 4;
2826
+ }), F += 8, k.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, U.forEach((S) => {
2827
+ select_default(S).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F) + ")");
2828
+ let C = S?.getBBox();
2829
+ F += (C?.height ?? 0) + 4;
2830
+ }), D.attr("style", C.style).attr("class", "outer title-state").attr("x", -M / 2 - w).attr("y", -(N / 2) - w).attr("width", M + C.padding).attr("height", N + C.padding), updateNodeBounds(C, D), C.intersect = function(e) {
2831
+ return intersect_default.rect(C, e);
2832
+ }, E;
2833
2833
  }, "class_box")
2834
2834
  }, nodeElems = {}, insertNode = /* @__PURE__ */ __name(async (e, S, C) => {
2835
2835
  let w, T;
@@ -2839,21 +2839,21 @@ var rectWithTitle = /* @__PURE__ */ __name(async (e, C) => {
2839
2839
  } else T = await shapes[S.shape](e, S, C), w = T;
2840
2840
  return S.tooltip && T.attr("title", S.tooltip), S.class && T.attr("class", "node default " + S.class), nodeElems[S.id] = w, S.haveCallback && nodeElems[S.id].attr("class", nodeElems[S.id].attr("class") + " clickable"), w;
2841
2841
  }, "insertNode"), positionNode = /* @__PURE__ */ __name((e) => {
2842
- let C = nodeElems[e.id];
2842
+ let S = nodeElems[e.id];
2843
2843
  log.trace("Transforming node", e.diff, e, "translate(" + (e.x - e.width / 2 - 5) + ", " + e.width / 2 + ")");
2844
2844
  let w = e.diff || 0;
2845
- return e.clusterNode ? C.attr("transform", "translate(" + (e.x + w - e.width / 2) + ", " + (e.y - e.height / 2 - 8) + ")") : C.attr("transform", "translate(" + e.x + ", " + e.y + ")"), w;
2845
+ return e.clusterNode ? S.attr("transform", "translate(" + (e.x + w - e.width / 2) + ", " + (e.y - e.height / 2 - 8) + ")") : S.attr("transform", "translate(" + e.x + ", " + e.y + ")"), w;
2846
2846
  }, "positionNode");
2847
2847
  function getNodeFromBlock(e, S, C = !1) {
2848
2848
  let w = e, T = "default";
2849
2849
  (w?.classes?.length || 0) > 0 && (T = (w?.classes ?? []).join(" ")), T += " flowchart-label";
2850
- let E = 0, D = "", k;
2850
+ let E = 0, D = "", O;
2851
2851
  switch (w.type) {
2852
2852
  case "round":
2853
2853
  E = 5, D = "rect";
2854
2854
  break;
2855
2855
  case "composite":
2856
- E = 0, D = "composite", k = 0;
2856
+ E = 0, D = "composite", O = 0;
2857
2857
  break;
2858
2858
  case "square":
2859
2859
  D = "rect";
@@ -2932,7 +2932,7 @@ function getNodeFromBlock(e, S, C = !1) {
2932
2932
  positioned: C,
2933
2933
  intersect: void 0,
2934
2934
  type: w.type,
2935
- padding: k ?? getConfig()?.block?.padding ?? 0,
2935
+ padding: O ?? getConfig()?.block?.padding ?? 0,
2936
2936
  widthInColumns: w.widthInColumns ?? 1
2937
2937
  };
2938
2938
  }
@@ -3033,22 +3033,22 @@ var diagram = {
3033
3033
  parser: block_default,
3034
3034
  db: blockDB_default,
3035
3035
  renderer: {
3036
- draw: /* @__PURE__ */ __name(async function(e, C, w, T) {
3037
- let { securityLevel: E, block: k } = getConfig(), A = T.db;
3038
- A.setDiagramId(C);
3039
- let j;
3040
- E === "sandbox" && (j = select_default("#i" + C));
3041
- let M = select_default(E === "sandbox" ? j.nodes()[0].contentDocument.body : "body"), P = E === "sandbox" ? M.select(`[id="${C}"]`) : select_default(`[id="${C}"]`);
3036
+ draw: /* @__PURE__ */ __name(async function(S, w, T, E) {
3037
+ let { securityLevel: D, block: A } = getConfig(), j = E.db;
3038
+ j.setDiagramId(w);
3039
+ let M;
3040
+ D === "sandbox" && (M = select_default("#i" + w));
3041
+ let N = select_default(D === "sandbox" ? M.nodes()[0].contentDocument.body : "body"), P = D === "sandbox" ? N.select(`[id="${w}"]`) : select_default(`[id="${w}"]`);
3042
3042
  markers_default(P, [
3043
3043
  "point",
3044
3044
  "circle",
3045
3045
  "cross"
3046
- ], T.type, C);
3047
- let F = A.getBlocks(), I = A.getBlocksFlat(), L = A.getEdges(), R = P.insert("g").attr("class", "block");
3048
- await calculateBlockSizes(R, F, A);
3049
- let z = layout(A);
3050
- if (await insertBlocks(R, F, A), await insertEdges(R, L, I, A, C), z) {
3051
- let e = z, C = Math.max(1, Math.round(.125 * (e.width / e.height))), w = e.height + C + 10, T = e.width + 10, { useMaxWidth: E } = k;
3046
+ ], E.type, w);
3047
+ let F = j.getBlocks(), I = j.getBlocksFlat(), L = j.getEdges(), R = P.insert("g").attr("class", "block");
3048
+ await calculateBlockSizes(R, F, j);
3049
+ let z = layout(j);
3050
+ if (await insertBlocks(R, F, j), await insertEdges(R, L, I, j, w), z) {
3051
+ let e = z, S = Math.max(1, Math.round(.125 * (e.width / e.height))), w = e.height + S + 10, T = e.width + 10, { useMaxWidth: E } = A;
3052
3052
  configureSvgSize(P, w, T, !!E), log.debug("Here Bounds", z, e), P.attr("viewBox", `${e.x - 5} ${e.y - 5} ${e.width + 10} ${e.height + 10}`);
3053
3053
  }
3054
3054
  }, "draw"),