@almadar/ui 2.15.8 → 2.15.10

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 (125) hide show
  1. package/dist/components/atoms/ContentSection.d.ts +16 -0
  2. package/dist/components/atoms/SectionHeader.d.ts +14 -0
  3. package/dist/components/atoms/StatCard.d.ts +13 -0
  4. package/dist/components/atoms/index.d.ts +3 -0
  5. package/dist/components/atoms/svg/SvgBranch.d.ts +12 -0
  6. package/dist/components/atoms/svg/SvgConnection.d.ts +13 -0
  7. package/dist/components/atoms/svg/SvgFlow.d.ts +10 -0
  8. package/dist/components/atoms/svg/SvgGrid.d.ts +14 -0
  9. package/dist/components/atoms/svg/SvgLobe.d.ts +13 -0
  10. package/dist/components/atoms/svg/SvgMesh.d.ts +12 -0
  11. package/dist/components/atoms/svg/SvgMorph.d.ts +11 -0
  12. package/dist/components/atoms/svg/SvgNode.d.ts +12 -0
  13. package/dist/components/atoms/svg/SvgPulse.d.ts +12 -0
  14. package/dist/components/atoms/svg/SvgRing.d.ts +13 -0
  15. package/dist/components/atoms/svg/SvgShield.d.ts +11 -0
  16. package/dist/components/atoms/svg/SvgStack.d.ts +13 -0
  17. package/dist/components/atoms/svg/index.d.ts +12 -0
  18. package/dist/{chunk-ACUO2BBW.js → components/index.cjs} +24764 -16677
  19. package/dist/components/index.js +37757 -889
  20. package/dist/components/molecules/AnimatedCounter.d.ts +18 -0
  21. package/dist/components/molecules/ArticleSection.d.ts +18 -0
  22. package/dist/components/molecules/CTABanner.d.ts +31 -0
  23. package/dist/components/molecules/CaseStudyCard.d.ts +24 -0
  24. package/dist/components/molecules/CodeExample.d.ts +23 -0
  25. package/dist/components/molecules/CommunityLinks.d.ts +25 -0
  26. package/dist/components/molecules/DocBreadcrumb.d.ts +20 -0
  27. package/dist/components/molecules/DocCodeBlock.d.ts +13 -0
  28. package/dist/components/molecules/DocPagination.d.ts +14 -0
  29. package/dist/components/molecules/DocSearch.d.ts +15 -0
  30. package/dist/components/molecules/DocSidebar.d.ts +24 -0
  31. package/dist/components/molecules/DocTOC.d.ts +24 -0
  32. package/dist/components/molecules/FeatureCard.d.ts +26 -0
  33. package/dist/components/molecules/FeatureGrid.d.ts +19 -0
  34. package/dist/components/molecules/GradientDivider.d.ts +14 -0
  35. package/dist/components/molecules/HeroSection.d.ts +36 -0
  36. package/dist/components/molecules/InstallBox.d.ts +16 -0
  37. package/dist/components/molecules/MarketingFooter.d.ts +27 -0
  38. package/dist/components/molecules/PricingCard.d.ts +21 -0
  39. package/dist/components/molecules/PricingGrid.d.ts +13 -0
  40. package/dist/components/molecules/PullQuote.d.ts +14 -0
  41. package/dist/components/molecules/ServiceCatalog.d.ts +19 -0
  42. package/dist/components/molecules/ShowcaseCard.d.ts +20 -0
  43. package/dist/components/molecules/SocialProof.d.ts +25 -0
  44. package/dist/components/molecules/SplitSection.d.ts +21 -0
  45. package/dist/components/molecules/StatsGrid.d.ts +17 -0
  46. package/dist/components/molecules/StepFlow.d.ts +20 -0
  47. package/dist/components/molecules/TagCloud.d.ts +18 -0
  48. package/dist/components/molecules/TeamCard.d.ts +18 -0
  49. package/dist/components/molecules/index.d.ts +19 -0
  50. package/dist/components/molecules/svg/AIGenerates.d.ts +7 -0
  51. package/dist/components/molecules/svg/ClosedCircuit.d.ts +7 -0
  52. package/dist/components/molecules/svg/CommunityOwnership.d.ts +7 -0
  53. package/dist/components/molecules/svg/CompileAnywhere.d.ts +7 -0
  54. package/dist/components/molecules/svg/ComposableModels.d.ts +7 -0
  55. package/dist/components/molecules/svg/DescribeProveDeploy.d.ts +7 -0
  56. package/dist/components/molecules/svg/DomainGrid.d.ts +7 -0
  57. package/dist/components/molecules/svg/EventBus.d.ts +7 -0
  58. package/dist/components/molecules/svg/OrbitalUnit.d.ts +7 -0
  59. package/dist/components/molecules/svg/PlanVerifyRemember.d.ts +7 -0
  60. package/dist/components/molecules/svg/ProveCorrect.d.ts +7 -0
  61. package/dist/components/molecules/svg/ServiceLayers.d.ts +7 -0
  62. package/dist/components/molecules/svg/SharedReality.d.ts +7 -0
  63. package/dist/components/molecules/svg/StandardLibrary.d.ts +7 -0
  64. package/dist/components/molecules/svg/StateMachine.d.ts +7 -0
  65. package/dist/components/molecules/svg/WorldModel.d.ts +7 -0
  66. package/dist/components/molecules/svg/index.d.ts +16 -0
  67. package/dist/components/organisms/CaseStudyOrganism.d.ts +19 -0
  68. package/dist/components/organisms/FeatureGridOrganism.d.ts +20 -0
  69. package/dist/components/organisms/HeroOrganism.d.ts +18 -0
  70. package/dist/components/organisms/PricingOrganism.d.ts +19 -0
  71. package/dist/components/organisms/ShowcaseOrganism.d.ts +20 -0
  72. package/dist/components/organisms/StatsOrganism.d.ts +17 -0
  73. package/dist/components/organisms/StepFlowOrganism.d.ts +20 -0
  74. package/dist/components/organisms/TeamOrganism.d.ts +18 -0
  75. package/dist/components/organisms/game/three/index.cjs +2525 -0
  76. package/dist/components/organisms/game/three/index.js +1795 -50
  77. package/dist/components/organisms/index.d.ts +9 -0
  78. package/dist/components/organisms/marketing-types.d.ts +87 -0
  79. package/dist/components/templates/AboutPageTemplate.d.ts +26 -0
  80. package/dist/components/templates/FeatureDetailPageTemplate.d.ts +27 -0
  81. package/dist/components/templates/LandingPageTemplate.d.ts +31 -0
  82. package/dist/components/templates/PricingPageTemplate.d.ts +26 -0
  83. package/dist/components/templates/index.d.ts +4 -0
  84. package/dist/context/index.cjs +550 -0
  85. package/dist/context/index.js +420 -6
  86. package/dist/docs/index.cjs +4015 -0
  87. package/dist/docs/index.d.cts +412 -0
  88. package/dist/docs/index.d.ts +29 -0
  89. package/dist/docs/index.js +3977 -0
  90. package/dist/hooks/index.cjs +2606 -0
  91. package/dist/hooks/index.js +2535 -8
  92. package/dist/illustrations/index.cjs +3004 -0
  93. package/dist/illustrations/index.d.cts +261 -0
  94. package/dist/illustrations/index.d.ts +35 -0
  95. package/dist/illustrations/index.js +2971 -0
  96. package/dist/{chunk-XL7WB2O5.js → lib/index.cjs} +454 -274
  97. package/dist/lib/index.js +1407 -3
  98. package/dist/locales/index.cjs +340 -0
  99. package/dist/locales/index.js +105 -2
  100. package/dist/marketing/index.cjs +4683 -0
  101. package/dist/marketing/index.d.cts +831 -0
  102. package/dist/marketing/index.d.ts +62 -0
  103. package/dist/marketing/index.js +4626 -0
  104. package/dist/providers/index.cjs +4811 -0
  105. package/dist/providers/index.js +4765 -11
  106. package/dist/{chunk-K2D5D3WK.js → renderer/index.cjs} +101 -42
  107. package/dist/renderer/index.js +1036 -2
  108. package/dist/runtime/index.cjs +4400 -0
  109. package/dist/runtime/index.js +3615 -19
  110. package/dist/{chunk-N7MVUW4R.js → stores/index.cjs} +24 -1
  111. package/dist/stores/index.js +194 -2
  112. package/dist/tsup.config.d.ts +2 -1
  113. package/package.json +27 -12
  114. package/tailwind-preset.cjs +9 -0
  115. package/themes/index.css +22 -20
  116. package/dist/chunk-3HJHHULT.js +0 -93
  117. package/dist/chunk-3JGAROCW.js +0 -149
  118. package/dist/chunk-4N3BAPDB.js +0 -1667
  119. package/dist/chunk-CDIOHSKG.js +0 -661
  120. package/dist/chunk-DKQN5FVU.js +0 -279
  121. package/dist/chunk-JJHCOO34.js +0 -375
  122. package/dist/chunk-PKBMQBKP.js +0 -5
  123. package/dist/chunk-QIABKRCN.js +0 -107
  124. package/dist/chunk-SD3KVCY6.js +0 -1465
  125. package/dist/chunk-YXZM3WCF.js +0 -222
