likec4 1.57.0 → 1.59.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 (178) hide show
  1. package/__app__/codegen/react.mjs +7 -8
  2. package/__app__/codegen/webcomponent.mjs +78 -889
  3. package/__app__/src/aichat/index.mjs +8 -1
  4. package/__app__/src/chunks/AIChat.mjs +956 -0
  5. package/__app__/src/chunks/LikeC4Styles.mjs +2164 -0
  6. package/__app__/src/chunks/ProjectsOverview.mjs +537 -0
  7. package/__app__/src/chunks/es.mjs +439 -0
  8. package/__app__/src/chunks/hooks.mjs +458 -0
  9. package/__app__/src/chunks/libs/@floating-ui.mjs +2218 -0
  10. package/__app__/src/chunks/libs/@mantine.mjs +12974 -0
  11. package/__app__/src/chunks/libs/@tanstack-ai.mjs +1768 -0
  12. package/__app__/src/chunks/libs/@tanstack.mjs +2693 -0
  13. package/__app__/src/chunks/libs/@xstate/react.mjs +1996 -0
  14. package/__app__/src/chunks/libs/@xyflow/react.mjs +5280 -0
  15. package/__app__/src/chunks/libs/bezier-js.mjs +1006 -0
  16. package/__app__/src/chunks/libs/d3.mjs +2842 -0
  17. package/__app__/src/chunks/libs/fast-equals.mjs +268 -0
  18. package/__app__/src/chunks/libs/framer.mjs +5905 -0
  19. package/__app__/src/chunks/libs/zod.mjs +3173 -0
  20. package/__app__/src/chunks/rolldown-runtime.mjs +30 -0
  21. package/__app__/src/chunks/styled-system.mjs +1047 -0
  22. package/__app__/src/fonts.css +1 -1
  23. package/__app__/src/main.mjs +27659 -14
  24. package/__app__/src/style.css +1 -1
  25. package/dist/chunks/dist.mjs +10 -0
  26. package/dist/chunks/enableServer.mjs +1 -1
  27. package/dist/chunks/filenames.mjs +2 -2
  28. package/dist/chunks/index.d.mts +9 -9
  29. package/dist/chunks/index2.d.mts +2167 -867
  30. package/dist/chunks/libs/@chevrotain/gast.mjs +1 -1
  31. package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +1 -1
  32. package/dist/chunks/libs/@logtape/logtape.mjs +4 -3
  33. package/dist/chunks/libs/@ts-graphviz/common.d.mts +1 -2
  34. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -1
  35. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -2
  36. package/dist/chunks/libs/chevrotain.mjs +25 -25
  37. package/dist/chunks/libs/json5.mjs +1 -1
  38. package/dist/chunks/libs/langium.d.mts +2940 -2914
  39. package/dist/chunks/libs/langium.mjs +9 -9
  40. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  41. package/dist/chunks/libs/p-queue.mjs +1 -1
  42. package/dist/chunks/libs/package-manager-detector.mjs +1 -1
  43. package/dist/chunks/libs/pako.mjs +1 -1
  44. package/dist/chunks/libs/picomatch.mjs +1 -1
  45. package/dist/chunks/libs/pretty-ms.mjs +1 -1
  46. package/dist/chunks/libs/remeda.mjs +1 -1
  47. package/dist/chunks/libs/ufo.mjs +1 -1
  48. package/dist/chunks/libs/unstorage.d.mts +1 -0
  49. package/dist/chunks/libs/unstorage.mjs +1 -1
  50. package/dist/chunks/libs/which.mjs +1 -1
  51. package/dist/chunks/libs/zod.d.mts +48 -36
  52. package/dist/chunks/libs/zod.mjs +65 -0
  53. package/dist/chunks/logger.mjs +1 -0
  54. package/dist/chunks/node.mjs +65 -63
  55. package/dist/chunks/rolldown-runtime.mjs +1 -1
  56. package/dist/chunks/sequence-view.mjs +1 -1
  57. package/dist/chunks/{plugin.mjs → vite-plugin.mjs} +41 -41
  58. package/dist/cli/index.mjs +186 -144
  59. package/dist/index.d.mts +3 -4
  60. package/dist/index.mjs +1 -1
  61. package/dist/model/index.d.mts +6 -5
  62. package/dist/vite-plugin/index.d.mts +6 -9
  63. package/dist/vite-plugin/index.mjs +1 -1
  64. package/dist/vite-plugin/internal/index.d.mts +64 -64
  65. package/dist/vite-plugin/internal/index.mjs +946 -1
  66. package/package.json +51 -52
  67. package/react/index.d.mts +853 -134
  68. package/react/index.mjs +49718 -44030
  69. package/__app__/chunks/AIChat2.mjs +0 -2
  70. package/__app__/chunks/DiagramActorProvider.mjs +0 -10
  71. package/__app__/chunks/EmbedPage.mjs +0 -1
  72. package/__app__/chunks/ExportPage.mjs +0 -2
  73. package/__app__/chunks/LikeC4Diagram.mjs +0 -19
  74. package/__app__/chunks/LikeC4Styles.mjs +0 -48
  75. package/__app__/chunks/Markdown.mjs +0 -1
  76. package/__app__/chunks/NavigationPanel.mjs +0 -1
  77. package/__app__/chunks/ViewReact.mjs +0 -1
  78. package/__app__/chunks/adhoc-editor.mjs +0 -1
  79. package/__app__/chunks/aichat.mjs +0 -1
  80. package/__app__/chunks/box.mjs +0 -1
  81. package/__app__/chunks/create-style-context.mjs +0 -1
  82. package/__app__/chunks/css.mjs +0 -1
  83. package/__app__/chunks/factory.mjs +0 -1
  84. package/__app__/chunks/hooks.mjs +0 -1
  85. package/__app__/chunks/hstack.mjs +0 -1
  86. package/__app__/chunks/libs/@dagrejs/dagre.mjs +0 -1
  87. package/__app__/chunks/libs/@floating-ui/core.mjs +0 -1
  88. package/__app__/chunks/libs/@floating-ui/dom.mjs +0 -1
  89. package/__app__/chunks/libs/@floating-ui/react.mjs +0 -1
  90. package/__app__/chunks/libs/@mantine/core.mjs +0 -41
  91. package/__app__/chunks/libs/@mantine/hooks.mjs +0 -1
  92. package/__app__/chunks/libs/@nanostores/react.mjs +0 -1
  93. package/__app__/chunks/libs/@react-hookz/web.mjs +0 -1
  94. package/__app__/chunks/libs/@tabler/icons-react.mjs +0 -358
  95. package/__app__/chunks/libs/@tanstack/ai-client.mjs +0 -2
  96. package/__app__/chunks/libs/@tanstack/ai-react-ui.mjs +0 -1
  97. package/__app__/chunks/libs/@tanstack/ai-react.mjs +0 -1
  98. package/__app__/chunks/libs/@tanstack/ai.mjs +0 -2
  99. package/__app__/chunks/libs/@tanstack/history.mjs +0 -1
  100. package/__app__/chunks/libs/@tanstack/react-router.mjs +0 -3
  101. package/__app__/chunks/libs/@tanstack/router-core.mjs +0 -1
  102. package/__app__/chunks/libs/@xstate/react.mjs +0 -1
  103. package/__app__/chunks/libs/@xstate/store.mjs +0 -1
  104. package/__app__/chunks/libs/@xyflow/react.mjs +0 -7
  105. package/__app__/chunks/libs/@zag-js/anatomy.mjs +0 -1
  106. package/__app__/chunks/libs/@zag-js/collection.mjs +0 -1
  107. package/__app__/chunks/libs/@zag-js/core.mjs +0 -1
  108. package/__app__/chunks/libs/@zag-js/react.mjs +0 -1
  109. package/__app__/chunks/libs/@zag-js/tree-view.mjs +0 -1
  110. package/__app__/chunks/libs/bezier-js.mjs +0 -1
  111. package/__app__/chunks/libs/copy-anything.mjs +0 -1
  112. package/__app__/chunks/libs/d3-path.mjs +0 -1
  113. package/__app__/chunks/libs/d3-shape.mjs +0 -1
  114. package/__app__/chunks/libs/fast-equals.mjs +0 -1
  115. package/__app__/chunks/libs/framer-motion.mjs +0 -9
  116. package/__app__/chunks/libs/html-to-image.mjs +0 -2
  117. package/__app__/chunks/libs/motion-dom.mjs +0 -1
  118. package/__app__/chunks/libs/nanostores.mjs +0 -1
  119. package/__app__/chunks/libs/react-error-boundary.mjs +0 -1
  120. package/__app__/chunks/libs/react-resizable-panels.mjs +0 -1
  121. package/__app__/chunks/libs/remeda.mjs +0 -1
  122. package/__app__/chunks/libs/superjson.mjs +0 -1
  123. package/__app__/chunks/libs/zod.mjs +0 -64
  124. package/__app__/chunks/rolldown-runtime.mjs +0 -1
  125. package/__app__/chunks/styles.css.mjs +0 -1
  126. package/__app__/chunks/txt.mjs +0 -1
  127. package/__app__/chunks/useLikeC4Project.mjs +0 -1
  128. package/__app__/src/pages/AdHocViewEditor.mjs +0 -1
  129. package/__app__/src/pages/EmbedPage.mjs +0 -1
  130. package/__app__/src/pages/ExportPage.mjs +0 -1
  131. package/__app__/src/pages/ProjectsOverview.mjs +0 -1
  132. package/__app__/src/pages/ViewAsD2.mjs +0 -1
  133. package/__app__/src/pages/ViewAsDot.mjs +0 -1
  134. package/__app__/src/pages/ViewAsMmd.mjs +0 -1
  135. package/__app__/src/pages/ViewAsPuml.mjs +0 -1
  136. package/__app__/src/pages/ViewEditor.mjs +0 -1
  137. package/__app__/src/pages/ViewReact.mjs +0 -1
  138. package/dist/chunks/libs/@chevrotain/utils.mjs +0 -1
  139. package/dist/chunks/libs/@hono/mcp.mjs +0 -70
  140. package/dist/chunks/libs/@hono/node-server.mjs +0 -1
  141. package/dist/chunks/libs/@logtape/logtape.d.mts +0 -1023
  142. package/dist/chunks/libs/@modelcontextprotocol/sdk.mjs +0 -12
  143. package/dist/chunks/libs/ajv.mjs +0 -1
  144. package/dist/chunks/libs/ansi-align.mjs +0 -2
  145. package/dist/chunks/libs/ansi-regex.mjs +0 -1
  146. package/dist/chunks/libs/ansi-styles.mjs +0 -1
  147. package/dist/chunks/libs/atomically.mjs +0 -1
  148. package/dist/chunks/libs/boxen.mjs +0 -22
  149. package/dist/chunks/libs/conf.mjs +0 -1
  150. package/dist/chunks/libs/defu.mjs +0 -1
  151. package/dist/chunks/libs/destr.mjs +0 -1
  152. package/dist/chunks/libs/find-up-simple.mjs +0 -1
  153. package/dist/chunks/libs/get-port.mjs +0 -1
  154. package/dist/chunks/libs/hono.mjs +0 -1
  155. package/dist/chunks/libs/is-docker.mjs +0 -1
  156. package/dist/chunks/libs/is-error-instance.mjs +0 -1
  157. package/dist/chunks/libs/is-inside-container.mjs +0 -1
  158. package/dist/chunks/libs/is-plain-obj.mjs +0 -1
  159. package/dist/chunks/libs/isexe.mjs +0 -1
  160. package/dist/chunks/libs/ky.mjs +0 -3
  161. package/dist/chunks/libs/p-debounce.mjs +0 -1
  162. package/dist/chunks/libs/p-limit.mjs +0 -1
  163. package/dist/chunks/libs/p-timeout.mjs +0 -1
  164. package/dist/chunks/libs/package-up.mjs +0 -1
  165. package/dist/chunks/libs/parse-ms.mjs +0 -1
  166. package/dist/chunks/libs/safe-stringify.mjs +0 -1
  167. package/dist/chunks/libs/strip-indent.mjs +0 -1
  168. package/dist/chunks/libs/tinyrainbow.mjs +0 -1
  169. package/dist/chunks/libs/ts-graphviz.mjs +0 -1
  170. package/dist/chunks/libs/unctx.mjs +0 -1
  171. package/dist/chunks/libs/vscode-languageserver.mjs +0 -1
  172. package/dist/chunks/libs/word-wrap.mjs +0 -12
  173. package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.mjs +0 -1
  174. package/dist/vite-plugin/internal/chunks/libs/birpc.mjs +0 -1
  175. package/dist/vite-plugin/internal/chunks/libs/fast-equals.mjs +0 -1
  176. package/dist/vite-plugin/internal/chunks/libs/nanostores.mjs +0 -1
  177. package/dist/vite-plugin/internal/chunks/libs/remeda.mjs +0 -1
  178. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +0 -1
