@almadar/ui 2.15.8 → 2.15.11

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