@likec4/diagram 1.38.0 → 1.39.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 (86) hide show
  1. package/bundle/{chunk-BZV0K82k.js → chunk-Bg7UjtMS.js} +332 -326
  2. package/bundle/custom.js +59 -59
  3. package/bundle/index.js +244 -170
  4. package/dist/LikeC4Diagram.props.d.ts +15 -8
  5. package/dist/base/BaseXYFlow.js +5 -5
  6. package/dist/base/index.d.ts +1 -2
  7. package/dist/base/primitives/MarkdownBlock.js +2 -1
  8. package/dist/base/primitives/customEdge.d.ts +3 -3
  9. package/dist/base/primitives/element/ElementTitle.js +2 -10
  10. package/dist/base/types.d.ts +62 -5
  11. package/dist/base/types.js +54 -0
  12. package/dist/bundle/LikeC4View.d.ts +2 -2
  13. package/dist/bundle/LikeC4View.props.d.ts +4 -3
  14. package/dist/bundle/ReactLikeC4.d.ts +4 -4
  15. package/dist/custom/customNodes.d.ts +2 -1
  16. package/dist/hooks/useXYFlow.d.ts +28 -29
  17. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +4 -5
  18. package/dist/likec4diagram/custom/nodes/ElementActions.js +1 -1
  19. package/dist/likec4diagram/types.d.ts +2 -1
  20. package/dist/likec4diagram/useViewToNodesEdges.js +1 -1
  21. package/dist/likec4model/LikeC4ModelContext.d.ts +5 -2
  22. package/dist/likec4model/useLikeC4ElementsTree.js +1 -1
  23. package/dist/likec4model/useLikeC4Model.d.ts +7 -20
  24. package/dist/navigationpanel/NavigationPanel.js +3 -1
  25. package/dist/navigationpanel/NavigationPanelDropdown.js +1 -1
  26. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +6 -4
  27. package/dist/navigationpanel/walkthrough/WalkthroughPanel.d.ts +1 -0
  28. package/dist/navigationpanel/walkthrough/WalkthroughPanel.js +83 -0
  29. package/dist/overlays/element-details/actor.d.ts +556 -557
  30. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +2 -3
  31. package/dist/overlays/relationship-details/actor.d.ts +1 -1
  32. package/dist/overlays/relationship-details/actor.js +7 -7
  33. package/dist/overlays/relationship-details/compute.js +2 -1
  34. package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +2 -3
  35. package/dist/overlays/relationship-details/hooks.d.ts +18 -19
  36. package/dist/overlays/relationship-details/layout.js +2 -1
  37. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +2 -3
  38. package/dist/overlays/relationships-browser/actor.d.ts +12 -12
  39. package/dist/overlays/relationships-browser/actor.js +8 -8
  40. package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +2 -3
  41. package/dist/overlays/relationships-browser/layout.js +2 -1
  42. package/dist/search/components/ElementsColumn.js +1 -1
  43. package/dist/state/DiagramActorProvider.js +2 -2
  44. package/dist/state/assign.js +6 -6
  45. package/dist/state/diagram-machine.js +14 -14
  46. package/dist/styles-min.css +1 -1
  47. package/dist/styles-xyflow.css +1 -1
  48. package/dist/styles.css +1 -1
  49. package/dist/styles.css2.js +1 -1
  50. package/dist/utils/xyflow.js +2 -2
  51. package/package.json +16 -16
  52. package/panda.buildinfo.json +14 -11
  53. package/src/LikeC4Diagram.props.ts +16 -16
  54. package/src/base/index.ts +1 -2
  55. package/src/base/primitives/MarkdownBlock.tsx +1 -0
  56. package/src/base/primitives/customEdge.ts +5 -5
  57. package/src/base/primitives/element/ElementTitle.tsx +10 -22
  58. package/src/base/types.ts +122 -13
  59. package/src/bundle/LikeC4View.props.ts +4 -3
  60. package/src/bundle/LikeC4View.tsx +6 -6
  61. package/src/bundle/ReactLikeC4.tsx +7 -6
  62. package/src/custom/customNodes.ts +3 -1
  63. package/src/hooks/useSetState.ts +2 -2
  64. package/src/likec4diagram/custom/nodes/ElementActions.tsx +2 -1
  65. package/src/likec4diagram/types.ts +1 -1
  66. package/src/likec4diagram/useViewToNodesEdges.ts +1 -1
  67. package/src/likec4model/LikeC4ModelContext.tsx +5 -2
  68. package/src/likec4model/useLikeC4ElementsTree.ts +3 -3
  69. package/src/likec4model/useLikeC4Model.ts +8 -5
  70. package/src/navigationpanel/NavigationPanel.tsx +2 -0
  71. package/src/navigationpanel/NavigationPanelDropdown.tsx +1 -1
  72. package/src/navigationpanel/walkthrough/ActiveWalkthroughControls.tsx +3 -1
  73. package/src/navigationpanel/walkthrough/WalkthroughPanel.tsx +88 -0
  74. package/src/overlays/relationship-details/compute.ts +3 -12
  75. package/src/overlays/relationship-details/layout.ts +3 -3
  76. package/src/overlays/relationships-browser/actor.ts +2 -1
  77. package/src/overlays/relationships-browser/layout.ts +3 -3
  78. package/src/search/components/ElementsColumn.tsx +3 -3
  79. package/src/utils/xyflow.ts +2 -2
  80. package/dist/base/types.Base.d.ts +0 -54
  81. package/dist/base/types.Base.js +0 -48
  82. package/dist/likec4diagram/custom/edges/NotePopover.d.ts +0 -4
  83. package/src/base/types.Base.ts +0 -104
  84. package/src/likec4diagram/custom/edges/NotePopover.tsx +0 -95
  85. /package/dist/{likec4diagram/custom/edges/NotePopover.css.d.ts → navigationpanel/walkthrough/WalkthroughPanel.css.d.ts} +0 -0
  86. /package/src/{likec4diagram/custom/edges/NotePopover.css.ts → navigationpanel/walkthrough/WalkthroughPanel.css.ts} +0 -0
@@ -3,8 +3,9 @@ import React__default, { useState, Fragment, createContext, useContext, useRef,
3
3
  import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
4
4
  import * as ReactDOM from "react-dom";
5
5
  import ReactDOM__default, { createPortal } from "react-dom";
6
- import { isTagColorSpecified, invariant, hasAtLeast, nonexhaustive, defaultTheme, ElementShapes } from "@likec4/core";
6
+ import { isTagColorSpecified, nonexhaustive, invariant as invariant$1, defaultTheme, ElementShapes } from "@likec4/core";
7
7
  import { DefaultShapeSize, DefaultTextSize, DefaultPaddingSize } from "@likec4/core/types";
8
+ import { invariant } from "@likec4/core/utils";
8
9
  function isObject$1(value) {
9
10
  return typeof value == "object" && value != null && !Array.isArray(value);
10
11
  }
@@ -2801,7 +2802,7 @@ function isOverflowElement(element) {
2801
2802
  overflowX,
2802
2803
  overflowY,
2803
2804
  display
2804
- } = getComputedStyle(element);
2805
+ } = getComputedStyle$1(element);
2805
2806
  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