@@ -0,0 +1,2971 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ function buildForkPaths(x, y, branches, scale) {
5
+ const inLength = 30 * scale;
6
+ const outLength = 30 * scale;
7
+ const fanSpread = 20 * scale;
8
+ const junctionX = x + inLength;
9
+ const paths = [];
10
+ paths.push(`M ${x} ${y} L ${junctionX} ${y}`);
11
+ for (let i = 0; i < branches; i++) {
12
+ const fraction = branches === 1 ? 0 : i / (branches - 1) * 2 - 1;
13
+ const endY = y + fraction * fanSpread;
14
+ const endX = junctionX + outLength;
15
+ const cpX = junctionX + outLength * 0.5;
16
+ paths.push(`M ${junctionX} ${y} C ${cpX} ${y} ${cpX} ${endY} ${endX} ${endY}`);
17
+ }
18
+ return paths;
19
+ }
20
+ function buildMergePaths(x, y, branches, scale) {
21
+ const inLength = 30 * scale;
22
+ const outLength = 30 * scale;
23
+ const fanSpread = 20 * scale;
24
+ const junctionX = x + inLength;
25
+ const paths = [];
26
+ for (let i = 0; i < branches; i++) {
27
+ const fraction = branches === 1 ? 0 : i / (branches - 1) * 2 - 1;
28
+ const startY = y + fraction * fanSpread;
29
+ const cpX = x + inLength * 0.5;
30
+ paths.push(`M ${x} ${startY} C ${cpX} ${startY} ${cpX} ${y} ${junctionX} ${y}`);
31
+ }
32
+ paths.push(`M ${junctionX} ${y} L ${junctionX + outLength} ${y}`);
33
+ return paths;
34
+ }
35
+ function buildDiamondPoints(x, y, scale) {
36
+ const w = 20 * scale;
37
+ const h = 14 * scale;
38
+ return [
39
+ `${x + w} ${y}`,
40
+ `${x + w * 2} ${y + h}`,
41
+ `${x + w} ${y + h * 2}`,
42
+ `${x} ${y + h}`
43
+ ].join(" ");
44
+ }
45
+ var SvgBranch = ({
46
+ x,
47
+ y,
48
+ variant = "fork",
49
+ branches = 2,
50
+ size = 1,
51
+ color = "var(--color-primary)",
52
+ opacity = 1,
53
+ className
54
+ }) => {
55
+ if (variant === "diamond") {
56
+ const points = buildDiamondPoints(x, y, size);
57
+ return /* @__PURE__ */ jsx("g", { className, opacity, children: /* @__PURE__ */ jsx(
58
+ "polygon",
59
+ {
60
+ points,
61
+ fill: "none",
62
+ stroke: color,
63
+ strokeWidth: 2,
64
+ strokeLinejoin: "round"
65
+ }
66
+ ) });
67
+ }
68
+ const paths = variant === "fork" ? buildForkPaths(x, y, branches, size) : buildMergePaths(x, y, branches, size);
69
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
70
+ paths.map((d, i) => /* @__PURE__ */ jsx(
71
+ "path",
72
+ {
73
+ d,
74
+ fill: "none",
75
+ stroke: color,
76
+ strokeWidth: 2,
77
+ strokeLinecap: "round"
78
+ },
79
+ i
80
+ )),
81
+ variant === "fork" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color }),
82
+ variant === "merge" && /* @__PURE__ */ jsx("circle", { cx: x + 30 * size, cy: y, r: 3, fill: color })
83
+ ] });
84
+ };
85
+ SvgBranch.displayName = "SvgBranch";
86
+ var SvgConnection = ({
87
+ x1,
88
+ y1,
89
+ x2,
90
+ y2,
91
+ variant = "solid",
92
+ color = "var(--color-primary)",
93
+ strokeWidth = 1.5,
94
+ opacity = 1,
95
+ className
96
+ }) => {
97
+ const dashProps = variant === "solid" ? {} : {
98
+ strokeDasharray: "8 6"
99
+ };
100
+ return /* @__PURE__ */ jsx(
101
+ "line",
102
+ {
103
+ className: [
104
+ variant === "animated" ? "almadar-svg-flow-dash" : void 0,
105
+ className
106
+ ].filter(Boolean).join(" ") || void 0,
107
+ x1,
108
+ y1,
109
+ x2,
110
+ y2,
111
+ stroke: color,
112
+ strokeWidth,
113
+ strokeLinecap: "round",
114
+ opacity,
115
+ ...dashProps
116
+ }
117
+ );
118
+ };
119
+ SvgConnection.displayName = "SvgConnection";
120
+ var flowIdCounter = 0;
121
+ var SvgFlow = ({
122
+ points,
123
+ color = "var(--color-primary)",
124
+ strokeWidth = 1.5,
125
+ animated = false,
126
+ opacity = 1,
127
+ className
128
+ }) => {
129
+ const markerId = React.useMemo(() => {
130
+ flowIdCounter += 1;
131
+ return `almadar-flow-arrow-${flowIdCounter}`;
132
+ }, []);
133
+ if (points.length < 2) {
134
+ return null;
135
+ }
136
+ const pathData = points.map((pt, i) => `${i === 0 ? "M" : "L"}${pt[0]},${pt[1]}`).join(" ");
137
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
138
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
139
+ "marker",
140
+ {
141
+ id: markerId,
142
+ markerWidth: "8",
143
+ markerHeight: "6",
144
+ refX: "7",
145
+ refY: "3",
146
+ orient: "auto",
147
+ markerUnits: "strokeWidth",
148
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L8,3 L0,6 Z", fill: color })
149
+ }
150
+ ) }),
151
+ /* @__PURE__ */ jsx(
152
+ "path",
153
+ {
154
+ d: pathData,
155
+ fill: "none",
156
+ stroke: color,
157
+ strokeWidth,
158
+ strokeLinecap: "round",
159
+ strokeLinejoin: "round",
160
+ markerEnd: `url(#${markerId})`,
161
+ className: animated ? "almadar-svg-flow-dash" : void 0,
162
+ strokeDasharray: animated ? "8 6" : void 0
163
+ }
164
+ )
165
+ ] });
166
+ };
167
+ SvgFlow.displayName = "SvgFlow";
168
+ var SvgGrid = ({
169
+ x,
170
+ y,
171
+ cols = 4,
172
+ rows = 3,
173
+ spacing = 20,
174
+ nodeRadius = 3,
175
+ color = "var(--color-primary)",
176
+ opacity = 1,
177
+ className,
178
+ highlights = []
179
+ }) => {
180
+ const highlightSet = new Set(highlights);
181
+ return /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: rows }).map(
182
+ (_, row) => Array.from({ length: cols }).map((_2, col) => {
183
+ const index = row * cols + col;
184
+ const isHighlighted = highlightSet.has(index);
185
+ const cx = x + col * spacing;
186
+ const cy = y + row * spacing;
187
+ return /* @__PURE__ */ jsx(
188
+ "circle",
189
+ {
190
+ cx,
191
+ cy,
192
+ r: isHighlighted ? nodeRadius * 1.6 : nodeRadius,
193
+ fill: color,
194
+ opacity: isHighlighted ? 1 : 0.4
195
+ },
196
+ index
197
+ );
198
+ })
199
+ ) });
200
+ };
201
+ SvgGrid.displayName = "SvgGrid";
202
+ var SvgLobe = ({
203
+ cx,
204
+ cy,
205
+ rx = 14,
206
+ ry = 20,
207
+ rotation = 0,
208
+ shells = 2,
209
+ color = "var(--color-primary)",
210
+ opacity = 1,
211
+ className
212
+ }) => {
213
+ const clampedShells = Math.max(1, Math.min(3, shells));
214
+ const renderShell = (shellIndex) => {
215
+ const scale = shellIndex === 0 ? 1 : 1 - shellIndex * 0.3;
216
+ const shellOpacity = shellIndex === 0 ? 1 : 0.5;
217
+ const sRx = rx * scale;
218
+ const sRy = ry * scale;
219
+ return /* @__PURE__ */ jsxs("g", { opacity: shellOpacity, children: [
220
+ /* @__PURE__ */ jsx(
221
+ "ellipse",
222
+ {
223
+ cx,
224
+ cy: cy - sRy,
225
+ rx: sRx,
226
+ ry: sRy,
227
+ fill: "none",
228
+ stroke: color,
229
+ strokeWidth: 1.5
230
+ }
231
+ ),
232
+ /* @__PURE__ */ jsx(
233
+ "ellipse",
234
+ {
235
+ cx,
236
+ cy: cy + sRy,
237
+ rx: sRx,
238
+ ry: sRy,
239
+ fill: "none",
240
+ stroke: color,
241
+ strokeWidth: 1.5
242
+ }
243
+ )
244
+ ] }, shellIndex);
245
+ };
246
+ return /* @__PURE__ */ jsx(
247
+ "g",
248
+ {
249
+ className,
250
+ opacity,
251
+ transform: `rotate(${rotation}, ${cx}, ${cy})`,
252
+ children: Array.from({ length: clampedShells }, (_, i) => renderShell(i))
253
+ }
254
+ );
255
+ };
256
+ SvgLobe.displayName = "SvgLobe";
257
+ function getNodePositions(cx, cy, count, radius) {
258
+ return Array.from({ length: count }).map((_, i) => {
259
+ const angle = i / count * Math.PI * 2 - Math.PI / 2;
260
+ return {
261
+ x: cx + Math.cos(angle) * radius,
262
+ y: cy + Math.sin(angle) * radius
263
+ };
264
+ });
265
+ }
266
+ function getConnections(count, density) {
267
+ const allPairs = [];
268
+ for (let i = 0; i < count; i++) {
269
+ for (let j = i + 1; j < count; j++) {
270
+ allPairs.push([i, j]);
271
+ }
272
+ }
273
+ const connectCount = Math.round(allPairs.length * Math.max(0, Math.min(1, density)));
274
+ return allPairs.slice(0, connectCount);
275
+ }
276
+ var SvgMesh = ({
277
+ cx,
278
+ cy,
279
+ nodes = 6,
280
+ radius = 50,
281
+ color = "var(--color-primary)",
282
+ connectionDensity = 0.5,
283
+ opacity = 1,
284
+ className
285
+ }) => {
286
+ const positions = getNodePositions(cx, cy, nodes, radius);
287
+ const connections = getConnections(nodes, connectionDensity);
288
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
289
+ connections.map(([a, b]) => /* @__PURE__ */ jsx(
290
+ "line",
291
+ {
292
+ x1: positions[a].x,
293
+ y1: positions[a].y,
294
+ x2: positions[b].x,
295
+ y2: positions[b].y,
296
+ stroke: color,
297
+ strokeWidth: 1,
298
+ opacity: 0.3
299
+ },
300
+ `${a}-${b}`
301
+ )),
302
+ positions.map((pos, i) => /* @__PURE__ */ jsx(
303
+ "circle",
304
+ {
305
+ cx: pos.x,
306
+ cy: pos.y,
307
+ r: 4,
308
+ fill: color
309
+ },
310
+ i
311
+ ))
312
+ ] });
313
+ };
314
+ SvgMesh.displayName = "SvgMesh";
315
+ var TextLines = ({
316
+ x,
317
+ y,
318
+ scale,
319
+ color
320
+ }) => {
321
+ const widths = [28, 22, 26];
322
+ return /* @__PURE__ */ jsx("g", { children: widths.map((w, i) => /* @__PURE__ */ jsx(
323
+ "rect",
324
+ {
325
+ x,
326
+ y: y + i * 8 * scale,
327
+ width: w * scale,
328
+ height: 3 * scale,
329
+ rx: 1.5 * scale,
330
+ fill: color,
331
+ opacity: 0.7 - i * 0.1
332
+ },
333
+ i
334
+ )) });
335
+ };
336
+ TextLines.displayName = "TextLines";
337
+ var CodeBrackets = ({
338
+ x,
339
+ y,
340
+ scale,
341
+ color
342
+ }) => {
343
+ const h = 20 * scale;
344
+ const w = 8 * scale;
345
+ return /* @__PURE__ */ jsxs("g", { children: [
346
+ /* @__PURE__ */ jsx(
347
+ "path",
348
+ {
349
+ d: `M ${x + w} ${y} L ${x} ${y + h / 2} L ${x + w} ${y + h}`,
350
+ fill: "none",
351
+ stroke: color,
352
+ strokeWidth: 2 * scale,
353
+ strokeLinecap: "round",
354
+ strokeLinejoin: "round"
355
+ }
356
+ ),
357
+ /* @__PURE__ */ jsx(
358
+ "path",
359
+ {
360
+ d: `M ${x + w * 2} ${y} L ${x + w * 3} ${y + h / 2} L ${x + w * 2} ${y + h}`,
361
+ fill: "none",
362
+ stroke: color,
363
+ strokeWidth: 2 * scale,
364
+ strokeLinecap: "round",
365
+ strokeLinejoin: "round"
366
+ }
367
+ )
368
+ ] });
369
+ };
370
+ CodeBrackets.displayName = "CodeBrackets";
371
+ var AppRect = ({
372
+ x,
373
+ y,
374
+ scale,
375
+ color
376
+ }) => {
377
+ const w = 22 * scale;
378
+ const h = 20 * scale;
379
+ return /* @__PURE__ */ jsxs("g", { children: [
380
+ /* @__PURE__ */ jsx(
381
+ "rect",
382
+ {
383
+ x,
384
+ y,
385
+ width: w,
386
+ height: h,
387
+ rx: 4 * scale,
388
+ fill: "none",
389
+ stroke: color,
390
+ strokeWidth: 2 * scale
391
+ }
392
+ ),
393
+ /* @__PURE__ */ jsx(
394
+ "rect",
395
+ {
396
+ x: x + 4 * scale,
397
+ y: y + 4 * scale,
398
+ width: w - 8 * scale,
399
+ height: 3 * scale,
400
+ rx: 1 * scale,
401
+ fill: color,
402
+ opacity: 0.5
403
+ }
404
+ ),
405
+ /* @__PURE__ */ jsx(
406
+ "rect",
407
+ {
408
+ x: x + 4 * scale,
409
+ y: y + 10 * scale,
410
+ width: (w - 8 * scale) * 0.6,
411
+ height: 3 * scale,
412
+ rx: 1 * scale,
413
+ fill: color,
414
+ opacity: 0.3
415
+ }
416
+ )
417
+ ] });
418
+ };
419
+ AppRect.displayName = "AppRect";
420
+ var FlowArrow = ({ x1, y, x2, scale, color }) => {
421
+ const arrowSize = 4 * scale;
422
+ return /* @__PURE__ */ jsxs("g", { children: [
423
+ /* @__PURE__ */ jsx(
424
+ "line",
425
+ {
426
+ x1,
427
+ y1: y,
428
+ x2: x2 - arrowSize,
429
+ y2: y,
430
+ stroke: color,
431
+ strokeWidth: 1.5 * scale,
432
+ strokeDasharray: `${3 * scale} ${3 * scale}`,
433
+ opacity: 0.5
434
+ }
435
+ ),
436
+ /* @__PURE__ */ jsx(
437
+ "polygon",
438
+ {
439
+ points: `${x2} ${y}, ${x2 - arrowSize} ${y - arrowSize / 2}, ${x2 - arrowSize} ${y + arrowSize / 2}`,
440
+ fill: color,
441
+ opacity: 0.6
442
+ }
443
+ )
444
+ ] });
445
+ };
446
+ FlowArrow.displayName = "FlowArrow";
447
+ var SvgMorph = ({
448
+ x,
449
+ y,
450
+ size = 1,
451
+ variant = "generic",
452
+ color = "var(--color-primary)",
453
+ opacity = 1,
454
+ className
455
+ }) => {
456
+ const gap = 40 * size;
457
+ const midY = y + 10 * size;
458
+ if (variant === "text-to-code") {
459
+ const leftEnd = x + 30 * size;
460
+ const rightStart = leftEnd + gap;
461
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
462
+ /* @__PURE__ */ jsx(TextLines, { x, y, scale: size, color }),
463
+ /* @__PURE__ */ jsx(FlowArrow, { x1: leftEnd, y: midY, x2: rightStart, scale: size, color }),
464
+ /* @__PURE__ */ jsx(CodeBrackets, { x: rightStart, y, scale: size, color })
465
+ ] });
466
+ }
467
+ if (variant === "code-to-app") {
468
+ const leftEnd = x + 26 * size;
469
+ const rightStart = leftEnd + gap;
470
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
471
+ /* @__PURE__ */ jsx(CodeBrackets, { x, y, scale: size, color }),
472
+ /* @__PURE__ */ jsx(FlowArrow, { x1: leftEnd, y: midY, x2: rightStart, scale: size, color }),
473
+ /* @__PURE__ */ jsx(AppRect, { x: rightStart, y, scale: size, color })
474
+ ] });
475
+ }
476
+ const circleR = 10 * size;
477
+ const circleX = x + circleR;
478
+ const squareStart = x + circleR * 2 + gap;
479
+ const squareSize = circleR * 2;
480
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
481
+ /* @__PURE__ */ jsx(
482
+ "circle",
483
+ {
484
+ cx: circleX,
485
+ cy: midY,
486
+ r: circleR,
487
+ fill: "none",
488
+ stroke: color,
489
+ strokeWidth: 2 * size
490
+ }
491
+ ),
492
+ /* @__PURE__ */ jsx(
493
+ FlowArrow,
494
+ {
495
+ x1: circleX + circleR + 2 * size,
496
+ y: midY,
497
+ x2: squareStart,
498
+ scale: size,
499
+ color
500
+ }
501
+ ),
502
+ /* @__PURE__ */ jsx(
503
+ "rect",
504
+ {
505
+ x: squareStart,
506
+ y: midY - circleR,
507
+ width: squareSize,
508
+ height: squareSize,
509
+ rx: 3 * size,
510
+ fill: "none",
511
+ stroke: color,
512
+ strokeWidth: 2 * size
513
+ }
514
+ )
515
+ ] });
516
+ };
517
+ SvgMorph.displayName = "SvgMorph";
518
+ var SvgNode = ({
519
+ x,
520
+ y,
521
+ r = 6,
522
+ variant = "filled",
523
+ color = "var(--color-primary)",
524
+ opacity = 1,
525
+ className,
526
+ label
527
+ }) => {
528
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
529
+ variant === "pulse" && /* @__PURE__ */ jsx(
530
+ "circle",
531
+ {
532
+ cx: x,
533
+ cy: y,
534
+ r: r * 2,
535
+ fill: "none",
536
+ stroke: color,
537
+ strokeWidth: 1,
538
+ opacity: 0.3,
539
+ className: "almadar-svg-pulse-ring"
540
+ }
541
+ ),
542
+ /* @__PURE__ */ jsx(
543
+ "circle",
544
+ {
545
+ cx: x,
546
+ cy: y,
547
+ r,
548
+ fill: variant === "stroked" ? "none" : color,
549
+ stroke: variant === "stroked" ? color : "none",
550
+ strokeWidth: variant === "stroked" ? 2 : 0
551
+ }
552
+ ),
553
+ label && /* @__PURE__ */ jsx(
554
+ "text",
555
+ {
556
+ x,
557
+ y: y + r + 14,
558
+ textAnchor: "middle",
559
+ fill: color,
560
+ fontSize: 11,
561
+ fontFamily: "inherit",
562
+ children: label
563
+ }
564
+ )
565
+ ] });
566
+ };
567
+ SvgNode.displayName = "SvgNode";
568
+ var PULSE_KEYFRAMES = `
569
+ @keyframes almadar-svg-pulse-expand {
570
+ 0% {
571
+ transform: scale(0.3);
572
+ opacity: 0.4;
573
+ }
574
+ 100% {
575
+ transform: scale(1);
576
+ opacity: 0;
577
+ }
578
+ }
579
+ `;
580
+ var SvgPulse = ({
581
+ cx,
582
+ cy,
583
+ rings = 3,
584
+ maxRadius = 60,
585
+ color = "var(--color-primary)",
586
+ animated = true,
587
+ opacity = 1,
588
+ className
589
+ }) => {
590
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
591
+ animated && /* @__PURE__ */ jsx("style", { children: PULSE_KEYFRAMES }),
592
+ Array.from({ length: rings }).map((_, i) => {
593
+ const ringRadius = (i + 1) / rings * maxRadius;
594
+ const ringOpacity = 1 - i / rings * 0.6;
595
+ const delay = i * 0.6;
596
+ return /* @__PURE__ */ jsx(
597
+ "circle",
598
+ {
599
+ cx,
600
+ cy,
601
+ r: ringRadius,
602
+ fill: "none",
603
+ stroke: color,
604
+ strokeWidth: 1.5,
605
+ opacity: animated ? void 0 : ringOpacity * 0.4,
606
+ style: animated ? {
607
+ transformOrigin: `${cx}px ${cy}px`,
608
+ animation: `almadar-svg-pulse-expand 2s ease-out ${delay}s infinite`
609
+ } : void 0
610
+ },
611
+ i
612
+ );
613
+ }),
614
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 3, fill: color })
615
+ ] });
616
+ };
617
+ SvgPulse.displayName = "SvgPulse";
618
+ var ringIdCounter = 0;
619
+ var SvgRing = ({
620
+ cx,
621
+ cy,
622
+ r = 40,
623
+ variant = "solid",
624
+ color = "var(--color-primary)",
625
+ strokeWidth = 1.5,
626
+ opacity = 1,
627
+ className,
628
+ label
629
+ }) => {
630
+ const gradientId = React.useMemo(() => {
631
+ ringIdCounter += 1;
632
+ return `almadar-ring-glow-${ringIdCounter}`;
633
+ }, []);
634
+ return /* @__PURE__ */ jsxs("g", { className, opacity, children: [
635
+ variant === "glow" && /* @__PURE__ */ jsxs(Fragment, { children: [
636
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("radialGradient", { id: gradientId, cx: "50%", cy: "50%", r: "50%", children: [
637
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
638
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
639
+ ] }) }),
640
+ /* @__PURE__ */ jsx("circle", { cx, cy, r, fill: `url(#${gradientId})` })
641
+ ] }),
642
+ /* @__PURE__ */ jsx(
643
+ "circle",
644
+ {
645
+ cx,
646
+ cy,
647
+ r,
648
+ fill: "none",
649
+ stroke: color,
650
+ strokeWidth,
651
+ strokeDasharray: variant === "dashed" ? "6 4" : void 0
652
+ }
653
+ ),
654
+ label && /* @__PURE__ */ jsx(
655
+ "text",
656
+ {
657
+ x: cx,
658
+ y: cy - r - 6,
659
+ textAnchor: "middle",
660
+ fill: color,
661
+ fontSize: 11,
662
+ fontFamily: "inherit",
663
+ children: label
664
+ }
665
+ )
666
+ ] });
667
+ };
668
+ SvgRing.displayName = "SvgRing";
669
+ var SHIELD_PATH = "M15,2 C15,2 5,5 2,6 C2,6 2,18 5,24 C8,30 15,34 15,34 C15,34 22,30 25,24 C28,18 28,6 28,6 C25,5 15,2 15,2 Z";
670
+ var CHECK_PATH = "M10,18 L14,22 L21,13";
671
+ var SvgShield = ({
672
+ x,
673
+ y,
674
+ size = 1,
675
+ variant = "outline",
676
+ color = "var(--color-primary)",
677
+ opacity = 1,
678
+ className
679
+ }) => {
680
+ return /* @__PURE__ */ jsxs(
681
+ "g",
682
+ {
683
+ className,
684
+ opacity,
685
+ transform: `translate(${x - 15 * size}, ${y - 18 * size}) scale(${size})`,
686
+ children: [
687
+ /* @__PURE__ */ jsx(
688
+ "path",
689
+ {
690
+ d: SHIELD_PATH,
691
+ fill: variant === "filled" || variant === "check" ? color : "none",
692
+ stroke: color,
693
+ strokeWidth: 2,
694
+ strokeLinejoin: "round"
695
+ }
696
+ ),
697
+ variant === "check" && /* @__PURE__ */ jsx(
698
+ "path",
699
+ {
700
+ d: CHECK_PATH,
701
+ fill: "none",
702
+ stroke: variant === "check" ? "white" : color,
703
+ strokeWidth: 2.5,
704
+ strokeLinecap: "round",
705
+ strokeLinejoin: "round"
706
+ }
707
+ )
708
+ ]
709
+ }
710
+ );
711
+ };
712
+ SvgShield.displayName = "SvgShield";
713
+ var SvgStack = ({
714
+ x,
715
+ y,
716
+ layers: rawLayers = 3,
717
+ width = 60,
718
+ height = 40,
719
+ color = "var(--color-primary)",
720
+ opacity = 1,
721
+ className,
722
+ labels
723
+ }) => {
724
+ const layers = Math.max(2, Math.min(4, rawLayers));
725
+ const verticalOffset = 8;
726
+ const horizontalOffset = 4;
727
+ return /* @__PURE__ */ jsx("g", { className, opacity, children: Array.from({ length: layers }).map((_, i) => {
728
+ const layerIndex = layers - 1 - i;
729
+ const layerX = x + layerIndex * horizontalOffset;
730
+ const layerY = y - layerIndex * verticalOffset;
731
+ const layerOpacity = 0.3 + layerIndex / (layers - 1) * 0.7;
732
+ const label = labels?.[layerIndex];
733
+ return /* @__PURE__ */ jsxs("g", { children: [
734
+ /* @__PURE__ */ jsx(
735
+ "rect",
736
+ {
737
+ x: layerX,
738
+ y: layerY,
739
+ width,
740
+ height,
741
+ rx: 6,
742
+ ry: 6,
743
+ fill: color,
744
+ opacity: layerOpacity,
745
+ stroke: color,
746
+ strokeWidth: 1,
747
+ strokeOpacity: layerOpacity * 0.6
748
+ }
749
+ ),
750
+ label && /* @__PURE__ */ jsx(
751
+ "text",
752
+ {
753
+ x: layerX + width / 2,
754
+ y: layerY + height / 2 + 4,
755
+ textAnchor: "middle",
756
+ fill: "white",
757
+ fontSize: 10,
758
+ fontFamily: "inherit",
759
+ opacity: layerOpacity,
760
+ children: label
761
+ }
762
+ )
763
+ ] }, layerIndex);
764
+ }) });
765
+ };
766
+ SvgStack.displayName = "SvgStack";
767
+ var aiGeneratesId = 0;
768
+ var CHAOS_PARTICLES = [
769
+ { x: 50, y: 90, r: 3 },
770
+ { x: 85, y: 140, r: 2.5 },
771
+ { x: 40, y: 200, r: 3.5 },
772
+ { x: 100, y: 250, r: 2 },
773
+ { x: 70, y: 310, r: 3 },
774
+ { x: 120, y: 100, r: 2 },
775
+ { x: 110, y: 180, r: 3 },
776
+ { x: 60, y: 260, r: 2.5 },
777
+ { x: 130, y: 300, r: 2 },
778
+ { x: 90, y: 60, r: 2.5 },
779
+ { x: 140, y: 220, r: 3 },
780
+ { x: 55, y: 340, r: 2 },
781
+ { x: 115, y: 150, r: 2 },
782
+ { x: 75, y: 290, r: 3 },
783
+ { x: 135, y: 80, r: 2.5 }
784
+ ];
785
+ var AIGenerates = ({
786
+ className,
787
+ color = "var(--color-primary)",
788
+ animated = false
789
+ }) => {
790
+ const ids = React.useMemo(() => {
791
+ aiGeneratesId += 1;
792
+ const base = `ag-${aiGeneratesId}`;
793
+ return {
794
+ glow: `${base}-glow`,
795
+ flowGrad: `${base}-fg`,
796
+ nucGlow: `${base}-ng`,
797
+ arrow: `${base}-arrow`
798
+ };
799
+ }, []);
800
+ const orbX = 480;
801
+ const orbY = 200;
802
+ const orbR = 55;
803
+ return /* @__PURE__ */ jsxs(
804
+ "svg",
805
+ {
806
+ viewBox: "0 0 600 400",
807
+ xmlns: "http://www.w3.org/2000/svg",
808
+ className,
809
+ children: [
810
+ /* @__PURE__ */ jsxs("defs", { children: [
811
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
812
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "5", result: "blur" }),
813
+ /* @__PURE__ */ jsxs("feMerge", { children: [
814
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
815
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
816
+ ] })
817
+ ] }),
818
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
819
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
820
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
821
+ ] }),
822
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.flowGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
823
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
824
+ /* @__PURE__ */ jsx("stop", { offset: "40%", stopColor: color, stopOpacity: 0.4 }),
825
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.6 })
826
+ ] }),
827
+ /* @__PURE__ */ jsx(
828
+ "marker",
829
+ {
830
+ id: ids.arrow,
831
+ markerWidth: "8",
832
+ markerHeight: "6",
833
+ refX: "7",
834
+ refY: "3",
835
+ orient: "auto",
836
+ markerUnits: "strokeWidth",
837
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L8,3 L0,6 Z", fill: color, opacity: 0.5 })
838
+ }
839
+ )
840
+ ] }),
841
+ animated && /* @__PURE__ */ jsx("style", { children: `
842
+ @keyframes ag-converge {
843
+ 0% { stroke-dashoffset: 30; }
844
+ 100% { stroke-dashoffset: 0; }
845
+ }
846
+ @keyframes ag-chaos-drift {
847
+ 0%, 100% { transform: translate(0, 0); }
848
+ 50% { transform: translate(3px, -2px); }
849
+ }
850
+ ` }),
851
+ CHAOS_PARTICLES.map((p, i) => /* @__PURE__ */ jsx(
852
+ "circle",
853
+ {
854
+ cx: p.x,
855
+ cy: p.y,
856
+ r: p.r,
857
+ fill: color,
858
+ opacity: 0.2 + i % 4 * 0.1,
859
+ style: animated ? { animation: `ag-chaos-drift ${1.5 + i % 3 * 0.5}s ease-in-out ${i * 0.2}s infinite` } : void 0
860
+ },
861
+ `chaos-${i}`
862
+ )),
863
+ [120, 170, 220, 270, 320].map((sy, i) => /* @__PURE__ */ jsx(
864
+ "path",
865
+ {
866
+ d: `M${150 + i * 5},${sy} C${250},${sy + (i - 2) * 15} ${350},${200 + (i - 2) * 8} ${orbX - orbR - 15},${200}`,
867
+ fill: "none",
868
+ stroke: `url(#${ids.flowGrad})`,
869
+ strokeWidth: 1,
870
+ strokeDasharray: "4 8",
871
+ markerEnd: `url(#${ids.arrow})`,
872
+ style: animated ? { animation: `ag-converge 2s linear ${i * 0.3}s infinite` } : void 0
873
+ },
874
+ `flow-${i}`
875
+ )),
876
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: orbR + 15, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.05 }),
877
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 30, fill: `url(#${ids.nucGlow})` }),
878
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: orbR, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.35 }),
879
+ /* @__PURE__ */ jsx(
880
+ "ellipse",
881
+ {
882
+ cx: orbX,
883
+ cy: orbY,
884
+ rx: orbR * 0.6,
885
+ ry: orbR * 0.4,
886
+ fill: "none",
887
+ stroke: color,
888
+ strokeWidth: 1,
889
+ opacity: 0.25,
890
+ transform: `rotate(-30, ${orbX}, ${orbY})`
891
+ }
892
+ ),
893
+ [0, 1.5, 3, 4.5].map((a, i) => /* @__PURE__ */ jsx(
894
+ "circle",
895
+ {
896
+ cx: orbX + Math.cos(a) * orbR,
897
+ cy: orbY + Math.sin(a) * orbR,
898
+ r: 4,
899
+ fill: color,
900
+ opacity: 0.55
901
+ },
902
+ `op-${i}`
903
+ )),
904
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 7, fill: color, opacity: 0.75, filter: `url(#${ids.glow})` })
905
+ ]
906
+ }
907
+ );
908
+ };
909
+ AIGenerates.displayName = "AIGenerates";
910
+ var closedCircuitId = 0;
911
+ function pentagonPoint(cx, cy, r, index) {
912
+ const angle = Math.PI * 2 * index / 5 - Math.PI / 2;
913
+ return [cx + r * Math.cos(angle), cy + r * Math.sin(angle)];
914
+ }
915
+ var ClosedCircuit = ({
916
+ className,
917
+ color = "var(--color-primary)",
918
+ animated = false
919
+ }) => {
920
+ const ids = React.useMemo(() => {
921
+ closedCircuitId += 1;
922
+ const base = `cc-${closedCircuitId}`;
923
+ return {
924
+ glow: `${base}-glow`,
925
+ grad: `${base}-grad`,
926
+ arrow: `${base}-arrow`,
927
+ nodeGlow: `${base}-ng`
928
+ };
929
+ }, []);
930
+ const cx = 300;
931
+ const cy = 200;
932
+ const r = 130;
933
+ const points = Array.from({ length: 5 }, (_, i) => pentagonPoint(cx, cy, r, i));
934
+ const gx = points[1][0];
935
+ const gy = points[1][1];
936
+ const ds = 10;
937
+ return /* @__PURE__ */ jsxs(
938
+ "svg",
939
+ {
940
+ viewBox: "0 0 600 400",
941
+ xmlns: "http://www.w3.org/2000/svg",
942
+ className,
943
+ children: [
944
+ /* @__PURE__ */ jsxs("defs", { children: [
945
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
946
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
947
+ /* @__PURE__ */ jsxs("feMerge", { children: [
948
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
949
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
950
+ ] })
951
+ ] }),
952
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nodeGlow, cx: "50%", cy: "50%", r: "50%", children: [
953
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
954
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
955
+ ] }),
956
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
957
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
958
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.5 }),
959
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.15 })
960
+ ] }),
961
+ /* @__PURE__ */ jsx(
962
+ "marker",
963
+ {
964
+ id: ids.arrow,
965
+ markerWidth: "8",
966
+ markerHeight: "6",
967
+ refX: "7",
968
+ refY: "3",
969
+ orient: "auto",
970
+ markerUnits: "strokeWidth",
971
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L8,3 L0,6 Z", fill: color, opacity: 0.5 })
972
+ }
973
+ )
974
+ ] }),
975
+ animated && /* @__PURE__ */ jsx("style", { children: `
976
+ @keyframes cc-energy-flow {
977
+ from { stroke-dashoffset: 28; }
978
+ to { stroke-dashoffset: 0; }
979
+ }
980
+ ` }),
981
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 50, fill: "none", stroke: color, strokeWidth: 0.5, opacity: 0.06 }),
982
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: r + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.04 }),
983
+ points.map((pt, i) => {
984
+ const next = points[(i + 1) % 5];
985
+ const mx = (pt[0] + next[0]) / 2 + (cy - (pt[1] + next[1]) / 2) * 0.15;
986
+ const my = (pt[1] + next[1]) / 2 + ((pt[0] + next[0]) / 2 - cx) * 0.15;
987
+ return /* @__PURE__ */ jsx(
988
+ "path",
989
+ {
990
+ d: `M${pt[0]},${pt[1]} Q${mx},${my} ${next[0]},${next[1]}`,
991
+ fill: "none",
992
+ stroke: `url(#${ids.grad})`,
993
+ strokeWidth: 1.5,
994
+ strokeDasharray: animated ? "8 6" : void 0,
995
+ markerEnd: `url(#${ids.arrow})`,
996
+ style: animated ? { animation: "cc-energy-flow 1.5s linear infinite" } : void 0
997
+ },
998
+ `flow-${i}`
999
+ );
1000
+ }),
1001
+ points.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt[0], cy: pt[1], r: 22, fill: `url(#${ids.nodeGlow})` }, `glow-${i}`)),
1002
+ points.map((pt, i) => {
1003
+ if (i === 1) return null;
1004
+ return /* @__PURE__ */ jsxs("g", { children: [
1005
+ /* @__PURE__ */ jsx("circle", { cx: pt[0], cy: pt[1], r: 12, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.2 }),
1006
+ /* @__PURE__ */ jsx(
1007
+ "circle",
1008
+ {
1009
+ cx: pt[0],
1010
+ cy: pt[1],
1011
+ r: 7,
1012
+ fill: color,
1013
+ opacity: 0.6,
1014
+ filter: `url(#${ids.glow})`
1015
+ }
1016
+ )
1017
+ ] }, `node-${i}`);
1018
+ }),
1019
+ /* @__PURE__ */ jsx(
1020
+ "polygon",
1021
+ {
1022
+ points: `${gx},${gy - ds} ${gx + ds},${gy} ${gx},${gy + ds} ${gx - ds},${gy}`,
1023
+ fill: "none",
1024
+ stroke: color,
1025
+ strokeWidth: 1.5,
1026
+ opacity: 0.6,
1027
+ filter: `url(#${ids.glow})`
1028
+ }
1029
+ ),
1030
+ /* @__PURE__ */ jsx(
1031
+ "polygon",
1032
+ {
1033
+ points: `${gx},${gy - ds * 0.5} ${gx + ds * 0.5},${gy} ${gx},${gy + ds * 0.5} ${gx - ds * 0.5},${gy}`,
1034
+ fill: color,
1035
+ opacity: 0.3
1036
+ }
1037
+ ),
1038
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 3, fill: color, opacity: 0.4 })
1039
+ ]
1040
+ }
1041
+ );
1042
+ };
1043
+ ClosedCircuit.displayName = "ClosedCircuit";
1044
+ var communityOwnershipId = 0;
1045
+ var ORBITAL_UNITS = [
1046
+ { x: 85, y: 90, r: 22 },
1047
+ { x: 240, y: 60, r: 18 },
1048
+ { x: 420, y: 80, r: 20 },
1049
+ { x: 540, y: 100, r: 16 },
1050
+ { x: 60, y: 220, r: 19 },
1051
+ { x: 200, y: 200, r: 24 },
1052
+ { x: 370, y: 210, r: 20 },
1053
+ { x: 530, y: 240, r: 18 },
1054
+ { x: 120, y: 340, r: 17 },
1055
+ { x: 300, y: 330, r: 21 },
1056
+ { x: 480, y: 340, r: 18 }
1057
+ ];
1058
+ function dist(a, b) {
1059
+ return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
1060
+ }
1061
+ var CommunityOwnership = ({
1062
+ className,
1063
+ color = "var(--color-primary)",
1064
+ animated = false
1065
+ }) => {
1066
+ const ids = React.useMemo(() => {
1067
+ communityOwnershipId += 1;
1068
+ const base = `co-${communityOwnershipId}`;
1069
+ return { unitGlow: `${base}-ug` };
1070
+ }, []);
1071
+ const threads = [];
1072
+ for (let i = 0; i < ORBITAL_UNITS.length; i++) {
1073
+ for (let j = i + 1; j < ORBITAL_UNITS.length; j++) {
1074
+ const d = dist(ORBITAL_UNITS[i], ORBITAL_UNITS[j]);
1075
+ if (d < 230) {
1076
+ threads.push({ a: i, b: j, d });
1077
+ }
1078
+ }
1079
+ }
1080
+ const highlightedPairs = /* @__PURE__ */ new Set(["0-5", "5-6", "6-10", "2-6", "1-5"]);
1081
+ return /* @__PURE__ */ jsxs(
1082
+ "svg",
1083
+ {
1084
+ viewBox: "0 0 600 400",
1085
+ xmlns: "http://www.w3.org/2000/svg",
1086
+ className,
1087
+ children: [
1088
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("radialGradient", { id: ids.unitGlow, cx: "50%", cy: "50%", r: "50%", children: [
1089
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.12 }),
1090
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1091
+ ] }) }),
1092
+ animated && /* @__PURE__ */ jsx("style", { children: `
1093
+ @keyframes co-thread-pulse {
1094
+ 0%, 100% { opacity: 0.08; }
1095
+ 50% { opacity: 0.2; }
1096
+ }
1097
+ ` }),
1098
+ threads.map(({ a, b, d }, i) => {
1099
+ const isHighlighted = highlightedPairs.has(`${a}-${b}`);
1100
+ const opacity = isHighlighted ? 0.2 : Math.max(0.04, 0.12 - d / 230 * 0.08);
1101
+ return /* @__PURE__ */ jsx(
1102
+ "line",
1103
+ {
1104
+ x1: ORBITAL_UNITS[a].x,
1105
+ y1: ORBITAL_UNITS[a].y,
1106
+ x2: ORBITAL_UNITS[b].x,
1107
+ y2: ORBITAL_UNITS[b].y,
1108
+ stroke: color,
1109
+ strokeWidth: isHighlighted ? 1.5 : 0.7,
1110
+ opacity,
1111
+ style: animated && isHighlighted ? { animation: "co-thread-pulse 3s ease-in-out infinite" } : void 0
1112
+ },
1113
+ `thread-${i}`
1114
+ );
1115
+ }),
1116
+ ORBITAL_UNITS.map((unit, i) => /* @__PURE__ */ jsxs("g", { children: [
1117
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: unit.r + 10, fill: `url(#${ids.unitGlow})` }),
1118
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: unit.r, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
1119
+ /* @__PURE__ */ jsx(
1120
+ "ellipse",
1121
+ {
1122
+ cx: unit.x,
1123
+ cy: unit.y,
1124
+ rx: unit.r * 0.55,
1125
+ ry: unit.r * 0.35,
1126
+ fill: "none",
1127
+ stroke: color,
1128
+ strokeWidth: 0.7,
1129
+ opacity: 0.15,
1130
+ transform: `rotate(${i * 30 % 180}, ${unit.x}, ${unit.y})`
1131
+ }
1132
+ ),
1133
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: 3.5, fill: color, opacity: 0.5 })
1134
+ ] }, `unit-${i}`))
1135
+ ]
1136
+ }
1137
+ );
1138
+ };
1139
+ CommunityOwnership.displayName = "CommunityOwnership";
1140
+ var compileAnywhereId = 0;
1141
+ var TARGETS = [
1142
+ { y: 90, shape: "circle" },
1143
+ { y: 200, shape: "rect" },
1144
+ { y: 310, shape: "diamond" }
1145
+ ];
1146
+ var CompileAnywhere = ({
1147
+ className,
1148
+ color = "var(--color-primary)",
1149
+ animated = false
1150
+ }) => {
1151
+ const ids = React.useMemo(() => {
1152
+ compileAnywhereId += 1;
1153
+ const base = `ca-${compileAnywhereId}`;
1154
+ return {
1155
+ glow: `${base}-glow`,
1156
+ beamGrad: `${base}-bg`,
1157
+ nucGlow: `${base}-ng`,
1158
+ arrow: `${base}-arrow`
1159
+ };
1160
+ }, []);
1161
+ const orbX = 150;
1162
+ const orbY = 200;
1163
+ const orbR = 45;
1164
+ const targetX = 490;
1165
+ return /* @__PURE__ */ jsxs(
1166
+ "svg",
1167
+ {
1168
+ viewBox: "0 0 600 400",
1169
+ xmlns: "http://www.w3.org/2000/svg",
1170
+ className,
1171
+ children: [
1172
+ /* @__PURE__ */ jsxs("defs", { children: [
1173
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1174
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "5", result: "blur" }),
1175
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1176
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
1177
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
1178
+ ] })
1179
+ ] }),
1180
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
1181
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
1182
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1183
+ ] }),
1184
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.beamGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
1185
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.5 }),
1186
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.1 })
1187
+ ] }),
1188
+ /* @__PURE__ */ jsx(
1189
+ "marker",
1190
+ {
1191
+ id: ids.arrow,
1192
+ markerWidth: "6",
1193
+ markerHeight: "5",
1194
+ refX: "5",
1195
+ refY: "2.5",
1196
+ orient: "auto",
1197
+ markerUnits: "strokeWidth",
1198
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L6,2.5 L0,5 Z", fill: color, opacity: 0.4 })
1199
+ }
1200
+ )
1201
+ ] }),
1202
+ animated && /* @__PURE__ */ jsx("style", { children: `
1203
+ @keyframes ca-beam-flow {
1204
+ from { stroke-dashoffset: 24; }
1205
+ to { stroke-dashoffset: 0; }
1206
+ }
1207
+ @keyframes ca-orbit-spin {
1208
+ from { transform: rotate(0deg); }
1209
+ to { transform: rotate(360deg); }
1210
+ }
1211
+ ` }),
1212
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: orbR + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.04 }),
1213
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 30, fill: `url(#${ids.nucGlow})` }),
1214
+ /* @__PURE__ */ jsxs("g", { style: animated ? { transformOrigin: `${orbX}px ${orbY}px`, animation: "ca-orbit-spin 15s linear infinite" } : void 0, children: [
1215
+ /* @__PURE__ */ jsx("ellipse", { cx: orbX, cy: orbY, rx: orbR, ry: orbR * 0.65, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.3 }),
1216
+ [0, 2.1, 4.2].map((a, i) => /* @__PURE__ */ jsx(
1217
+ "circle",
1218
+ {
1219
+ cx: orbX + Math.cos(a) * orbR,
1220
+ cy: orbY + Math.sin(a) * orbR * 0.65,
1221
+ r: 3,
1222
+ fill: color,
1223
+ opacity: 0.5
1224
+ },
1225
+ `p-${i}`
1226
+ ))
1227
+ ] }),
1228
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 7, fill: color, opacity: 0.7, filter: `url(#${ids.glow})` }),
1229
+ TARGETS.map((target, i) => /* @__PURE__ */ jsx(
1230
+ "path",
1231
+ {
1232
+ d: `M${orbX + orbR + 10},${orbY} Q${(orbX + targetX) / 2},${(orbY + target.y) / 2} ${targetX - 20},${target.y}`,
1233
+ fill: "none",
1234
+ stroke: `url(#${ids.beamGrad})`,
1235
+ strokeWidth: 1.5,
1236
+ strokeDasharray: animated ? "6 6" : "3 8",
1237
+ markerEnd: `url(#${ids.arrow})`,
1238
+ style: animated ? { animation: `ca-beam-flow 1.5s linear ${i * 0.3}s infinite` } : void 0
1239
+ },
1240
+ `beam-${i}`
1241
+ )),
1242
+ TARGETS.map((target, i) => {
1243
+ const tx = targetX;
1244
+ const ty = target.y;
1245
+ return /* @__PURE__ */ jsxs("g", { children: [
1246
+ /* @__PURE__ */ jsx("circle", { cx: tx, cy: ty, r: 18, fill: "none", stroke: color, strokeWidth: 0.8, opacity: 0.15 }),
1247
+ target.shape === "circle" && /* @__PURE__ */ jsxs(Fragment, { children: [
1248
+ /* @__PURE__ */ jsx("circle", { cx: tx, cy: ty, r: 10, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.5 }),
1249
+ /* @__PURE__ */ jsx("circle", { cx: tx, cy: ty, r: 4, fill: color, opacity: 0.4 })
1250
+ ] }),
1251
+ target.shape === "rect" && /* @__PURE__ */ jsxs(Fragment, { children: [
1252
+ /* @__PURE__ */ jsx("rect", { x: tx - 10, y: ty - 8, width: 20, height: 16, rx: 3, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.5 }),
1253
+ /* @__PURE__ */ jsx("rect", { x: tx - 4, y: ty - 2, width: 8, height: 4, rx: 1, fill: color, opacity: 0.4 })
1254
+ ] }),
1255
+ target.shape === "diamond" && /* @__PURE__ */ jsxs(Fragment, { children: [
1256
+ /* @__PURE__ */ jsx(
1257
+ "polygon",
1258
+ {
1259
+ points: `${tx},${ty - 10} ${tx + 10},${ty} ${tx},${ty + 10} ${tx - 10},${ty}`,
1260
+ fill: "none",
1261
+ stroke: color,
1262
+ strokeWidth: 1.5,
1263
+ opacity: 0.5
1264
+ }
1265
+ ),
1266
+ /* @__PURE__ */ jsx("circle", { cx: tx, cy: ty, r: 3, fill: color, opacity: 0.4 })
1267
+ ] })
1268
+ ] }, `target-${i}`);
1269
+ })
1270
+ ]
1271
+ }
1272
+ );
1273
+ };
1274
+ CompileAnywhere.displayName = "CompileAnywhere";
1275
+ var composableModelsId = 0;
1276
+ var ComposableModels = ({
1277
+ className,
1278
+ color = "var(--color-primary)",
1279
+ animated = false
1280
+ }) => {
1281
+ const ids = React.useMemo(() => {
1282
+ composableModelsId += 1;
1283
+ const base = `cm-${composableModelsId}`;
1284
+ return {
1285
+ glow: `${base}-glow`,
1286
+ gradL: `${base}-gl`,
1287
+ gradR: `${base}-gr`,
1288
+ sharedGlow: `${base}-sg`
1289
+ };
1290
+ }, []);
1291
+ const leftCx = 210;
1292
+ const rightCx = 390;
1293
+ const cy = 200;
1294
+ const ringR = 130;
1295
+ const leftPrivate = [
1296
+ { x: 110, y: 140 },
1297
+ { x: 95, y: 220 },
1298
+ { x: 140, y: 270 },
1299
+ { x: 170, y: 110 }
1300
+ ];
1301
+ const rightPrivate = [
1302
+ { x: 490, y: 140 },
1303
+ { x: 505, y: 220 },
1304
+ { x: 460, y: 270 },
1305
+ { x: 430, y: 110 }
1306
+ ];
1307
+ const shared = [
1308
+ { x: 300, y: 160 },
1309
+ { x: 300, y: 240 },
1310
+ { x: 280, y: 200 },
1311
+ { x: 320, y: 200 }
1312
+ ];
1313
+ return /* @__PURE__ */ jsxs(
1314
+ "svg",
1315
+ {
1316
+ viewBox: "0 0 600 400",
1317
+ xmlns: "http://www.w3.org/2000/svg",
1318
+ className,
1319
+ children: [
1320
+ /* @__PURE__ */ jsxs("defs", { children: [
1321
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1322
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "5", result: "blur" }),
1323
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1324
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
1325
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
1326
+ ] })
1327
+ ] }),
1328
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.sharedGlow, cx: "50%", cy: "50%", r: "50%", children: [
1329
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
1330
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1331
+ ] }),
1332
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.gradL, x1: "0%", y1: "50%", x2: "100%", y2: "50%", children: [
1333
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
1334
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.08 })
1335
+ ] }),
1336
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.gradR, x1: "0%", y1: "50%", x2: "100%", y2: "50%", children: [
1337
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.08 }),
1338
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.3 })
1339
+ ] })
1340
+ ] }),
1341
+ animated && /* @__PURE__ */ jsx("style", { children: `
1342
+ @keyframes cm-pulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 0.9; } }
1343
+ ` }),
1344
+ /* @__PURE__ */ jsx("circle", { cx: leftCx, cy, r: ringR + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
1345
+ /* @__PURE__ */ jsx("circle", { cx: rightCx, cy, r: ringR + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
1346
+ /* @__PURE__ */ jsx("circle", { cx: leftCx, cy, r: ringR, fill: "none", stroke: `url(#${ids.gradL})`, strokeWidth: 1.5 }),
1347
+ /* @__PURE__ */ jsx("circle", { cx: rightCx, cy, r: ringR, fill: "none", stroke: `url(#${ids.gradR})`, strokeWidth: 1.5 }),
1348
+ leftPrivate.map((pt, i) => /* @__PURE__ */ jsx(
1349
+ "line",
1350
+ {
1351
+ x1: pt.x,
1352
+ y1: pt.y,
1353
+ x2: shared[i % shared.length].x,
1354
+ y2: shared[i % shared.length].y,
1355
+ stroke: color,
1356
+ strokeWidth: 0.5,
1357
+ opacity: 0.1
1358
+ },
1359
+ `lc-${i}`
1360
+ )),
1361
+ rightPrivate.map((pt, i) => /* @__PURE__ */ jsx(
1362
+ "line",
1363
+ {
1364
+ x1: pt.x,
1365
+ y1: pt.y,
1366
+ x2: shared[(i + 1) % shared.length].x,
1367
+ y2: shared[(i + 1) % shared.length].y,
1368
+ stroke: color,
1369
+ strokeWidth: 0.5,
1370
+ opacity: 0.1
1371
+ },
1372
+ `rc-${i}`
1373
+ )),
1374
+ shared.map((pt, i) => {
1375
+ const next = shared[(i + 1) % shared.length];
1376
+ return /* @__PURE__ */ jsx("line", { x1: pt.x, y1: pt.y, x2: next.x, y2: next.y, stroke: color, strokeWidth: 1, opacity: 0.25 }, `sc-${i}`);
1377
+ }),
1378
+ /* @__PURE__ */ jsx("circle", { cx: leftCx, cy, r: 5, fill: color, opacity: 0.5 }),
1379
+ /* @__PURE__ */ jsx("circle", { cx: rightCx, cy, r: 5, fill: color, opacity: 0.5 }),
1380
+ leftPrivate.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 3.5, fill: color, opacity: 0.35 }, `lp-${i}`)),
1381
+ rightPrivate.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 3.5, fill: color, opacity: 0.35 }, `rp-${i}`)),
1382
+ /* @__PURE__ */ jsx("circle", { cx: 300, cy: 200, r: 40, fill: `url(#${ids.sharedGlow})` }),
1383
+ shared.map((pt, i) => /* @__PURE__ */ jsx(
1384
+ "circle",
1385
+ {
1386
+ cx: pt.x,
1387
+ cy: pt.y,
1388
+ r: 5,
1389
+ fill: color,
1390
+ opacity: 0.7,
1391
+ filter: `url(#${ids.glow})`,
1392
+ style: animated ? { animation: `cm-pulse 2s ease-in-out ${i * 0.5}s infinite` } : void 0
1393
+ },
1394
+ `sp-${i}`
1395
+ ))
1396
+ ]
1397
+ }
1398
+ );
1399
+ };
1400
+ ComposableModels.displayName = "ComposableModels";
1401
+ var describeProveDeployId = 0;
1402
+ var SCATTER_PARTICLES = [
1403
+ { x: 40, y: 100, r: 3 },
1404
+ { x: 80, y: 150, r: 2.5 },
1405
+ { x: 55, y: 220, r: 3 },
1406
+ { x: 100, y: 260, r: 2 },
1407
+ { x: 70, y: 300, r: 3.5 },
1408
+ { x: 120, y: 130, r: 2 },
1409
+ { x: 95, y: 190, r: 2.5 },
1410
+ { x: 45, y: 340, r: 2 },
1411
+ { x: 130, y: 80, r: 2.5 },
1412
+ { x: 110, y: 310, r: 3 },
1413
+ { x: 60, y: 160, r: 2 },
1414
+ { x: 85, y: 280, r: 2.5 }
1415
+ ];
1416
+ var CONSTELLATION = [
1417
+ { x: 450, y: 90, r: 16 },
1418
+ { x: 530, y: 140, r: 14 },
1419
+ { x: 490, y: 220, r: 18 },
1420
+ { x: 430, y: 300, r: 15 },
1421
+ { x: 540, y: 310, r: 13 }
1422
+ ];
1423
+ var DescribeProveDeploy = ({
1424
+ className,
1425
+ color = "var(--color-primary)",
1426
+ animated = false
1427
+ }) => {
1428
+ const ids = React.useMemo(() => {
1429
+ describeProveDeployId += 1;
1430
+ const base = `dpd-${describeProveDeployId}`;
1431
+ return {
1432
+ glow: `${base}-glow`,
1433
+ flowGrad: `${base}-fg`,
1434
+ nucGlow: `${base}-ng`,
1435
+ arrow: `${base}-arrow`
1436
+ };
1437
+ }, []);
1438
+ const orbX = 270;
1439
+ const orbY = 200;
1440
+ const orbR = 50;
1441
+ return /* @__PURE__ */ jsxs(
1442
+ "svg",
1443
+ {
1444
+ viewBox: "0 0 600 400",
1445
+ xmlns: "http://www.w3.org/2000/svg",
1446
+ className,
1447
+ children: [
1448
+ /* @__PURE__ */ jsxs("defs", { children: [
1449
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1450
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
1451
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1452
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
1453
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
1454
+ ] })
1455
+ ] }),
1456
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
1457
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
1458
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1459
+ ] }),
1460
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.flowGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
1461
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.1 }),
1462
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.4 }),
1463
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.1 })
1464
+ ] }),
1465
+ /* @__PURE__ */ jsx(
1466
+ "marker",
1467
+ {
1468
+ id: ids.arrow,
1469
+ markerWidth: "7",
1470
+ markerHeight: "5",
1471
+ refX: "6",
1472
+ refY: "2.5",
1473
+ orient: "auto",
1474
+ markerUnits: "strokeWidth",
1475
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L7,2.5 L0,5 Z", fill: color, opacity: 0.4 })
1476
+ }
1477
+ )
1478
+ ] }),
1479
+ animated && /* @__PURE__ */ jsx("style", { children: `
1480
+ @keyframes dpd-drift {
1481
+ 0%, 100% { transform: translate(0, 0); }
1482
+ 50% { transform: translate(2px, -1px); }
1483
+ }
1484
+ @keyframes dpd-flow { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }
1485
+ ` }),
1486
+ SCATTER_PARTICLES.map((p, i) => /* @__PURE__ */ jsx(
1487
+ "circle",
1488
+ {
1489
+ cx: p.x,
1490
+ cy: p.y,
1491
+ r: p.r,
1492
+ fill: color,
1493
+ opacity: 0.15 + i % 4 * 0.08,
1494
+ style: animated ? { animation: `dpd-drift ${1.5 + i % 3 * 0.4}s ease-in-out ${i * 0.15}s infinite` } : void 0
1495
+ },
1496
+ `scatter-${i}`
1497
+ )),
1498
+ /* @__PURE__ */ jsx(
1499
+ "path",
1500
+ {
1501
+ d: `M150,${orbY} Q${200},${orbY} ${orbX - orbR - 10},${orbY}`,
1502
+ fill: "none",
1503
+ stroke: `url(#${ids.flowGrad})`,
1504
+ strokeWidth: 1.5,
1505
+ strokeDasharray: "5 6",
1506
+ markerEnd: `url(#${ids.arrow})`,
1507
+ style: animated ? { animation: "dpd-flow 1.5s linear infinite" } : void 0
1508
+ }
1509
+ ),
1510
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 25, fill: `url(#${ids.nucGlow})` }),
1511
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: orbR, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.35 }),
1512
+ /* @__PURE__ */ jsx(
1513
+ "ellipse",
1514
+ {
1515
+ cx: orbX,
1516
+ cy: orbY,
1517
+ rx: orbR * 0.6,
1518
+ ry: orbR * 0.35,
1519
+ fill: "none",
1520
+ stroke: color,
1521
+ strokeWidth: 1,
1522
+ opacity: 0.2,
1523
+ transform: `rotate(-25, ${orbX}, ${orbY})`
1524
+ }
1525
+ ),
1526
+ [0.5, 2, 3.5, 5].map((a, i) => /* @__PURE__ */ jsx("circle", { cx: orbX + Math.cos(a) * orbR, cy: orbY + Math.sin(a) * orbR, r: 3, fill: color, opacity: 0.45 }, `op-${i}`)),
1527
+ /* @__PURE__ */ jsx("circle", { cx: orbX, cy: orbY, r: 6, fill: color, opacity: 0.65, filter: `url(#${ids.glow})` }),
1528
+ /* @__PURE__ */ jsx(
1529
+ "path",
1530
+ {
1531
+ d: `M${orbX + orbR + 10},${orbY} Q${380},${orbY} ${CONSTELLATION[2].x - CONSTELLATION[2].r - 10},${orbY}`,
1532
+ fill: "none",
1533
+ stroke: `url(#${ids.flowGrad})`,
1534
+ strokeWidth: 1.5,
1535
+ strokeDasharray: "5 6",
1536
+ markerEnd: `url(#${ids.arrow})`,
1537
+ style: animated ? { animation: "dpd-flow 1.5s linear 0.5s infinite" } : void 0
1538
+ }
1539
+ ),
1540
+ CONSTELLATION.map((a, i) => {
1541
+ const next = CONSTELLATION[(i + 1) % CONSTELLATION.length];
1542
+ return /* @__PURE__ */ jsx(
1543
+ "line",
1544
+ {
1545
+ x1: a.x,
1546
+ y1: a.y,
1547
+ x2: next.x,
1548
+ y2: next.y,
1549
+ stroke: color,
1550
+ strokeWidth: 0.7,
1551
+ opacity: 0.12
1552
+ },
1553
+ `cline-${i}`
1554
+ );
1555
+ }),
1556
+ /* @__PURE__ */ jsx("line", { x1: CONSTELLATION[0].x, y1: CONSTELLATION[0].y, x2: CONSTELLATION[2].x, y2: CONSTELLATION[2].y, stroke: color, strokeWidth: 0.5, opacity: 0.08 }),
1557
+ /* @__PURE__ */ jsx("line", { x1: CONSTELLATION[1].x, y1: CONSTELLATION[1].y, x2: CONSTELLATION[3].x, y2: CONSTELLATION[3].y, stroke: color, strokeWidth: 0.5, opacity: 0.08 }),
1558
+ CONSTELLATION.map((unit, i) => /* @__PURE__ */ jsxs("g", { children: [
1559
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: unit.r, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
1560
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: 3, fill: color, opacity: 0.45 })
1561
+ ] }, `cunit-${i}`))
1562
+ ]
1563
+ }
1564
+ );
1565
+ };
1566
+ DescribeProveDeploy.displayName = "DescribeProveDeploy";
1567
+ var domainGridId = 0;
1568
+ var CLUSTERS = [
1569
+ { x: 60, y: 70, size: 8, dots: 3, highlighted: true },
1570
+ { x: 170, y: 50, size: 6, dots: 2, highlighted: false },
1571
+ { x: 290, y: 65, size: 7, dots: 3, highlighted: false },
1572
+ { x: 420, y: 55, size: 8, dots: 3, highlighted: true },
1573
+ { x: 530, y: 80, size: 6, dots: 2, highlighted: false },
1574
+ { x: 100, y: 170, size: 7, dots: 3, highlighted: false },
1575
+ { x: 220, y: 155, size: 6, dots: 2, highlighted: false },
1576
+ { x: 350, y: 160, size: 9, dots: 4, highlighted: true },
1577
+ { x: 480, y: 175, size: 6, dots: 2, highlighted: false },
1578
+ { x: 50, y: 270, size: 6, dots: 2, highlighted: false },
1579
+ { x: 160, y: 260, size: 7, dots: 3, highlighted: false },
1580
+ { x: 280, y: 250, size: 6, dots: 2, highlighted: false },
1581
+ { x: 400, y: 265, size: 8, dots: 3, highlighted: true },
1582
+ { x: 530, y: 270, size: 6, dots: 2, highlighted: false },
1583
+ { x: 90, y: 350, size: 7, dots: 3, highlighted: false },
1584
+ { x: 230, y: 340, size: 6, dots: 2, highlighted: false },
1585
+ { x: 370, y: 350, size: 8, dots: 3, highlighted: true },
1586
+ { x: 510, y: 345, size: 6, dots: 2, highlighted: false }
1587
+ ];
1588
+ function dist2(a, b) {
1589
+ return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
1590
+ }
1591
+ var DomainGrid = ({
1592
+ className,
1593
+ color = "var(--color-primary)",
1594
+ animated = false
1595
+ }) => {
1596
+ const ids = React.useMemo(() => {
1597
+ domainGridId += 1;
1598
+ const base = `dg-${domainGridId}`;
1599
+ return { clusterGlow: `${base}-cg` };
1600
+ }, []);
1601
+ const connections = [];
1602
+ for (let i = 0; i < CLUSTERS.length; i++) {
1603
+ for (let j = i + 1; j < CLUSTERS.length; j++) {
1604
+ const d = dist2(CLUSTERS[i], CLUSTERS[j]);
1605
+ if (d < 180) {
1606
+ connections.push({ a: i, b: j });
1607
+ }
1608
+ }
1609
+ }
1610
+ return /* @__PURE__ */ jsxs(
1611
+ "svg",
1612
+ {
1613
+ viewBox: "0 0 600 400",
1614
+ xmlns: "http://www.w3.org/2000/svg",
1615
+ className,
1616
+ children: [
1617
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("radialGradient", { id: ids.clusterGlow, cx: "50%", cy: "50%", r: "50%", children: [
1618
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
1619
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1620
+ ] }) }),
1621
+ animated && /* @__PURE__ */ jsx("style", { children: `
1622
+ @keyframes dg-twinkle {
1623
+ 0%, 100% { opacity: 0.4; }
1624
+ 50% { opacity: 0.8; }
1625
+ }
1626
+ ` }),
1627
+ connections.map(({ a, b }, i) => /* @__PURE__ */ jsx(
1628
+ "line",
1629
+ {
1630
+ x1: CLUSTERS[a].x,
1631
+ y1: CLUSTERS[a].y,
1632
+ x2: CLUSTERS[b].x,
1633
+ y2: CLUSTERS[b].y,
1634
+ stroke: color,
1635
+ strokeWidth: 0.5,
1636
+ opacity: 0.06
1637
+ },
1638
+ `conn-${i}`
1639
+ )),
1640
+ CLUSTERS.map((cluster, ci) => {
1641
+ const baseOpacity = cluster.highlighted ? 0.6 : 0.3;
1642
+ return /* @__PURE__ */ jsxs("g", { children: [
1643
+ cluster.highlighted && /* @__PURE__ */ jsx("circle", { cx: cluster.x, cy: cluster.y, r: cluster.size + 10, fill: `url(#${ids.clusterGlow})` }),
1644
+ Array.from({ length: cluster.dots }, (_, di) => {
1645
+ const angle = di / cluster.dots * Math.PI * 2;
1646
+ const spread = cluster.size * 0.6;
1647
+ const dx = cluster.x + Math.cos(angle) * spread;
1648
+ const dy = cluster.y + Math.sin(angle) * spread;
1649
+ const dotR = cluster.highlighted ? 2.5 : 2;
1650
+ return /* @__PURE__ */ jsx(
1651
+ "circle",
1652
+ {
1653
+ cx: dx,
1654
+ cy: dy,
1655
+ r: dotR,
1656
+ fill: color,
1657
+ opacity: baseOpacity - di * 0.05,
1658
+ style: animated && cluster.highlighted ? { animation: `dg-twinkle 3s ease-in-out ${ci * 0.3}s infinite` } : void 0
1659
+ },
1660
+ `dot-${ci}-${di}`
1661
+ );
1662
+ }),
1663
+ /* @__PURE__ */ jsx(
1664
+ "circle",
1665
+ {
1666
+ cx: cluster.x,
1667
+ cy: cluster.y,
1668
+ r: cluster.highlighted ? 3.5 : 2.5,
1669
+ fill: color,
1670
+ opacity: baseOpacity
1671
+ }
1672
+ )
1673
+ ] }, `cluster-${ci}`);
1674
+ })
1675
+ ]
1676
+ }
1677
+ );
1678
+ };
1679
+ DomainGrid.displayName = "DomainGrid";
1680
+ var eventBusId = 0;
1681
+ var OUTER_COUNT = 6;
1682
+ var OUTER_RADIUS = 150;
1683
+ var CX = 300;
1684
+ var CY = 200;
1685
+ function getOuterPositions() {
1686
+ return Array.from({ length: OUTER_COUNT }, (_, i) => {
1687
+ const angle = i / OUTER_COUNT * Math.PI * 2 - Math.PI / 2;
1688
+ return {
1689
+ x: CX + Math.cos(angle) * OUTER_RADIUS,
1690
+ y: CY + Math.sin(angle) * OUTER_RADIUS
1691
+ };
1692
+ });
1693
+ }
1694
+ var EventBus = ({
1695
+ className,
1696
+ color = "var(--color-primary)",
1697
+ animated = false
1698
+ }) => {
1699
+ const ids = React.useMemo(() => {
1700
+ eventBusId += 1;
1701
+ const base = `eb-${eventBusId}`;
1702
+ return {
1703
+ glow: `${base}-glow`,
1704
+ pulseGlow: `${base}-pg`,
1705
+ connGrad: `${base}-cg`,
1706
+ unitGlow: `${base}-ug`
1707
+ };
1708
+ }, []);
1709
+ const positions = getOuterPositions();
1710
+ return /* @__PURE__ */ jsxs(
1711
+ "svg",
1712
+ {
1713
+ viewBox: "0 0 600 400",
1714
+ xmlns: "http://www.w3.org/2000/svg",
1715
+ className,
1716
+ children: [
1717
+ /* @__PURE__ */ jsxs("defs", { children: [
1718
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1719
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "5", result: "blur" }),
1720
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1721
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
1722
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
1723
+ ] })
1724
+ ] }),
1725
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.pulseGlow, cx: "50%", cy: "50%", r: "50%", children: [
1726
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
1727
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1728
+ ] }),
1729
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.unitGlow, cx: "50%", cy: "50%", r: "50%", children: [
1730
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.12 }),
1731
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1732
+ ] }),
1733
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.connGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
1734
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.35 }),
1735
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.08 })
1736
+ ] })
1737
+ ] }),
1738
+ animated && /* @__PURE__ */ jsx("style", { children: `
1739
+ @keyframes eb-wave-expand {
1740
+ 0% { transform: scale(0.3); opacity: 0.4; }
1741
+ 100% { transform: scale(1); opacity: 0; }
1742
+ }
1743
+ ` }),
1744
+ /* @__PURE__ */ jsx("circle", { cx: CX, cy: CY, r: OUTER_RADIUS + 30, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
1745
+ positions.map((pos, i) => /* @__PURE__ */ jsx(
1746
+ "line",
1747
+ {
1748
+ x1: CX,
1749
+ y1: CY,
1750
+ x2: pos.x,
1751
+ y2: pos.y,
1752
+ stroke: color,
1753
+ strokeWidth: 0.8,
1754
+ opacity: 0.12,
1755
+ strokeDasharray: "3 6"
1756
+ },
1757
+ `conn-${i}`
1758
+ )),
1759
+ /* @__PURE__ */ jsx("circle", { cx: CX, cy: CY, r: 40, fill: `url(#${ids.pulseGlow})` }),
1760
+ [30, 50, 75].map((r, i) => /* @__PURE__ */ jsx(
1761
+ "circle",
1762
+ {
1763
+ cx: CX,
1764
+ cy: CY,
1765
+ r,
1766
+ fill: "none",
1767
+ stroke: color,
1768
+ strokeWidth: 1.2,
1769
+ opacity: animated ? void 0 : 0.12 - i * 0.03,
1770
+ style: animated ? {
1771
+ transformOrigin: `${CX}px ${CY}px`,
1772
+ animation: `eb-wave-expand 2.5s ease-out ${i * 0.6}s infinite`
1773
+ } : void 0
1774
+ },
1775
+ `wave-${i}`
1776
+ )),
1777
+ /* @__PURE__ */ jsx("circle", { cx: CX, cy: CY, r: 6, fill: color, opacity: 0.7, filter: `url(#${ids.glow})` }),
1778
+ positions.map((pos, i) => {
1779
+ const unitR = 20;
1780
+ return /* @__PURE__ */ jsxs("g", { children: [
1781
+ /* @__PURE__ */ jsx("circle", { cx: pos.x, cy: pos.y, r: unitR + 8, fill: `url(#${ids.unitGlow})` }),
1782
+ /* @__PURE__ */ jsx("circle", { cx: pos.x, cy: pos.y, r: unitR, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
1783
+ /* @__PURE__ */ jsx(
1784
+ "ellipse",
1785
+ {
1786
+ cx: pos.x,
1787
+ cy: pos.y,
1788
+ rx: unitR * 0.6,
1789
+ ry: unitR * 0.35,
1790
+ fill: "none",
1791
+ stroke: color,
1792
+ strokeWidth: 0.6,
1793
+ opacity: 0.15,
1794
+ transform: `rotate(${i * 30}, ${pos.x}, ${pos.y})`
1795
+ }
1796
+ ),
1797
+ /* @__PURE__ */ jsx("circle", { cx: pos.x, cy: pos.y, r: 3.5, fill: color, opacity: 0.5 })
1798
+ ] }, `unit-${i}`);
1799
+ })
1800
+ ]
1801
+ }
1802
+ );
1803
+ };
1804
+ EventBus.displayName = "EventBus";
1805
+ var orbitalUnitId = 0;
1806
+ var OrbitalUnit = ({
1807
+ className,
1808
+ color = "var(--color-primary)",
1809
+ animated = false
1810
+ }) => {
1811
+ const ids = React.useMemo(() => {
1812
+ orbitalUnitId += 1;
1813
+ const base = `ou-${orbitalUnitId}`;
1814
+ return {
1815
+ glow: `${base}-glow`,
1816
+ grad1: `${base}-grad1`,
1817
+ grad2: `${base}-grad2`,
1818
+ grad3: `${base}-grad3`,
1819
+ nucleusGlow: `${base}-ng`
1820
+ };
1821
+ }, []);
1822
+ const cx = 300;
1823
+ const cy = 200;
1824
+ const outerR = 140;
1825
+ const outerPoints = Array.from({ length: 5 }, (_, i) => {
1826
+ const a = i / 5 * Math.PI * 2 - Math.PI / 2;
1827
+ return { x: cx + Math.cos(a) * outerR, y: cy + Math.sin(a) * outerR };
1828
+ });
1829
+ const midRx = 90;
1830
+ const midRy = 65;
1831
+ const midRot = 25;
1832
+ const midParticles = [0, 2.1, 4.2].map((a) => {
1833
+ const rad = a;
1834
+ const px = midRx * Math.cos(rad);
1835
+ const py = midRy * Math.sin(rad);
1836
+ const rotRad = midRot * Math.PI / 180;
1837
+ return {
1838
+ x: cx + px * Math.cos(rotRad) - py * Math.sin(rotRad),
1839
+ y: cy + px * Math.sin(rotRad) + py * Math.cos(rotRad)
1840
+ };
1841
+ });
1842
+ const innerRx = 50;
1843
+ const innerRy = 35;
1844
+ const innerRot = -15;
1845
+ const innerParticles = [0.8, 3.9].map((a) => {
1846
+ const rad = a;
1847
+ const px = innerRx * Math.cos(rad);
1848
+ const py = innerRy * Math.sin(rad);
1849
+ const rotRad = innerRot * Math.PI / 180;
1850
+ return {
1851
+ x: cx + px * Math.cos(rotRad) - py * Math.sin(rotRad),
1852
+ y: cy + px * Math.sin(rotRad) + py * Math.cos(rotRad)
1853
+ };
1854
+ });
1855
+ return /* @__PURE__ */ jsxs(
1856
+ "svg",
1857
+ {
1858
+ viewBox: "0 0 600 400",
1859
+ xmlns: "http://www.w3.org/2000/svg",
1860
+ className,
1861
+ children: [
1862
+ /* @__PURE__ */ jsxs("defs", { children: [
1863
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1864
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "6", result: "blur" }),
1865
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1866
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
1867
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
1868
+ ] })
1869
+ ] }),
1870
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucleusGlow, cx: "50%", cy: "50%", r: "50%", children: [
1871
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
1872
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
1873
+ ] }),
1874
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad1, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
1875
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.1 }),
1876
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.4 }),
1877
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.1 })
1878
+ ] }),
1879
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad2, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
1880
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
1881
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.5 }),
1882
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.15 })
1883
+ ] }),
1884
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad3, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
1885
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
1886
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.6 }),
1887
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.2 })
1888
+ ] })
1889
+ ] }),
1890
+ animated && /* @__PURE__ */ jsx("style", { children: `
1891
+ @keyframes ou-spin-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
1892
+ @keyframes ou-spin-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }
1893
+ ` }),
1894
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 170, fill: "none", stroke: color, strokeWidth: 0.5, opacity: 0.04 }),
1895
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 180, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
1896
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 30, fill: `url(#${ids.nucleusGlow})` }),
1897
+ /* @__PURE__ */ jsx(
1898
+ "circle",
1899
+ {
1900
+ cx,
1901
+ cy,
1902
+ r: outerR,
1903
+ fill: "none",
1904
+ stroke: `url(#${ids.grad1})`,
1905
+ strokeWidth: 1,
1906
+ strokeDasharray: "4 8"
1907
+ }
1908
+ ),
1909
+ outerPoints.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 3.5, fill: color, opacity: 0.3 }, `op-${i}`)),
1910
+ /* @__PURE__ */ jsx(
1911
+ "g",
1912
+ {
1913
+ style: animated ? { transformOrigin: `${cx}px ${cy}px`, animation: "ou-spin-slow 30s linear infinite" } : void 0,
1914
+ children: /* @__PURE__ */ jsx(
1915
+ "ellipse",
1916
+ {
1917
+ cx,
1918
+ cy,
1919
+ rx: midRx,
1920
+ ry: midRy,
1921
+ fill: "none",
1922
+ stroke: `url(#${ids.grad2})`,
1923
+ strokeWidth: 1.5,
1924
+ transform: `rotate(${midRot}, ${cx}, ${cy})`
1925
+ }
1926
+ )
1927
+ }
1928
+ ),
1929
+ midParticles.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 4, fill: color, opacity: 0.5 }, `mp-${i}`)),
1930
+ /* @__PURE__ */ jsx(
1931
+ "g",
1932
+ {
1933
+ style: animated ? { transformOrigin: `${cx}px ${cy}px`, animation: "ou-spin-rev 20s linear infinite" } : void 0,
1934
+ children: /* @__PURE__ */ jsx(
1935
+ "ellipse",
1936
+ {
1937
+ cx,
1938
+ cy,
1939
+ rx: innerRx,
1940
+ ry: innerRy,
1941
+ fill: "none",
1942
+ stroke: `url(#${ids.grad3})`,
1943
+ strokeWidth: 1.5,
1944
+ transform: `rotate(${innerRot}, ${cx}, ${cy})`
1945
+ }
1946
+ )
1947
+ }
1948
+ ),
1949
+ innerParticles.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 3.5, fill: color, opacity: 0.6 }, `ip-${i}`)),
1950
+ /* @__PURE__ */ jsx(
1951
+ "circle",
1952
+ {
1953
+ cx,
1954
+ cy,
1955
+ r: 7,
1956
+ fill: color,
1957
+ opacity: 0.8,
1958
+ filter: `url(#${ids.glow})`
1959
+ }
1960
+ )
1961
+ ]
1962
+ }
1963
+ );
1964
+ };
1965
+ OrbitalUnit.displayName = "OrbitalUnit";
1966
+ var planVerifyRememberId = 0;
1967
+ var LOOPS = [
1968
+ { cx: 130, cy: 190, r: 55, particles: [0.3, 2.4, 4.5] },
1969
+ { cx: 300, cy: 190, r: 55, particles: [1, 3.1, 5.2] },
1970
+ { cx: 470, cy: 190, r: 55, particles: [0.8, 2.9, 5] }
1971
+ ];
1972
+ var PlanVerifyRemember = ({
1973
+ className,
1974
+ color = "var(--color-primary)",
1975
+ animated = false
1976
+ }) => {
1977
+ const ids = React.useMemo(() => {
1978
+ planVerifyRememberId += 1;
1979
+ const base = `pvr-${planVerifyRememberId}`;
1980
+ return {
1981
+ glow: `${base}-glow`,
1982
+ fwdGrad: `${base}-fg`,
1983
+ fbGrad: `${base}-fbg`,
1984
+ loopGlow: `${base}-lg`,
1985
+ arrow: `${base}-arrow`
1986
+ };
1987
+ }, []);
1988
+ return /* @__PURE__ */ jsxs(
1989
+ "svg",
1990
+ {
1991
+ viewBox: "0 0 600 400",
1992
+ xmlns: "http://www.w3.org/2000/svg",
1993
+ className,
1994
+ children: [
1995
+ /* @__PURE__ */ jsxs("defs", { children: [
1996
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
1997
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
1998
+ /* @__PURE__ */ jsxs("feMerge", { children: [
1999
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2000
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2001
+ ] })
2002
+ ] }),
2003
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.loopGlow, cx: "50%", cy: "50%", r: "50%", children: [
2004
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
2005
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2006
+ ] }),
2007
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.fwdGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
2008
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2009
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.5 })
2010
+ ] }),
2011
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.fbGrad, x1: "100%", y1: "0%", x2: "0%", y2: "0%", children: [
2012
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
2013
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.3 })
2014
+ ] }),
2015
+ /* @__PURE__ */ jsx(
2016
+ "marker",
2017
+ {
2018
+ id: ids.arrow,
2019
+ markerWidth: "7",
2020
+ markerHeight: "5",
2021
+ refX: "6",
2022
+ refY: "2.5",
2023
+ orient: "auto",
2024
+ markerUnits: "strokeWidth",
2025
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L7,2.5 L0,5 Z", fill: color, opacity: 0.4 })
2026
+ }
2027
+ )
2028
+ ] }),
2029
+ animated && /* @__PURE__ */ jsx("style", { children: `
2030
+ @keyframes pvr-flow { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }
2031
+ @keyframes pvr-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
2032
+ ` }),
2033
+ /* @__PURE__ */ jsx(
2034
+ "path",
2035
+ {
2036
+ d: `M${LOOPS[0].cx + LOOPS[0].r + 5},${LOOPS[0].cy} L${LOOPS[1].cx - LOOPS[1].r - 5},${LOOPS[1].cy}`,
2037
+ fill: "none",
2038
+ stroke: `url(#${ids.fwdGrad})`,
2039
+ strokeWidth: 1.5,
2040
+ markerEnd: `url(#${ids.arrow})`,
2041
+ strokeDasharray: animated ? "6 5" : void 0,
2042
+ style: animated ? { animation: "pvr-flow 1.5s linear infinite" } : void 0
2043
+ }
2044
+ ),
2045
+ /* @__PURE__ */ jsx(
2046
+ "path",
2047
+ {
2048
+ d: `M${LOOPS[1].cx + LOOPS[1].r + 5},${LOOPS[1].cy} L${LOOPS[2].cx - LOOPS[2].r - 5},${LOOPS[2].cy}`,
2049
+ fill: "none",
2050
+ stroke: `url(#${ids.fwdGrad})`,
2051
+ strokeWidth: 1.5,
2052
+ markerEnd: `url(#${ids.arrow})`,
2053
+ strokeDasharray: animated ? "6 5" : void 0,
2054
+ style: animated ? { animation: "pvr-flow 1.5s linear 0.5s infinite" } : void 0
2055
+ }
2056
+ ),
2057
+ /* @__PURE__ */ jsx(
2058
+ "path",
2059
+ {
2060
+ d: `M${LOOPS[2].cx},${LOOPS[2].cy + LOOPS[2].r + 5} Q${LOOPS[1].cx},${LOOPS[2].cy + 120} ${LOOPS[0].cx},${LOOPS[0].cy + LOOPS[0].r + 5}`,
2061
+ fill: "none",
2062
+ stroke: `url(#${ids.fbGrad})`,
2063
+ strokeWidth: 1,
2064
+ strokeDasharray: "4 6",
2065
+ markerEnd: `url(#${ids.arrow})`,
2066
+ style: animated ? { animation: "pvr-flow 2.5s linear infinite" } : void 0
2067
+ }
2068
+ ),
2069
+ LOOPS.map((loop, li) => /* @__PURE__ */ jsxs("g", { children: [
2070
+ /* @__PURE__ */ jsx("circle", { cx: loop.cx, cy: loop.cy, r: loop.r + 15, fill: `url(#${ids.loopGlow})` }),
2071
+ /* @__PURE__ */ jsx("circle", { cx: loop.cx, cy: loop.cy, r: loop.r + 8, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.05 }),
2072
+ /* @__PURE__ */ jsx("circle", { cx: loop.cx, cy: loop.cy, r: loop.r, fill: "none", stroke: color, strokeWidth: 1.5, opacity: 0.3 }),
2073
+ li === 0 && // Plan: branching pattern
2074
+ /* @__PURE__ */ jsxs("g", { opacity: 0.25, children: [
2075
+ /* @__PURE__ */ jsx("line", { x1: loop.cx - 15, y1: loop.cy, x2: loop.cx + 5, y2: loop.cy, stroke: color, strokeWidth: 1.5 }),
2076
+ /* @__PURE__ */ jsx("line", { x1: loop.cx + 5, y1: loop.cy, x2: loop.cx + 18, y2: loop.cy - 10, stroke: color, strokeWidth: 1.5 }),
2077
+ /* @__PURE__ */ jsx("line", { x1: loop.cx + 5, y1: loop.cy, x2: loop.cx + 18, y2: loop.cy + 10, stroke: color, strokeWidth: 1.5 })
2078
+ ] }),
2079
+ li === 1 && // Verify: checkmark pattern
2080
+ /* @__PURE__ */ jsx(
2081
+ "path",
2082
+ {
2083
+ d: `M${loop.cx - 10},${loop.cy} L${loop.cx - 3},${loop.cy + 8} L${loop.cx + 12},${loop.cy - 8}`,
2084
+ fill: "none",
2085
+ stroke: color,
2086
+ strokeWidth: 2,
2087
+ strokeLinecap: "round",
2088
+ strokeLinejoin: "round",
2089
+ opacity: 0.3
2090
+ }
2091
+ ),
2092
+ li === 2 && // Remember: stacked layers
2093
+ /* @__PURE__ */ jsxs("g", { opacity: 0.25, children: [
2094
+ /* @__PURE__ */ jsx("rect", { x: loop.cx - 12, y: loop.cy - 8, width: 24, height: 6, rx: 2, fill: color, opacity: 0.4 }),
2095
+ /* @__PURE__ */ jsx("rect", { x: loop.cx - 12, y: loop.cy, width: 24, height: 6, rx: 2, fill: color, opacity: 0.3 }),
2096
+ /* @__PURE__ */ jsx("rect", { x: loop.cx - 12, y: loop.cy + 8, width: 24, height: 6, rx: 2, fill: color, opacity: 0.2 })
2097
+ ] }),
2098
+ /* @__PURE__ */ jsx("g", { style: animated ? { transformOrigin: `${loop.cx}px ${loop.cy}px`, animation: `pvr-spin ${20 + li * 5}s linear infinite` } : void 0, children: loop.particles.map((a, pi) => /* @__PURE__ */ jsx(
2099
+ "circle",
2100
+ {
2101
+ cx: loop.cx + Math.cos(a) * loop.r,
2102
+ cy: loop.cy + Math.sin(a) * loop.r,
2103
+ r: 3,
2104
+ fill: color,
2105
+ opacity: 0.45
2106
+ },
2107
+ `p-${li}-${pi}`
2108
+ )) }),
2109
+ /* @__PURE__ */ jsx("circle", { cx: loop.cx, cy: loop.cy, r: 5, fill: color, opacity: 0.6, filter: `url(#${ids.glow})` })
2110
+ ] }, `loop-${li}`))
2111
+ ]
2112
+ }
2113
+ );
2114
+ };
2115
+ PlanVerifyRemember.displayName = "PlanVerifyRemember";
2116
+ var proveCorrectId = 0;
2117
+ var VALIDATION_POINTS = Array.from({ length: 8 }, (_, i) => {
2118
+ const angle = i / 8 * Math.PI * 2 - Math.PI / 2;
2119
+ return { angle, x: 300 + Math.cos(angle) * 140, y: 200 + Math.sin(angle) * 140 };
2120
+ });
2121
+ var ProveCorrect = ({
2122
+ className,
2123
+ color = "var(--color-primary)",
2124
+ animated = false
2125
+ }) => {
2126
+ const ids = React.useMemo(() => {
2127
+ proveCorrectId += 1;
2128
+ const base = `pc-${proveCorrectId}`;
2129
+ return {
2130
+ glow: `${base}-glow`,
2131
+ shieldGrad: `${base}-sg`,
2132
+ nucGlow: `${base}-ng`,
2133
+ ringGrad: `${base}-rg`
2134
+ };
2135
+ }, []);
2136
+ const cx = 300;
2137
+ const cy = 200;
2138
+ const shieldPath = `M${cx},${cy - 150} C${cx - 80},${cy - 130} ${cx - 155},${cy - 100} ${cx - 155},${cy - 30}
2139
+ C${cx - 155},${cy + 40} ${cx - 80},${cy + 110} ${cx},${cy + 150}
2140
+ C${cx + 80},${cy + 110} ${cx + 155},${cy + 40} ${cx + 155},${cy - 30}
2141
+ C${cx + 155},${cy - 100} ${cx + 80},${cy - 130} ${cx},${cy - 150} Z`;
2142
+ return /* @__PURE__ */ jsxs(
2143
+ "svg",
2144
+ {
2145
+ viewBox: "0 0 600 400",
2146
+ xmlns: "http://www.w3.org/2000/svg",
2147
+ className,
2148
+ children: [
2149
+ /* @__PURE__ */ jsxs("defs", { children: [
2150
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2151
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "5", result: "blur" }),
2152
+ /* @__PURE__ */ jsxs("feMerge", { children: [
2153
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2154
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2155
+ ] })
2156
+ ] }),
2157
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
2158
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2159
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2160
+ ] }),
2161
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.shieldGrad, x1: "50%", y1: "0%", x2: "50%", y2: "100%", children: [
2162
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.35 }),
2163
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.15 }),
2164
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.3 })
2165
+ ] }),
2166
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.ringGrad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2167
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
2168
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.1 }),
2169
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.3 })
2170
+ ] })
2171
+ ] }),
2172
+ animated && /* @__PURE__ */ jsx("style", { children: `
2173
+ @keyframes pc-verify-pulse {
2174
+ 0%, 100% { opacity: 0.15; }
2175
+ 50% { opacity: 0.35; }
2176
+ }
2177
+ ` }),
2178
+ /* @__PURE__ */ jsx(
2179
+ "path",
2180
+ {
2181
+ d: shieldPath,
2182
+ fill: color,
2183
+ fillOpacity: 0.03,
2184
+ stroke: `url(#${ids.shieldGrad})`,
2185
+ strokeWidth: 2,
2186
+ style: animated ? { animation: "pc-verify-pulse 3s ease-in-out infinite" } : void 0
2187
+ }
2188
+ ),
2189
+ VALIDATION_POINTS.map((pt, i) => /* @__PURE__ */ jsx(
2190
+ "line",
2191
+ {
2192
+ x1: cx,
2193
+ y1: cy,
2194
+ x2: pt.x,
2195
+ y2: pt.y,
2196
+ stroke: color,
2197
+ strokeWidth: 0.8,
2198
+ opacity: 0.12,
2199
+ strokeDasharray: "4 6"
2200
+ },
2201
+ `link-${i}`
2202
+ )),
2203
+ VALIDATION_POINTS.map((pt, i) => /* @__PURE__ */ jsxs("g", { children: [
2204
+ /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 10, fill: "none", stroke: color, strokeWidth: 0.5, opacity: 0.15 }),
2205
+ /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 4.5, fill: color, opacity: 0.4 })
2206
+ ] }, `vp-${i}`)),
2207
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 60, fill: "none", stroke: `url(#${ids.ringGrad})`, strokeWidth: 1.5 }),
2208
+ [0.5, 2.5, 4.5].map((a, i) => {
2209
+ const px = cx + Math.cos(a) * 60;
2210
+ const py = cy + Math.sin(a) * 60;
2211
+ return /* @__PURE__ */ jsx("circle", { cx: px, cy: py, r: 3, fill: color, opacity: 0.45 }, `op-${i}`);
2212
+ }),
2213
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 25, fill: `url(#${ids.nucGlow})` }),
2214
+ /* @__PURE__ */ jsx(
2215
+ "path",
2216
+ {
2217
+ d: `M${cx - 12},${cy} L${cx - 3},${cy + 10} L${cx + 14},${cy - 10}`,
2218
+ fill: "none",
2219
+ stroke: color,
2220
+ strokeWidth: 3,
2221
+ strokeLinecap: "round",
2222
+ strokeLinejoin: "round",
2223
+ opacity: 0.7,
2224
+ filter: `url(#${ids.glow})`
2225
+ }
2226
+ )
2227
+ ]
2228
+ }
2229
+ );
2230
+ };
2231
+ ProveCorrect.displayName = "ProveCorrect";
2232
+ var serviceLayersId = 0;
2233
+ var LAYERS = [
2234
+ { r: 55, nodes: 3, opacity: 0.5 },
2235
+ // Inner: Brains
2236
+ { r: 110, nodes: 5, opacity: 0.35 },
2237
+ // Mid: Metal
2238
+ { r: 165, nodes: 7, opacity: 0.2 }
2239
+ // Outer: Integrations
2240
+ ];
2241
+ var ServiceLayers = ({
2242
+ className,
2243
+ color = "var(--color-primary)",
2244
+ animated = false
2245
+ }) => {
2246
+ const ids = React.useMemo(() => {
2247
+ serviceLayersId += 1;
2248
+ const base = `sly-${serviceLayersId}`;
2249
+ return {
2250
+ glow: `${base}-glow`,
2251
+ innerGrad: `${base}-ig`,
2252
+ midGrad: `${base}-mg`,
2253
+ outerGrad: `${base}-og`,
2254
+ coreGlow: `${base}-cg`
2255
+ };
2256
+ }, []);
2257
+ const cx = 300;
2258
+ const cy = 200;
2259
+ const layerNodes = LAYERS.map(
2260
+ (layer) => Array.from({ length: layer.nodes }, (_, i) => {
2261
+ const angle = i / layer.nodes * Math.PI * 2 - Math.PI / 2;
2262
+ return { x: cx + Math.cos(angle) * layer.r, y: cy + Math.sin(angle) * layer.r };
2263
+ })
2264
+ );
2265
+ return /* @__PURE__ */ jsxs(
2266
+ "svg",
2267
+ {
2268
+ viewBox: "0 0 600 400",
2269
+ xmlns: "http://www.w3.org/2000/svg",
2270
+ className,
2271
+ children: [
2272
+ /* @__PURE__ */ jsxs("defs", { children: [
2273
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2274
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
2275
+ /* @__PURE__ */ jsxs("feMerge", { children: [
2276
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2277
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2278
+ ] })
2279
+ ] }),
2280
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.coreGlow, cx: "50%", cy: "50%", r: "50%", children: [
2281
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2282
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2283
+ ] }),
2284
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.innerGrad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2285
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.45 }),
2286
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.2 }),
2287
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.45 })
2288
+ ] }),
2289
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.midGrad, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
2290
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
2291
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.12 }),
2292
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.3 })
2293
+ ] }),
2294
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.outerGrad, x1: "0%", y1: "100%", x2: "100%", y2: "0%", children: [
2295
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2296
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.06 }),
2297
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.2 })
2298
+ ] })
2299
+ ] }),
2300
+ animated && /* @__PURE__ */ jsx("style", { children: `
2301
+ @keyframes sly-pulse {
2302
+ 0%, 100% { opacity: 0.08; }
2303
+ 50% { opacity: 0.2; }
2304
+ }
2305
+ ` }),
2306
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 185, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
2307
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: LAYERS[0].r, fill: color, opacity: 0.04 }),
2308
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 30, fill: `url(#${ids.coreGlow})` }),
2309
+ [ids.innerGrad, ids.midGrad, ids.outerGrad].map((gradId, i) => /* @__PURE__ */ jsx(
2310
+ "circle",
2311
+ {
2312
+ cx,
2313
+ cy,
2314
+ r: LAYERS[i].r,
2315
+ fill: "none",
2316
+ stroke: `url(#${gradId})`,
2317
+ strokeWidth: i === 0 ? 2 : 1.5,
2318
+ strokeDasharray: i === 2 ? "4 6" : void 0
2319
+ },
2320
+ `ring-${i}`
2321
+ )),
2322
+ layerNodes[0].map((inner, i) => {
2323
+ const outer = layerNodes[1][i % layerNodes[1].length];
2324
+ return /* @__PURE__ */ jsx(
2325
+ "line",
2326
+ {
2327
+ x1: inner.x,
2328
+ y1: inner.y,
2329
+ x2: outer.x,
2330
+ y2: outer.y,
2331
+ stroke: color,
2332
+ strokeWidth: 0.6,
2333
+ opacity: 0.1,
2334
+ style: animated ? { animation: `sly-pulse 3s ease-in-out ${i * 0.5}s infinite` } : void 0
2335
+ },
2336
+ `cross-01-${i}`
2337
+ );
2338
+ }),
2339
+ layerNodes[1].map((mid, i) => {
2340
+ const outer = layerNodes[2][i % layerNodes[2].length];
2341
+ return /* @__PURE__ */ jsx(
2342
+ "line",
2343
+ {
2344
+ x1: mid.x,
2345
+ y1: mid.y,
2346
+ x2: outer.x,
2347
+ y2: outer.y,
2348
+ stroke: color,
2349
+ strokeWidth: 0.5,
2350
+ opacity: 0.07
2351
+ },
2352
+ `cross-12-${i}`
2353
+ );
2354
+ }),
2355
+ LAYERS.map((layer, li) => /* @__PURE__ */ jsx("g", { children: layerNodes[li].map((node, ni) => /* @__PURE__ */ jsxs("g", { children: [
2356
+ /* @__PURE__ */ jsx("circle", { cx: node.x, cy: node.y, r: 12, fill: "none", stroke: color, strokeWidth: 0.5, opacity: layer.opacity * 0.3 }),
2357
+ /* @__PURE__ */ jsx(
2358
+ "circle",
2359
+ {
2360
+ cx: node.x,
2361
+ cy: node.y,
2362
+ r: li === 0 ? 6 : li === 1 ? 5 : 4,
2363
+ fill: color,
2364
+ opacity: layer.opacity,
2365
+ filter: li === 0 ? `url(#${ids.glow})` : void 0
2366
+ }
2367
+ )
2368
+ ] }, `node-${li}-${ni}`)) }, `layer-${li}`)),
2369
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 4, fill: color, opacity: 0.6, filter: `url(#${ids.glow})` })
2370
+ ]
2371
+ }
2372
+ );
2373
+ };
2374
+ ServiceLayers.displayName = "ServiceLayers";
2375
+ var sharedRealityId = 0;
2376
+ var UNITS = [
2377
+ { x: 80, y: 80, r: 18 },
2378
+ { x: 200, y: 55, r: 15 },
2379
+ { x: 340, y: 70, r: 20 },
2380
+ { x: 500, y: 60, r: 16 },
2381
+ { x: 60, y: 200, r: 16 },
2382
+ { x: 180, y: 180, r: 22 },
2383
+ { x: 320, y: 200, r: 17 },
2384
+ { x: 470, y: 185, r: 19 },
2385
+ { x: 100, y: 320, r: 17 },
2386
+ { x: 240, y: 330, r: 15 },
2387
+ { x: 400, y: 310, r: 20 },
2388
+ { x: 530, y: 330, r: 16 }
2389
+ ];
2390
+ function dist3(a, b) {
2391
+ return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
2392
+ }
2393
+ var SharedReality = ({
2394
+ className,
2395
+ color = "var(--color-primary)",
2396
+ animated = false
2397
+ }) => {
2398
+ const ids = React.useMemo(() => {
2399
+ sharedRealityId += 1;
2400
+ const base = `sr-${sharedRealityId}`;
2401
+ return { grad: `${base}-grad`, unitGlow: `${base}-ug` };
2402
+ }, []);
2403
+ const connections = [];
2404
+ for (let i = 0; i < UNITS.length; i++) {
2405
+ for (let j = i + 1; j < UNITS.length; j++) {
2406
+ const d = dist3(UNITS[i], UNITS[j]);
2407
+ if (d < 220) {
2408
+ connections.push({ a: i, b: j, d });
2409
+ }
2410
+ }
2411
+ }
2412
+ return /* @__PURE__ */ jsxs(
2413
+ "svg",
2414
+ {
2415
+ viewBox: "0 0 600 400",
2416
+ xmlns: "http://www.w3.org/2000/svg",
2417
+ className,
2418
+ children: [
2419
+ /* @__PURE__ */ jsxs("defs", { children: [
2420
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.unitGlow, cx: "50%", cy: "50%", r: "50%", children: [
2421
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
2422
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2423
+ ] }),
2424
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2425
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.08 }),
2426
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.04 })
2427
+ ] })
2428
+ ] }),
2429
+ animated && /* @__PURE__ */ jsx("style", { children: `
2430
+ @keyframes sr-breathe { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.6; } }
2431
+ ` }),
2432
+ connections.map(({ a, b, d }, i) => {
2433
+ const opacity = Math.max(0.04, 0.18 - d / 220 * 0.14);
2434
+ return /* @__PURE__ */ jsx(
2435
+ "line",
2436
+ {
2437
+ x1: UNITS[a].x,
2438
+ y1: UNITS[a].y,
2439
+ x2: UNITS[b].x,
2440
+ y2: UNITS[b].y,
2441
+ stroke: color,
2442
+ strokeWidth: 0.8,
2443
+ opacity,
2444
+ strokeDasharray: d > 160 ? "3 6" : void 0
2445
+ },
2446
+ `conn-${i}`
2447
+ );
2448
+ }),
2449
+ UNITS.map((unit, i) => /* @__PURE__ */ jsxs("g", { children: [
2450
+ /* @__PURE__ */ jsx("circle", { cx: unit.x, cy: unit.y, r: unit.r + 8, fill: `url(#${ids.unitGlow})` }),
2451
+ /* @__PURE__ */ jsx(
2452
+ "circle",
2453
+ {
2454
+ cx: unit.x,
2455
+ cy: unit.y,
2456
+ r: unit.r,
2457
+ fill: "none",
2458
+ stroke: color,
2459
+ strokeWidth: 1,
2460
+ opacity: 0.25
2461
+ }
2462
+ ),
2463
+ /* @__PURE__ */ jsx(
2464
+ "circle",
2465
+ {
2466
+ cx: unit.x,
2467
+ cy: unit.y,
2468
+ r: 3,
2469
+ fill: color,
2470
+ opacity: 0.5,
2471
+ style: animated ? { animation: `sr-breathe 3s ease-in-out ${i * 0.25}s infinite` } : void 0
2472
+ }
2473
+ )
2474
+ ] }, `unit-${i}`))
2475
+ ]
2476
+ }
2477
+ );
2478
+ };
2479
+ SharedReality.displayName = "SharedReality";
2480
+ var standardLibraryId = 0;
2481
+ var RING_DATA = [
2482
+ {
2483
+ r: 70,
2484
+ clusters: [
2485
+ { angle: 0, dots: 3 },
2486
+ { angle: 1.57, dots: 2 },
2487
+ { angle: 3.14, dots: 3 },
2488
+ { angle: 4.71, dots: 2 }
2489
+ ]
2490
+ },
2491
+ {
2492
+ r: 120,
2493
+ clusters: [
2494
+ { angle: 0.5, dots: 3 },
2495
+ { angle: 1.3, dots: 2 },
2496
+ { angle: 2.1, dots: 3 },
2497
+ { angle: 3.5, dots: 2 },
2498
+ { angle: 4.3, dots: 3 },
2499
+ { angle: 5.5, dots: 2 }
2500
+ ]
2501
+ },
2502
+ {
2503
+ r: 170,
2504
+ clusters: [
2505
+ { angle: 0.3, dots: 2 },
2506
+ { angle: 1, dots: 2 },
2507
+ { angle: 1.7, dots: 1 },
2508
+ { angle: 2.4, dots: 2 },
2509
+ { angle: 3.1, dots: 2 },
2510
+ { angle: 3.9, dots: 1 },
2511
+ { angle: 4.6, dots: 2 },
2512
+ { angle: 5.6, dots: 2 }
2513
+ ]
2514
+ }
2515
+ ];
2516
+ var StandardLibrary = ({
2517
+ className,
2518
+ color = "var(--color-primary)",
2519
+ animated = false
2520
+ }) => {
2521
+ const ids = React.useMemo(() => {
2522
+ standardLibraryId += 1;
2523
+ const base = `sl-${standardLibraryId}`;
2524
+ return {
2525
+ glow: `${base}-glow`,
2526
+ grad1: `${base}-g1`,
2527
+ grad2: `${base}-g2`,
2528
+ grad3: `${base}-g3`,
2529
+ nucGlow: `${base}-ng`
2530
+ };
2531
+ }, []);
2532
+ const cx = 300;
2533
+ const cy = 200;
2534
+ return /* @__PURE__ */ jsxs(
2535
+ "svg",
2536
+ {
2537
+ viewBox: "0 0 600 400",
2538
+ xmlns: "http://www.w3.org/2000/svg",
2539
+ className,
2540
+ children: [
2541
+ /* @__PURE__ */ jsxs("defs", { children: [
2542
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2543
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
2544
+ /* @__PURE__ */ jsxs("feMerge", { children: [
2545
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2546
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2547
+ ] })
2548
+ ] }),
2549
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
2550
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2551
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2552
+ ] }),
2553
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad1, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2554
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.35 }),
2555
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.15 }),
2556
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.35 })
2557
+ ] }),
2558
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad2, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
2559
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2560
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.1 }),
2561
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.25 })
2562
+ ] }),
2563
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.grad3, x1: "0%", y1: "100%", x2: "100%", y2: "0%", children: [
2564
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2565
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.06 }),
2566
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.2 })
2567
+ ] })
2568
+ ] }),
2569
+ animated && /* @__PURE__ */ jsx("style", { children: `
2570
+ @keyframes sl-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
2571
+ ` }),
2572
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 190, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
2573
+ [ids.grad1, ids.grad2, ids.grad3].map((gradId, ri) => /* @__PURE__ */ jsx(
2574
+ "circle",
2575
+ {
2576
+ cx,
2577
+ cy,
2578
+ r: RING_DATA[ri].r,
2579
+ fill: "none",
2580
+ stroke: `url(#${gradId})`,
2581
+ strokeWidth: ri === 0 ? 1.5 : 1,
2582
+ strokeDasharray: ri === 2 ? "3 6" : void 0
2583
+ },
2584
+ `ring-${ri}`
2585
+ )),
2586
+ RING_DATA.map((ring, ri) => /* @__PURE__ */ jsx(
2587
+ "g",
2588
+ {
2589
+ style: animated ? {
2590
+ transformOrigin: `${cx}px ${cy}px`,
2591
+ animation: `sl-orbit ${40 + ri * 20}s linear infinite${ri % 2 === 1 ? " reverse" : ""}`
2592
+ } : void 0,
2593
+ children: ring.clusters.map((cluster, ci) => {
2594
+ const basex = cx + Math.cos(cluster.angle) * ring.r;
2595
+ const basey = cy + Math.sin(cluster.angle) * ring.r;
2596
+ const opacity = ri === 0 ? 0.6 : ri === 1 ? 0.45 : 0.3;
2597
+ const dotR = ri === 0 ? 3.5 : ri === 1 ? 3 : 2.5;
2598
+ return /* @__PURE__ */ jsxs("g", { children: [
2599
+ Array.from({ length: cluster.dots }, (_, di) => {
2600
+ const offsetAngle = cluster.angle + (di - (cluster.dots - 1) / 2) * 0.12;
2601
+ const offsetR = ring.r + (di % 2 === 0 ? 6 : -6);
2602
+ const dx = cx + Math.cos(offsetAngle) * offsetR;
2603
+ const dy = cy + Math.sin(offsetAngle) * offsetR;
2604
+ return /* @__PURE__ */ jsx(
2605
+ "circle",
2606
+ {
2607
+ cx: dx,
2608
+ cy: dy,
2609
+ r: dotR,
2610
+ fill: color,
2611
+ opacity
2612
+ },
2613
+ `dot-${ri}-${ci}-${di}`
2614
+ );
2615
+ }),
2616
+ /* @__PURE__ */ jsx("circle", { cx: basex, cy: basey, r: dotR + 1, fill: color, opacity: opacity * 0.7 })
2617
+ ] }, `cluster-${ri}-${ci}`);
2618
+ })
2619
+ },
2620
+ `ring-clusters-${ri}`
2621
+ )),
2622
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 25, fill: `url(#${ids.nucGlow})` }),
2623
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 8, fill: color, opacity: 0.7, filter: `url(#${ids.glow})` })
2624
+ ]
2625
+ }
2626
+ );
2627
+ };
2628
+ StandardLibrary.displayName = "StandardLibrary";
2629
+ var stateMachineId = 0;
2630
+ var STATES = [
2631
+ { x: 100, y: 200, r: 14, initial: true },
2632
+ // idle (initial state)
2633
+ { x: 260, y: 100, r: 11, initial: false },
2634
+ // loading
2635
+ { x: 460, y: 200, r: 12, initial: false },
2636
+ // active
2637
+ { x: 260, y: 320, r: 10, initial: false }
2638
+ // error
2639
+ ];
2640
+ var StateMachine = ({
2641
+ className,
2642
+ color = "var(--color-primary)",
2643
+ animated = false
2644
+ }) => {
2645
+ const ids = React.useMemo(() => {
2646
+ stateMachineId += 1;
2647
+ const base = `sm-${stateMachineId}`;
2648
+ return {
2649
+ glow: `${base}-glow`,
2650
+ activeGlow: `${base}-ag`,
2651
+ transGrad: `${base}-tg`,
2652
+ arrow: `${base}-arrow`,
2653
+ stateGlow: `${base}-sg`
2654
+ };
2655
+ }, []);
2656
+ const [idle, loading, active, errorState] = STATES;
2657
+ const guardX = 360;
2658
+ const guardY = 105;
2659
+ const ds = 10;
2660
+ return /* @__PURE__ */ jsxs(
2661
+ "svg",
2662
+ {
2663
+ viewBox: "0 0 600 400",
2664
+ xmlns: "http://www.w3.org/2000/svg",
2665
+ className,
2666
+ children: [
2667
+ /* @__PURE__ */ jsxs("defs", { children: [
2668
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2669
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
2670
+ /* @__PURE__ */ jsxs("feMerge", { children: [
2671
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2672
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2673
+ ] })
2674
+ ] }),
2675
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.activeGlow, cx: "50%", cy: "50%", r: "50%", children: [
2676
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.25 }),
2677
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2678
+ ] }),
2679
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.stateGlow, cx: "50%", cy: "50%", r: "50%", children: [
2680
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.12 }),
2681
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2682
+ ] }),
2683
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.transGrad, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
2684
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.2 }),
2685
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.45 })
2686
+ ] }),
2687
+ /* @__PURE__ */ jsx(
2688
+ "marker",
2689
+ {
2690
+ id: ids.arrow,
2691
+ markerWidth: "7",
2692
+ markerHeight: "5",
2693
+ refX: "6",
2694
+ refY: "2.5",
2695
+ orient: "auto",
2696
+ markerUnits: "strokeWidth",
2697
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L7,2.5 L0,5 Z", fill: color, opacity: 0.5 })
2698
+ }
2699
+ )
2700
+ ] }),
2701
+ animated && /* @__PURE__ */ jsx("style", { children: `
2702
+ @keyframes sm-flow { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }
2703
+ @keyframes sm-active-pulse { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.9; } }
2704
+ ` }),
2705
+ /* @__PURE__ */ jsx(
2706
+ "path",
2707
+ {
2708
+ d: `M${idle.x + 15},${idle.y - 10} Q${180},${loading.y - 30} ${loading.x - 15},${loading.y + 5}`,
2709
+ fill: "none",
2710
+ stroke: `url(#${ids.transGrad})`,
2711
+ strokeWidth: 1.5,
2712
+ markerEnd: `url(#${ids.arrow})`,
2713
+ strokeDasharray: animated ? "6 5" : void 0,
2714
+ style: animated ? { animation: "sm-flow 1.5s linear infinite" } : void 0
2715
+ }
2716
+ ),
2717
+ /* @__PURE__ */ jsx(
2718
+ "path",
2719
+ {
2720
+ d: `M${loading.x + 15},${loading.y} L${guardX - ds - 5},${guardY}`,
2721
+ fill: "none",
2722
+ stroke: color,
2723
+ strokeWidth: 1.2,
2724
+ opacity: 0.3,
2725
+ markerEnd: `url(#${ids.arrow})`,
2726
+ strokeDasharray: animated ? "5 5" : void 0,
2727
+ style: animated ? { animation: "sm-flow 1.5s linear 0.3s infinite" } : void 0
2728
+ }
2729
+ ),
2730
+ /* @__PURE__ */ jsx(
2731
+ "path",
2732
+ {
2733
+ d: `M${guardX + ds + 5},${guardY} Q${420},${guardY + 30} ${active.x - 15},${active.y - 5}`,
2734
+ fill: "none",
2735
+ stroke: `url(#${ids.transGrad})`,
2736
+ strokeWidth: 1.5,
2737
+ markerEnd: `url(#${ids.arrow})`,
2738
+ strokeDasharray: animated ? "6 5" : void 0,
2739
+ style: animated ? { animation: "sm-flow 1.5s linear 0.6s infinite" } : void 0
2740
+ }
2741
+ ),
2742
+ /* @__PURE__ */ jsx(
2743
+ "path",
2744
+ {
2745
+ d: `M${loading.x},${loading.y + 15} L${errorState.x},${errorState.y - 15}`,
2746
+ fill: "none",
2747
+ stroke: color,
2748
+ strokeWidth: 1,
2749
+ opacity: 0.2,
2750
+ markerEnd: `url(#${ids.arrow})`,
2751
+ strokeDasharray: "4 6"
2752
+ }
2753
+ ),
2754
+ /* @__PURE__ */ jsx(
2755
+ "path",
2756
+ {
2757
+ d: `M${active.x - 5},${active.y + 15} Q${active.x},${active.y + 70} ${300},${380} Q${idle.x},${idle.y + 70} ${idle.x + 5},${idle.y + 15}`,
2758
+ fill: "none",
2759
+ stroke: color,
2760
+ strokeWidth: 1,
2761
+ opacity: 0.15,
2762
+ strokeDasharray: "4 8",
2763
+ markerEnd: `url(#${ids.arrow})`,
2764
+ style: animated ? { animation: "sm-flow 3s linear infinite" } : void 0
2765
+ }
2766
+ ),
2767
+ /* @__PURE__ */ jsx(
2768
+ "polygon",
2769
+ {
2770
+ points: `${guardX},${guardY - ds} ${guardX + ds},${guardY} ${guardX},${guardY + ds} ${guardX - ds},${guardY}`,
2771
+ fill: "none",
2772
+ stroke: color,
2773
+ strokeWidth: 1.5,
2774
+ opacity: 0.45
2775
+ }
2776
+ ),
2777
+ /* @__PURE__ */ jsx(
2778
+ "polygon",
2779
+ {
2780
+ points: `${guardX},${guardY - ds * 0.4} ${guardX + ds * 0.4},${guardY} ${guardX},${guardY + ds * 0.4} ${guardX - ds * 0.4},${guardY}`,
2781
+ fill: color,
2782
+ opacity: 0.2
2783
+ }
2784
+ ),
2785
+ STATES.map((state, i) => /* @__PURE__ */ jsxs("g", { children: [
2786
+ /* @__PURE__ */ jsx(
2787
+ "circle",
2788
+ {
2789
+ cx: state.x,
2790
+ cy: state.y,
2791
+ r: state.r + 12,
2792
+ fill: `url(#${i === 2 ? ids.activeGlow : ids.stateGlow})`
2793
+ }
2794
+ ),
2795
+ state.initial && /* @__PURE__ */ jsx("circle", { cx: state.x, cy: state.y, r: state.r + 5, fill: "none", stroke: color, strokeWidth: 1, opacity: 0.25 }),
2796
+ /* @__PURE__ */ jsx(
2797
+ "circle",
2798
+ {
2799
+ cx: state.x,
2800
+ cy: state.y,
2801
+ r: state.r,
2802
+ fill: i === 2 || i === 0 ? color : "none",
2803
+ fillOpacity: i === 2 ? 0.5 : i === 0 ? 0.4 : 1,
2804
+ stroke: color,
2805
+ strokeWidth: 1.5,
2806
+ opacity: i === 3 ? 0.3 : 0.6,
2807
+ filter: i === 2 ? `url(#${ids.glow})` : void 0,
2808
+ style: animated && i === 2 ? { animation: "sm-active-pulse 2s ease-in-out infinite" } : void 0
2809
+ }
2810
+ )
2811
+ ] }, `state-${i}`))
2812
+ ]
2813
+ }
2814
+ );
2815
+ };
2816
+ StateMachine.displayName = "StateMachine";
2817
+ var worldModelId = 0;
2818
+ var WorldModel = ({
2819
+ className,
2820
+ color = "var(--color-primary)",
2821
+ animated = false
2822
+ }) => {
2823
+ const ids = React.useMemo(() => {
2824
+ worldModelId += 1;
2825
+ const base = `wm-${worldModelId}`;
2826
+ return {
2827
+ glow: `${base}-glow`,
2828
+ nucGlow: `${base}-ng`,
2829
+ orbit1Grad: `${base}-o1`,
2830
+ orbit2Grad: `${base}-o2`,
2831
+ boundaryGrad: `${base}-bg`
2832
+ };
2833
+ }, []);
2834
+ const cx = 300;
2835
+ const cy = 200;
2836
+ const t1rx = 80;
2837
+ const t1ry = 55;
2838
+ const t1rot = -25;
2839
+ const t1particles = [0.5, 2.4, 4.3].map((a) => {
2840
+ const px = t1rx * Math.cos(a);
2841
+ const py = t1ry * Math.sin(a);
2842
+ const rotRad = t1rot * Math.PI / 180;
2843
+ return {
2844
+ x: cx + px * Math.cos(rotRad) - py * Math.sin(rotRad),
2845
+ y: cy + px * Math.sin(rotRad) + py * Math.cos(rotRad)
2846
+ };
2847
+ });
2848
+ const t2rx = 100;
2849
+ const t2ry = 40;
2850
+ const t2rot = 40;
2851
+ const t2particles = [1.2, 4].map((a) => {
2852
+ const px = t2rx * Math.cos(a);
2853
+ const py = t2ry * Math.sin(a);
2854
+ const rotRad = t2rot * Math.PI / 180;
2855
+ return {
2856
+ x: cx + px * Math.cos(rotRad) - py * Math.sin(rotRad),
2857
+ y: cy + px * Math.sin(rotRad) + py * Math.cos(rotRad)
2858
+ };
2859
+ });
2860
+ const boundaryR = 140;
2861
+ const pages = [0, 1.57, 3.14, 4.71].map((a) => ({
2862
+ x: cx + Math.cos(a) * boundaryR,
2863
+ y: cy + Math.sin(a) * boundaryR
2864
+ }));
2865
+ return /* @__PURE__ */ jsxs(
2866
+ "svg",
2867
+ {
2868
+ viewBox: "0 0 600 400",
2869
+ xmlns: "http://www.w3.org/2000/svg",
2870
+ className,
2871
+ children: [
2872
+ /* @__PURE__ */ jsxs("defs", { children: [
2873
+ /* @__PURE__ */ jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
2874
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "6", result: "blur" }),
2875
+ /* @__PURE__ */ jsxs("feMerge", { children: [
2876
+ /* @__PURE__ */ jsx("feMergeNode", { in: "blur" }),
2877
+ /* @__PURE__ */ jsx("feMergeNode", { in: "SourceGraphic" })
2878
+ ] })
2879
+ ] }),
2880
+ /* @__PURE__ */ jsxs("radialGradient", { id: ids.nucGlow, cx: "50%", cy: "50%", r: "50%", children: [
2881
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.3 }),
2882
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
2883
+ ] }),
2884
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.orbit1Grad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2885
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
2886
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.45 }),
2887
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.15 })
2888
+ ] }),
2889
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.orbit2Grad, x1: "100%", y1: "0%", x2: "0%", y2: "100%", children: [
2890
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.1 }),
2891
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.35 }),
2892
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.1 })
2893
+ ] }),
2894
+ /* @__PURE__ */ jsxs("linearGradient", { id: ids.boundaryGrad, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
2895
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.12 }),
2896
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: 0.04 }),
2897
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.12 })
2898
+ ] })
2899
+ ] }),
2900
+ animated && /* @__PURE__ */ jsx("style", { children: `
2901
+ @keyframes wm-orbit1 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
2902
+ @keyframes wm-orbit2 { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }
2903
+ ` }),
2904
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 160, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.03 }),
2905
+ /* @__PURE__ */ jsx(
2906
+ "circle",
2907
+ {
2908
+ cx,
2909
+ cy,
2910
+ r: boundaryR,
2911
+ fill: "none",
2912
+ stroke: `url(#${ids.boundaryGrad})`,
2913
+ strokeWidth: 1,
2914
+ strokeDasharray: "4 8"
2915
+ }
2916
+ ),
2917
+ pages.map((page, i) => /* @__PURE__ */ jsx(
2918
+ "line",
2919
+ {
2920
+ x1: cx,
2921
+ y1: cy,
2922
+ x2: page.x,
2923
+ y2: page.y,
2924
+ stroke: color,
2925
+ strokeWidth: 0.5,
2926
+ opacity: 0.08,
2927
+ strokeDasharray: "3 6"
2928
+ },
2929
+ `pl-${i}`
2930
+ )),
2931
+ pages.map((page, i) => /* @__PURE__ */ jsxs("g", { children: [
2932
+ /* @__PURE__ */ jsx("circle", { cx: page.x, cy: page.y, r: 8, fill: "none", stroke: color, strokeWidth: 0.8, opacity: 0.2 }),
2933
+ /* @__PURE__ */ jsx("circle", { cx: page.x, cy: page.y, r: 3.5, fill: color, opacity: 0.3 })
2934
+ ] }, `page-${i}`)),
2935
+ /* @__PURE__ */ jsx("g", { style: animated ? { transformOrigin: `${cx}px ${cy}px`, animation: "wm-orbit1 25s linear infinite" } : void 0, children: /* @__PURE__ */ jsx(
2936
+ "ellipse",
2937
+ {
2938
+ cx,
2939
+ cy,
2940
+ rx: t1rx,
2941
+ ry: t1ry,
2942
+ fill: "none",
2943
+ stroke: `url(#${ids.orbit1Grad})`,
2944
+ strokeWidth: 1.5,
2945
+ transform: `rotate(${t1rot}, ${cx}, ${cy})`
2946
+ }
2947
+ ) }),
2948
+ t1particles.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 4, fill: color, opacity: 0.5 }, `t1p-${i}`)),
2949
+ /* @__PURE__ */ jsx("g", { style: animated ? { transformOrigin: `${cx}px ${cy}px`, animation: "wm-orbit2 35s linear infinite" } : void 0, children: /* @__PURE__ */ jsx(
2950
+ "ellipse",
2951
+ {
2952
+ cx,
2953
+ cy,
2954
+ rx: t2rx,
2955
+ ry: t2ry,
2956
+ fill: "none",
2957
+ stroke: `url(#${ids.orbit2Grad})`,
2958
+ strokeWidth: 1.5,
2959
+ transform: `rotate(${t2rot}, ${cx}, ${cy})`
2960
+ }
2961
+ ) }),
2962
+ t2particles.map((pt, i) => /* @__PURE__ */ jsx("circle", { cx: pt.x, cy: pt.y, r: 3.5, fill: color, opacity: 0.45 }, `t2p-${i}`)),
2963
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 30, fill: `url(#${ids.nucGlow})` }),
2964
+ /* @__PURE__ */ jsx("circle", { cx, cy, r: 10, fill: color, opacity: 0.75, filter: `url(#${ids.glow})` })
2965
+ ]
2966
+ }
2967
+ );
2968
+ };
2969
+ WorldModel.displayName = "WorldModel";
2970
+
2971
+ export { AIGenerates, ClosedCircuit, CommunityOwnership, CompileAnywhere, ComposableModels, DescribeProveDeploy, DomainGrid, EventBus, OrbitalUnit, PlanVerifyRemember, ProveCorrect, ServiceLayers, SharedReality, StandardLibrary, StateMachine, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, WorldModel };