@@ -0,0 +1,2164 @@
1
+ import { i as r } from "./rolldown-runtime.mjs";
2
+ import { A as i, F as a, R as o, S as s, _ as c, c as l, j as u, y as d } from "./hooks.mjs";
3
+ import { Mt as f, Nt as p, Ot as m, Pt as h, Qt as g, g as _, h as v, ht as y, kt as b, xt as x } from "./libs/@mantine.mjs";
4
+ import { D as S, E as C, M as w, N as T, c as E, d as D, f as O, g as k, h as A, k as j, l as M, t as N, u as P } from "./styled-system.mjs";
5
+ import { _ as F, a as I, b as L, f as R, g as z, h as B, i as ee, m as V, n as H, t as U } from "./libs/@xyflow/react.mjs";
6
+ import { n as te, t as W } from "./libs/fast-equals.mjs";
7
+ import { t as ne } from "./libs/bezier-js.mjs";
8
+ import { d as re, f as ie, l as ae, n as oe, r as G, u as se } from "./libs/framer.mjs";
9
+ import { createContext as ce, forwardRef as K, memo as le, useContext as q, useEffect as ue, useMemo as de, useRef as fe, useState as pe } from "react";
10
+ import { c as J } from "react/compiler-runtime";
11
+ import { Fragment as Y, jsx as X, jsxs as Z } from "react/jsx-runtime";
12
+ import { RichText as me, invariant as he, nonexhaustive as ge } from "@likec4/core";
13
+ import { BBox as Q, vector as $, vector as _e } from "@likec4/core/geometry";
14
+ import { invariant as ve } from "@likec4/core/utils";
15
+ import { LikeC4Styles as ye } from "@likec4/core/styles";
16
+ import { RichText as be, ensureSizes as xe } from "@likec4/core/types";
17
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/clamp.js
18
+ function t$4(...r) {
19
+ return o(Se, r);
20
+ }
21
+ r(t$4, "t");
22
+ var Se = /* @__PURE__ */ r((r, { min: i, max: a }) => i !== void 0 && r < i ? i : a !== void 0 && r > a ? a : r, "n");
23
+ //#endregion
24
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/hasAtLeast.js
25
+ function t$3(...r) {
26
+ return o(Ce, r);
27
+ }
28
+ r(t$3, "t");
29
+ var Ce = /* @__PURE__ */ r((r, i) => r.length >= i, "n");
30
+ //#endregion
31
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/entries.js
32
+ function t$2(...r) {
33
+ return o(Object.entries, r);
34
+ }
35
+ r(t$2, "t");
36
+ //#endregion
37
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/isArray.js
38
+ function e$2(r) {
39
+ return Array.isArray(r);
40
+ }
41
+ r(e$2, "e");
42
+ //#endregion
43
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/isNumber.js
44
+ function e$1(r) {
45
+ return typeof r == "number" && !Number.isNaN(r);
46
+ }
47
+ r(e$1, "e");
48
+ //#endregion
49
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/isTruthy.js
50
+ function e(r) {
51
+ return !!r;
52
+ }
53
+ //#endregion
54
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/join.js
55
+ function t$1(...r) {
56
+ return o(we, r);
57
+ }
58
+ r(t$1, "t");
59
+ var we = /* @__PURE__ */ r((r, i) => r.join(i), "n");
60
+ //#endregion
61
+ //#region ../../node_modules/.pnpm/remeda@2.37.0/node_modules/remeda/dist/pickBy.js
62
+ function t(...r) {
63
+ return o(n, r);
64
+ }
65
+ function n(r, i) {
66
+ let a = {};
67
+ for (let [o, s] of Object.entries(r)) i(s, o, r) && (a[o] = s);
68
+ return a;
69
+ }
70
+ var Te = i("outline", "bolt", "Bolt", [["path", {
71
+ d: "M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11",
72
+ key: "svg-0"
73
+ }]]), Ee = i("outline", "browser", "Browser", [
74
+ ["path", {
75
+ d: "M4 8h16",
76
+ key: "svg-0"
77
+ }],
78
+ ["path", {
79
+ d: "M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",
80
+ key: "svg-1"
81
+ }],
82
+ ["path", {
83
+ d: "M8 4v4",
84
+ key: "svg-2"
85
+ }]
86
+ ]), De = i("outline", "cylinder", "Cylinder", [["path", {
87
+ d: "M5 6a7 3 0 1 0 14 0a7 3 0 1 0 -14 0",
88
+ key: "svg-0"
89
+ }], ["path", {
90
+ d: "M5 6v12c0 1.657 3.134 3 7 3s7 -1.343 7 -3v-12",
91
+ key: "svg-1"
92
+ }]]), Oe = i("outline", "device-mobile", "DeviceMobile", [
93
+ ["path", {
94
+ d: "M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14",
95
+ key: "svg-0"
96
+ }],
97
+ ["path", {
98
+ d: "M11 4h2",
99
+ key: "svg-1"
100
+ }],
101
+ ["path", {
102
+ d: "M12 17v.01",
103
+ key: "svg-2"
104
+ }]
105
+ ]), ke = i("outline", "file-text", "FileText", [
106
+ ["path", {
107
+ d: "M14 3v4a1 1 0 0 0 1 1h4",
108
+ key: "svg-0"
109
+ }],
110
+ ["path", {
111
+ d: "M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",
112
+ key: "svg-1"
113
+ }],
114
+ ["path", {
115
+ d: "M9 9l1 0",
116
+ key: "svg-2"
117
+ }],
118
+ ["path", {
119
+ d: "M9 13l6 0",
120
+ key: "svg-3"
121
+ }],
122
+ ["path", {
123
+ d: "M9 17l6 0",
124
+ key: "svg-4"
125
+ }]
126
+ ]), Ae = i("outline", "rectangular-prism", "RectangularPrism", [
127
+ ["path", {
128
+ d: "M21 14.008v-5.018a1.98 1.98 0 0 0 -1 -1.717l-4 -2.008a2.016 2.016 0 0 0 -2 0l-10 5.008c-.619 .355 -1 1.01 -1 1.718v5.018c0 .709 .381 1.363 1 1.717l4 2.008a2.016 2.016 0 0 0 2 0l10 -5.008c.619 -.355 1 -1.01 1 -1.718",
129
+ key: "svg-0"
130
+ }],
131
+ ["path", {
132
+ d: "M9 21v-7.5",
133
+ key: "svg-1"
134
+ }],
135
+ ["path", {
136
+ d: "M9 13.5l11.5 -5.5",
137
+ key: "svg-2"
138
+ }],
139
+ ["path", {
140
+ d: "M3.5 11l5.5 2.5",
141
+ key: "svg-3"
142
+ }]
143
+ ]), je = i("outline", "reorder", "Reorder", [
144
+ ["path", {
145
+ d: "M3 16a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -2",
146
+ key: "svg-0"
147
+ }],
148
+ ["path", {
149
+ d: "M10 16a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -2",
150
+ key: "svg-1"
151
+ }],
152
+ ["path", {
153
+ d: "M17 16a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -2",
154
+ key: "svg-2"
155
+ }],
156
+ ["path", {
157
+ d: "M5 11v-3a3 3 0 0 1 3 -3h8a3 3 0 0 1 3 3v3",
158
+ key: "svg-3"
159
+ }],
160
+ ["path", {
161
+ d: "M16.5 8.5l2.5 2.5l2.5 -2.5",
162
+ key: "svg-4"
163
+ }]
164
+ ]), Me = i("outline", "user", "User", [["path", {
165
+ d: "M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",
166
+ key: "svg-0"
167
+ }], ["path", {
168
+ d: "M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2",
169
+ key: "svg-1"
170
+ }]]), Ne = i("outline", "zoom-scan", "ZoomScan", [
171
+ ["path", {
172
+ d: "M8 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",
173
+ key: "svg-0"
174
+ }],
175
+ ["path", {
176
+ d: "M16 16l-2.5 -2.5",
177
+ key: "svg-1"
178
+ }],
179
+ ["path", {
180
+ d: "M3 7v-2a2 2 0 0 1 2 -2h2",
181
+ key: "svg-2"
182
+ }],
183
+ ["path", {
184
+ d: "M3 17v2a2 2 0 0 0 2 2h2",
185
+ key: "svg-3"
186
+ }],
187
+ ["path", {
188
+ d: "M17 3h2a2 2 0 0 1 2 2v2",
189
+ key: "svg-4"
190
+ }],
191
+ ["path", {
192
+ d: "M17 21h2a2 2 0 0 0 2 -2v-2",
193
+ key: "svg-5"
194
+ }]
195
+ ]), Pe = ce(null);
196
+ function IconRendererProvider(r) {
197
+ let i = J(5), { value: a, children: o } = r;
198
+ if (q(Pe)) {
199
+ let r;
200
+ return i[0] === o ? r = i[1] : (r = /* @__PURE__ */ X(Y, { children: o }), i[0] = o, i[1] = r), r;
201
+ }
202
+ let s;
203
+ return i[2] !== o || i[3] !== a ? (s = /* @__PURE__ */ X(Pe.Provider, {
204
+ value: a,
205
+ children: o
206
+ }), i[2] = o, i[3] = a, i[4] = s) : s = i[4], s;
207
+ }
208
+ function decodeSvgDataUrl(r) {
209
+ if (!r.startsWith("data:image/svg+xml")) return null;
210
+ try {
211
+ if (r.includes(";base64,")) {
212
+ let i = r.split(";base64,")[1];
213
+ if (i) return atob(i);
214
+ } else {
215
+ let i = r.split(",")[1];
216
+ if (i) return decodeURIComponent(i);
217
+ }
218
+ } catch {}
219
+ return null;
220
+ }
221
+ function IconRenderer({ element: r, className: i, style: a }) {
222
+ let o = q(Pe);
223
+ if (!r || !r.icon || r.icon === "none") return null;
224
+ let s;
225
+ switch (!0) {
226
+ case r.icon.startsWith("data:image/svg+xml"):
227
+ s = /* @__PURE__ */ X(SvgDataUrlIcon, {
228
+ dataUrl: r.icon,
229
+ alt: r.title
230
+ });
231
+ break;
232
+ case r.icon.startsWith("http://"):
233
+ case r.icon.startsWith("https://"):
234
+ case r.icon.startsWith("data:image"):
235
+ s = /* @__PURE__ */ X("img", {
236
+ src: r.icon,
237
+ alt: r.title
238
+ });
239
+ break;
240
+ case !!o:
241
+ s = /* @__PURE__ */ X(o, { node: r });
242
+ break;
243
+ default:
244
+ s = null;
245
+ break;
246
+ }
247
+ return s ? /* @__PURE__ */ X("div", {
248
+ className: w(i, "likec4-element-icon"),
249
+ "data-likec4-icon": r.icon,
250
+ style: a,
251
+ children: s
252
+ }) : null;
253
+ }
254
+ var Fe = {
255
+ browser: Ee,
256
+ cylinder: De,
257
+ mobile: Oe,
258
+ person: Me,
259
+ queue: je,
260
+ rectangle: Ae,
261
+ storage: De,
262
+ bucket: De,
263
+ document: ke,
264
+ component: Ae
265
+ };
266
+ function IconOrShapeRenderer(r) {
267
+ let i = J(12), { element: a, className: o, style: s } = r;
268
+ if (!a.icon || a.icon === "none") {
269
+ let r = Fe[a.shape], c;
270
+ i[0] === o ? c = i[1] : (c = w(o, "likec4-shape-icon"), i[0] = o, i[1] = c);
271
+ let l;
272
+ i[2] === r ? l = i[3] : (l = /* @__PURE__ */ X(r, {}), i[2] = r, i[3] = l);
273
+ let u;
274
+ return i[4] !== s || i[5] !== c || i[6] !== l ? (u = /* @__PURE__ */ X("div", {
275
+ className: c,
276
+ style: s,
277
+ children: l
278
+ }), i[4] = s, i[5] = c, i[6] = l, i[7] = u) : u = i[7], u;
279
+ }
280
+ let c;
281
+ return i[8] !== o || i[9] !== a || i[10] !== s ? (c = /* @__PURE__ */ X(IconRenderer, {
282
+ element: a,
283
+ className: o,
284
+ style: s
285
+ }), i[8] = o, i[9] = a, i[10] = s, i[11] = c) : c = i[11], c;
286
+ }
287
+ function SvgDataUrlIcon(r) {
288
+ let i = J(11), a, o;
289
+ i[0] === r ? (a = i[1], o = i[2]) : ({dataUrl: a, ...o} = r, i[0] = r, i[1] = a, i[2] = o);
290
+ let s;
291
+ i[3] === a ? s = i[4] : (s = decodeSvgDataUrl(a), i[3] = a, i[4] = s);
292
+ let c = s;
293
+ if (!c) return null;
294
+ let l;
295
+ i[5] === Symbol.for("react.memo_cache_sentinel") ? (l = { display: "contents" }, i[5] = l) : l = i[5];
296
+ let u;
297
+ i[6] === c ? u = i[7] : (u = { __html: c }, i[6] = c, i[7] = u);
298
+ let d;
299
+ return i[8] !== o || i[9] !== u ? (d = /* @__PURE__ */ X("span", {
300
+ ...o,
301
+ style: l,
302
+ dangerouslySetInnerHTML: u
303
+ }), i[8] = o, i[9] = u, i[10] = d) : d = i[10], d;
304
+ }
305
+ //#endregion
306
+ //#region ../diagram/src/base/Background.tsx
307
+ function literalToEnum(r) {
308
+ switch (r) {
309
+ case "dots": return H.Dots;
310
+ case "lines": return H.Lines;
311
+ case "cross": return H.Cross;
312
+ default: ge(r);
313
+ }
314
+ }
315
+ var compareProps = (r, i) => typeof r.background == "string" && typeof i.background == "string" ? r.background === i.background : W(r.background, i.background), Ie = le((r) => {
316
+ let i = J(6), { background: a } = r;
317
+ if (typeof a == "string") {
318
+ let r;
319
+ i[0] === a ? r = i[1] : (r = literalToEnum(a), i[0] = a, i[1] = r);
320
+ let o;
321
+ return i[2] === r ? o = i[3] : (o = /* @__PURE__ */ X(U, {
322
+ variant: r,
323
+ size: 2,
324
+ gap: 20
325
+ }), i[2] = r, i[3] = o), o;
326
+ }
327
+ let o;
328
+ return i[4] === a ? o = i[5] : (o = /* @__PURE__ */ X(U, { ...a }), i[4] = a, i[5] = o), o;
329
+ }, compareProps);
330
+ Ie.displayName = "Background";
331
+ //#endregion
332
+ //#region ../diagram/src/hooks/useCallbackRef.ts
333
+ function useCallbackRef(r) {
334
+ let i = fe(r);
335
+ return i.current = r, de(() => {
336
+ function callbackRef(...r) {
337
+ return i.current?.(...r);
338
+ }
339
+ return callbackRef;
340
+ }, []);
341
+ }
342
+ //#endregion
343
+ //#region ../diagram/src/hooks/useXYFlow.ts
344
+ function useXYFlow() {
345
+ return V();
346
+ }
347
+ function useXYStore(r, i) {
348
+ return B(r, i ?? te);
349
+ }
350
+ function selectXYStore(r) {
351
+ return r;
352
+ }
353
+ function useXYStoreApi() {
354
+ return z();
355
+ }
356
+ function useCurrentZoomAtLeast(r) {
357
+ let i = J(2), t0;
358
+ return i[0] === r ? t0 = i[1] : (t0 = (i) => i.transform[2] >= r, i[0] = r, i[1] = t0), B(t0);
359
+ }
360
+ var selectZoom = (r) => r.transform[2] < .2;
361
+ function useIsZoomTooSmall() {
362
+ return B(selectZoom);
363
+ }
364
+ //#endregion
365
+ //#region ../diagram/src/utils/roundDpr.ts
366
+ function getDevicePixelRatio() {
367
+ let r = typeof window < "u" && typeof window.devicePixelRatio == "number" ? window.devicePixelRatio : 1;
368
+ return t$4(Math.floor(r), {
369
+ min: 1,
370
+ max: 4
371
+ });
372
+ }
373
+ var Le;
374
+ function roundDpr(r) {
375
+ return Le ??= getDevicePixelRatio(), Le < 2 ? Math.round(r) : Math.round(r * Le) / Le;
376
+ }
377
+ //#endregion
378
+ //#region ../diagram/src/utils/xyflow.ts
379
+ function nodeToRect(r) {
380
+ return {
381
+ x: Math.trunc(r.internals.positionAbsolute.x),
382
+ y: Math.trunc(r.internals.positionAbsolute.y),
383
+ width: Math.round(r.measured?.width ?? r.width ?? r.initialWidth ?? 0),
384
+ height: Math.round(r.measured?.height ?? r.height ?? r.initialHeight ?? 0)
385
+ };
386
+ }
387
+ function getNodeCenter(r) {
388
+ let { width: i, height: a } = L(r), { x: o, y: s } = r.internals.positionAbsolute;
389
+ return {
390
+ x: Math.round(o + i / 2),
391
+ y: Math.round(s + a / 2)
392
+ };
393
+ }
394
+ function getNodeIntersectionFromCenterToPoint(r, i, a = 0) {
395
+ let { width: o, height: s } = r, c = Q.center(r), l = $(i.x, i.y).subtract(c), u = (a + o / 2) / l.x, d = (a + s / 2) / l.y, f = Math.min(Math.abs(u), Math.abs(d));
396
+ return $(l).multiply(f).add(c).trunc().toObject();
397
+ }
398
+ function bezierControlPoints(r) {
399
+ let [i, ...a] = r;
400
+ ve(i, "start should be defined");
401
+ let o = [];
402
+ for (; t$3(a, 3);) {
403
+ let [r, s, c, ...l] = a, u = new ne(i[0], i[1], r[0], r[1], s[0], s[1], c[0], c[1]), d = u.inflections();
404
+ d.length === 0 && d.push(.5), d.forEach((r) => {
405
+ let { x: i, y: a } = u.get(r);
406
+ o.push({
407
+ x: Math.trunc(i),
408
+ y: Math.trunc(a)
409
+ });
410
+ }), a = l, i = c;
411
+ }
412
+ return ve(a.length === 0, "all points should be consumed"), ve(t$3(o, 1), "at least one control point should be generated"), o;
413
+ }
414
+ function isSamePoint(r, i) {
415
+ if (r === i) return !0;
416
+ let [a, o] = e$2(r) ? r : [r.x, r.y], [s, c] = e$2(i) ? i : [i.x, i.y];
417
+ return Math.hypot(s - a, c - o) < 2.1;
418
+ }
419
+ function stopPropagation(r) {
420
+ r.nativeEvent.stopImmediatePropagation(), r.stopPropagation();
421
+ }
422
+ var printPoint = (r) => `${Math.trunc(r[0])},${Math.trunc(r[1])}`;
423
+ function bezierPath(r) {
424
+ let [i, ...a] = r;
425
+ ve(i, "start should be defined");
426
+ let o = `M ${printPoint(i)}`;
427
+ for (; t$3(a, 3);) {
428
+ let [r, i, s, ...c] = a;
429
+ o += ` C ${printPoint(r)} ${printPoint(i)} ${printPoint(s)}`, a = c;
430
+ }
431
+ return ve(a.length === 0, "all points should be consumed"), o;
432
+ }
433
+ function parsePadding(r, i) {
434
+ if (typeof r == "number") return Math.floor((i - i / (1 + r)) * .5);
435
+ if (typeof r == "string" && r.endsWith("px")) {
436
+ let i = parseFloat(r);
437
+ if (!Number.isNaN(i)) return Math.floor(i);
438
+ }
439
+ if (typeof r == "string" && r.endsWith("%")) {
440
+ let a = parseFloat(r);
441
+ if (!Number.isNaN(a)) return Math.floor(i * a * .01);
442
+ }
443
+ return console.error(`[React Flow] The padding value "${r}" is invalid. Please provide a number or a string with a valid unit (px or %).`), 0;
444
+ }
445
+ function parsePaddings(r, i, a) {
446
+ if (typeof r == "string" || typeof r == "number") {
447
+ let o = parsePadding(r, a), s = parsePadding(r, i);
448
+ return {
449
+ top: o,
450
+ right: s,
451
+ bottom: o,
452
+ left: s,
453
+ x: s * 2,
454
+ y: o * 2
455
+ };
456
+ }
457
+ if (typeof r == "object") {
458
+ let o = parsePadding(r.top ?? r.y ?? 0, a), s = parsePadding(r.bottom ?? r.y ?? 0, a), c = parsePadding(r.left ?? r.x ?? 0, i), l = parsePadding(r.right ?? r.x ?? 0, i);
459
+ return {
460
+ top: o,
461
+ right: l,
462
+ bottom: s,
463
+ left: c,
464
+ x: c + l,
465
+ y: o + s
466
+ };
467
+ }
468
+ return {
469
+ top: 0,
470
+ right: 0,
471
+ bottom: 0,
472
+ left: 0,
473
+ x: 0,
474
+ y: 0
475
+ };
476
+ }
477
+ //#endregion
478
+ //#region ../diagram/src/base/Base.ts
479
+ var mergeData = (r, i) => Object.assign({}, r, { data: Object.assign({}, r.data, i) }), _setDimmed = (r, i) => (r.data.dimmed ?? !1) === i ? r : mergeData(r, { dimmed: i });
480
+ function setDimmed(r, i) {
481
+ return i === void 0 ? (i) => _setDimmed(i, r) : _setDimmed(r, i);
482
+ }
483
+ var _setHovered = (r, i) => (r.data.hovered ?? !1) === i ? r : mergeData(r, { hovered: i });
484
+ function setHovered(r, i) {
485
+ return i === void 0 ? (i) => _setHovered(i, r) : _setHovered(r, i);
486
+ }
487
+ function hasSubObject(r, i) {
488
+ return r === i || t$2(i).every(([i, a]) => W(r[i] ?? void 0, a));
489
+ }
490
+ function _setData(r, i) {
491
+ return hasSubObject(r.data, i) ? r : mergeData(r, i);
492
+ }
493
+ function setData(r, i) {
494
+ return i === void 0 ? (i) => _setData(i, r) : _setData(r, i);
495
+ }
496
+ var Re = {
497
+ setDimmed,
498
+ setHovered,
499
+ setData
500
+ }, ze = {
501
+ Compound: 1,
502
+ Edge: 20,
503
+ EdgeLabel: 25,
504
+ Element: 20,
505
+ Max: 30
506
+ }, Be = .05, Ve = {
507
+ default: "16px",
508
+ withControls: {
509
+ top: "58px",
510
+ left: "16px",
511
+ right: "16px",
512
+ bottom: "16px"
513
+ }
514
+ };
515
+ //#endregion
516
+ //#region ../diagram/src/base/keyboardZoom.ts
517
+ function isEditableKeyboardTarget(r) {
518
+ if (!(r instanceof HTMLElement)) return !1;
519
+ let i = r.tagName.toLowerCase();
520
+ return i === "input" || i === "textarea" || i === "select" || r.isContentEditable;
521
+ }
522
+ function getKeyboardZoomAction(r) {
523
+ if (!r.ctrlKey && !r.metaKey || isEditableKeyboardTarget(r.target)) return null;
524
+ switch (r.key) {
525
+ case "+":
526
+ case "=": return "zoom-in";
527
+ case "-":
528
+ case "_": return "zoom-out";
529
+ case "0": return "reset";
530
+ default: return null;
531
+ }
532
+ }
533
+ //#endregion
534
+ //#region ../diagram/src/base/BaseXYFlow.tsx
535
+ var He = {
536
+ "node.a11yDescription.default": "Press Enter or Space to select this node and reveal its actions.",
537
+ "node.a11yDescription.keyboardDisabled": "Keyboard activation is disabled.",
538
+ "edge.a11yDescription.default": "Press Enter or Space to select this relationship and reveal its actions."
539
+ };
540
+ function activateFocusedElement(r) {
541
+ if (r.repeat || r.key !== "Enter" && r.key !== " ") return;
542
+ let i = r.target;
543
+ if (!(i instanceof Element)) return;
544
+ let a = i.closest("a,button,input,textarea,select,[role=\"button\"],[role=\"link\"],[contenteditable=\"true\"]");
545
+ if (a && !a.classList.contains("react-flow__node") && !a.classList.contains("react-flow__edge")) return;
546
+ let o = i.closest(".react-flow__node[data-id], .react-flow__edge[data-id]"), s = o?.ownerDocument.defaultView;
547
+ if (!o || !s) return;
548
+ r.preventDefault();
549
+ let c = o.getBoundingClientRect();
550
+ o.dispatchEvent(new s.MouseEvent("click", {
551
+ bubbles: !0,
552
+ cancelable: !0,
553
+ button: 0,
554
+ clientX: c.left + c.width / 2,
555
+ clientY: c.top + c.height / 2,
556
+ detail: 1,
557
+ view: s
558
+ }));
559
+ }
560
+ function BaseXYFlow(r) {
561
+ let i = J(105), a, o, s, c, l, u, d, p, m, h, g, _, v, y, b, x, S, C, T, E, D, O, k, A, j, M, N;
562
+ i[0] === r ? (a = i[1], o = i[2], s = i[3], c = i[4], l = i[5], u = i[6], d = i[7], p = i[8], m = i[9], h = i[10], g = i[11], _ = i[12], v = i[13], y = i[14], b = i[15], x = i[16], S = i[17], C = i[18], T = i[19], E = i[20], D = i[21], O = i[22], k = i[23], A = i[24], j = i[25], M = i[26], N = i[27]) : ({nodes: u, edges: l, onEdgesChange: m, onNodesChange: y, className: s, pannable: S, zoomable: E, nodesSelectable: D, nodesDraggable: O, background: k, children: o, colorMode: c, fitViewPadding: A, fitView: j, zoomOnDoubleClick: M, onViewportResize: b, onMoveEnd: g, onNodeMouseEnter: _, onNodeMouseLeave: v, onEdgeMouseEnter: d, onEdgeMouseLeave: p, onKeyDownCapture: h, ariaLabelConfig: a, nodesFocusable: N, edgesFocusable: C, showControls: T, ...x} = r, i[0] = r, i[1] = a, i[2] = o, i[3] = s, i[4] = c, i[5] = l, i[6] = u, i[7] = d, i[8] = p, i[9] = m, i[10] = h, i[11] = g, i[12] = _, i[13] = v, i[14] = y, i[15] = b, i[16] = x, i[17] = S, i[18] = C, i[19] = T, i[20] = E, i[21] = D, i[22] = O, i[23] = k, i[24] = A, i[25] = j, i[26] = M, i[27] = N);
563
+ let P = S === void 0 ? !0 : S, F = E === void 0 ? !0 : E, I = D === void 0 ? !0 : D, L = O === void 0 ? !1 : O, z = k === void 0 ? "dots" : k, B = A === void 0 ? 0 : A, ee = j === void 0 ? !0 : j, V = M === void 0 ? !1 : M, H = N === void 0 ? L || I : N, U = C === void 0 ? !1 : C, te;
564
+ i[28] === B ? te = i[29] : (te = {
565
+ minZoom: Be,
566
+ maxZoom: 1,
567
+ padding: B,
568
+ includeHiddenNodes: !1
569
+ }, i[28] = B, i[29] = te);
570
+ let W = te, ne = z !== "transparent" && z !== "solid", re = useIsZoomTooSmall(), ie = useXYFlow(), ae = useXYStoreApi(), { colorScheme: oe } = f();
571
+ c ||= oe === "auto" ? "system" : oe;
572
+ let G = x.tabIndex ?? (F ? 0 : void 0), se = x["aria-label"] !== void 0 || x["aria-labelledby"] !== void 0 || G === void 0 ? x["aria-label"] : "Interactive diagram", t13;
573
+ i[30] !== W || i[31] !== x || i[32] !== ie || i[33] !== F ? (t13 = (r) => {
574
+ if (x.onKeyDown?.(r), r.defaultPrevented || !F) return;
575
+ let i = getKeyboardZoomAction(r.nativeEvent);
576
+ if (i) switch (r.preventDefault(), i) {
577
+ case "zoom-in":
578
+ ie.zoomIn();
579
+ return;
580
+ case "zoom-out":
581
+ ie.zoomOut();
582
+ return;
583
+ case "reset":
584
+ ie.fitView(W);
585
+ return;
586
+ }
587
+ }, i[30] = W, i[31] = x, i[32] = ie, i[33] = F, i[34] = t13) : t13 = i[34];
588
+ let ce = useCallbackRef(t13), K = c, le = u, q = l, ue = z === "transparent" && "bg-transparent", de;
589
+ i[35] !== s || i[36] !== ue ? (de = w(ue, s), i[35] = s, i[36] = ue, i[37] = de) : de = i[37];
590
+ let fe;
591
+ i[38] === re ? fe = i[39] : (fe = re && { "data-likec4-zoom-small": !0 }, i[38] = re, i[39] = fe);
592
+ let pe = !P && F, Y;
593
+ i[40] === F ? Y = i[41] : (Y = !F && { zoomActivationKeyCode: null }, i[40] = F, i[41] = Y);
594
+ let me = F ? 3 : 1, he = F ? Be : 1, ge = F || P, Q;
595
+ i[42] === P ? Q = i[43] : (Q = !P && {
596
+ panActivationKeyCode: null,
597
+ selectionKeyCode: null
598
+ }, i[42] = P, i[43] = Q);
599
+ let $;
600
+ i[44] === a ? $ = i[45] : ($ = {
601
+ ...He,
602
+ ...a
603
+ }, i[44] = a, i[45] = $);
604
+ let _e = y, ve = m, t29;
605
+ i[46] !== g || i[47] !== ae ? (t29 = (r, i) => {
606
+ let { x: a, y: o, zoom: s } = i, c = roundDpr(a), l = roundDpr(o);
607
+ (a !== c || o !== l) && ae.setState({ transform: [
608
+ c,
609
+ l,
610
+ s
611
+ ] }), g?.(r, {
612
+ x: c,
613
+ y: l,
614
+ zoom: s
615
+ });
616
+ }, i[46] = g, i[47] = ae, i[48] = t29) : t29 = i[48];
617
+ let ye = useCallbackRef(t29), t31;
618
+ i[49] !== _ || i[50] !== y ? (t31 = (r, i) => {
619
+ if (_) {
620
+ _(r, i);
621
+ return;
622
+ }
623
+ y([{
624
+ id: i.id,
625
+ type: "replace",
626
+ item: Re.setHovered(i, !0)
627
+ }]);
628
+ }, i[49] = _, i[50] = y, i[51] = t31) : t31 = i[51];
629
+ let be = useCallbackRef(t31), t33;
630
+ i[52] !== v || i[53] !== y ? (t33 = (r, i) => {
631
+ if (v) {
632
+ v(r, i);
633
+ return;
634
+ }
635
+ y([{
636
+ id: i.id,
637
+ type: "replace",
638
+ item: Re.setHovered(i, !1)
639
+ }]);
640
+ }, i[52] = v, i[53] = y, i[54] = t33) : t33 = i[54];
641
+ let xe = useCallbackRef(t33), t35;
642
+ i[55] !== d || i[56] !== m ? (t35 = (r, i) => {
643
+ if (d) {
644
+ d(r, i);
645
+ return;
646
+ }
647
+ m([{
648
+ id: i.id,
649
+ type: "replace",
650
+ item: Re.setHovered(i, !0)
651
+ }]);
652
+ }, i[55] = d, i[56] = m, i[57] = t35) : t35 = i[57];
653
+ let Se = useCallbackRef(t35), t37;
654
+ i[58] !== p || i[59] !== m ? (t37 = (r, i) => {
655
+ if (p) {
656
+ p(r, i);
657
+ return;
658
+ }
659
+ m([{
660
+ id: i.id,
661
+ type: "replace",
662
+ item: Re.setHovered(i, !1)
663
+ }]);
664
+ }, i[58] = p, i[59] = m, i[60] = t37) : t37 = i[60];
665
+ let Ce = useCallbackRef(t37), t39;
666
+ i[61] === h ? t39 = i[62] : (t39 = (r) => {
667
+ h?.(r), r.defaultPrevented || activateFocusedElement(r);
668
+ }, i[61] = h, i[62] = t39);
669
+ let we = useCallbackRef(t39), Te;
670
+ i[63] !== z || i[64] !== ne ? (Te = ne && /* @__PURE__ */ X(Ie, { background: z }), i[63] = z, i[64] = ne, i[65] = Te) : Te = i[65];
671
+ let Ee;
672
+ i[66] === b ? Ee = i[67] : (Ee = b && /* @__PURE__ */ X(ViewportResizeHanlder, { onViewportResize: b }), i[66] = b, i[67] = Ee);
673
+ let De;
674
+ return i[68] !== se || i[69] !== o || i[70] !== c || i[71] !== l || i[72] !== U || i[73] !== ee || i[74] !== W || i[75] !== u || i[76] !== L || i[77] !== H || i[78] !== I || i[79] !== m || i[80] !== ce || i[81] !== y || i[82] !== P || i[83] !== x || i[84] !== de || i[85] !== fe || i[86] !== pe || i[87] !== Y || i[88] !== me || i[89] !== he || i[90] !== ge || i[91] !== Q || i[92] !== $ || i[93] !== ye || i[94] !== be || i[95] !== xe || i[96] !== Se || i[97] !== Ce || i[98] !== we || i[99] !== Te || i[100] !== Ee || i[101] !== G || i[102] !== V || i[103] !== F ? (De = /* @__PURE__ */ Z(R, {
675
+ colorMode: K,
676
+ nodes: le,
677
+ edges: q,
678
+ className: de,
679
+ ...fe,
680
+ zoomOnPinch: F,
681
+ zoomOnScroll: pe,
682
+ ...Y,
683
+ zoomOnDoubleClick: V,
684
+ maxZoom: me,
685
+ minZoom: he,
686
+ fitView: ee,
687
+ fitViewOptions: W,
688
+ preventScrolling: ge,
689
+ defaultMarkerColor: "var(--xy-edge-stroke)",
690
+ noDragClassName: "nodrag",
691
+ noPanClassName: "nopan",
692
+ noWheelClassName: "nowheel",
693
+ panOnScroll: P,
694
+ panOnDrag: P,
695
+ ...Q,
696
+ elementsSelectable: I,
697
+ nodesFocusable: H,
698
+ edgesFocusable: U,
699
+ nodesDraggable: L,
700
+ ariaLabelConfig: $,
701
+ nodeDragThreshold: 4,
702
+ nodeClickDistance: 3,
703
+ paneClickDistance: 3,
704
+ elevateNodesOnSelect: !1,
705
+ selectNodesOnDrag: !1,
706
+ onNodesChange: _e,
707
+ onEdgesChange: ve,
708
+ onMoveEnd: ye,
709
+ onNodeMouseEnter: be,
710
+ onNodeMouseLeave: xe,
711
+ onEdgeMouseEnter: Se,
712
+ onEdgeMouseLeave: Ce,
713
+ onNodeDoubleClick: stopPropagation,
714
+ onEdgeDoubleClick: stopPropagation,
715
+ onKeyDownCapture: we,
716
+ ...x,
717
+ "aria-label": se,
718
+ tabIndex: G,
719
+ onKeyDown: ce,
720
+ children: [
721
+ Te,
722
+ Ee,
723
+ o
724
+ ]
725
+ }), i[68] = se, i[69] = o, i[70] = c, i[71] = l, i[72] = U, i[73] = ee, i[74] = W, i[75] = u, i[76] = L, i[77] = H, i[78] = I, i[79] = m, i[80] = ce, i[81] = y, i[82] = P, i[83] = x, i[84] = de, i[85] = fe, i[86] = pe, i[87] = Y, i[88] = me, i[89] = he, i[90] = ge, i[91] = Q, i[92] = $, i[93] = ye, i[94] = be, i[95] = xe, i[96] = Se, i[97] = Ce, i[98] = we, i[99] = Te, i[100] = Ee, i[101] = G, i[102] = V, i[103] = F, i[104] = De) : De = i[104], De;
726
+ }
727
+ var selectDimensions = ({ width: r, height: i }) => (r || 1) * (i || 1), ViewportResizeHanlder = (r) => {
728
+ let i = J(2), { onViewportResize: a } = r, o = B(selectDimensions), c;
729
+ return i[0] === o ? c = i[1] : (c = [o], i[0] = o, i[1] = c), s(a, c), null;
730
+ }, Ue = ce(null), We = Ue.Provider;
731
+ function useRootContainerContext() {
732
+ return q(Ue);
733
+ }
734
+ function useRootContainer() {
735
+ let r = useRootContainerContext();
736
+ if (!r) throw Error("useRootContainer must be used within a RootContainer");
737
+ return r;
738
+ }
739
+ function useRootContainerRef() {
740
+ return useRootContainer().ref;
741
+ }
742
+ function useRootContainerElement() {
743
+ return useRootContainer().ref.current;
744
+ }
745
+ //#endregion
746
+ //#region ../diagram/src/components/RootContainer.tsx
747
+ function RootContainer(r) {
748
+ let i = J(18), { id: a, className: o, reduceGraphics: s, children: l } = r, u = s === void 0 ? !1 : s, d = fe(null), [f] = pe(_temp$1), p = c(f), m = `#${a}`, h;
749
+ i[0] !== f || i[1] !== a || i[2] !== u || i[3] !== m ? (h = {
750
+ id: a,
751
+ ref: d,
752
+ selector: m,
753
+ reducedGraphics: u,
754
+ $panning: f
755
+ }, i[0] = f, i[1] = a, i[2] = u, i[3] = m, i[4] = h) : h = i[4];
756
+ let g = h, _;
757
+ i[5] === o ? _ = i[6] : (_ = w("likec4-root", o), i[5] = o, i[6] = _);
758
+ let v;
759
+ i[7] === u ? v = i[8] : (v = u && { "data-likec4-reduced-graphics": !0 }, i[7] = u, i[8] = v);
760
+ let y;
761
+ i[9] !== l || i[10] !== g ? (y = /* @__PURE__ */ X(We, {
762
+ value: g,
763
+ children: l
764
+ }), i[9] = l, i[10] = g, i[11] = y) : y = i[11];
765
+ let b;
766
+ return i[12] !== a || i[13] !== p || i[14] !== _ || i[15] !== v || i[16] !== y ? (b = /* @__PURE__ */ X("div", {
767
+ id: a,
768
+ className: _,
769
+ ref: d,
770
+ "data-likec4-diagram-panning": p,
771
+ ...v,
772
+ children: y
773
+ }), i[12] = a, i[13] = p, i[14] = _, i[15] = v, i[16] = y, i[17] = b) : b = i[17], b;
774
+ }
775
+ function _temp$1() {
776
+ return /* @__PURE__ */ d(!1);
777
+ }
778
+ r(_temp$1, "_temp");
779
+ //#endregion
780
+ //#region ../diagram/src/context/DefaultMantineProvider.tsx
781
+ var Ge = m({
782
+ autoContrast: !0,
783
+ primaryColor: "indigo",
784
+ cursorType: "pointer",
785
+ defaultRadius: "sm",
786
+ fontFamily: "var(--likec4-app-font, var(--likec4-app-font-default))",
787
+ headings: {
788
+ fontWeight: "medium",
789
+ sizes: {
790
+ h1: { fontWeight: "bold" },
791
+ h2: { fontWeight: "medium" }
792
+ }
793
+ },
794
+ fontSizes: {
795
+ xxs: "var(--font-sizes-xxs)",
796
+ xs: "var(--font-sizes-xs)",
797
+ sm: "var(--font-sizes-sm)",
798
+ md: "var(--font-sizes-md)",
799
+ lg: "var(--font-sizes-lg)",
800
+ xl: "var(--font-sizes-xl)"
801
+ },
802
+ spacing: {
803
+ xs: "var(--spacing-xs)",
804
+ sm: "var(--spacing-sm)",
805
+ md: "var(--spacing-md)",
806
+ lg: "var(--spacing-lg)",
807
+ xl: "var(--spacing-xl)"
808
+ },
809
+ components: {
810
+ SegmentedControl: v.extend({ vars: (r, i) => ({ root: { "--sc-font-size": r.fontSizes[i.fz ?? i.size] } }) }),
811
+ Portal: x.extend({ defaultProps: { reuseTargetNode: !0 } }),
812
+ Tooltip: _.extend({ defaultProps: { color: "dark" } })
813
+ }
814
+ });
815
+ function DefaultMantineProvider(r) {
816
+ let i = J(8), a, o, s;
817
+ i[0] === r ? (a = i[1], o = i[2], s = i[3]) : ({children: a, theme: s, ...o} = r, i[0] = r, i[1] = a, i[2] = o, i[3] = s);
818
+ let c = s ?? Ge, l;
819
+ return i[4] !== a || i[5] !== o || i[6] !== c ? (l = /* @__PURE__ */ X(b, {
820
+ defaultColorScheme: "auto",
821
+ theme: c,
822
+ ...o,
823
+ children: a
824
+ }), i[4] = a, i[5] = o, i[6] = c, i[7] = l) : l = i[7], l;
825
+ }
826
+ //#endregion
827
+ //#region ../diagram/src/context/EnsureMantine.tsx
828
+ function EnsureMantine(r) {
829
+ let i = J(7), { children: a } = r, o = q(p), t1;
830
+ i[0] === o ? t1 = i[1] : (t1 = () => {
831
+ o || console.warn("LikeC4Diagram must be a child of MantineProvider");
832
+ }, i[0] = o, i[1] = t1);
833
+ let s;
834
+ if (i[2] === Symbol.for("react.memo_cache_sentinel") ? (s = [], i[2] = s) : s = i[2], ue(t1, s), !o) {
835
+ let r;
836
+ return i[3] === a ? r = i[4] : (r = /* @__PURE__ */ X(DefaultMantineProvider, { children: a }), i[3] = a, i[4] = r), r;
837
+ }
838
+ let c;
839
+ return i[5] === a ? c = i[6] : (c = /* @__PURE__ */ X(Y, { children: a }), i[5] = a, i[6] = c), c;
840
+ }
841
+ //#endregion
842
+ //#region ../diagram/src/context/FramerMotionConfig.tsx
843
+ function FramerMotionConfig(r) {
844
+ let i = J(6), { reducedMotion: a, children: o } = r, s = a === void 0 ? "user" : a, c = h()?.(), l;
845
+ i[0] === c ? l = i[1] : (l = c && { nonce: c }, i[0] = c, i[1] = l);
846
+ let u;
847
+ return i[2] !== o || i[3] !== s || i[4] !== l ? (u = /* @__PURE__ */ X(ie, {
848
+ features: ae,
849
+ strict: !0,
850
+ children: /* @__PURE__ */ X(se, {
851
+ reducedMotion: s,
852
+ ...l,
853
+ children: o
854
+ })
855
+ }), i[2] = o, i[3] = s, i[4] = l, i[5] = u) : u = i[5], u;
856
+ }
857
+ //#endregion
858
+ //#region ../diagram/src/context/LikeC4ModelContext.tsx
859
+ var Ke = ce(null), qe = Ke.Provider, Je = ce(null), Ye = Je.Provider;
860
+ function useOptionalLikeC4Model() {
861
+ return q(Ke);
862
+ }
863
+ function useOptionalCurrentViewModel() {
864
+ return q(Je);
865
+ }
866
+ //#endregion
867
+ //#region ../diagram/src/hooks/useId.ts
868
+ function useId$1() {
869
+ let r = J(2), i = g(), a;
870
+ return r[0] === i ? a = r[1] : (a = i.replace("mantine-", "likec4-"), r[0] = i, r[1] = a), a;
871
+ }
872
+ r(useId$1, "useId");
873
+ //#endregion
874
+ //#region ../diagram/src/context/LikeC4ProjectsContext.ts
875
+ var Xe = ce(null), Ze = Xe.Provider;
876
+ function useOptionalProjectsContext() {
877
+ return q(Xe);
878
+ }
879
+ //#endregion
880
+ //#region ../diagram/src/hooks/useLikeC4Project.ts
881
+ var Qe = [];
882
+ function onProjectChange(r) {
883
+ console.warn(`Triggered callback to change project to ${r}, but no <LikeC4ProjectsProvider/> found`);
884
+ }
885
+ var $e = {
886
+ projects: Qe,
887
+ onProjectChange
888
+ };
889
+ function useLikeC4ProjectsContext() {
890
+ return useOptionalProjectsContext() ?? $e;
891
+ }
892
+ function useLikeC4Projects() {
893
+ return useLikeC4ProjectsContext().projects;
894
+ }
895
+ function useChangeLikeC4Project() {
896
+ return useLikeC4ProjectsContext().onProjectChange;
897
+ }
898
+ function useLikeC4ProjectId() {
899
+ let r = useOptionalLikeC4Model();
900
+ if (!r) throw Error("No LikeC4ModelProvider found");
901
+ return r.projectId;
902
+ }
903
+ //#endregion
904
+ //#region ../diagram/src/hooks/useLikeC4Styles.ts
905
+ function useLikeC4Styles() {
906
+ return useOptionalLikeC4Model()?.$styles ?? ye.DEFAULT;
907
+ }
908
+ //#endregion
909
+ //#region ../diagram/src/utils/view-bounds.ts
910
+ function pickViewBounds(r, i) {
911
+ if (r._type === "dynamic") try {
912
+ if ((i ?? r.variant) === "sequence") return he(r.sequenceLayout, "Sequence layout is not available"), he(r.sequenceLayout.bounds, "Sequence layout bounds are not available"), r.sequenceLayout.bounds;
913
+ } catch (r) {
914
+ console.error(r);
915
+ }
916
+ return r.bounds;
917
+ }
918
+ function calcEdgeBounds({ points: r, controlPoints: i, labelBBox: a }) {
919
+ let o = Infinity, s = Infinity, c = -Infinity, l = -Infinity;
920
+ if (i) for (let r of i) o = Math.min(o, r.x), s = Math.min(s, r.y), c = Math.max(c, r.x), l = Math.max(l, r.y);
921
+ else for (let [i, a] of r) o = Math.min(o, i), s = Math.min(s, a), c = Math.max(c, i), l = Math.max(l, a);
922
+ return a && (o = Math.min(o, a.x), s = Math.min(s, a.y), c = Math.max(c, a.x + a.width), l = Math.max(l, a.y + a.height)), {
923
+ x: o,
924
+ y: s,
925
+ width: c - o,
926
+ height: l - s
927
+ };
928
+ }
929
+ function calcViewBounds({ nodes: r, edges: i }) {
930
+ return Q.expand(Q.merge(...r, ...i.map(calcEdgeBounds).filter((r) => isFinite(r.x) && isFinite(r.y))), 20);
931
+ }
932
+ //#endregion
933
+ //#region ../diagram/src/utils/readableText.ts
934
+ var et = /\s+/g;
935
+ function readableText(r) {
936
+ return me.from(r).text?.replace(et, " ").trim() || null;
937
+ }
938
+ //#endregion
939
+ //#region ../diagram/src/base-primitives/edge/EdgeContainer.tsx
940
+ function EdgeContainer(r) {
941
+ let i = J(47), a, o, s, c, l, u, d, f, p, m, h, g;
942
+ if (i[0] !== r) {
943
+ let { className: _, component: v, selectable: y, selected: b, data: x, animated: S, children: C, style: T, ...E } = r;
944
+ a = C, s = T, o = v === void 0 ? "g" : v;
945
+ let D = y === void 0 ? !1 : y, O = b === void 0 ? !1 : b, k, A, j, M, N;
946
+ i[13] === x ? (k = i[14], A = i[15], j = i[16], M = i[17], N = i[18]) : ({color: A, hovered: j, active: M, dimmed: N, ...k} = x, i[13] = x, i[14] = k, i[15] = A, i[16] = j, i[17] = M, i[18] = N);
947
+ let P = A === void 0 ? "gray" : A, F = j === void 0 ? !1 : j, I = M === void 0 ? !1 : M, L = N === void 0 ? !1 : N, R = S === void 0 ? !1 : S;
948
+ R ||= I;
949
+ let z = O && "selected", B = D && "selectable";
950
+ i[19] !== _ || i[20] !== z || i[21] !== B ? (c = w(_, "likec4-edge-container", z, B), i[19] = _, i[20] = z, i[21] = B, i[22] = c) : c = i[22], l = P, u = k.dir ?? "forward", d = I, f = F, i[23] === R ? p = i[24] : (p = R && { "data-likec4-animated": R }, i[23] = R, i[24] = p), i[25] === O ? m = i[26] : (m = O && { "data-likec4-selected": O }, i[25] = O, i[26] = m), i[27] === L ? h = i[28] : (h = L !== !1 && { "data-likec4-dimmed": L }, i[27] = L, i[28] = h), g = t(E, _temp), i[0] = r, i[1] = a, i[2] = o, i[3] = s, i[4] = c, i[5] = l, i[6] = u, i[7] = d, i[8] = f, i[9] = p, i[10] = m, i[11] = h, i[12] = g;
951
+ } else a = i[1], o = i[2], s = i[3], c = i[4], l = i[5], u = i[6], d = i[7], f = i[8], p = i[9], m = i[10], h = i[11], g = i[12];
952
+ let _;
953
+ i[29] !== c || i[30] !== l || i[31] !== u || i[32] !== d || i[33] !== f || i[34] !== p || i[35] !== m || i[36] !== h || i[37] !== g ? (_ = {
954
+ className: c,
955
+ "data-likec4-color": l,
956
+ "data-edge-dir": u,
957
+ "data-edge-active": d,
958
+ "data-likec4-hovered": f,
959
+ ...p,
960
+ ...m,
961
+ ...h,
962
+ ...g
963
+ }, i[29] = c, i[30] = l, i[31] = u, i[32] = d, i[33] = f, i[34] = p, i[35] = m, i[36] = h, i[37] = g, i[38] = _) : _ = i[38];
964
+ let v = _;
965
+ if (o === "svg") {
966
+ let r;
967
+ return i[39] !== a || i[40] !== v || i[41] !== s ? (r = /* @__PURE__ */ X("svg", {
968
+ style: s,
969
+ ...v,
970
+ children: a
971
+ }), i[39] = a, i[40] = v, i[41] = s, i[42] = r) : r = i[42], r;
972
+ }
973
+ he(o === "g", "EdgeContainer: component must be \"g\" or \"svg\"");
974
+ let y;
975
+ return i[43] !== a || i[44] !== v || i[45] !== s ? (y = /* @__PURE__ */ X("g", {
976
+ style: s,
977
+ ...v,
978
+ children: a
979
+ }), i[43] = a, i[44] = v, i[45] = s, i[46] = y) : y = i[46], y;
980
+ }
981
+ function _temp(r, i) {
982
+ return r !== void 0 && i.startsWith("data-");
983
+ }
984
+ //#endregion
985
+ //#region ../diagram/src/base-primitives/edge/EdgeLabel.tsx
986
+ var tt = K((r, i) => {
987
+ let a = J(34), o, s, c, l, u, d, f;
988
+ a[0] === r ? (o = a[1], s = a[2], c = a[3], l = a[4], u = a[5], d = a[6], f = a[7]) : ({edgeProps: u, isSequenceStep: d, stepNum: l, pointerEvents: f, className: s, children: o, ...c} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c, a[4] = l, a[5] = u, a[6] = d, a[7] = f);
989
+ let { id: p, data: m, selected: h, selectable: g } = u, { label: _, technology: v, hovered: y } = m, b = y === void 0 ? !1 : y, x = h === void 0 ? !1 : h, S = g === void 0 ? !1 : g, T = d === void 0 ? !1 : d, E = f === void 0 ? "all" : f, D;
990
+ a[8] !== _ || a[9] !== v ? (D = e(_) || e(v), a[8] = _, a[9] = v, a[10] = D) : D = a[10];
991
+ let k = D, A;
992
+ a[11] !== s || a[12] !== T || a[13] !== E || a[14] !== S ? (A = w("likec4-edge-label", O({
993
+ pointerEvents: E,
994
+ isStepEdge: T,
995
+ cursor: S || T ? "pointer" : "default"
996
+ }), s), a[11] = s, a[12] = T, a[13] = E, a[14] = S, a[15] = A) : A = a[15];
997
+ let j = b && !x ? 1.06 : 1, M;
998
+ a[16] === j ? M = a[17] : (M = { scale: j }, a[16] = j, a[17] = M);
999
+ let N;
1000
+ a[18] !== T || a[19] !== l ? (N = T && l && /* @__PURE__ */ X(C, {
1001
+ className: "likec4-edge-label__step-number",
1002
+ children: l
1003
+ }), a[18] = T, a[19] = l, a[20] = N) : N = a[20];
1004
+ let P;
1005
+ a[21] !== o || a[22] !== k || a[23] !== _ || a[24] !== v ? (P = k && /* @__PURE__ */ Z(C, {
1006
+ className: "likec4-edge-label__contents",
1007
+ children: [
1008
+ e(_) && /* @__PURE__ */ X(C, {
1009
+ lineClamp: 5,
1010
+ className: "likec4-edge-label__text",
1011
+ children: _
1012
+ }),
1013
+ e(v) && /* @__PURE__ */ X(C, {
1014
+ className: "likec4-edge-label__technology",
1015
+ children: "[ " + v + " ]"
1016
+ }),
1017
+ o
1018
+ ]
1019
+ }), a[21] = o, a[22] = k, a[23] = _, a[24] = v, a[25] = P) : P = a[25];
1020
+ let F;
1021
+ return a[26] !== p || a[27] !== i || a[28] !== c || a[29] !== M || a[30] !== N || a[31] !== P || a[32] !== A ? (F = /* @__PURE__ */ Z(G, {
1022
+ ref: i,
1023
+ className: A,
1024
+ "data-edge-id": p,
1025
+ animate: M,
1026
+ ...c,
1027
+ children: [N, P]
1028
+ }), a[26] = p, a[27] = i, a[28] = c, a[29] = M, a[30] = N, a[31] = P, a[32] = A, a[33] = F) : F = a[33], F;
1029
+ });
1030
+ tt.displayName = "EdgeLabel";
1031
+ //#endregion
1032
+ //#region ../diagram/src/base-primitives/edge/EdgeLabelContainer.tsx
1033
+ var toCssVarValue = (r) => r === void 0 ? "" : e$1(r) ? `${Math.trunc(r)}px` : r;
1034
+ function EdgeLabelContainer(r) {
1035
+ let i = J(42), a, o, s, c, l, u;
1036
+ i[0] === r ? (a = i[1], o = i[2], s = i[3], c = i[4], l = i[5], u = i[6]) : ({edgeProps: u, labelPosition: c, className: o, style: s, children: a, ...l} = r, i[0] = r, i[1] = a, i[2] = o, i[3] = s, i[4] = c, i[5] = l, i[6] = u);
1037
+ let { id: d, selected: f, data: p, animated: m } = u, h = f === void 0 ? !1 : f, { hovered: g, active: _, dimmed: v, labelBBox: y, color: b } = p, x = g === void 0 ? !1 : g, S = _ === void 0 ? !1 : _, C = v === void 0 ? !1 : v, T = b === void 0 ? "gray" : b, E = c?.x ?? y?.x, D = c?.y ?? y?.y;
1038
+ if (E === void 0 || D === void 0) return null;
1039
+ let O = c?.translate ?? "";
1040
+ m ||= S;
1041
+ let k = d, A;
1042
+ i[7] === o ? A = i[8] : (A = w("nodrag nopan", "likec4-edge-label-container", o), i[7] = o, i[8] = A);
1043
+ let j = m || S, M;
1044
+ i[9] === m ? M = i[10] : (M = m && { "data-likec4-animated": m }, i[9] = m, i[10] = M);
1045
+ let N;
1046
+ i[11] === h ? N = i[12] : (N = h !== !1 && { "data-likec4-selected": h }, i[11] = h, i[12] = N);
1047
+ let P;
1048
+ i[13] === C ? P = i[14] : (P = C !== !1 && { "data-likec4-dimmed": C }, i[13] = C, i[14] = P);
1049
+ let F;
1050
+ i[15] === E ? F = i[16] : (F = toCssVarValue(E), i[15] = E, i[16] = F);
1051
+ let I;
1052
+ i[17] === D ? I = i[18] : (I = toCssVarValue(D), i[17] = D, i[18] = I);
1053
+ let L = `translate(${F}, ${I}) ${O}`, R;
1054
+ i[19] === L ? R = i[20] : (R = { transform: L }, i[19] = L, i[20] = R);
1055
+ let z;
1056
+ i[21] === y ? z = i[22] : (z = y && { maxWidth: y.width + 20 }, i[21] = y, i[22] = z);
1057
+ let B;
1058
+ i[23] !== s || i[24] !== z ? (B = {
1059
+ ...s,
1060
+ ...z
1061
+ }, i[23] = s, i[24] = z, i[25] = B) : B = i[25];
1062
+ let V;
1063
+ i[26] !== a || i[27] !== B ? (V = /* @__PURE__ */ X("div", {
1064
+ style: B,
1065
+ children: a
1066
+ }), i[26] = a, i[27] = B, i[28] = V) : V = i[28];
1067
+ let H;
1068
+ return i[29] !== T || i[30] !== d || i[31] !== S || i[32] !== x || i[33] !== l || i[34] !== j || i[35] !== M || i[36] !== N || i[37] !== P || i[38] !== R || i[39] !== V || i[40] !== A ? (H = /* @__PURE__ */ X(ee, { children: /* @__PURE__ */ X("div", {
1069
+ ...l,
1070
+ className: A,
1071
+ "data-likec4-hovered": x,
1072
+ "data-likec4-color": T,
1073
+ "data-edge-active": S,
1074
+ "data-edge-animated": j,
1075
+ ...M,
1076
+ ...N,
1077
+ ...P,
1078
+ style: R,
1079
+ children: V
1080
+ }, k) }), i[29] = T, i[30] = d, i[31] = S, i[32] = x, i[33] = l, i[34] = j, i[35] = M, i[36] = N, i[37] = P, i[38] = R, i[39] = V, i[40] = A, i[41] = H) : H = i[41], H;
1081
+ }
1082
+ //#endregion
1083
+ //#region ../diagram/src/base-primitives/edge/EdgeMarkers.tsx
1084
+ var Open = (r) => {
1085
+ let i = J(3), a;
1086
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1087
+ d: "M0,0 L7,4 L0,8 L4,4 Z",
1088
+ stroke: "context-stroke",
1089
+ fill: "context-stroke",
1090
+ strokeDasharray: 0,
1091
+ strokeWidth: 1,
1092
+ strokeLinecap: "round"
1093
+ }), i[0] = a) : a = i[0];
1094
+ let o;
1095
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1096
+ viewBox: "-4 -4 14 16",
1097
+ refX: 5,
1098
+ refY: 4,
1099
+ markerWidth: "7",
1100
+ markerHeight: "8",
1101
+ preserveAspectRatio: "xMaxYMid meet",
1102
+ orient: "auto-start-reverse",
1103
+ ...r,
1104
+ children: a
1105
+ }), i[1] = r, i[2] = o), o;
1106
+ }, Arrow = (r) => {
1107
+ let i = J(3), a;
1108
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1109
+ d: "M 0 0 L 8 3 L 0 6 L 1 3 z",
1110
+ fill: "context-stroke",
1111
+ strokeWidth: 0
1112
+ }), i[0] = a) : a = i[0];
1113
+ let o;
1114
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1115
+ viewBox: "-1 -1 12 10",
1116
+ refX: 4,
1117
+ refY: 3,
1118
+ markerWidth: "8",
1119
+ markerHeight: "6",
1120
+ preserveAspectRatio: "xMaxYMid meet",
1121
+ orient: "auto-start-reverse",
1122
+ ...r,
1123
+ children: a
1124
+ }), i[1] = r, i[2] = o), o;
1125
+ }, Crow = (r) => {
1126
+ let i = J(3), a;
1127
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1128
+ d: "M 8 0 L 0 4 L 8 8 M 8 4 L 0 4",
1129
+ fill: "none",
1130
+ strokeWidth: 1
1131
+ }), i[0] = a) : a = i[0];
1132
+ let o;
1133
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1134
+ viewBox: "-1 -1 12 12",
1135
+ refX: 8,
1136
+ refY: 4,
1137
+ markerWidth: "8",
1138
+ markerHeight: "8",
1139
+ preserveAspectRatio: "xMaxYMid meet",
1140
+ orient: "auto-start-reverse",
1141
+ ...r,
1142
+ children: a
1143
+ }), i[1] = r, i[2] = o), o;
1144
+ }, OArrow = (r) => {
1145
+ let i = J(3), a;
1146
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1147
+ d: "M 0 0 L 8 3 L 0 6 L 1 3 z",
1148
+ stroke: "context-stroke",
1149
+ fill: "var(--likec4-background-color)",
1150
+ strokeWidth: 1.25,
1151
+ strokeLinejoin: "miter",
1152
+ strokeLinecap: "square"
1153
+ }), i[0] = a) : a = i[0];
1154
+ let o;
1155
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1156
+ viewBox: "-1 -1 12 10",
1157
+ refX: 4,
1158
+ refY: 3,
1159
+ markerWidth: "8",
1160
+ markerHeight: "6",
1161
+ preserveAspectRatio: "xMaxYMid meet",
1162
+ orient: "auto-start-reverse",
1163
+ ...r,
1164
+ children: a
1165
+ }), i[1] = r, i[2] = o), o;
1166
+ }, Diamond = (r) => {
1167
+ let i = J(3), a;
1168
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1169
+ d: "M5,0 L10,4 L5,8 L0,4 Z",
1170
+ fill: "context-stroke",
1171
+ strokeWidth: 0,
1172
+ strokeLinecap: "round"
1173
+ }), i[0] = a) : a = i[0];
1174
+ let o;
1175
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1176
+ viewBox: "-4 -4 16 14",
1177
+ refX: 5,
1178
+ refY: 4,
1179
+ markerWidth: "10",
1180
+ markerHeight: "8",
1181
+ preserveAspectRatio: "xMaxYMid meet",
1182
+ orient: "auto-start-reverse",
1183
+ ...r,
1184
+ children: a
1185
+ }), i[1] = r, i[2] = o), o;
1186
+ }, ODiamond = (r) => {
1187
+ let i = J(3), a;
1188
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("path", {
1189
+ d: "M5,0 L10,4 L5,8 L0,4 Z",
1190
+ stroke: "context-stroke",
1191
+ fill: "var(--likec4-background-color)",
1192
+ strokeWidth: 1.25,
1193
+ strokeLinecap: "round"
1194
+ }), i[0] = a) : a = i[0];
1195
+ let o;
1196
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1197
+ viewBox: "-4 -4 16 14",
1198
+ refX: 6,
1199
+ refY: 4,
1200
+ markerWidth: "10",
1201
+ markerHeight: "8",
1202
+ preserveAspectRatio: "xMaxYMid meet",
1203
+ orient: "auto-start-reverse",
1204
+ ...r,
1205
+ children: a
1206
+ }), i[1] = r, i[2] = o), o;
1207
+ }, Dot = (r) => {
1208
+ let i = J(3), a;
1209
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("circle", {
1210
+ strokeWidth: 0,
1211
+ fill: "context-stroke",
1212
+ cx: 4,
1213
+ cy: 4,
1214
+ r: 3
1215
+ }), i[0] = a) : a = i[0];
1216
+ let o;
1217
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1218
+ viewBox: "0 0 10 10",
1219
+ refX: 4,
1220
+ refY: 4,
1221
+ markerWidth: "6",
1222
+ markerHeight: "6",
1223
+ ...r,
1224
+ children: a
1225
+ }), i[1] = r, i[2] = o), o;
1226
+ }, ODot = (r) => {
1227
+ let i = J(3), a;
1228
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("circle", {
1229
+ strokeWidth: 1.25,
1230
+ stroke: "context-stroke",
1231
+ fill: "var(--likec4-background-color)",
1232
+ cx: 4,
1233
+ cy: 4,
1234
+ r: 3
1235
+ }), i[0] = a) : a = i[0];
1236
+ let o;
1237
+ return i[1] === r ? o = i[2] : (o = /* @__PURE__ */ X("marker", {
1238
+ viewBox: "0 0 10 10",
1239
+ refX: 4,
1240
+ refY: 4,
1241
+ markerWidth: "6",
1242
+ markerHeight: "6",
1243
+ ...r,
1244
+ children: a
1245
+ }), i[1] = r, i[2] = o), o;
1246
+ }, nt = {
1247
+ Arrow,
1248
+ Crow,
1249
+ OArrow,
1250
+ Open,
1251
+ Diamond,
1252
+ ODiamond,
1253
+ Dot,
1254
+ ODot
1255
+ };
1256
+ function arrowTypeToMarker(r) {
1257
+ if (!(!r || r === "none")) switch (r) {
1258
+ case "normal": return "Arrow";
1259
+ case "crow": return "Crow";
1260
+ case "onormal": return "OArrow";
1261
+ case "diamond": return "Diamond";
1262
+ case "odiamond": return "ODiamond";
1263
+ case "open":
1264
+ case "vee": return "Open";
1265
+ case "dot": return "Dot";
1266
+ case "odot": return "ODot";
1267
+ default: ge(r);
1268
+ }
1269
+ }
1270
+ //#endregion
1271
+ //#region ../diagram/src/base-primitives/edge/EdgePath.tsx
1272
+ var rt = K((r, i) => {
1273
+ let a = J(54), { edgeProps: o, isDragging: s, onEdgePointerDown: c, strokeWidth: l, svgPath: u } = r, { id: d, data: f, selectable: p, style: m, interactionWidth: h } = o, { line: g, dir: _, tail: v, head: y } = f, b = p === void 0 ? !0 : p, x = s === void 0 ? !1 : s, S = arrowTypeToMarker(v), C = arrowTypeToMarker(y ?? "normal");
1274
+ _ === "back" && ([S, C] = [C, S]);
1275
+ let E = S ? nt[S] : null, O = C ? nt[C] : null, k = g === "dotted", A = k || g === "dashed", j;
1276
+ k ? j = "1,8" : A && (j = "8,10");
1277
+ let M, N, P, F, I, L, R, z;
1278
+ if (a[0] !== O || a[1] !== E || a[2] !== d || a[3] !== h || a[4] !== x || a[5] !== c || a[6] !== b || a[7] !== m || a[8] !== u || a[9] !== i) {
1279
+ let r = D();
1280
+ a[18] !== h || a[19] !== x || a[20] !== c || a[21] !== b || a[22] !== u ? (N = b && /* @__PURE__ */ X("path", {
1281
+ className: w("react-flow__edge-interaction", T({ fill: "none" })),
1282
+ onPointerDown: c,
1283
+ d: u,
1284
+ style: {
1285
+ strokeWidth: h ?? 10,
1286
+ stroke: "currentcolor",
1287
+ strokeOpacity: 0,
1288
+ ...x ? { display: "none" } : {}
1289
+ }
1290
+ }), a[18] = h, a[19] = x, a[20] = c, a[21] = b, a[22] = u, a[23] = N) : N = a[23];
1291
+ let o = `path("${u}")`, s;
1292
+ a[24] === o ? s = a[25] : (s = { offsetPath: o }, a[24] = o, a[25] = s), P = /* @__PURE__ */ X("circle", {
1293
+ className: w("likec4-edge-middle-point", r.middlePoint),
1294
+ "data-edge-id": d,
1295
+ style: s
1296
+ }), L = r.markersCtx, R = c;
1297
+ let l;
1298
+ a[26] !== E || a[27] !== d ? (l = E && /* @__PURE__ */ X(E, { id: "start" + d }), a[26] = E, a[27] = d, a[28] = l) : l = a[28];
1299
+ let f;
1300
+ a[29] !== O || a[30] !== d ? (f = O && /* @__PURE__ */ X(O, { id: "end" + d }), a[29] = O, a[30] = d, a[31] = f) : f = a[31], a[32] !== l || a[33] !== f ? (z = /* @__PURE__ */ Z("defs", { children: [l, f] }), a[32] = l, a[33] = f, a[34] = z) : z = a[34], M = /* @__PURE__ */ X("path", {
1301
+ className: w("react-flow__edge-path", "hide-on-reduced-graphics", r.pathBg, x && T({ display: "none" })),
1302
+ d: u,
1303
+ style: m,
1304
+ strokeLinecap: "round"
1305
+ }), F = i, I = w("react-flow__edge-path", r.path, b && "react-flow__edge-interaction"), a[0] = O, a[1] = E, a[2] = d, a[3] = h, a[4] = x, a[5] = c, a[6] = b, a[7] = m, a[8] = u, a[9] = i, a[10] = M, a[11] = N, a[12] = P, a[13] = F, a[14] = I, a[15] = L, a[16] = R, a[17] = z;
1306
+ } else M = a[10], N = a[11], P = a[12], F = a[13], I = a[14], L = a[15], R = a[16], z = a[17];
1307
+ let B = E ? `url(#start${d})` : void 0, ee = O ? `url(#end${d})` : void 0, V;
1308
+ a[35] !== j || a[36] !== l || a[37] !== m || a[38] !== u || a[39] !== B || a[40] !== ee || a[41] !== F || a[42] !== I ? (V = /* @__PURE__ */ X("path", {
1309
+ ref: F,
1310
+ className: I,
1311
+ d: u,
1312
+ style: m,
1313
+ strokeWidth: l,
1314
+ strokeLinecap: "round",
1315
+ strokeDasharray: j,
1316
+ markerStart: B,
1317
+ markerEnd: ee
1318
+ }), a[35] = j, a[36] = l, a[37] = m, a[38] = u, a[39] = B, a[40] = ee, a[41] = F, a[42] = I, a[43] = V) : V = a[43];
1319
+ let H;
1320
+ a[44] !== M || a[45] !== V || a[46] !== L || a[47] !== R || a[48] !== z ? (H = /* @__PURE__ */ Z("g", {
1321
+ className: L,
1322
+ onPointerDown: R,
1323
+ children: [
1324
+ z,
1325
+ M,
1326
+ V
1327
+ ]
1328
+ }), a[44] = M, a[45] = V, a[46] = L, a[47] = R, a[48] = z, a[49] = H) : H = a[49];
1329
+ let U;
1330
+ return a[50] !== N || a[51] !== P || a[52] !== H ? (U = /* @__PURE__ */ Z(Y, { children: [
1331
+ N,
1332
+ P,
1333
+ H
1334
+ ] }), a[50] = N, a[51] = P, a[52] = H, a[53] = U) : U = a[53], U;
1335
+ });
1336
+ rt.displayName = "EdgePath";
1337
+ //#endregion
1338
+ //#region ../diagram/src/base-primitives/element/ElementActionButtons.tsx
1339
+ var it = {
1340
+ normal: {
1341
+ originY: 0,
1342
+ opacity: .75,
1343
+ scale: .8,
1344
+ y: 0
1345
+ },
1346
+ selected: {
1347
+ originY: 0,
1348
+ opacity: 1,
1349
+ scale: .9,
1350
+ y: 7
1351
+ },
1352
+ hovered: {
1353
+ originY: 0,
1354
+ opacity: 1,
1355
+ scale: 1.12,
1356
+ y: 7
1357
+ }
1358
+ };
1359
+ function ElementActionButtons(r) {
1360
+ let i = J(14), { selected: a, data: o, buttons: s } = r, c = a === void 0 ? !1 : a, { hovered: l } = o, u = l === void 0 ? !1 : l, d = g();
1361
+ if (!s.length) return null;
1362
+ let f;
1363
+ bb0: switch (!0) {
1364
+ case u:
1365
+ f = "hovered";
1366
+ break bb0;
1367
+ case c:
1368
+ f = "selected";
1369
+ break bb0;
1370
+ default: f = "normal";
1371
+ }
1372
+ let p = u || c, m;
1373
+ i[0] === Symbol.for("react.memo_cache_sentinel") ? (m = A(), i[0] = m) : m = i[0];
1374
+ let h = f, _ = `${u}-${c}`, v;
1375
+ i[1] === Symbol.for("react.memo_cache_sentinel") ? (v = w("nodrag nopan"), i[1] = v) : v = i[1];
1376
+ let b;
1377
+ if (i[2] !== s || i[3] !== d || i[4] !== p) {
1378
+ let t9;
1379
+ i[6] !== d || i[7] !== p ? (t9 = (r, i) => /* @__PURE__ */ X(y, {
1380
+ component: oe,
1381
+ className: k({}),
1382
+ initial: !1,
1383
+ whileTap: { scale: 1 },
1384
+ whileHover: { scale: 1.3 },
1385
+ tabIndex: p ? 0 : -1,
1386
+ inert: p ? void 0 : !0,
1387
+ "aria-label": r.ariaLabel ?? r.key ?? "Element action",
1388
+ onClick: r.onClick,
1389
+ onDoubleClick: stopPropagation,
1390
+ children: r.icon || /* @__PURE__ */ X(Te, {})
1391
+ }, `${d}-${r.key ?? i}`), i[6] = d, i[7] = p, i[8] = t9) : t9 = i[8], b = s.map(t9), i[2] = s, i[3] = d, i[4] = p, i[5] = b;
1392
+ } else b = i[5];
1393
+ let x;
1394
+ return i[9] !== u || i[10] !== _ || i[11] !== b || i[12] !== f ? (x = /* @__PURE__ */ X("div", {
1395
+ className: m,
1396
+ children: /* @__PURE__ */ X(G, {
1397
+ layoutRoot: !0,
1398
+ initial: !1,
1399
+ variants: it,
1400
+ animate: h,
1401
+ layoutDependency: _,
1402
+ "data-likec4-hovered": u,
1403
+ className: v,
1404
+ onClick: stopPropagation,
1405
+ children: b
1406
+ })
1407
+ }), i[9] = u, i[10] = _, i[11] = b, i[12] = f, i[13] = x) : x = i[13], x;
1408
+ }
1409
+ //#endregion
1410
+ //#region ../diagram/src/base-primitives/element/ElementData.tsx
1411
+ var resolveIconColor = (r, i) => {
1412
+ let a = i.style.iconColor;
1413
+ if (!a) return;
1414
+ let o = r.colors(a).elements;
1415
+ return a === i.color ? o.stroke : o.fill;
1416
+ }, at = K((r, i) => {
1417
+ let a = J(28), o, s, c, l;
1418
+ a[0] === r ? (o = a[1], s = a[2], c = a[3], l = a[4]) : ({className: o, style: l, data: s, ...c} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c, a[4] = l);
1419
+ let u = useLikeC4Styles(), d;
1420
+ a[5] !== s.style || a[6] !== u ? (d = s.style.iconSize ? u.nodeSizes(s.style).values.iconSize : void 0, a[5] = s.style, a[6] = u, a[7] = d) : d = a[7];
1421
+ let f = d, p;
1422
+ a[8] !== s || a[9] !== u ? (p = resolveIconColor(u, s), a[8] = s, a[9] = u, a[10] = p) : p = a[10];
1423
+ let m = p, h;
1424
+ a[11] !== o || a[12] !== s.style.iconPosition || a[13] !== m ? (h = w(o, M({
1425
+ iconPosition: s.style.iconPosition,
1426
+ withIconColor: !!m
1427
+ }), "likec4-element"), a[11] = o, a[12] = s.style.iconPosition, a[13] = m, a[14] = h) : h = a[14];
1428
+ let g;
1429
+ a[15] === f ? g = a[16] : (g = f && { "--likec4-icon-size": `${f}px` }, a[15] = f, a[16] = g);
1430
+ let _;
1431
+ a[17] === m ? _ = a[18] : (_ = m && { "--likec4-icon-color": m }, a[17] = m, a[18] = _);
1432
+ let v;
1433
+ a[19] !== l || a[20] !== g || a[21] !== _ ? (v = {
1434
+ ...l,
1435
+ ...g,
1436
+ ..._
1437
+ }, a[19] = l, a[20] = g, a[21] = _, a[22] = v) : v = a[22];
1438
+ let y;
1439
+ return a[23] !== c || a[24] !== i || a[25] !== h || a[26] !== v ? (y = /* @__PURE__ */ X("div", {
1440
+ ...c,
1441
+ ref: i,
1442
+ className: h,
1443
+ style: v
1444
+ }), a[23] = c, a[24] = i, a[25] = h, a[26] = v, a[27] = y) : y = a[27], y;
1445
+ }), Icon = (r) => {
1446
+ let i = J(6), a, o;
1447
+ i[0] === r ? (a = i[1], o = i[2]) : ({data: a, ...o} = r, i[0] = r, i[1] = a, i[2] = o);
1448
+ let s;
1449
+ return i[3] !== a || i[4] !== o ? (s = /* @__PURE__ */ X(IconRenderer, {
1450
+ element: a,
1451
+ ...o
1452
+ }), i[3] = a, i[4] = o, i[5] = s) : s = i[5], s;
1453
+ }, ot = K((r, i) => {
1454
+ let a = J(9), o, s;
1455
+ a[0] === r ? (o = a[1], s = a[2]) : ({className: o, ...s} = r, a[0] = r, a[1] = o, a[2] = s);
1456
+ let c;
1457
+ a[3] === o ? c = a[4] : (c = w(o, "likec4-element-node-content"), a[3] = o, a[4] = c);
1458
+ let l;
1459
+ return a[5] !== s || a[6] !== i || a[7] !== c ? (l = /* @__PURE__ */ X("div", {
1460
+ ...s,
1461
+ className: c,
1462
+ ref: i
1463
+ }), a[5] = s, a[6] = i, a[7] = c, a[8] = l) : l = a[8], l;
1464
+ }), st = K((r, i) => {
1465
+ let a = J(11), o, s, c;
1466
+ a[0] === r ? (o = a[1], s = a[2], c = a[3]) : ({data: c, className: o, ...s} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c);
1467
+ let { title: l } = c, u;
1468
+ a[4] === o ? u = a[5] : (u = w(o, "likec4-element-title"), a[4] = o, a[5] = u);
1469
+ let d;
1470
+ return a[6] !== s || a[7] !== i || a[8] !== u || a[9] !== l ? (d = /* @__PURE__ */ X("div", {
1471
+ ...s,
1472
+ className: u,
1473
+ "data-likec4-node-title": "",
1474
+ ref: i,
1475
+ children: l
1476
+ }), a[6] = s, a[7] = i, a[8] = u, a[9] = l, a[10] = d) : d = a[10], d;
1477
+ }), ct = K((r, i) => {
1478
+ let a = J(10), o, s, c, l;
1479
+ a[0] === r ? (o = a[1], s = a[2], c = a[3], l = a[4]) : ({data: c, children: o, className: s, ...l} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c, a[4] = l);
1480
+ let u = c?.technology ?? o, d;
1481
+ return a[5] !== s || a[6] !== l || a[7] !== i || a[8] !== u ? (d = e(u) ? /* @__PURE__ */ X("div", {
1482
+ ...l,
1483
+ className: w(s, "likec4-element-technology"),
1484
+ "data-likec4-node-technology": "",
1485
+ ref: i,
1486
+ children: u
1487
+ }) : null, a[5] = s, a[6] = l, a[7] = i, a[8] = u, a[9] = d) : d = a[9], d;
1488
+ }), lt = K((r, i) => {
1489
+ let a = J(16), o, s, c;
1490
+ a[0] === r ? (o = a[1], s = a[2], c = a[3]) : ({data: c, className: o, ...s} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c);
1491
+ let { description: u } = c;
1492
+ if (!u) return null;
1493
+ let d;
1494
+ a[4] === u ? d = a[5] : (d = be.from(u), a[4] = u, a[5] = d);
1495
+ let f = d, p;
1496
+ a[6] === o ? p = a[7] : (p = w(o, "likec4-element-description"), a[6] = o, a[7] = p);
1497
+ let m = f.isMarkdown ? "8rem" : void 0, h;
1498
+ a[8] === m ? h = a[9] : (h = { maxHeight: m }, a[8] = m, a[9] = h);
1499
+ let g;
1500
+ return a[10] !== f || a[11] !== s || a[12] !== i || a[13] !== p || a[14] !== h ? (g = /* @__PURE__ */ X(l, {
1501
+ ...s,
1502
+ className: p,
1503
+ "data-likec4-node-description": "",
1504
+ value: f,
1505
+ uselikec4palette: !0,
1506
+ hideIfEmpty: !0,
1507
+ style: h,
1508
+ ref: i
1509
+ }), a[10] = f, a[11] = s, a[12] = i, a[13] = p, a[14] = h, a[15] = g) : g = a[15], g;
1510
+ });
1511
+ function ElementData(r) {
1512
+ let i = J(9), { data: a, "aria-hidden": o } = r, s;
1513
+ i[0] === a ? s = i[1] : (s = /* @__PURE__ */ X(Icon, { data: a }), i[0] = a, i[1] = s);
1514
+ let c;
1515
+ i[2] === a ? c = i[3] : (c = /* @__PURE__ */ Z(ot, { children: [
1516
+ /* @__PURE__ */ X(st, { data: a }),
1517
+ /* @__PURE__ */ X(ct, { data: a }),
1518
+ /* @__PURE__ */ X(lt, { data: a })
1519
+ ] }), i[2] = a, i[3] = c);
1520
+ let l;
1521
+ return i[4] !== o || i[5] !== a || i[6] !== s || i[7] !== c ? (l = /* @__PURE__ */ Z(at, {
1522
+ data: a,
1523
+ "aria-hidden": o,
1524
+ children: [s, c]
1525
+ }), i[4] = o, i[5] = a, i[6] = s, i[7] = c, i[8] = l) : l = i[8], l;
1526
+ }
1527
+ ElementData.Root = at, ElementData.Icon = Icon, ElementData.Content = ot, ElementData.Title = st, ElementData.Technology = ct, ElementData.Description = lt;
1528
+ //#endregion
1529
+ //#region ../diagram/src/base-primitives/element/ElementNodeContainer.tsx
1530
+ var ut = {
1531
+ normal: { scale: 1 },
1532
+ hovered: { scale: 1.05 },
1533
+ selected: { scale: 1.02 },
1534
+ tap: { scale: .98 }
1535
+ }, dt = K((r, i) => {
1536
+ let a = J(34), o, s, c, l, u;
1537
+ a[0] === r ? (o = a[1], s = a[2], c = a[3], l = a[4], u = a[5]) : ({nodeProps: u, className: s, style: l, children: o, ...c} = r, a[0] = r, a[1] = o, a[2] = s, a[3] = c, a[4] = l, a[5] = u);
1538
+ let { selected: d, selectable: f, data: p } = u, m = d === void 0 ? !1 : d, h = f === void 0 ? !1 : f, g, _, v, y, b;
1539
+ if (a[6] !== m || a[7] !== p) {
1540
+ let { hovered: r, dimmed: i, ...o } = p;
1541
+ g = o, v = r === void 0 ? !1 : r, _ = i === void 0 ? !1 : i;
1542
+ bb0: switch (!0) {
1543
+ case v:
1544
+ b = "hovered";
1545
+ break bb0;
1546
+ case m:
1547
+ b = "selected";
1548
+ break bb0;
1549
+ default: b = "normal";
1550
+ }
1551
+ y = xe(g.style ?? {}), a[6] = m, a[7] = p, a[8] = g, a[9] = _, a[10] = v, a[11] = y, a[12] = b;
1552
+ } else g = a[8], _ = a[9], v = a[10], y = a[11], b = a[12];
1553
+ let { size: x, padding: S, textSize: C } = y, T;
1554
+ a[13] === s ? T = a[14] : (T = w(P(), "group", s), a[13] = s, a[14] = T);
1555
+ let E;
1556
+ a[15] !== h || a[16] !== b ? (E = h && {
1557
+ animate: b,
1558
+ whileTap: "tap"
1559
+ }, a[15] = h, a[16] = b, a[17] = E) : E = a[17];
1560
+ let D;
1561
+ a[18] === _ ? D = a[19] : (D = _ !== !1 && { "data-likec4-dimmed": _ }, a[18] = _, a[19] = D);
1562
+ let O = l, k;
1563
+ return a[20] !== o || a[21] !== g.color || a[22] !== g.shape || a[23] !== v || a[24] !== S || a[25] !== i || a[26] !== c || a[27] !== x || a[28] !== T || a[29] !== E || a[30] !== D || a[31] !== O || a[32] !== C ? (k = /* @__PURE__ */ X(G, {
1564
+ ref: i,
1565
+ className: T,
1566
+ variants: ut,
1567
+ initial: !1,
1568
+ ...E,
1569
+ "data-likec4-hovered": v,
1570
+ "data-likec4-color": g.color,
1571
+ "data-likec4-shape": g.shape,
1572
+ "data-likec4-shape-size": x,
1573
+ "data-likec4-spacing": S,
1574
+ "data-likec4-text-size": C,
1575
+ ...D,
1576
+ style: O,
1577
+ tabIndex: -1,
1578
+ ...c,
1579
+ children: o
1580
+ }), a[20] = o, a[21] = g.color, a[22] = g.shape, a[23] = v, a[24] = S, a[25] = i, a[26] = c, a[27] = x, a[28] = T, a[29] = E, a[30] = D, a[31] = O, a[32] = C, a[33] = k) : k = a[33], k;
1581
+ });
1582
+ dt.displayName = "ElementNodeContainer";
1583
+ //#endregion
1584
+ //#region ../diagram/src/base-primitives/element/ElementShape.tsx
1585
+ function cylinderSVGPath(r, i, a = .07) {
1586
+ let o = Math.round(r / 2), s = o, c = roundDpr(a * o), l = i - 2 * c;
1587
+ return {
1588
+ path: ` M ${r},${c}
1589
+ a ${s},${c} 0,0,0 ${-r} 0
1590
+ l 0,${l}
1591
+ a ${s},${c} 0,0,0 ${r} 0
1592
+ l 0,${-l}
1593
+ z
1594
+ `.replace(/\s+/g, " ").trim(),
1595
+ ry: c,
1596
+ rx: s
1597
+ };
1598
+ }
1599
+ function docSVGPath(r, i) {
1600
+ let a = roundDpr(i - i / 8 / 2), o = roundDpr(i / 6);
1601
+ return { path: `
1602
+ M 0 ${a}
1603
+ V 6
1604
+ Q 0 0 6 0
1605
+ H ${r - 6}
1606
+ Q ${r} 0 ${r} 6
1607
+ V ${a}
1608
+ C ${roundDpr(r * .75)} ${a + o}, ${roundDpr(r * .5)} ${a - o}, 0 ${a}
1609
+ `.replace(/\s+/g, " ").trim() };
1610
+ }
1611
+ function bucketSVGPath(r, i) {
1612
+ let a = r / 2, o = roundDpr(a), s = roundDpr(Math.min(i / 8, o * .08)), c = roundDpr(o * .8), l = roundDpr(s * 1.05), u = s, d = i - l, f = a - c;
1613
+ return {
1614
+ path: `
1615
+ M ${r},${u}
1616
+ a ${o},${s} 0,0,0 ${-r} 0
1617
+ L ${f},${d}
1618
+ a ${c},${l} 0,0,0 ${c * 2} 0
1619
+ Z
1620
+ `.replace(/\s+/g, " ").trim(),
1621
+ topRx: o,
1622
+ topRy: s,
1623
+ bottomRx: c,
1624
+ bottomRy: l
1625
+ };
1626
+ }
1627
+ function queueSVGPath(r, i, a = .185) {
1628
+ let o = i, s = Math.round(o / 2), c = roundDpr(o / 2 * a);
1629
+ return {
1630
+ path: `
1631
+ M ${c},0
1632
+ a ${c},${s} 0,0,0 0 ${o}
1633
+ l ${r - 2 * c},0
1634
+ a ${c},${s} 0,0,0 0 ${-o}
1635
+ z`.replace(/\s+/g, " ").trim(),
1636
+ ry: s,
1637
+ rx: c
1638
+ };
1639
+ }
1640
+ var ft = {
1641
+ width: 115,
1642
+ height: 120,
1643
+ path: "M57.9197 0C10.9124 0 33.5766 54.75 33.5766 54.75C38.6131 62.25 45.3285 60.75 45.3285 66C45.3285 70.5 39.4526 72 33.5766 72.75C24.3431 72.75 15.9489 71.25 7.55474 84.75C2.51825 93 0 120 0 120H115C115 120 112.482 93 108.285 84.75C99.8905 70.5 91.4963 72.75 82.2628 72C76.3869 71.25 70.5109 69.75 70.5109 65.25C70.5109 60.75 77.2263 62.25 82.2628 54C82.2628 54.75 104.927 0 57.9197 0V0Z"
1644
+ }, ComponentTopLeftRect = (r) => {
1645
+ let i = J(5), { index: a, size: o } = r, s, c, l, u, d;
1646
+ bb0: switch (o) {
1647
+ case "xs":
1648
+ case "sm":
1649
+ s = 40, c = 18, l = -16, u = 16, d = 10;
1650
+ break bb0;
1651
+ case "md":
1652
+ s = 60, c = 26, l = -20, u = 22, d = 14;
1653
+ break bb0;
1654
+ case "lg":
1655
+ case "xl":
1656
+ s = 70, c = 32, l = -24, u = 32, d = 18;
1657
+ break bb0;
1658
+ default: ge(o);
1659
+ }
1660
+ let f = u + (c + d) * a, p;
1661
+ return i[0] !== c || i[1] !== l || i[2] !== f || i[3] !== s ? (p = /* @__PURE__ */ X("rect", {
1662
+ x: l,
1663
+ y: f,
1664
+ width: s,
1665
+ height: c,
1666
+ rx: 3,
1667
+ className: "top-left-rect",
1668
+ strokeWidth: 2
1669
+ }), i[0] = c, i[1] = l, i[2] = f, i[3] = s, i[4] = p) : p = i[4], p;
1670
+ };
1671
+ function ShapeSvg(r) {
1672
+ let i = J(94), { shape: a, w: o, h: s, size: c } = r, l = c === void 0 ? "md" : c;
1673
+ switch (a) {
1674
+ case "component": {
1675
+ let r;
1676
+ i[0] !== s || i[1] !== o ? (r = /* @__PURE__ */ X("rect", {
1677
+ width: o,
1678
+ height: s,
1679
+ rx: 6,
1680
+ strokeWidth: 0
1681
+ }), i[0] = s, i[1] = o, i[2] = r) : r = i[2];
1682
+ let a, c;
1683
+ i[3] === l ? (a = i[4], c = i[5]) : (a = /* @__PURE__ */ X(ComponentTopLeftRect, {
1684
+ index: 0,
1685
+ size: l
1686
+ }), c = /* @__PURE__ */ X(ComponentTopLeftRect, {
1687
+ index: 1,
1688
+ size: l
1689
+ }), i[3] = l, i[4] = a, i[5] = c);
1690
+ let u;
1691
+ return i[6] !== r || i[7] !== a || i[8] !== c ? (u = /* @__PURE__ */ Z(Y, { children: [
1692
+ r,
1693
+ a,
1694
+ c
1695
+ ] }), i[6] = r, i[7] = a, i[8] = c, i[9] = u) : u = i[9], u;
1696
+ }
1697
+ case "mobile": {
1698
+ let r;
1699
+ i[10] !== s || i[11] !== o ? (r = /* @__PURE__ */ X("rect", {
1700
+ width: o,
1701
+ height: s,
1702
+ rx: 6,
1703
+ "data-likec4-fill": "mix-stroke",
1704
+ strokeWidth: 0
1705
+ }), i[10] = s, i[11] = o, i[12] = r) : r = i[12];
1706
+ let a = s / 2, c;
1707
+ i[13] === a ? c = i[14] : (c = /* @__PURE__ */ X("circle", {
1708
+ cx: 17,
1709
+ cy: a,
1710
+ r: 12
1711
+ }), i[13] = a, i[14] = c);
1712
+ let l = o - 44, u = s - 24, d;
1713
+ i[15] !== l || i[16] !== u ? (d = /* @__PURE__ */ X("rect", {
1714
+ x: 33,
1715
+ y: 12,
1716
+ width: l,
1717
+ height: u,
1718
+ rx: 5
1719
+ }), i[15] = l, i[16] = u, i[17] = d) : d = i[17];
1720
+ let f;
1721
+ i[18] !== c || i[19] !== d ? (f = /* @__PURE__ */ Z("g", {
1722
+ "data-likec4-fill": "fill",
1723
+ strokeWidth: 0,
1724
+ children: [c, d]
1725
+ }), i[18] = c, i[19] = d, i[20] = f) : f = i[20];
1726
+ let p;
1727
+ return i[21] !== r || i[22] !== f ? (p = /* @__PURE__ */ Z(Y, { children: [r, f] }), i[21] = r, i[22] = f, i[23] = p) : p = i[23], p;
1728
+ }
1729
+ case "document": {
1730
+ let r;
1731
+ i[24] !== s || i[25] !== o ? (r = docSVGPath(o, s), i[24] = s, i[25] = o, i[26] = r) : r = i[26];
1732
+ let { path: a } = r, c;
1733
+ return i[27] === a ? c = i[28] : (c = /* @__PURE__ */ X("path", {
1734
+ d: a,
1735
+ "data-likec4-fill": "fill",
1736
+ strokeWidth: 2
1737
+ }), i[27] = a, i[28] = c), c;
1738
+ }
1739
+ case "browser": {
1740
+ let r;
1741
+ i[29] !== s || i[30] !== o ? (r = /* @__PURE__ */ X("rect", {
1742
+ width: o,
1743
+ height: s,
1744
+ rx: 6,
1745
+ "data-likec4-fill": "mix-stroke",
1746
+ strokeWidth: 0
1747
+ }), i[29] = s, i[30] = o, i[31] = r) : r = i[31];
1748
+ let a, c, l;
1749
+ i[32] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ X("circle", {
1750
+ cx: 16,
1751
+ cy: 17,
1752
+ r: 7
1753
+ }), c = /* @__PURE__ */ X("circle", {
1754
+ cx: 36,
1755
+ cy: 17,
1756
+ r: 7
1757
+ }), l = /* @__PURE__ */ X("circle", {
1758
+ cx: 56,
1759
+ cy: 17,
1760
+ r: 7
1761
+ }), i[32] = a, i[33] = c, i[34] = l) : (a = i[32], c = i[33], l = i[34]);
1762
+ let u = o - 80, d;
1763
+ i[35] === u ? d = i[36] : (d = /* @__PURE__ */ X("rect", {
1764
+ x: 70,
1765
+ y: 8,
1766
+ width: u,
1767
+ height: 17,
1768
+ rx: 4
1769
+ }), i[35] = u, i[36] = d);
1770
+ let f = o - 20, p = s - 42, m;
1771
+ i[37] !== f || i[38] !== p ? (m = /* @__PURE__ */ X("rect", {
1772
+ x: 10,
1773
+ y: 32,
1774
+ width: f,
1775
+ height: p,
1776
+ rx: 4
1777
+ }), i[37] = f, i[38] = p, i[39] = m) : m = i[39];
1778
+ let h;
1779
+ i[40] !== m || i[41] !== d ? (h = /* @__PURE__ */ Z("g", {
1780
+ "data-likec4-fill": "fill",
1781
+ strokeWidth: 0,
1782
+ children: [
1783
+ a,
1784
+ c,
1785
+ l,
1786
+ d,
1787
+ m
1788
+ ]
1789
+ }), i[40] = m, i[41] = d, i[42] = h) : h = i[42];
1790
+ let g;
1791
+ return i[43] !== h || i[44] !== r ? (g = /* @__PURE__ */ Z(Y, { children: [r, h] }), i[43] = h, i[44] = r, i[45] = g) : g = i[45], g;
1792
+ }
1793
+ case "person": {
1794
+ let r;
1795
+ i[46] !== s || i[47] !== o ? (r = /* @__PURE__ */ X("rect", {
1796
+ width: o,
1797
+ height: s,
1798
+ rx: 6,
1799
+ strokeWidth: 0
1800
+ }), i[46] = s, i[47] = o, i[48] = r) : r = i[48];
1801
+ let a = o - ft.width - 6, c = s - ft.height, l;
1802
+ i[49] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ X("path", {
1803
+ strokeWidth: 0,
1804
+ d: ft.path
1805
+ }), i[49] = l) : l = i[49];
1806
+ let u;
1807
+ i[50] !== a || i[51] !== c ? (u = /* @__PURE__ */ X("svg", {
1808
+ x: a,
1809
+ y: c,
1810
+ width: ft.width,
1811
+ height: ft.height,
1812
+ viewBox: `0 0 ${ft.width} ${ft.height}`,
1813
+ "data-likec4-fill": "mix-stroke",
1814
+ children: l
1815
+ }), i[50] = a, i[51] = c, i[52] = u) : u = i[52];
1816
+ let d;
1817
+ return i[53] !== r || i[54] !== u ? (d = /* @__PURE__ */ Z(Y, { children: [r, u] }), i[53] = r, i[54] = u, i[55] = d) : d = i[55], d;
1818
+ }
1819
+ case "queue": {
1820
+ let r;
1821
+ i[56] !== s || i[57] !== o ? (r = queueSVGPath(o, s), i[56] = s, i[57] = o, i[58] = r) : r = i[58];
1822
+ let { path: a, rx: c, ry: l } = r, u;
1823
+ i[59] === a ? u = i[60] : (u = /* @__PURE__ */ X("path", {
1824
+ d: a,
1825
+ strokeWidth: 2
1826
+ }), i[59] = a, i[60] = u);
1827
+ let d = l - .75, f;
1828
+ i[61] !== c || i[62] !== l || i[63] !== d ? (f = /* @__PURE__ */ X("ellipse", {
1829
+ cx: c,
1830
+ cy: l,
1831
+ ry: d,
1832
+ rx: c,
1833
+ "data-likec4-fill": "mix-stroke",
1834
+ strokeWidth: 2
1835
+ }), i[61] = c, i[62] = l, i[63] = d, i[64] = f) : f = i[64];
1836
+ let p;
1837
+ return i[65] !== u || i[66] !== f ? (p = /* @__PURE__ */ Z(Y, { children: [u, f] }), i[65] = u, i[66] = f, i[67] = p) : p = i[67], p;
1838
+ }
1839
+ case "bucket": {
1840
+ let r;
1841
+ i[68] !== s || i[69] !== o ? (r = bucketSVGPath(o, s), i[68] = s, i[69] = o, i[70] = r) : r = i[70];
1842
+ let { path: a, topRx: c, topRy: l } = r, u;
1843
+ i[71] === a ? u = i[72] : (u = /* @__PURE__ */ X("path", {
1844
+ d: a,
1845
+ strokeWidth: 2
1846
+ }), i[71] = a, i[72] = u);
1847
+ let d = o / 2, f;
1848
+ i[73] !== d || i[74] !== c || i[75] !== l ? (f = /* @__PURE__ */ X("ellipse", {
1849
+ cx: d,
1850
+ cy: l,
1851
+ rx: c,
1852
+ ry: l,
1853
+ "data-likec4-fill": "mix-stroke",
1854
+ strokeWidth: 2
1855
+ }), i[73] = d, i[74] = c, i[75] = l, i[76] = f) : f = i[76];
1856
+ let p;
1857
+ return i[77] !== u || i[78] !== f ? (p = /* @__PURE__ */ Z(Y, { children: [u, f] }), i[77] = u, i[78] = f, i[79] = p) : p = i[79], p;
1858
+ }
1859
+ case "storage":
1860
+ case "cylinder": {
1861
+ let r;
1862
+ i[80] !== s || i[81] !== o ? (r = cylinderSVGPath(o, s), i[80] = s, i[81] = o, i[82] = r) : r = i[82];
1863
+ let { path: a, rx: c, ry: l } = r, u;
1864
+ i[83] === a ? u = i[84] : (u = /* @__PURE__ */ X("path", {
1865
+ d: a,
1866
+ strokeWidth: 2
1867
+ }), i[83] = a, i[84] = u);
1868
+ let d = c - .75, f;
1869
+ i[85] !== c || i[86] !== l || i[87] !== d ? (f = /* @__PURE__ */ X("ellipse", {
1870
+ cx: c,
1871
+ cy: l,
1872
+ ry: l,
1873
+ rx: d,
1874
+ "data-likec4-fill": "mix-stroke",
1875
+ strokeWidth: 2
1876
+ }), i[85] = c, i[86] = l, i[87] = d, i[88] = f) : f = i[88];
1877
+ let p;
1878
+ return i[89] !== u || i[90] !== f ? (p = /* @__PURE__ */ Z(Y, { children: [u, f] }), i[89] = u, i[90] = f, i[91] = p) : p = i[91], p;
1879
+ }
1880
+ default: {
1881
+ let r;
1882
+ return i[92] === a ? r = i[93] : (r = ge(a), i[92] = a, i[93] = r), r;
1883
+ }
1884
+ }
1885
+ }
1886
+ function ShapeSvgOutline(r) {
1887
+ let i = J(25), { shape: a, w: o, h: s } = r, c;
1888
+ bb0: switch (a) {
1889
+ case "bucket": {
1890
+ let r = o + 6, a = s + 6, l;
1891
+ i[0] !== r || i[1] !== a ? (l = bucketSVGPath(r, a), i[0] = r, i[1] = a, i[2] = l) : l = i[2];
1892
+ let u;
1893
+ i[3] === l.path ? u = i[4] : (u = /* @__PURE__ */ X("g", {
1894
+ transform: "translate(-3 -3)",
1895
+ children: /* @__PURE__ */ X("path", { d: l.path })
1896
+ }), i[3] = l.path, i[4] = u), c = u;
1897
+ break bb0;
1898
+ }
1899
+ case "queue": {
1900
+ let r = o + 6, a = s + 6, l;
1901
+ i[5] !== r || i[6] !== a ? (l = queueSVGPath(r, a), i[5] = r, i[6] = a, i[7] = l) : l = i[7];
1902
+ let u;
1903
+ i[8] === l.path ? u = i[9] : (u = /* @__PURE__ */ X("g", {
1904
+ transform: "translate(-3 -3)",
1905
+ children: /* @__PURE__ */ X("path", { d: l.path })
1906
+ }), i[8] = l.path, i[9] = u), c = u;
1907
+ break bb0;
1908
+ }
1909
+ case "document": {
1910
+ let r = o + 6, a = s + 6, l;
1911
+ i[10] !== r || i[11] !== a ? (l = docSVGPath(r, a), i[10] = r, i[11] = a, i[12] = l) : l = i[12];
1912
+ let u;
1913
+ i[13] === l.path ? u = i[14] : (u = /* @__PURE__ */ X("g", {
1914
+ transform: "translate(-3 -3)",
1915
+ children: /* @__PURE__ */ X("path", { d: l.path })
1916
+ }), i[13] = l.path, i[14] = u), c = u;
1917
+ break bb0;
1918
+ }
1919
+ case "storage":
1920
+ case "cylinder": {
1921
+ let r = o + 6, a = s + 6, l;
1922
+ i[15] !== r || i[16] !== a ? (l = cylinderSVGPath(r, a), i[15] = r, i[16] = a, i[17] = l) : l = i[17];
1923
+ let u;
1924
+ i[18] === l.path ? u = i[19] : (u = /* @__PURE__ */ X("g", {
1925
+ transform: "translate(-3 -3)",
1926
+ children: /* @__PURE__ */ X("path", { d: l.path })
1927
+ }), i[18] = l.path, i[19] = u), c = u;
1928
+ break bb0;
1929
+ }
1930
+ default: {
1931
+ let r = o + 6, a = s + 6, l;
1932
+ i[20] !== r || i[21] !== a ? (l = /* @__PURE__ */ X("rect", {
1933
+ x: -3,
1934
+ y: -3,
1935
+ width: r,
1936
+ height: a,
1937
+ rx: 8
1938
+ }), i[20] = r, i[21] = a, i[22] = l) : l = i[22], c = l;
1939
+ }
1940
+ }
1941
+ let l;
1942
+ return i[23] === c ? l = i[24] : (l = /* @__PURE__ */ X("g", {
1943
+ className: "likec4-shape-outline",
1944
+ children: c
1945
+ }), i[23] = c, i[24] = l), l;
1946
+ }
1947
+ function ElementShape(r) {
1948
+ let i = J(38), { data: a, width: o, height: s, showSelectionOutline: c } = r, l = c === void 0 ? !0 : c, u = o && o > 10 ? o : a.width, d = s && s > 10 ? s : a.height, f = a.style?.multiple ?? !1, p = a.style?.border ?? "none", m = p !== "none";
1949
+ if (a.shape === "rectangle") {
1950
+ let r;
1951
+ i[0] === p ? r = i[1] : (r = { borderStyle: p }, i[0] = p, i[1] = r);
1952
+ let a;
1953
+ i[2] !== l || i[3] !== m ? (a = E({
1954
+ shapetype: "html",
1955
+ withBorder: m,
1956
+ withOutline: l
1957
+ }), i[2] = l, i[3] = m, i[4] = a) : a = i[4];
1958
+ let o;
1959
+ i[5] === f ? o = i[6] : (o = f && /* @__PURE__ */ X("div", { className: "likec4-shape-multiple" }), i[5] = f, i[6] = o);
1960
+ let s;
1961
+ i[7] === Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ X("div", { className: "likec4-shape-outline" }), i[7] = s) : s = i[7];
1962
+ let c;
1963
+ return i[8] !== r || i[9] !== a || i[10] !== o ? (c = /* @__PURE__ */ Z("div", {
1964
+ "aria-hidden": !0,
1965
+ style: r,
1966
+ className: a,
1967
+ children: [o, s]
1968
+ }), i[8] = r, i[9] = a, i[10] = o, i[11] = c) : c = i[11], c;
1969
+ }
1970
+ let h;
1971
+ i[12] === l ? h = i[13] : (h = E({
1972
+ shapetype: "svg",
1973
+ withOutline: l
1974
+ }), i[12] = l, i[13] = h);
1975
+ let g = h, _;
1976
+ i[14] !== g || i[15] !== a.shape || i[16] !== a.style?.size || i[17] !== d || i[18] !== f || i[19] !== u ? (_ = f && /* @__PURE__ */ X("svg", {
1977
+ "aria-hidden": !0,
1978
+ className: g,
1979
+ "data-likec4-shape-multiple": "true",
1980
+ viewBox: `0 0 ${u} ${d}`,
1981
+ children: /* @__PURE__ */ X(ShapeSvg, {
1982
+ shape: a.shape,
1983
+ size: a.style?.size,
1984
+ w: u,
1985
+ h: d
1986
+ })
1987
+ }), i[14] = g, i[15] = a.shape, i[16] = a.style?.size, i[17] = d, i[18] = f, i[19] = u, i[20] = _) : _ = i[20];
1988
+ let v = `0 0 ${u} ${d}`, y;
1989
+ i[21] !== a.shape || i[22] !== d || i[23] !== u ? (y = /* @__PURE__ */ X(ShapeSvgOutline, {
1990
+ shape: a.shape,
1991
+ w: u,
1992
+ h: d
1993
+ }), i[21] = a.shape, i[22] = d, i[23] = u, i[24] = y) : y = i[24];
1994
+ let b = a.style?.size, x;
1995
+ i[25] !== a.shape || i[26] !== d || i[27] !== b || i[28] !== u ? (x = /* @__PURE__ */ X(ShapeSvg, {
1996
+ shape: a.shape,
1997
+ size: b,
1998
+ w: u,
1999
+ h: d
2000
+ }), i[25] = a.shape, i[26] = d, i[27] = b, i[28] = u, i[29] = x) : x = i[29];
2001
+ let S;
2002
+ i[30] !== g || i[31] !== v || i[32] !== y || i[33] !== x ? (S = /* @__PURE__ */ Z("svg", {
2003
+ "aria-hidden": !0,
2004
+ className: g,
2005
+ viewBox: v,
2006
+ children: [y, x]
2007
+ }), i[30] = g, i[31] = v, i[32] = y, i[33] = x, i[34] = S) : S = i[34];
2008
+ let C;
2009
+ return i[35] !== _ || i[36] !== S ? (C = /* @__PURE__ */ Z(Y, { children: [_, S] }), i[35] = _, i[36] = S, i[37] = C) : C = i[37], C;
2010
+ }
2011
+ //#endregion
2012
+ //#region ../diagram/src/base-primitives/memoEdge.ts
2013
+ var isSame = (r, i) => Math.abs(r - i) < 2.5, edgePropsEqual = (r, i) => r.id === i.id && W(r.selected ?? !1, i.selected ?? !1) && W(r.animated ?? !1, i.animated ?? !1) && W(r.source, i.source) && W(r.target, i.target) && isSame(r.sourceX, i.sourceX) && isSame(r.sourceY, i.sourceY) && isSame(r.targetX, i.targetX) && isSame(r.targetY, i.targetY) && W(r.sourceHandleId ?? null, i.sourceHandleId ?? null) && W(r.targetHandleId ?? null, i.targetHandleId ?? null) && W(r.sourcePosition, i.sourcePosition) && W(r.targetPosition, i.targetPosition) && W(r.data, i.data);
2014
+ function memoEdge(r) {
2015
+ let i = le(r, edgePropsEqual);
2016
+ return i.displayName = `MemoEdge(${r.displayName || r.name})`, i;
2017
+ }
2018
+ //#endregion
2019
+ //#region ../diagram/src/base-primitives/NodeHandles.tsx
2020
+ function DefaultHandles(r) {
2021
+ let i = J(7), { direction: a } = r, o = a === void 0 ? "TB" : a, s, c;
2022
+ bb0: switch (o) {
2023
+ case "TB":
2024
+ s = F.Bottom, c = F.Top;
2025
+ break bb0;
2026
+ case "BT":
2027
+ s = F.Top, c = F.Bottom;
2028
+ break bb0;
2029
+ case "LR":
2030
+ s = F.Right, c = F.Left;
2031
+ break bb0;
2032
+ case "RL":
2033
+ s = F.Left, c = F.Right;
2034
+ break bb0;
2035
+ default: ge(o);
2036
+ }
2037
+ let l;
2038
+ i[0] === s ? l = i[1] : (l = /* @__PURE__ */ X(I, {
2039
+ type: "source",
2040
+ position: s,
2041
+ className: "likec4-node-handle-center"
2042
+ }), i[0] = s, i[1] = l);
2043
+ let u;
2044
+ i[2] === c ? u = i[3] : (u = /* @__PURE__ */ X(I, {
2045
+ type: "target",
2046
+ position: c,
2047
+ className: "likec4-node-handle-center"
2048
+ }), i[2] = c, i[3] = u);
2049
+ let d;
2050
+ return i[4] !== l || i[5] !== u ? (d = /* @__PURE__ */ Z(Y, { children: [l, u] }), i[4] = l, i[5] = u, i[6] = d) : d = i[6], d;
2051
+ }
2052
+ //#endregion
2053
+ //#region ../diagram/src/components/Logo.tsx
2054
+ var pt = K((r, i) => {
2055
+ let a = J(5), o, s;
2056
+ a[0] === Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ X("path", {
2057
+ fill: "#5E98AF",
2058
+ d: "M33.95 33.78V0H2.37A2.37 2.37 0 0 0 0 2.35V33.9h33.95v-.12ZM38.57 33.78H55.6v-14.6c0-1.3-1.06-2.35-2.36-2.35H38.57v16.95ZM33.95 38.37H17.04v14.6c0 1.29 1.06 2.35 2.36 2.35h14.67V38.37h-.12ZM38.57 38.37v16.95h14.67c1.3 0 2.36-1.06 2.36-2.36v-14.6H38.57Z"
2059
+ }), s = /* @__PURE__ */ X("path", {
2060
+ className: T({
2061
+ fill: "[#FCFBF7]",
2062
+ _light: { fill: "[#222221]" }
2063
+ }),
2064
+ d: "M71.61 12.08c-.06 3.61.3 29.95.23 31.87 0 1.8 0 3.6.06 5.41 0 .3.18.58.47.58 4.1.18 8.13-.17 12.22-.11 1.34.05 2.69 0 3.97 0 1.29-.06 1.4-.59 1.35-1.63-.06-1.63-.06-3.08-.06-4.65-.06-.82-.53-1.11-1.23-1.11-2.4.06-4.8-.06-7.19.06-.4.06-.82.06-1.23.06-.7-.06-.87-.24-.93-1v-.86c-.18-4.83.17-9.83.17-14.66-.06-4.07 0-7.73-.06-11.34 0-1.57 0-3.14-.05-4.65-.06-.93 0-1.92-.24-2.85-.11-.35-.29-.81-.7-.81h-5.5c-.93 0-1.22.64-1.28 1.57v4.12ZM103.81 35c-.17-6.63-.1-13.67-.05-20.24 0-2.04-.12-4.25-.12-6.28 0-2.21-.87-2.1-2.04-2.15-1.7-.06-2.46-.06-4.15-.06-1.11-.06-1.58.23-1.58 1.34 0 5.7-.18 21.8-.12 24.13.06 2.33.3 12.91.18 15.24-.06.81 0 1.62.06 2.44.05.29.23.58.7.58 1.93-.12 3.74-.12 5.67-.17.7-.06 1.28-.24 1.58-1 .05-.4-.12-11.04-.12-13.83Zm13.92 4.47c0-2.03-.3-7.56-.23-8.72 0-.17.11-.4.17-.4.12 0 .35.11.41.17 1.87 2.44 10.64 19.36 11.7 19.42.28.06.58.06.87.06 1.99-.12 3.74 0 5.73 0 2.04 0 .7-1.98.35-2.5-.53-.76-7.48-13.14-7.9-13.9-1.16-1.98-2.16-4.13-3.32-6.05-.12-.23-.24-.58-.18-.81.12-.7.3-1.34.59-1.98a93.18 93.18 0 0 1 4.55-8.14c1.88-2.97 2.93-4.83 4.45-7.5.35-.64.58-1.34.82-2.1.05-.29-.18-.58-.53-.58-1.11-.05-5.15 0-6.43 0-.59 0-1.17.12-1.46.64-.76 1.46-8.6 15.7-9.35 16.98-.06.12-.24.18-.41.18 0 0-.12-.18-.12-.3-.06-3.25.53-13.9.4-16.04-.05-1.28-.28-1.4-1.57-1.46-1.4-.05-3.33-.05-4.73-.05-1.3 0-1.4.7-1.58 1.62-.06.18-.06 5.64-.06 8.09 0 3.54-.3 25.76.11 32.8 0 .7.18 1.1.77 1.1 1.57-.12 3.91 0 5.49 0 1.11 0 1.29-.12 1.29-1.98 0-2.5.23-4.77.23-7.85 0-.23-.06-.46-.06-.7Zm25.66-1.4h-.06c0 1.46-.05 2.97 0 4.49.06 1.86.18 3.72.3 5.58 0 .64.17.81.76.93 1.22.29 2.4.35 3.62.35 3.16-.12 6.31.11 9.47 0 1.29-.06 1.87.06 3.16-.18 1.17-.23 1.58-.87 1.58-2.61-.12-1.1-.06-1.57-.06-2.91 0-1.92-1.35-2.56-2.52-2.5-.81.06-4.73-.06-6.31-.06-2.63.06-2.22.4-2.22-2.33 0-2.2.06-5.05.06-7.32 0-1.22.11-1.63 1.28-1.63h7.31c1.17.17 1.99-.64 1.99-1.86 0-1.22.12-1.28.12-2.5l-.18-1.75c-.12-.99-.47-1.33-1.46-1.33-.64 0-1.29.05-1.93.11-2.52.18-3.68-.17-6.14 0-.82 0-.93-.11-1-.87-.23-2.27 0-4.77.24-7.04.06-.93.3-1.1 1.17-1.16l8.24-.06c1.11-.11 1.46-.06 1.4-1.16-.11-1.69.06-3.43-.11-5.12-.12-.93-.41-1.1-1.46-1.1-1.76.05-2.17.05-3.92.17-1.75.06-8.77.06-10.46.06-2.46 0-2.63-.18-2.7 2.8-.1 2.32-.05 4.7-.05 7.09 0 4.07-.23 18.66-.12 21.92Zm47.76-24.82c.06-1.92 0-3.5 0-5.35 0-2.15-3.92-1.92-5.32-1.86a18.95 18.95 0 0 0-15.08 9.77c-.82 1.57-1.4 3.2-1.81 4.88a34 34 0 0 0-.59 12.15c.41 3.78 1.4 7.56 3.74 10.59 4.04 5.3 11.46 7.15 17.83 6.16.3-.06.59-.11.82-.29.18-.11.35-.35.35-.58l.18-3.31c.06-1.05 0-1 0-2.04 0-1.4-2.93-.35-4.74-.35-1.75 0-3.62-.06-5.2-.87-2.8-1.57-4.38-4.71-5.26-7.68-1-3.2-1.23-6.63-.64-9.88.7-4.25 2.74-9.13 7.25-10.59 2.57-.87 5.31-.58 7.89-.29.35.06.58-.17.58-.46Zm26.77 15.3c.06-2.5 0-14.84 0-18.38.06-.82 0-1.63-.11-2.45-.06-.99-.24-1.28-1.29-1.33h-4.44c-.82 0-1.35.4-1.82 1.27-1.34 3.2-10.75 24.02-12.15 26.58-.53.99-1 1.63-1 2.68v4.24c0 .76-.06 1.28 1.23 1.28l11.1-.06c1.47 0 1.47.3 1.47 1.1 0 .88-.12 4.9-.12 5.3 0 .58.12 1.16 1.23 1.16h5.08c1.23 0 1.23-.7 1.23-2.03.06-1.17-.06-3.5-.06-4.66 0-.93.18-.98 1.76-.98 1.22 0 1.75-.12 1.75-.88.06-1.57 0-2.67 0-4.42 0-1.04-.93-.98-2.92-.98-.65 0-.7-.18-.7-1.05-.12-1.8-.24-4.6-.24-6.4Zm-7.25-5.94c-.05.7-.11 10.82-.11 12.27-.06.81-.24 1.05-1 1.1-1.93.06-3.85.06-5.78.06-.47 0-.65-.4-.41-.87.23-.4 4.85-11.57 6.13-14.48.18-.17.24-.35.41-.52.18-.12.41-.18.59-.23.06 0 .23.29.23.46 0 .76-.06 1.51-.06 2.21Z"
2065
+ }), a[0] = o, a[1] = s) : (o = a[0], s = a[1]);
2066
+ let c;
2067
+ return a[2] !== r || a[3] !== i ? (c = /* @__PURE__ */ Z("svg", {
2068
+ ref: i,
2069
+ xmlns: "http://www.w3.org/2000/svg",
2070
+ fill: "none",
2071
+ viewBox: "0 0 222 56",
2072
+ ...r,
2073
+ children: [o, s]
2074
+ }), a[2] = r, a[3] = i, a[4] = c) : c = a[4], c;
2075
+ }), mt = K((r, i) => {
2076
+ let a = J(4), o;
2077
+ a[0] === Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ X("path", {
2078
+ fill: "#5E98AF",
2079
+ d: "M33.95 33.78V0H2.37A2.37 2.37 0 0 0 0 2.35V33.9h33.95v-.12ZM38.57 33.78H55.6v-14.6c0-1.3-1.06-2.35-2.36-2.35H38.57v16.95ZM33.95 38.37H17.04v14.6c0 1.29 1.06 2.35 2.36 2.35h14.67V38.37h-.12ZM38.57 38.37v16.95h14.67c1.3 0 2.36-1.06 2.36-2.36v-14.6H38.57Z"
2080
+ }), a[0] = o) : o = a[0];
2081
+ let s;
2082
+ return a[1] !== r || a[2] !== i ? (s = /* @__PURE__ */ X("svg", {
2083
+ ref: i,
2084
+ xmlns: "http://www.w3.org/2000/svg",
2085
+ fill: "none",
2086
+ viewBox: "0 0 56 56",
2087
+ ...r,
2088
+ children: o
2089
+ }), a[1] = r, a[2] = i, a[3] = s) : s = a[3], s;
2090
+ }), { withProvider: ht, withContext: gt } = S(N), shouldForwardProp = (r, i) => !i.includes(r) && (re(r) || !j(r)), _t = K((r, i) => {
2091
+ let a = J(11), o, s;
2092
+ a[0] === r ? (o = a[1], s = a[2]) : ({className: o, ...s} = r, a[0] = r, a[1] = o, a[2] = s);
2093
+ let c;
2094
+ a[3] === o ? c = a[4] : (c = w("mantine-active", o), a[3] = o, a[4] = c);
2095
+ let l, u;
2096
+ a[5] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ X(mt, { "data-logo-icon": !0 }), u = /* @__PURE__ */ X(pt, { "data-logo-full": !0 }), a[5] = l, a[6] = u) : (l = a[5], u = a[6]);
2097
+ let d;
2098
+ return a[7] !== s || a[8] !== i || a[9] !== c ? (d = /* @__PURE__ */ Z("button", {
2099
+ ...s,
2100
+ ref: i,
2101
+ className: c,
2102
+ children: [l, u]
2103
+ }), a[7] = s, a[8] = i, a[9] = c, a[10] = d) : d = a[10], d;
2104
+ }), vt = {
2105
+ Root: ht(G, "root", { shouldForwardProp }),
2106
+ Body: gt(G, "body", { shouldForwardProp }),
2107
+ Logo: gt(_t, "logo", { shouldForwardProp }),
2108
+ Label: gt(G, "label", { shouldForwardProp }),
2109
+ Dropdown: gt(G, "dropdown", { shouldForwardProp })
2110
+ }, scheme = (r) => `[data-mantine-color-scheme="${r}"]`, yt = scheme("dark"), generateCompoundColors = (r, i, a, o) => `
2111
+ ${`${r} :is([data-likec4-color="${i}"][data-compound-depth="${o}"])`} {
2112
+ --likec4-palette-fill: ${a.fill};
2113
+ --likec4-palette-stroke: ${a.stroke};
2114
+ }
2115
+ `;
2116
+ function toStyle(r, i) {
2117
+ let { rootSelector: a, name: o, colors: s } = i, { elements: c, relationships: l } = s, u = `${a} :is([data-likec4-color=${o}])`;
2118
+ return [`
2119
+ ${u} {
2120
+ --likec4-palette-fill: ${c.fill};
2121
+ --likec4-palette-stroke: ${c.stroke};
2122
+ --likec4-palette-hiContrast: ${c.hiContrast};
2123
+ --likec4-palette-loContrast: ${c.loContrast};
2124
+ --likec4-palette-relation-stroke: ${l.line};
2125
+ --likec4-palette-relation-label: ${l.label};
2126
+ --likec4-palette-relation-label-bg: ${l.labelBg};
2127
+ --likec4-palette-relation-stroke-selected: oklch(from ${l.line} calc(l - 0.15) c h);
2128
+ }
2129
+ ${yt} ${u} {
2130
+ --likec4-palette-relation-stroke-selected: oklch(from ${l.line} calc(l + 0.15) c h);
2131
+ }
2132
+
2133
+ `, ...r.colorsForCompounds(c, 5).map((r, i) => generateCompoundColors(a, o, r, i + 1))].map((r) => r.trim()).join("\n");
2134
+ }
2135
+ function generateBuiltInColorStyles(r, i) {
2136
+ return a(r.theme.colors, t$2(), u(([a, o]) => toStyle(r, {
2137
+ rootSelector: i,
2138
+ name: a,
2139
+ colors: o
2140
+ })), t$1("\n"));
2141
+ }
2142
+ function LikeC4Styles$1({ id: r }) {
2143
+ let i = `#${r}`, a = h()?.(), o = useLikeC4Styles();
2144
+ return /* @__PURE__ */ X(bt, {
2145
+ id: r,
2146
+ nonce: a,
2147
+ colorsStyles: de(() => generateBuiltInColorStyles(o, i), [i, o.fingerprint])
2148
+ });
2149
+ }
2150
+ r(LikeC4Styles$1, "LikeC4Styles");
2151
+ var bt = le((r) => {
2152
+ let i = J(6), { id: a, nonce: o, colorsStyles: s } = r, c;
2153
+ i[0] === s ? c = i[1] : (c = { __html: s }, i[0] = s, i[1] = c);
2154
+ let l = o || void 0, u;
2155
+ return i[2] !== a || i[3] !== c || i[4] !== l ? (u = /* @__PURE__ */ X("style", {
2156
+ type: "text/css",
2157
+ "data-likec4-colors": a,
2158
+ dangerouslySetInnerHTML: c,
2159
+ nonce: l
2160
+ }), i[2] = a, i[3] = c, i[4] = l, i[5] = u) : u = i[5], u;
2161
+ });
2162
+ bt.displayName = "MemoizedStyle";
2163
+ //#endregion
2164
+ export { stopPropagation as $, useOptionalCurrentViewModel as A, BaseXYFlow as B, useLikeC4Projects as C, useId$1 as D, useOptionalProjectsContext as E, RootContainer as F, hasSubObject as G, Be as H, useRootContainer as I, getNodeCenter as J, bezierControlPoints as K, useRootContainerContext as L, FramerMotionConfig as M, EnsureMantine as N, Ye as O, DefaultMantineProvider as P, parsePaddings as Q, useRootContainerElement as R, useLikeC4ProjectId as S, Ze as T, ze as U, Ve as V, Re as W, isSamePoint as X, getNodeIntersectionFromCenterToPoint as Y, nodeToRect as Z, calcEdgeBounds as _, t$3 as _t, DefaultHandles as a, useXYStoreApi as at, useLikeC4Styles as b, dt as c, IconRenderer as ct, rt as d, t as dt, roundDpr as et, EdgeLabelContainer as f, t$1 as ft, readableText as g, t$2 as gt, _e as h, e$2 as ht, mt as i, useXYStore as it, useOptionalLikeC4Model as j, qe as k, ElementData as l, IconRendererProvider as lt, EdgeContainer as m, e$1 as mt, vt as n, useCurrentZoomAtLeast as nt, memoEdge as o, useCallbackRef as ot, tt as p, e as pt, bezierPath as q, pt as r, useXYFlow as rt, ElementShape as s, IconOrShapeRenderer as st, LikeC4Styles$1 as t, selectXYStore as tt, ElementActionButtons as u, Ne as ut, calcViewBounds as v, t$4 as vt, useLikeC4ProjectsContext as w, useChangeLikeC4Project as x, pickViewBounds as y, useRootContainerRef as z };