2806
2807
  }
2807
2808
  const tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]);
@@ -2820,7 +2821,7 @@ function isTopLayer(element) {
2820
2821
  }
2821
2822
  const transformProperties = ["transform", "translate", "scale", "rotate", "perspective"], willChangeValues = ["transform", "translate", "scale", "rotate", "perspective", "filter"], containValues = ["paint", "layout", "strict", "content"];
2822
2823
  function isContainingBlock(elementOrCss) {
2823
- const webkit = isWebKit(), css2 = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
2824
+ const webkit = isWebKit(), css2 = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
2824
2825
  return transformProperties.some((value) => css2[value] ? css2[value] !== "none" : !1) || (css2.containerType ? css2.containerType !== "normal" : !1) || !webkit && (css2.backdropFilter ? css2.backdropFilter !== "none" : !1) || !webkit && (css2.filter ? css2.filter !== "none" : !1) || willChangeValues.some((value) => (css2.willChange || "").includes(value)) || containValues.some((value) => (css2.contain || "").includes(value));
2825
2826
  }
2826
2827
  function getContainingBlock(element) {
@@ -2841,7 +2842,7 @@ const lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#docu
2841
2842
  function isLastTraversableNode(node) {
2842
2843
  return lastTraversableNodeNames.has(getNodeName(node));
2843
2844
  }
2844
- function getComputedStyle(element) {
2845
+ function getComputedStyle$1(element) {
2845
2846
  return getWindow(element).getComputedStyle(element);
2846
2847
  }
2847
2848
  function getNodeScroll(element) {
@@ -3738,7 +3739,7 @@ const offset$3 = function(options) {
3738
3739
  };
3739
3740
  };
3740
3741
  function getCssDimensions(element) {
3741
- const css2 = getComputedStyle(element);
3742
+ const css2 = getComputedStyle$1(element);
3742
3743
  let width = parseFloat(css2.width) || 0, height = parseFloat(css2.height) || 0;
3743
3744
  const hasOffset = isHTMLElement(element), offsetWidth = hasOffset ? element.offsetWidth : width, offsetHeight = hasOffset ? element.offsetHeight : height, shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
3744
3745
  return shouldFallback && (width = offsetWidth, height = offsetHeight), {
@@ -3787,7 +3788,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
3787
3788
  const win2 = getWindow(domElement), offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
3788
3789
  let currentWin = win2, currentIFrame = getFrameElement(currentWin);
3789
3790
  for (; currentIFrame && offsetParent && offsetWin !== currentWin; ) {
3790
- const iframeScale = getScale(currentIFrame), iframeRect = currentIFrame.getBoundingClientRect(), css2 = getComputedStyle(currentIFrame), left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css2.paddingLeft)) * iframeScale.x, top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css2.paddingTop)) * iframeScale.y;
3791
+ const iframeScale = getScale(currentIFrame), iframeRect = currentIFrame.getBoundingClientRect(), css2 = getComputedStyle$1(currentIFrame), left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css2.paddingLeft)) * iframeScale.x, top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css2.paddingTop)) * iframeScale.y;
3791
3792
  x *= iframeScale.x, y2 *= iframeScale.y, width *= iframeScale.x, height *= iframeScale.y, x += left, y2 += top, currentWin = getWindow(currentIFrame), currentIFrame = getFrameElement(currentWin);
3792
3793
  }
3793
3794
  }
@@ -3802,12 +3803,8 @@ function getWindowScrollBarX(element, rect) {
3802
3803
  const leftScroll = getNodeScroll(element).scrollLeft;
3803
3804
  return rect ? rect.left + leftScroll : getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
3804
3805
  }
3805
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
3806
- ignoreScrollbarX === void 0 && (ignoreScrollbarX = !1);
3807
- const htmlRect = documentElement.getBoundingClientRect(), x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 : (
3808
- // RTL <body> scrollbar.
3809
- getWindowScrollBarX(documentElement, htmlRect)
3810
- )), y2 = htmlRect.top + scroll.scrollTop;
3806
+ function getHTMLOffset(documentElement, scroll) {
3807
+ const htmlRect = documentElement.getBoundingClientRect(), x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect), y2 = htmlRect.top + scroll.scrollTop;
3811
3808
  return {
3812
3809
  x,
3813
3810
  y: y2
@@ -3832,7 +3829,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
3832
3829
  const offsetRect = getBoundingClientRect(offsetParent);
3833
3830
  scale2 = getScale(offsetParent), offsets.x = offsetRect.x + offsetParent.clientLeft, offsets.y = offsetRect.y + offsetParent.clientTop;
3834
3831
  }
3835
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, !0) : createCoords(0);
3832
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
3836
3833
  return {
3837
3834
  width: rect.width * scale2.x,
3838
3835
  height: rect.height * scale2.y,
@@ -3847,13 +3844,14 @@ function getDocumentRect(element) {
3847
3844
  const html = getDocumentElement(element), scroll = getNodeScroll(element), body2 = element.ownerDocument.body, width = max$1(html.scrollWidth, html.clientWidth, body2.scrollWidth, body2.clientWidth), height = max$1(html.scrollHeight, html.clientHeight, body2.scrollHeight, body2.clientHeight);
3848
3845
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
3849
3846
  const y2 = -scroll.scrollTop;
3850
- return getComputedStyle(body2).direction === "rtl" && (x += max$1(html.clientWidth, body2.clientWidth) - width), {
3847
+ return getComputedStyle$1(body2).direction === "rtl" && (x += max$1(html.clientWidth, body2.clientWidth) - width), {
3851
3848
  width,
3852
3849
  height,
3853
3850
  x,
3854
3851
  y: y2
3855
3852
  };
3856
3853
  }
3854
+ const SCROLLBAR_MAX = 25;
3857
3855
  function getViewportRect(element, strategy) {
3858
3856
  const win2 = getWindow(element), html = getDocumentElement(element), visualViewport = win2.visualViewport;
3859
3857
  let width = html.clientWidth, height = html.clientHeight, x = 0, y2 = 0;
@@ -3862,6 +3860,11 @@ function getViewportRect(element, strategy) {
3862
3860
  const visualViewportBased = isWebKit();
3863
3861
  (!visualViewportBased || visualViewportBased && strategy === "fixed") && (x = visualViewport.offsetLeft, y2 = visualViewport.offsetTop);
3864
3862
  }
3863
+ const windowScrollbarX = getWindowScrollBarX(html);
3864
+ if (windowScrollbarX <= 0) {
3865
+ const doc = html.ownerDocument, body2 = doc.body, bodyStyles = getComputedStyle(body2), bodyMarginInline = doc.compatMode === "CSS1Compat" && parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0, clippingStableScrollbarWidth = Math.abs(html.clientWidth - body2.clientWidth - bodyMarginInline);
3866
+ clippingStableScrollbarWidth <= SCROLLBAR_MAX && (width -= clippingStableScrollbarWidth);
3867
+ } else windowScrollbarX <= SCROLLBAR_MAX && (width += windowScrollbarX);
3865
3868
  return {
3866
3869
  width,
3867
3870
  height,
@@ -3900,17 +3903,17 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
3900
3903
  }
3901
3904
  function hasFixedPositionAncestor(element, stopNode) {
3902
3905
  const parentNode = getParentNode(element);
3903
- return parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode) ? !1 : getComputedStyle(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
3906
+ return parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode) ? !1 : getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
3904
3907
  }
3905
3908
  function getClippingElementAncestors(element, cache) {
3906
3909
  const cachedResult = cache.get(element);
3907
3910
  if (cachedResult)
3908
3911
  return cachedResult;
3909
3912
  let result = getOverflowAncestors(element, [], !1).filter((el) => isElement(el) && getNodeName(el) !== "body"), currentContainingBlockComputedStyle = null;
3910
- const elementIsFixed = getComputedStyle(element).position === "fixed";
3913
+ const elementIsFixed = getComputedStyle$1(element).position === "fixed";
3911
3914
  let currentNode = elementIsFixed ? getParentNode(element) : element;
3912
3915
  for (; isElement(currentNode) && !isLastTraversableNode(currentNode); ) {
3913
- const computedStyle = getComputedStyle(currentNode), currentNodeIsContaining = isContainingBlock(currentNode);
3916
+ const computedStyle = getComputedStyle$1(currentNode), currentNodeIsContaining = isContainingBlock(currentNode);
3914
3917
  !currentNodeIsContaining && computedStyle.position === "fixed" && (currentContainingBlockComputedStyle = null), (elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode)) ? result = result.filter((ancestor) => ancestor !== currentNode) : currentContainingBlockComputedStyle = computedStyle, currentNode = getParentNode(currentNode);
3915
3918
  }
3916
3919
  return cache.set(element, result), result;
@@ -3968,10 +3971,10 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
3968
3971
  };
3969
3972
  }
3970
3973
  function isStaticPositioned(element) {
3971
- return getComputedStyle(element).position === "static";
3974
+ return getComputedStyle$1(element).position === "static";
3972
3975
  }
3973
3976
  function getTrueOffsetParent(element, polyfill) {
3974
- if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed")
3977
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed")
3975
3978
  return null;
3976
3979
  if (polyfill)
3977
3980
  return polyfill(element);
@@ -4009,7 +4012,7 @@ const getElementRects = async function(data) {
4009
4012
  };
4010
4013
  };
4011
4014
  function isRTL(element) {
4012
- return getComputedStyle(element).direction === "rtl";
4015
+ return getComputedStyle$1(element).direction === "rtl";
4013
4016
  }
4014
4017
  const platform = {
4015
4018
  convertOffsetParentRelativeRectToViewportRelativeRect,
@@ -4726,7 +4729,7 @@ function useDismiss(context2, props) {
4726
4729
  if (isHTMLElement(target) && floating) {
4727
4730
  const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth, canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;
4728
4731
  let xCond = canScrollY && event.offsetX > target.clientWidth;
4729
- if (canScrollY && getComputedStyle(target).direction === "rtl" && (xCond = event.offsetX <= target.offsetWidth - target.clientWidth), xCond || canScrollX && event.offsetY > target.clientHeight)
4732
+ if (canScrollY && getComputedStyle$1(target).direction === "rtl" && (xCond = event.offsetX <= target.offsetWidth - target.clientWidth), xCond || canScrollX && event.offsetY > target.clientHeight)
4730
4733
  return;
4731
4734
  }
4732
4735
  const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId, targetIsInsideChildren = tree && getChildren$1(tree.nodesRef.current, nodeId).some((node) => {
@@ -8691,6 +8694,10 @@ function u$2(r2, n2, o2) {
8691
8694
  if (a === 1) return u$3(r2, n2, o2);
8692
8695
  throw new Error("Wrong number of arguments");
8693
8696
  }
8697
+ function i$1(...e2) {
8698
+ return u$2(n$2, e2);
8699
+ }
8700
+ var n$2 = (e2, r2) => e2.length >= r2;
8694
8701
  function l$1(...n2) {
8695
8702
  return u$2(d, n2);
8696
8703
  }
@@ -10521,7 +10528,7 @@ function nogamma(a, b) {
10521
10528
  var d2 = b - a;
10522
10529
  return d2 ? linear(a, d2) : constant$1(isNaN(a) ? b : a);
10523
10530
  }
10524
- const interpolateRgb = function rgbGamma(y2) {
10531
+ const interpolateRgb = (function rgbGamma(y2) {
10525
10532
  var color2 = gamma(y2);
10526
10533
  function rgb$1(start2, end) {
10527
10534
  var r2 = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);
@@ -10530,7 +10537,7 @@ const interpolateRgb = function rgbGamma(y2) {
10530
10537
  };
10531
10538
  }
10532
10539
  return rgb$1.gamma = rgbGamma, rgb$1;
10533
- }(1);
10540
+ })(1);
10534
10541
  function numberArray(a, b) {
10535
10542
  b || (b = []);
10536
10543
  var n2 = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i2;
@@ -10663,7 +10670,7 @@ function sinh(x) {
10663
10670
  function tanh(x) {
10664
10671
  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
10665
10672
  }
10666
- const interpolateZoom = function zoomRho(rho, rho2, rho4) {
10673
+ const interpolateZoom = (function zoomRho(rho, rho2, rho4) {
10667
10674
  function zoom2(p0, p1) {
10668
10675
  var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i2, S;
10669
10676
  if (d2 < epsilon2)
@@ -10691,7 +10698,7 @@ const interpolateZoom = function zoomRho(rho, rho2, rho4) {
10691
10698
  var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
10692
10699
  return zoomRho(_1, _2, _4);
10693
10700
  }, zoom2;
10694
- }(Math.SQRT2, 2, 4);
10701
+ })(Math.SQRT2, 2, 4);
10695
10702
  var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance == "object" && performance.now ? performance : Date, setFrame = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f2) {
10696
10703
  setTimeout(f2, 17);
10697
10704
  };
@@ -11866,7 +11873,7 @@ const getViewportForBounds = (bounds, width, height, minZoom, maxZoom, padding)
11866
11873
  };
11867
11874
  }, isMacOs = () => typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0;
11868
11875
  function isCoordinateExtent(extent) {
11869
- return extent !== void 0 && extent !== "parent";
11876
+ return extent != null && extent !== "parent";
11870
11877
  }
11871
11878
  function getNodeDimensions(node) {
11872
11879
  return {
@@ -12518,8 +12525,8 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
12518
12525
  continue;
12519
12526
  let nextPosition = { x: x - dragItem.distance.x, y: y2 - dragItem.distance.y };
12520
12527
  snapToGrid && (nextPosition = multiDragSnapOffset ? {
12521
- x: nextPosition.x + multiDragSnapOffset.x,
12522
- y: nextPosition.y + multiDragSnapOffset.y
12528
+ x: Math.round(nextPosition.x + multiDragSnapOffset.x),
12529
+ y: Math.round(nextPosition.y + multiDragSnapOffset.y)
12523
12530
  } : snapPosition(nextPosition, snapGrid));
12524
12531
  let adjustedNodeExtent = null;
12525
12532
  if (isMultiDrag && nodeExtent && !dragItem.extent && nodesBox) {
@@ -14629,13 +14636,13 @@ const ArrowSymbol = ({ color: color2 = "none", strokeWidth = 1 }) => {
14629
14636
  strokeWidth,
14630
14637
  ...color2 && { stroke: color2 }
14631
14638
  };
14632
- return jsx("polyline", { style: style2, strokeLinecap: "round", strokeLinejoin: "round", fill: "none", points: "-5,-4 0,0 -5,4" });
14639
+ return jsx("polyline", { className: "arrow", style: style2, strokeLinecap: "round", fill: "none", strokeLinejoin: "round", points: "-5,-4 0,0 -5,4" });
14633
14640
  }, ArrowClosedSymbol = ({ color: color2 = "none", strokeWidth = 1 }) => {
14634
14641
  const style2 = {
14635
14642
  strokeWidth,
14636
14643
  ...color2 && { stroke: color2, fill: color2 }
14637
14644
  };
14638
- return jsx("polyline", { style: style2, strokeLinecap: "round", strokeLinejoin: "round", points: "-5,-4 0,0 -5,4 -5,-4" });
14645
+ return jsx("polyline", { className: "arrowclosed", style: style2, strokeLinecap: "round", strokeLinejoin: "round", points: "-5,-4 0,0 -5,4 -5,-4" });
14639
14646
  }, MarkerSymbols = {
14640
14647
  [MarkerType.Arrow]: ArrowSymbol,
14641
14648
  [MarkerType.ArrowClosed]: ArrowClosedSymbol
@@ -15880,9 +15887,9 @@ function createIsCircular(areItemsEqual) {
15880
15887
  function getStrictProperties(object2) {
15881
15888
  return getOwnPropertyNames(object2).concat(getOwnPropertySymbols(object2));
15882
15889
  }
15883
- var hasOwn = Object.hasOwn || function(object2, property) {
15890
+ var hasOwn = Object.hasOwn || (function(object2, property) {
15884
15891
  return hasOwnProperty.call(object2, property);
15885
- };
15892
+ });
15886
15893
  function sameValueZeroEqual(a, b) {
15887
15894
  return a === b || !a && !b && a !== a && b !== b;
15888
15895
  }
@@ -17487,7 +17494,7 @@ function bezierControlPoints(diagramEdge) {
17487
17494
  const handles = [
17488
17495
  // start
17489
17496
  ];
17490
- for (; hasAtLeast(bezierPoints, 3); ) {
17497
+ for (; i$1(bezierPoints, 3); ) {
17491
17498
  const [cp1, cp2, end, ...rest] = bezierPoints, bezier = new Bezier(start2[0], start2[1], cp1[0], cp1[1], cp2[0], cp2[1], end[0], end[1]), inflections = bezier.inflections();
17492
17499
  inflections.length === 0 && inflections.push(0.5), inflections.forEach((t2) => {
17493
17500
  const { x, y: y2 } = bezier.get(t2);
@@ -17518,7 +17525,7 @@ function bezierPath(bezierSpline) {
17518
17525
  let [start2, ...points] = bezierSpline;
17519
17526
  invariant(start2, "start should be defined");
17520
17527
  let path = `M ${start2[0]},${start2[1]}`;
17521
- for (; hasAtLeast(points, 3); ) {
17528
+ for (; i$1(points, 3); ) {
17522
17529
  const [cp1, cp2, end, ...rest] = points;
17523
17530
  path = path + ` C ${cp1[0]},${cp1[1]} ${cp2[0]},${cp2[1]} ${end[0]},${end[1]}`, points = rest;
17524
17531
  }
@@ -17833,9 +17840,9 @@ function createSystem(rootActor, options) {
17833
17840
  }
17834
17841
  let executingCustomAction = !1;
17835
17842
  const $$ACTOR_TYPE = 1;
17836
- let ProcessingStatus = /* @__PURE__ */ function(ProcessingStatus2) {
17843
+ let ProcessingStatus = /* @__PURE__ */ (function(ProcessingStatus2) {
17837
17844
  return ProcessingStatus2[ProcessingStatus2.NotStarted = 0] = "NotStarted", ProcessingStatus2[ProcessingStatus2.Running = 1] = "Running", ProcessingStatus2[ProcessingStatus2.Stopped = 2] = "Stopped", ProcessingStatus2;
17838
- }({});
17845
+ })({});
17839
17846
  const defaultOptions = {
17840
17847
  clock: {
17841
17848
  setTimeout: (fn, ms) => setTimeout(fn, ms),
@@ -19612,11 +19619,16 @@ const createRecipe = (name, defaultVariants, compoundVariants) => {
19612
19619
  },
19613
19620
  getVariantProps: likec4tagFn.getVariantProps
19614
19621
  }), markdownBlockFn = /* @__PURE__ */ createRecipe("likec4-markdown-block", {
19615
- uselikec4palette: !1
19622
+ uselikec4palette: !1,
19623
+ value: "markdown"
19616
19624
  }, []), markdownBlockVariantMap = {
19617
19625
  uselikec4palette: [
19618
19626
  "true",
19619
19627
  "false"
19628
+ ],
19629
+ value: [
19630
+ "markdown",
19631
+ "plaintext"
19620
19632
  ]
19621
19633
  }, markdownBlockVariantKeys = Object.keys(markdownBlockVariantMap), markdownBlock = /* @__PURE__ */ Object.assign(memo(markdownBlockFn.recipeFn), {
19622
19634
  __recipe__: !0,
@@ -20468,7 +20480,8 @@ const MarkdownBlock = forwardRef(({
20468
20480
  ...props,
20469
20481
  className: cx(
20470
20482
  markdownBlock({
20471
- uselikec4palette
20483
+ uselikec4palette,
20484
+ value: value.isMarkdown ? "markdown" : "plaintext"
20472
20485
  }),
20473
20486
  className
20474
20487
  ),
@@ -20528,7 +20541,7 @@ function ElementTitle({ id: id2, data, iconSize }) {
20528
20541
  children: data.technology
20529
20542
  }
20530
20543
  ),
20531
- data.description?.nonEmpty && (data.description.isMarkdown ? /* @__PURE__ */ jsx(
20544
+ data.description?.nonEmpty && /* @__PURE__ */ jsx(
20532
20545
  MarkdownBlock,
20533
20546
  {
20534
20547
  className: cx(classes2.description, "likec4-element-description"),
@@ -20538,15 +20551,7 @@ function ElementTitle({ id: id2, data, iconSize }) {
20538
20551
  maxHeight: data.description.isMarkdown ? "8rem" : void 0,
20539
20552
  lineClamp: isSmOrXs ? 3 : 5
20540
20553
  }
20541
- ) : /* @__PURE__ */ jsx(
20542
- Text,
20543
- {
20544
- component: "div",
20545
- className: cx(classes2.description, "likec4-element-description"),
20546
- lineClamp: isSmOrXs ? 3 : 5,
20547
- children: data.description.text
20548
- }
20549
- ))
20554
+ )
20550
20555
  ] })
20551
20556
  ]
20552
20557
  }
@@ -20591,7 +20596,7 @@ const style = {
20591
20596
  }
20592
20597
  }), buttons2;
20593
20598
  }, [enableNavigateTo, enableRelationshipBrowser, diagram, modelFqn, navigateTo, props.id]);
20594
- return extraButtons && hasAtLeast(extraButtons, 1) && (buttons = [...buttons, ...extraButtons]), /* @__PURE__ */ jsx(ElementActionButtons, { ...props, buttons });
20599
+ return extraButtons && i$1(extraButtons, 1) && (buttons = [...buttons, ...extraButtons]), /* @__PURE__ */ jsx(ElementActionButtons, { ...props, buttons });
20595
20600
  }, DeploymentElementActions = ({
20596
20601
  extraButtons,
20597
20602
  ...props
@@ -20613,7 +20618,7 @@ const style = {
20613
20618
  }
20614
20619
  }), buttons2;
20615
20620
  }, [enableNavigateTo, enableRelationshipBrowser, diagram, modelFqn, navigateTo, props.id]);
20616
- return extraButtons && hasAtLeast(extraButtons, 1) && (buttons = [...buttons, ...extraButtons]), /* @__PURE__ */ jsx(ElementActionButtons, { ...props, buttons });
20621
+ return extraButtons && i$1(extraButtons, 1) && (buttons = [...buttons, ...extraButtons]), /* @__PURE__ */ jsx(ElementActionButtons, { ...props, buttons });
20617
20622
  }, {
20618
20623
  primary,
20619
20624
  secondary,
@@ -20639,7 +20644,7 @@ const style = {
20639
20644
  function useHandlers(target, props) {
20640
20645
  const { onChange: triggerOnChange } = useDiagramEventHandlers(), diagram = useDiagram(), [originalColor, setOriginalColor] = useState(null), onColorPreview = useCallbackRef((color2) => {
20641
20646
  if (color2 === null) {
20642
- invariant(originalColor, "originalColor is null"), setOriginalColor(null), diagram.updateNodeData(props.id, {
20647
+ invariant$1(originalColor, "originalColor is null"), setOriginalColor(null), diagram.updateNodeData(props.id, {
20643
20648
  color: originalColor
20644
20649
  });
20645
20650
  return;
@@ -21512,7 +21517,7 @@ export {
21512
21517
  parseThemeColor as Z,
21513
21518
  createEventHandler as _,
21514
21519
  useMediaQuery as a,
21515
- isBrowser as a$,
21520
+ useDebouncedCallback as a$,
21516
21521
  useDelayGroup as a0,
21517
21522
  useFloating as a1,
21518
21523
  useInteractions as a2,
@@ -21523,290 +21528,291 @@ export {
21523
21528
  Loader as a7,
21524
21529
  createScopedKeydownHandler as a8,
21525
21530
  getContrastColor as a9,
21526
- isControllingVariants as aA,
21527
- isVariantNode as aB,
21528
- hasReducedMotionListener as aC,
21529
- initPrefersReducedMotion as aD,
21530
- prefersReducedMotion as aE,
21531
- transformProps as aF,
21532
- featureDefinitions as aG,
21533
- resolveVariantFromProps as aH,
21534
- isCSSVariableName as aI,
21535
- buildHTMLStyles as aJ,
21536
- scrapeMotionValuesFromProps$1 as aK,
21537
- camelToDash as aL,
21538
- scrapeMotionValuesFromProps as aM,
21539
- buildSVGAttrs as aN,
21540
- isSVGTag as aO,
21541
- isSVGComponent as aP,
21542
- optimizedAppearDataAttribute as aQ,
21543
- isVariantLabel as aR,
21544
- variantProps as aS,
21545
- isAnimationControls as aT,
21546
- variantPriorityOrder as aU,
21547
- isRefObject as aV,
21548
- SwitchLayoutGroupContext as aW,
21549
- addScaleCorrector as aX,
21550
- resolveMotionValue as aY,
21551
- scaleCorrectors as aZ,
21552
- useDebouncedCallback as a_,
21531
+ isMotionValue as aA,
21532
+ isControllingVariants as aB,
21533
+ isVariantNode as aC,
21534
+ hasReducedMotionListener as aD,
21535
+ initPrefersReducedMotion as aE,
21536
+ prefersReducedMotion as aF,
21537
+ transformProps as aG,
21538
+ featureDefinitions as aH,
21539
+ resolveVariantFromProps as aI,
21540
+ isCSSVariableName as aJ,
21541
+ buildHTMLStyles as aK,
21542
+ scrapeMotionValuesFromProps$1 as aL,
21543
+ camelToDash as aM,
21544
+ scrapeMotionValuesFromProps as aN,
21545
+ buildSVGAttrs as aO,
21546
+ isSVGTag as aP,
21547
+ isSVGComponent as aQ,
21548
+ optimizedAppearDataAttribute as aR,
21549
+ isVariantLabel as aS,
21550
+ variantProps as aT,
21551
+ isAnimationControls as aU,
21552
+ variantPriorityOrder as aV,
21553
+ isRefObject as aW,
21554
+ SwitchLayoutGroupContext as aX,
21555
+ addScaleCorrector as aY,
21556
+ resolveMotionValue as aZ,
21557
+ scaleCorrectors as a_,
21553
21558
  findElementAncestor as aa,
21554
21559
  useClickOutside as ab,
21555
21560
  createReactComponent as ac,
21556
21561
  C as ad,
21557
21562
  s as ae,
21558
21563
  u$2 as af,
21559
- number as ag,
21560
- alpha as ah,
21561
- clamp$1 as ai,
21562
- percent as aj,
21563
- isCSSVariableToken as ak,
21564
- px as al,
21565
- transformPropOrder as am,
21566
- degrees$1 as an,
21567
- vw as ao,
21568
- vh as ap,
21569
- numberValueTypes as aq,
21570
- MotionConfigContext as ar,
21571
- useConstant as as,
21572
- PresenceContext as at,
21573
- useIsomorphicLayoutEffect$1 as au,
21574
- LayoutGroupContext as av,
21575
- loadFeatures as aw,
21576
- LazyContext as ax,
21577
- loadExternalIsValidProp as ay,
21578
- isMotionValue as az,
21564
+ i$1 as ag,
21565
+ number as ah,
21566
+ alpha as ai,
21567
+ clamp$1 as aj,
21568
+ percent as ak,
21569
+ isCSSVariableToken as al,
21570
+ px as am,
21571
+ transformPropOrder as an,
21572
+ degrees$1 as ao,
21573
+ vw as ap,
21574
+ vh as aq,
21575
+ numberValueTypes as ar,
21576
+ MotionConfigContext as as,
21577
+ useConstant as at,
21578
+ PresenceContext as au,
21579
+ useIsomorphicLayoutEffect$1 as av,
21580
+ LayoutGroupContext as aw,
21581
+ loadFeatures as ax,
21582
+ LazyContext as ay,
21583
+ loadExternalIsValidProp as az,
21579
21584
  useMantineTheme as b,
21580
- Box as b$,
21581
- css as b0,
21582
- getPatternStyles as b1,
21583
- patternFns as b2,
21584
- splitProps as b3,
21585
- styled as b4,
21586
- Background as b5,
21587
- BackgroundVariant as b6,
21588
- useIsZoomTooSmall as b7,
21589
- useXYStoreApi as b8,
21590
- index as b9,
21591
- STATE_DELIMITER as bA,
21592
- mapValues as bB,
21593
- toArray as bC,
21594
- formatTransitions as bD,
21595
- toTransitionConfigArray as bE,
21596
- formatTransition as bF,
21597
- evaluateGuard as bG,
21598
- getCandidates as bH,
21599
- NULL_EVENT as bI,
21600
- createInvokeId as bJ,
21601
- getDelayedTransitions as bK,
21602
- formatInitialTransition as bL,
21603
- createErrorActorEvent as bM,
21604
- XSTATE_ERROR as bN,
21605
- cancel as bO,
21606
- raise as bP,
21607
- spawnChild as bQ,
21608
- stopChild as bR,
21609
- memo as bS,
21610
- createRecipe as bT,
21611
- mergeRecipes as bU,
21612
- compact as bV,
21613
- getSlotCompoundVariant as bW,
21614
- deepEqual as bX,
21615
- ActionIcon as bY,
21616
- IconZoomScan as bZ,
21617
- MotionDiv as b_,
21618
- stopPropagation as ba,
21619
- cx as bb,
21620
- roundDpr as bc,
21621
- useStore as bd,
21622
- useUpdateEffect as be,
21623
- XSTATE_STOP as bf,
21624
- cloneMachineSnapshot as bg,
21625
- ProcessingStatus as bh,
21626
- resolveReferencedActor as bi,
21627
- createActor as bj,
21628
- resolveStateValue as bk,
21629
- getAllStateNodes as bl,
21630
- getStateNodes as bm,
21631
- createMachineSnapshot as bn,
21632
- isInFinalState as bo,
21633
- macrostep as bp,
21634
- transitionNode as bq,
21635
- resolveActionsAndContext as br,
21636
- createInitEvent as bs,
21637
- microstep as bt,
21638
- getInitialStateNodes as bu,
21639
- toStatePath as bv,
21640
- isStateId as bw,
21641
- getStateNodeByPath as bx,
21642
- getPersistedSnapshot as by,
21643
- $$ACTOR_TYPE as bz,
21585
+ MotionDiv as b$,
21586
+ isBrowser as b0,
21587
+ css as b1,
21588
+ getPatternStyles as b2,
21589
+ patternFns as b3,
21590
+ splitProps as b4,
21591
+ styled as b5,
21592
+ Background as b6,
21593
+ BackgroundVariant as b7,
21594
+ useIsZoomTooSmall as b8,
21595
+ useXYStoreApi as b9,
21596
+ $$ACTOR_TYPE as bA,
21597
+ STATE_DELIMITER as bB,
21598
+ mapValues as bC,
21599
+ toArray as bD,
21600
+ formatTransitions as bE,
21601
+ toTransitionConfigArray as bF,
21602
+ formatTransition as bG,
21603
+ evaluateGuard as bH,
21604
+ getCandidates as bI,
21605
+ NULL_EVENT as bJ,
21606
+ createInvokeId as bK,
21607
+ getDelayedTransitions as bL,
21608
+ formatInitialTransition as bM,
21609
+ createErrorActorEvent as bN,
21610
+ XSTATE_ERROR as bO,
21611
+ cancel as bP,
21612
+ raise as bQ,
21613
+ spawnChild as bR,
21614
+ stopChild as bS,
21615
+ memo as bT,
21616
+ createRecipe as bU,
21617
+ mergeRecipes as bV,
21618
+ compact as bW,
21619
+ getSlotCompoundVariant as bX,
21620
+ deepEqual as bY,
21621
+ ActionIcon as bZ,
21622
+ IconZoomScan as b_,
21623
+ index as ba,
21624
+ stopPropagation as bb,
21625
+ cx as bc,
21626
+ roundDpr as bd,
21627
+ useStore as be,
21628
+ useUpdateEffect as bf,
21629
+ XSTATE_STOP as bg,
21630
+ cloneMachineSnapshot as bh,
21631
+ ProcessingStatus as bi,
21632
+ resolveReferencedActor as bj,
21633
+ createActor as bk,
21634
+ resolveStateValue as bl,
21635
+ getAllStateNodes as bm,
21636
+ getStateNodes as bn,
21637
+ createMachineSnapshot as bo,
21638
+ isInFinalState as bp,
21639
+ macrostep as bq,
21640
+ transitionNode as br,
21641
+ resolveActionsAndContext as bs,
21642
+ createInitEvent as bt,
21643
+ microstep as bu,
21644
+ getInitialStateNodes as bv,
21645
+ toStatePath as bw,
21646
+ isStateId as bx,
21647
+ getStateNodeByPath as by,
21648
+ getPersistedSnapshot as bz,
21644
21649
  useMantineStyleNonce as c,
21645
- CompoundNodeContainer as c$,
21646
- n$1 as c0,
21647
- EdgeLabelRenderer as c1,
21648
- e as c2,
21649
- getNodeDimensions as c3,
21650
- useXYFlow as c4,
21651
- useDiagram as c5,
21652
- useEnabledFeatures as c6,
21653
- useXYInternalNode as c7,
21654
- isSamePoint as c8,
21655
- bezierControlPoints as c9,
21656
- isMacOs as cA,
21657
- IconCheck as cB,
21658
- IconId as cC,
21659
- HStack as cD,
21660
- ElementTag as cE,
21661
- MarkdownBlock as cF,
21662
- cva as cG,
21663
- Button as cH,
21664
- MotionSpan as cI,
21665
- Portal as cJ,
21666
- useLikeC4ProjectsContext as cK,
21667
- useLikeC4ProjectId as cL,
21668
- Menu as cM,
21669
- MenuTarget as cN,
21670
- MenuDropdown as cO,
21671
- MenuItem as cP,
21672
- useLikeC4Model as cQ,
21673
- Divider as cR,
21674
- o$1 as cS,
21675
- useDiagramActorRef as cT,
21676
- useCurrentViewModel as cU,
21677
- useActorRef as cV,
21678
- useUpdateEffect$1 as cW,
21679
- Group as cX,
21680
- getBezierPath as cY,
21681
- ElementActionButtons as cZ,
21682
- IconTransform as c_,
21683
- bezierPath as ca,
21684
- ViewGroupNode as cb,
21685
- CompoundDeploymentNode as cc,
21686
- CompoundElementNode as cd,
21687
- DeploymentNode as ce,
21688
- ElementNode as cf,
21689
- useDiagramActorSnapshot as cg,
21690
- n as ch,
21691
- MotionButton as ci,
21692
- Tooltip$1 as cj,
21693
- useDiagramEventHandlers as ck,
21694
- useDiagramContext as cl,
21695
- useHover$1 as cm,
21696
- PopoverTarget as cn,
21697
- PopoverDropdown as co,
21698
- FloatingIndicator as cp,
21699
- Flex as cq,
21700
- clampUseMovePosition as cr,
21701
- useMove as cs,
21702
- useMantinePortalProps as ct,
21703
- hstack as cu,
21704
- TooltipGroup as cv,
21705
- shallowEqual as cw,
21706
- useSelector as cx,
21707
- useCurrentViewId as cy,
21708
- IconFileSymlink as cz,
21650
+ IconTransform as c$,
21651
+ Box as c0,
21652
+ n$1 as c1,
21653
+ EdgeLabelRenderer as c2,
21654
+ e as c3,
21655
+ getNodeDimensions as c4,
21656
+ useXYFlow as c5,
21657
+ useDiagram as c6,
21658
+ useEnabledFeatures as c7,
21659
+ useXYInternalNode as c8,
21660
+ isSamePoint as c9,
21661
+ IconFileSymlink as cA,
21662
+ isMacOs as cB,
21663
+ IconCheck as cC,
21664
+ IconId as cD,
21665
+ HStack as cE,
21666
+ ElementTag as cF,
21667
+ MarkdownBlock as cG,
21668
+ cva as cH,
21669
+ Button as cI,
21670
+ MotionSpan as cJ,
21671
+ Portal as cK,
21672
+ useLikeC4ProjectsContext as cL,
21673
+ useLikeC4ProjectId as cM,
21674
+ Menu as cN,
21675
+ MenuTarget as cO,
21676
+ MenuDropdown as cP,
21677
+ MenuItem as cQ,
21678
+ useLikeC4Model as cR,
21679
+ Divider as cS,
21680
+ o$1 as cT,
21681
+ useDiagramActorRef as cU,
21682
+ useCurrentViewModel as cV,
21683
+ useActorRef as cW,
21684
+ useUpdateEffect$1 as cX,
21685
+ Group as cY,
21686
+ getBezierPath as cZ,
21687
+ ElementActionButtons as c_,
21688
+ bezierControlPoints as ca,
21689
+ bezierPath as cb,
21690
+ ViewGroupNode as cc,
21691
+ CompoundDeploymentNode as cd,
21692
+ CompoundElementNode as ce,
21693
+ DeploymentNode as cf,
21694
+ ElementNode as cg,
21695
+ useDiagramActorSnapshot as ch,
21696
+ n as ci,
21697
+ MotionButton as cj,
21698
+ Tooltip$1 as ck,
21699
+ useDiagramEventHandlers as cl,
21700
+ useDiagramContext as cm,
21701
+ useHover$1 as cn,
21702
+ PopoverTarget as co,
21703
+ PopoverDropdown as cp,
21704
+ FloatingIndicator as cq,
21705
+ Flex as cr,
21706
+ clampUseMovePosition as cs,
21707
+ useMove as ct,
21708
+ useMantinePortalProps as cu,
21709
+ hstack as cv,
21710
+ TooltipGroup as cw,
21711
+ shallowEqual as cx,
21712
+ useSelector as cy,
21713
+ useCurrentViewId as cz,
21709
21714
  alpha$1 as d,
21710
- getBoundsOfRects as d$,
21711
- CompoundTitle as d0,
21712
- CompoundDetailsButton as d1,
21713
- ElementNodeContainer as d2,
21714
- ElementShape as d3,
21715
- ElementTitle as d4,
21716
- ElementTags as d5,
21717
- Handle as d6,
21718
- Position as d7,
21719
- ElementDetailsButton as d8,
21720
- getDefaultExportFromCjs as d9,
21721
- IconOrShapeRenderer as dA,
21722
- FocusTrap as dB,
21723
- t$3 as dC,
21724
- useOnDiagramEvent as dD,
21725
- findDiagramEdge as dE,
21726
- findDiagramNode as dF,
21727
- autoUpdate as dG,
21728
- Space as dH,
21729
- computePosition as dI,
21730
- offset$2 as dJ,
21731
- autoPlacement as dK,
21732
- size$1 as dL,
21733
- hide$1 as dM,
21734
- useOptionalCurrentViewModel as dN,
21735
- ButtonGroup as dO,
21736
- EnsureCurrentViewModel as dP,
21737
- useIsReducedGraphics as dQ,
21738
- usePanningAtom as dR,
21739
- useTimeout as dS,
21740
- useCustomCompareMemo as dT,
21741
- useLikeC4Specification as dU,
21742
- r as dV,
21743
- applyEdgeChanges as dW,
21744
- applyNodeChanges as dX,
21745
- getViewportForBounds as dY,
21746
- typedSystem as dZ,
21747
- centerXYInternalNode as d_,
21748
- l$1 as da,
21749
- IconSelector as db,
21750
- SegmentedControl as dc,
21751
- ReactFlowProvider as dd,
21752
- useStoreApi as de,
21753
- useReactFlow as df,
21754
- Panel as dg,
21755
- m as dh,
21756
- Stack as di,
21757
- u as dj,
21758
- useSyncedRef as dk,
21759
- IconRenderer as dl,
21760
- useTimeoutEffect as dm,
21761
- ReactRemoveScroll as dn,
21762
- ActionIconGroup as dp,
21763
- IfEnabled as dq,
21764
- DiagramFeatures as dr,
21765
- t$1 as ds,
21766
- customNode as dt,
21767
- useXYStore as du,
21768
- useReducedMotionConfig as dv,
21769
- Overlay as dw,
21770
- sva as dx,
21771
- t$2 as dy,
21772
- VisuallyHidden as dz,
21715
+ centerXYInternalNode as d$,
21716
+ CompoundNodeContainer as d0,
21717
+ CompoundTitle as d1,
21718
+ CompoundDetailsButton as d2,
21719
+ ElementNodeContainer as d3,
21720
+ ElementShape as d4,
21721
+ ElementTitle as d5,
21722
+ ElementTags as d6,
21723
+ Handle as d7,
21724
+ Position as d8,
21725
+ ElementDetailsButton as d9,
21726
+ VisuallyHidden as dA,
21727
+ IconOrShapeRenderer as dB,
21728
+ FocusTrap as dC,
21729
+ t$3 as dD,
21730
+ useOnDiagramEvent as dE,
21731
+ findDiagramEdge as dF,
21732
+ findDiagramNode as dG,
21733
+ autoUpdate as dH,
21734
+ Space as dI,
21735
+ computePosition as dJ,
21736
+ offset$2 as dK,
21737
+ autoPlacement as dL,
21738
+ size$1 as dM,
21739
+ hide$1 as dN,
21740
+ useOptionalCurrentViewModel as dO,
21741
+ ButtonGroup as dP,
21742
+ EnsureCurrentViewModel as dQ,
21743
+ useIsReducedGraphics as dR,
21744
+ usePanningAtom as dS,
21745
+ useTimeout as dT,
21746
+ useCustomCompareMemo as dU,
21747
+ useLikeC4Specification as dV,
21748
+ r as dW,
21749
+ applyEdgeChanges as dX,
21750
+ applyNodeChanges as dY,
21751
+ getViewportForBounds as dZ,
21752
+ typedSystem as d_,
21753
+ getDefaultExportFromCjs as da,
21754
+ l$1 as db,
21755
+ IconSelector as dc,
21756
+ SegmentedControl as dd,
21757
+ ReactFlowProvider as de,
21758
+ useStoreApi as df,
21759
+ useReactFlow as dg,
21760
+ Panel as dh,
21761
+ m as di,
21762
+ Stack as dj,
21763
+ u as dk,
21764
+ useSyncedRef as dl,
21765
+ IconRenderer as dm,
21766
+ useTimeoutEffect as dn,
21767
+ ReactRemoveScroll as dp,
21768
+ ActionIconGroup as dq,
21769
+ IfEnabled as dr,
21770
+ DiagramFeatures as ds,
21771
+ t$1 as dt,
21772
+ customNode as du,
21773
+ useXYStore as dv,
21774
+ useReducedMotionConfig as dw,
21775
+ Overlay as dx,
21776
+ sva as dy,
21777
+ t$2 as dz,
21773
21778
  em as e,
21774
- boxToRect as e0,
21775
- and as e1,
21776
- AllDisabled as e2,
21777
- focusedBounds as e3,
21778
- or as e4,
21779
- nodeToRect as e5,
21780
- useCustomCompareEffect as e6,
21781
- DiagramActorContextProvider as e7,
21782
- CurrentViewModelContext as e8,
21783
- IconRendererProvider as e9,
21784
- DiagramEventHandlers as ea,
21785
- ReduceGraphicsContext as eb,
21786
- RootContainer as ec,
21787
- useMutationObserver as ed,
21788
- shallowEqual$1 as ee,
21789
- LikeC4ProjectsContext as ef,
21790
- LikeC4ModelContext as eg,
21791
- useLikeC4ViewModel as eh,
21792
- useHasProjects as ei,
21793
- useLikeC4Projects as ej,
21794
- useSetState as ek,
21795
- CompoundActionButton as el,
21796
- DefaultHandles as em,
21797
- CompoundActions as en,
21798
- CompoundDeploymentToolbar as eo,
21799
- CompoundDetailsButtonWithHandler as ep,
21800
- CompoundElementToolbar as eq,
21801
- DeploymentElementActions as er,
21802
- DeploymentElementToolbar as es,
21803
- ElementActions as et,
21804
- ElementDetailsButtonWithHandler as eu,
21805
- ElementToolbar as ev,
21806
- Toolbar as ew,
21807
- IfNotEnabled as ex,
21808
- IfNotReadOnly as ey,
21809
- IfReadOnly as ez,
21779
+ getBoundsOfRects as e0,
21780
+ boxToRect as e1,
21781
+ and as e2,
21782
+ AllDisabled as e3,
21783
+ focusedBounds as e4,
21784
+ or as e5,
21785
+ nodeToRect as e6,
21786
+ useCustomCompareEffect as e7,
21787
+ DiagramActorContextProvider as e8,
21788
+ CurrentViewModelContext as e9,
21789
+ IfReadOnly as eA,
21790
+ IconRendererProvider as ea,
21791
+ DiagramEventHandlers as eb,
21792
+ ReduceGraphicsContext as ec,
21793
+ RootContainer as ed,
21794
+ useMutationObserver as ee,
21795
+ shallowEqual$1 as ef,
21796
+ LikeC4ProjectsContext as eg,
21797
+ LikeC4ModelContext as eh,
21798
+ useLikeC4ViewModel as ei,
21799
+ useHasProjects as ej,
21800
+ useLikeC4Projects as ek,
21801
+ useSetState as el,
21802
+ CompoundActionButton as em,
21803
+ DefaultHandles as en,
21804
+ CompoundActions as eo,
21805
+ CompoundDeploymentToolbar as ep,
21806
+ CompoundDetailsButtonWithHandler as eq,
21807
+ CompoundElementToolbar as er,
21808
+ DeploymentElementActions as es,
21809
+ DeploymentElementToolbar as et,
21810
+ ElementActions as eu,
21811
+ ElementDetailsButtonWithHandler as ev,
21812
+ ElementToolbar as ew,
21813
+ Toolbar as ex,
21814
+ IfNotEnabled as ey,
21815
+ IfNotReadOnly as ez,
21810
21816
  getPrimaryContrastColor as f,
21811
21817
  getPrimaryShade as g,
21812
21818
  deepMerge as h,