@tuwaio/docs-ui 0.0.35 → 0.0.37

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.
@@ -0,0 +1,423 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var Orb_exports = {};
31
+ __export(Orb_exports, {
32
+ Orb: () => Orb
33
+ });
34
+ module.exports = __toCommonJS(Orb_exports);
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_nova_core = require("@tuwaio/nova-core");
37
+ var import_react = __toESM(require("react"), 1);
38
+ const packageColors = {
39
+ siwx: "#10b981",
40
+ orbit: "#0d9488",
41
+ satellite: "#6366f1",
42
+ pulsar: "#f59e0b",
43
+ quasar: "#06b6d4",
44
+ nova: "#8b5cf6",
45
+ sdk: "#3b82f6"
46
+ };
47
+ const packageTints = {
48
+ siwx: "rgba(16,185,129,0.12)",
49
+ orbit: "rgba(13,148,136,0.12)",
50
+ satellite: "rgba(99,102,241,0.12)",
51
+ pulsar: "rgba(245,158,11,0.12)",
52
+ quasar: "rgba(6,182,212,0.12)",
53
+ nova: "rgba(139,92,246,0.12)",
54
+ sdk: "rgba(59,130,246,0.12)"
55
+ };
56
+ const getCosmicFilter = (type, id) => {
57
+ const starField = (freq, seed, dur) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
58
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: freq, numOctaves: "1", seed, result: "starNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
59
+ "animate",
60
+ {
61
+ attributeName: "baseFrequency",
62
+ values: `${freq};${(parseFloat(freq) * 1.15).toFixed(3)};${freq}`,
63
+ dur,
64
+ repeatCount: "indefinite"
65
+ }
66
+ ) }),
67
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
68
+ "feColorMatrix",
69
+ {
70
+ type: "matrix",
71
+ values: "0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 8 0 0 40 -32",
72
+ in: "starNoise",
73
+ result: "stars"
74
+ }
75
+ )
76
+ ] });
77
+ switch (type) {
78
+ case "satellite":
79
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
80
+ starField("0.06", "9", "14s"),
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.018", numOctaves: "2", seed: "4", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
+ "animate",
83
+ {
84
+ attributeName: "baseFrequency",
85
+ values: "0.018;0.024;0.016;0.018",
86
+ dur: "18s",
87
+ repeatCount: "indefinite"
88
+ }
89
+ ) }),
90
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
+ "feColorMatrix",
92
+ {
93
+ type: "matrix",
94
+ values: "0 0 0 0 0.7 0 0 0 0 0.7 0 0 0 0 1.0 0 0 0 3 -0.5",
95
+ in: "nebulaNoise",
96
+ result: "nebula"
97
+ }
98
+ ),
99
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "cosmic", children: [
100
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
102
+ ] }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "cosmic", stdDeviation: "1.2", result: "softCosmic" }),
104
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
105
+ ] });
106
+ case "pulsar":
107
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
108
+ starField("0.12", "1", "6s"),
109
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.035", numOctaves: "3", seed: "2", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("animate", { attributeName: "baseFrequency", values: "0.035;0.055;0.025;0.035", dur: "5s", repeatCount: "indefinite" }) }),
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
+ "feColorMatrix",
112
+ {
113
+ type: "matrix",
114
+ values: "0 0 0 0 1.0 0 0 0 0 0.8 0 0 0 0 0.2 0 0 0 4 -1",
115
+ in: "nebulaNoise",
116
+ result: "nebula"
117
+ }
118
+ ),
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "cosmic", children: [
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
122
+ ] }),
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "cosmic", stdDeviation: "1.0", result: "softCosmic" }),
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
125
+ ] });
126
+ case "orbit":
127
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
128
+ starField("0.15", "42", "22s"),
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.012", numOctaves: "3", seed: "12", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
130
+ "animate",
131
+ {
132
+ attributeName: "baseFrequency",
133
+ values: "0.012;0.018;0.010;0.012",
134
+ dur: "20s",
135
+ repeatCount: "indefinite"
136
+ }
137
+ ) }),
138
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
139
+ "feColorMatrix",
140
+ {
141
+ type: "matrix",
142
+ values: "0 0 0 0 0.2 0 0 0 0 0.9 0 0 0 0 0.85 0 0 0 3 -0.5",
143
+ in: "nebulaNoise",
144
+ result: "nebula"
145
+ }
146
+ ),
147
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "preMerge", children: [
148
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
150
+ ] }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
152
+ "feDisplacementMap",
153
+ {
154
+ in: "preMerge",
155
+ in2: "nebulaNoise",
156
+ scale: "18",
157
+ xChannelSelector: "R",
158
+ yChannelSelector: "G",
159
+ result: "warped"
160
+ }
161
+ ),
162
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "warped", stdDeviation: "0.8", result: "softCosmic" }),
163
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
164
+ ] });
165
+ case "nova":
166
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
167
+ starField("0.20", "7", "8s"),
168
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.025", numOctaves: "4", seed: "7", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("animate", { attributeName: "baseFrequency", values: "0.025;0.042;0.018;0.025", dur: "7s", repeatCount: "indefinite" }) }),
169
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
170
+ "feColorMatrix",
171
+ {
172
+ type: "matrix",
173
+ values: "0 0 0 0 0.9 0 0 0 0 0.5 0 0 0 0 1.0 0 0 0 5 -1.5",
174
+ in: "nebulaNoise",
175
+ result: "nebula"
176
+ }
177
+ ),
178
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "preMerge", children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
180
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
181
+ ] }),
182
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
183
+ "feDisplacementMap",
184
+ {
185
+ in: "preMerge",
186
+ in2: "nebulaNoise",
187
+ scale: "28",
188
+ xChannelSelector: "R",
189
+ yChannelSelector: "B",
190
+ result: "warped"
191
+ }
192
+ ),
193
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "warped", stdDeviation: "1.5", result: "softCosmic" }),
194
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
195
+ ] });
196
+ case "quasar":
197
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
198
+ starField("0.25", "99", "7s"),
199
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "turbulence", baseFrequency: "0.015", numOctaves: "3", seed: "99", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("animate", { attributeName: "baseFrequency", values: "0.015;0.032;0.010;0.015", dur: "9s", repeatCount: "indefinite" }) }),
200
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
201
+ "feColorMatrix",
202
+ {
203
+ type: "matrix",
204
+ values: "0 0 0 0 0.0 0 0 0 0 0.85 0 0 0 0 1.0 0 0 0 5 -1",
205
+ in: "nebulaNoise",
206
+ result: "nebula"
207
+ }
208
+ ),
209
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "preMerge", children: [
210
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
211
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
212
+ ] }),
213
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
214
+ "feDisplacementMap",
215
+ {
216
+ in: "preMerge",
217
+ in2: "nebulaNoise",
218
+ scale: "40",
219
+ xChannelSelector: "G",
220
+ yChannelSelector: "B",
221
+ result: "warped"
222
+ }
223
+ ),
224
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "warped", stdDeviation: "1.0", result: "softCosmic" }),
225
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
226
+ ] });
227
+ case "siwx":
228
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
229
+ starField("0.09", "11", "16s"),
230
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.06 0.012", numOctaves: "2", seed: "1", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
231
+ "animate",
232
+ {
233
+ attributeName: "baseFrequency",
234
+ values: "0.06 0.012; 0.09 0.020; 0.05 0.010; 0.06 0.012",
235
+ dur: "10s",
236
+ repeatCount: "indefinite"
237
+ }
238
+ ) }),
239
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
240
+ "feColorMatrix",
241
+ {
242
+ type: "matrix",
243
+ values: "0 0 0 0 0.3 0 0 0 0 1.0 0 0 0 0 0.7 0 0 0 4 -1",
244
+ in: "nebulaNoise",
245
+ result: "nebula"
246
+ }
247
+ ),
248
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "cosmic", children: [
249
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
250
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
251
+ ] }),
252
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "cosmic", stdDeviation: "1.4", result: "softCosmic" }),
253
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
254
+ ] });
255
+ case "sdk":
256
+ default:
257
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
258
+ starField("0.10", "3", "28s"),
259
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feTurbulence", { type: "fractalNoise", baseFrequency: "0.014", numOctaves: "2", seed: "3", result: "nebulaNoise", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
260
+ "animate",
261
+ {
262
+ attributeName: "baseFrequency",
263
+ values: "0.014;0.020;0.010;0.014",
264
+ dur: "22s",
265
+ repeatCount: "indefinite"
266
+ }
267
+ ) }),
268
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
269
+ "feColorMatrix",
270
+ {
271
+ type: "matrix",
272
+ values: "0 0 0 0 0.3 0 0 0 0 0.6 0 0 0 0 1.0 0 0 0 3 -0.5",
273
+ in: "nebulaNoise",
274
+ result: "nebula"
275
+ }
276
+ ),
277
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("feMerge", { result: "cosmic", children: [
278
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "nebula" }),
279
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMergeNode", { in: "stars" })
280
+ ] }),
281
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { in: "cosmic", stdDeviation: "1.2", result: "softCosmic" }),
282
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
283
+ ] });
284
+ }
285
+ };
286
+ const Orb = import_react.default.forwardRef(
287
+ ({ packageType, size = 120, icon: Icon, className, ...props }, ref) => {
288
+ const color = packageColors[packageType];
289
+ const tint = packageTints[packageType];
290
+ const filterId = `orb-filter-${packageType}`;
291
+ const nebGradId = `orb-neb-${packageType}`;
292
+ const glowGradId = `orb-glow-${packageType}`;
293
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
294
+ "div",
295
+ {
296
+ ref,
297
+ className: (0, import_nova_core.cn)(
298
+ "tuwadocs:relative tuwadocs:flex tuwadocs:items-center tuwadocs:justify-center tuwa-orb-float",
299
+ className
300
+ ),
301
+ style: { width: size, height: size, flexShrink: 0, ...props.style },
302
+ ...props,
303
+ children: [
304
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
305
+ "div",
306
+ {
307
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:overflow-hidden",
308
+ style: {
309
+ background: `radial-gradient(circle at 40% 35%, ${color}28 0%, ${tint} 55%, rgba(255,255,255,0.04) 100%)`,
310
+ boxShadow: [
311
+ `0 0 0 1px ${color}30`,
312
+ `0 4px 24px ${color}25`,
313
+ "inset 0 1px 0 rgba(255,255,255,0.35)",
314
+ `inset 0 -2px 8px ${color}20`
315
+ ].join(", "),
316
+ backdropFilter: "blur(2px)"
317
+ },
318
+ children: [
319
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
320
+ "svg",
321
+ {
322
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:w-full tuwadocs:h-full",
323
+ style: { mixBlendMode: "screen", opacity: 0.85 },
324
+ children: [
325
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("defs", { children: [
326
+ getCosmicFilter(packageType, filterId),
327
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("radialGradient", { id: nebGradId, cx: "50%", cy: "50%", r: "50%", children: [
328
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "0%", stopColor: color, stopOpacity: "0.9" }),
329
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "50%", stopColor: color, stopOpacity: "0.45" }),
330
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "100%", stopColor: color, stopOpacity: "0" })
331
+ ] })
332
+ ] }),
333
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
334
+ "circle",
335
+ {
336
+ cx: "50%",
337
+ cy: "50%",
338
+ r: "52%",
339
+ fill: `url(#${nebGradId})`,
340
+ filter: `url(#${filterId})`,
341
+ className: "tuwa-orb-spin",
342
+ style: { transformOrigin: "center" }
343
+ }
344
+ )
345
+ ]
346
+ }
347
+ ),
348
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
349
+ "svg",
350
+ {
351
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:w-full tuwadocs:h-full",
352
+ style: { mixBlendMode: "soft-light", opacity: 0.6 },
353
+ children: [
354
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("radialGradient", { id: glowGradId, cx: "50%", cy: "50%", r: "50%", children: [
355
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "0%", stopColor: color, stopOpacity: "1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("animate", { attributeName: "stop-opacity", values: "1;0.4;1", dur: "4s", repeatCount: "indefinite" }) }),
356
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "60%", stopColor: color, stopOpacity: "0.2" }),
357
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "100%", stopColor: color, stopOpacity: "0" })
358
+ ] }) }),
359
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "50%", cy: "50%", r: "40%", fill: `url(#${glowGradId})` })
360
+ ]
361
+ }
362
+ )
363
+ ]
364
+ }
365
+ ),
366
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
367
+ "div",
368
+ {
369
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:pointer-events-none",
370
+ style: {
371
+ background: "radial-gradient(ellipse at 28% 22%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.12) 28%, transparent 55%)"
372
+ }
373
+ }
374
+ ),
375
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
376
+ "div",
377
+ {
378
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:pointer-events-none",
379
+ style: {
380
+ background: `radial-gradient(ellipse at 70% 78%, ${color}22 0%, transparent 55%)`
381
+ }
382
+ }
383
+ ),
384
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
385
+ "div",
386
+ {
387
+ className: "tuwadocs:absolute tuwadocs:pointer-events-none",
388
+ style: {
389
+ top: "14%",
390
+ left: "22%",
391
+ width: "28%",
392
+ height: "10%",
393
+ background: "linear-gradient(180deg, rgba(255,255,255,0.45) 0%, transparent 100%)",
394
+ transform: "rotate(-38deg)",
395
+ filter: "blur(0.5px)",
396
+ borderRadius: "50%"
397
+ }
398
+ }
399
+ ),
400
+ Icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:flex tuwadocs:items-center tuwadocs:justify-center tuwadocs:z-10 tuwadocs:pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
401
+ Icon,
402
+ {
403
+ className: "tuwadocs:w-5 tuwadocs:h-5 tuwadocs:2xl:w-6 tuwadocs:2xl:h-6",
404
+ style: {
405
+ color: "rgba(255,255,255,0.95)",
406
+ filter: [
407
+ `drop-shadow(0 0 6px ${color})`,
408
+ `drop-shadow(0 0 14px ${color}90)`,
409
+ "drop-shadow(0 2px 4px rgba(0,0,0,0.4))"
410
+ ].join(" ")
411
+ }
412
+ }
413
+ ) })
414
+ ]
415
+ }
416
+ );
417
+ }
418
+ );
419
+ Orb.displayName = "Orb";
420
+ // Annotate the CommonJS export names for ESM import in node:
421
+ 0 && (module.exports = {
422
+ Orb
423
+ });
@@ -0,0 +1,18 @@
1
+ import react__default from 'react';
2
+
3
+ type PackageType = 'orbit' | 'pulsar' | 'satellite' | 'nova' | 'quasar' | 'siwx' | 'sdk';
4
+ interface OrbProps extends react__default.HTMLAttributes<HTMLDivElement> {
5
+ packageType: PackageType;
6
+ size?: number;
7
+ icon?: react__default.ComponentType<react__default.SVGProps<SVGSVGElement>>;
8
+ }
9
+ /**
10
+ * Orb — Premium 3D cosmic sphere for TUWA package visualization.
11
+ *
12
+ * @param packageType - Which TUWA package this orb represents
13
+ * @param size - Diameter in pixels (default: 120)
14
+ * @param icon - SVG icon component rendered centered inside the orb
15
+ */
16
+ declare const Orb: react__default.ForwardRefExoticComponent<OrbProps & react__default.RefAttributes<HTMLDivElement>>;
17
+
18
+ export { Orb, type OrbProps, type PackageType };
@@ -0,0 +1,18 @@
1
+ import react__default from 'react';
2
+
3
+ type PackageType = 'orbit' | 'pulsar' | 'satellite' | 'nova' | 'quasar' | 'siwx' | 'sdk';
4
+ interface OrbProps extends react__default.HTMLAttributes<HTMLDivElement> {
5
+ packageType: PackageType;
6
+ size?: number;
7
+ icon?: react__default.ComponentType<react__default.SVGProps<SVGSVGElement>>;
8
+ }
9
+ /**
10
+ * Orb — Premium 3D cosmic sphere for TUWA package visualization.
11
+ *
12
+ * @param packageType - Which TUWA package this orb represents
13
+ * @param size - Diameter in pixels (default: 120)
14
+ * @param icon - SVG icon component rendered centered inside the orb
15
+ */
16
+ declare const Orb: react__default.ForwardRefExoticComponent<OrbProps & react__default.RefAttributes<HTMLDivElement>>;
17
+
18
+ export { Orb, type OrbProps, type PackageType };
@@ -0,0 +1,389 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "@tuwaio/nova-core";
4
+ import React from "react";
5
+ const packageColors = {
6
+ siwx: "#10b981",
7
+ orbit: "#0d9488",
8
+ satellite: "#6366f1",
9
+ pulsar: "#f59e0b",
10
+ quasar: "#06b6d4",
11
+ nova: "#8b5cf6",
12
+ sdk: "#3b82f6"
13
+ };
14
+ const packageTints = {
15
+ siwx: "rgba(16,185,129,0.12)",
16
+ orbit: "rgba(13,148,136,0.12)",
17
+ satellite: "rgba(99,102,241,0.12)",
18
+ pulsar: "rgba(245,158,11,0.12)",
19
+ quasar: "rgba(6,182,212,0.12)",
20
+ nova: "rgba(139,92,246,0.12)",
21
+ sdk: "rgba(59,130,246,0.12)"
22
+ };
23
+ const getCosmicFilter = (type, id) => {
24
+ const starField = (freq, seed, dur) => /* @__PURE__ */ jsxs(Fragment, { children: [
25
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: freq, numOctaves: "1", seed, result: "starNoise", children: /* @__PURE__ */ jsx(
26
+ "animate",
27
+ {
28
+ attributeName: "baseFrequency",
29
+ values: `${freq};${(parseFloat(freq) * 1.15).toFixed(3)};${freq}`,
30
+ dur,
31
+ repeatCount: "indefinite"
32
+ }
33
+ ) }),
34
+ /* @__PURE__ */ jsx(
35
+ "feColorMatrix",
36
+ {
37
+ type: "matrix",
38
+ values: "0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 8 0 0 40 -32",
39
+ in: "starNoise",
40
+ result: "stars"
41
+ }
42
+ )
43
+ ] });
44
+ switch (type) {
45
+ case "satellite":
46
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
47
+ starField("0.06", "9", "14s"),
48
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.018", numOctaves: "2", seed: "4", result: "nebulaNoise", children: /* @__PURE__ */ jsx(
49
+ "animate",
50
+ {
51
+ attributeName: "baseFrequency",
52
+ values: "0.018;0.024;0.016;0.018",
53
+ dur: "18s",
54
+ repeatCount: "indefinite"
55
+ }
56
+ ) }),
57
+ /* @__PURE__ */ jsx(
58
+ "feColorMatrix",
59
+ {
60
+ type: "matrix",
61
+ values: "0 0 0 0 0.7 0 0 0 0 0.7 0 0 0 0 1.0 0 0 0 3 -0.5",
62
+ in: "nebulaNoise",
63
+ result: "nebula"
64
+ }
65
+ ),
66
+ /* @__PURE__ */ jsxs("feMerge", { result: "cosmic", children: [
67
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
68
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
69
+ ] }),
70
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "cosmic", stdDeviation: "1.2", result: "softCosmic" }),
71
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
72
+ ] });
73
+ case "pulsar":
74
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
75
+ starField("0.12", "1", "6s"),
76
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.035", numOctaves: "3", seed: "2", result: "nebulaNoise", children: /* @__PURE__ */ jsx("animate", { attributeName: "baseFrequency", values: "0.035;0.055;0.025;0.035", dur: "5s", repeatCount: "indefinite" }) }),
77
+ /* @__PURE__ */ jsx(
78
+ "feColorMatrix",
79
+ {
80
+ type: "matrix",
81
+ values: "0 0 0 0 1.0 0 0 0 0 0.8 0 0 0 0 0.2 0 0 0 4 -1",
82
+ in: "nebulaNoise",
83
+ result: "nebula"
84
+ }
85
+ ),
86
+ /* @__PURE__ */ jsxs("feMerge", { result: "cosmic", children: [
87
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
88
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
89
+ ] }),
90
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "cosmic", stdDeviation: "1.0", result: "softCosmic" }),
91
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
92
+ ] });
93
+ case "orbit":
94
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
95
+ starField("0.15", "42", "22s"),
96
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.012", numOctaves: "3", seed: "12", result: "nebulaNoise", children: /* @__PURE__ */ jsx(
97
+ "animate",
98
+ {
99
+ attributeName: "baseFrequency",
100
+ values: "0.012;0.018;0.010;0.012",
101
+ dur: "20s",
102
+ repeatCount: "indefinite"
103
+ }
104
+ ) }),
105
+ /* @__PURE__ */ jsx(
106
+ "feColorMatrix",
107
+ {
108
+ type: "matrix",
109
+ values: "0 0 0 0 0.2 0 0 0 0 0.9 0 0 0 0 0.85 0 0 0 3 -0.5",
110
+ in: "nebulaNoise",
111
+ result: "nebula"
112
+ }
113
+ ),
114
+ /* @__PURE__ */ jsxs("feMerge", { result: "preMerge", children: [
115
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
116
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
117
+ ] }),
118
+ /* @__PURE__ */ jsx(
119
+ "feDisplacementMap",
120
+ {
121
+ in: "preMerge",
122
+ in2: "nebulaNoise",
123
+ scale: "18",
124
+ xChannelSelector: "R",
125
+ yChannelSelector: "G",
126
+ result: "warped"
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "warped", stdDeviation: "0.8", result: "softCosmic" }),
130
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
131
+ ] });
132
+ case "nova":
133
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
134
+ starField("0.20", "7", "8s"),
135
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.025", numOctaves: "4", seed: "7", result: "nebulaNoise", children: /* @__PURE__ */ jsx("animate", { attributeName: "baseFrequency", values: "0.025;0.042;0.018;0.025", dur: "7s", repeatCount: "indefinite" }) }),
136
+ /* @__PURE__ */ jsx(
137
+ "feColorMatrix",
138
+ {
139
+ type: "matrix",
140
+ values: "0 0 0 0 0.9 0 0 0 0 0.5 0 0 0 0 1.0 0 0 0 5 -1.5",
141
+ in: "nebulaNoise",
142
+ result: "nebula"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ jsxs("feMerge", { result: "preMerge", children: [
146
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
147
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
148
+ ] }),
149
+ /* @__PURE__ */ jsx(
150
+ "feDisplacementMap",
151
+ {
152
+ in: "preMerge",
153
+ in2: "nebulaNoise",
154
+ scale: "28",
155
+ xChannelSelector: "R",
156
+ yChannelSelector: "B",
157
+ result: "warped"
158
+ }
159
+ ),
160
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "warped", stdDeviation: "1.5", result: "softCosmic" }),
161
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
162
+ ] });
163
+ case "quasar":
164
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
165
+ starField("0.25", "99", "7s"),
166
+ /* @__PURE__ */ jsx("feTurbulence", { type: "turbulence", baseFrequency: "0.015", numOctaves: "3", seed: "99", result: "nebulaNoise", children: /* @__PURE__ */ jsx("animate", { attributeName: "baseFrequency", values: "0.015;0.032;0.010;0.015", dur: "9s", repeatCount: "indefinite" }) }),
167
+ /* @__PURE__ */ jsx(
168
+ "feColorMatrix",
169
+ {
170
+ type: "matrix",
171
+ values: "0 0 0 0 0.0 0 0 0 0 0.85 0 0 0 0 1.0 0 0 0 5 -1",
172
+ in: "nebulaNoise",
173
+ result: "nebula"
174
+ }
175
+ ),
176
+ /* @__PURE__ */ jsxs("feMerge", { result: "preMerge", children: [
177
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
178
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
179
+ ] }),
180
+ /* @__PURE__ */ jsx(
181
+ "feDisplacementMap",
182
+ {
183
+ in: "preMerge",
184
+ in2: "nebulaNoise",
185
+ scale: "40",
186
+ xChannelSelector: "G",
187
+ yChannelSelector: "B",
188
+ result: "warped"
189
+ }
190
+ ),
191
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "warped", stdDeviation: "1.0", result: "softCosmic" }),
192
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
193
+ ] });
194
+ case "siwx":
195
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
196
+ starField("0.09", "11", "16s"),
197
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.06 0.012", numOctaves: "2", seed: "1", result: "nebulaNoise", children: /* @__PURE__ */ jsx(
198
+ "animate",
199
+ {
200
+ attributeName: "baseFrequency",
201
+ values: "0.06 0.012; 0.09 0.020; 0.05 0.010; 0.06 0.012",
202
+ dur: "10s",
203
+ repeatCount: "indefinite"
204
+ }
205
+ ) }),
206
+ /* @__PURE__ */ jsx(
207
+ "feColorMatrix",
208
+ {
209
+ type: "matrix",
210
+ values: "0 0 0 0 0.3 0 0 0 0 1.0 0 0 0 0 0.7 0 0 0 4 -1",
211
+ in: "nebulaNoise",
212
+ result: "nebula"
213
+ }
214
+ ),
215
+ /* @__PURE__ */ jsxs("feMerge", { result: "cosmic", children: [
216
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
217
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
218
+ ] }),
219
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "cosmic", stdDeviation: "1.4", result: "softCosmic" }),
220
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
221
+ ] });
222
+ case "sdk":
223
+ default:
224
+ return /* @__PURE__ */ jsxs("filter", { id, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
225
+ starField("0.10", "3", "28s"),
226
+ /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.014", numOctaves: "2", seed: "3", result: "nebulaNoise", children: /* @__PURE__ */ jsx(
227
+ "animate",
228
+ {
229
+ attributeName: "baseFrequency",
230
+ values: "0.014;0.020;0.010;0.014",
231
+ dur: "22s",
232
+ repeatCount: "indefinite"
233
+ }
234
+ ) }),
235
+ /* @__PURE__ */ jsx(
236
+ "feColorMatrix",
237
+ {
238
+ type: "matrix",
239
+ values: "0 0 0 0 0.3 0 0 0 0 0.6 0 0 0 0 1.0 0 0 0 3 -0.5",
240
+ in: "nebulaNoise",
241
+ result: "nebula"
242
+ }
243
+ ),
244
+ /* @__PURE__ */ jsxs("feMerge", { result: "cosmic", children: [
245
+ /* @__PURE__ */ jsx("feMergeNode", { in: "nebula" }),
246
+ /* @__PURE__ */ jsx("feMergeNode", { in: "stars" })
247
+ ] }),
248
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "cosmic", stdDeviation: "1.2", result: "softCosmic" }),
249
+ /* @__PURE__ */ jsx("feComposite", { in: "softCosmic", in2: "SourceGraphic", operator: "in" })
250
+ ] });
251
+ }
252
+ };
253
+ const Orb = React.forwardRef(
254
+ ({ packageType, size = 120, icon: Icon, className, ...props }, ref) => {
255
+ const color = packageColors[packageType];
256
+ const tint = packageTints[packageType];
257
+ const filterId = `orb-filter-${packageType}`;
258
+ const nebGradId = `orb-neb-${packageType}`;
259
+ const glowGradId = `orb-glow-${packageType}`;
260
+ return /* @__PURE__ */ jsxs(
261
+ "div",
262
+ {
263
+ ref,
264
+ className: cn(
265
+ "tuwadocs:relative tuwadocs:flex tuwadocs:items-center tuwadocs:justify-center tuwa-orb-float",
266
+ className
267
+ ),
268
+ style: { width: size, height: size, flexShrink: 0, ...props.style },
269
+ ...props,
270
+ children: [
271
+ /* @__PURE__ */ jsxs(
272
+ "div",
273
+ {
274
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:overflow-hidden",
275
+ style: {
276
+ background: `radial-gradient(circle at 40% 35%, ${color}28 0%, ${tint} 55%, rgba(255,255,255,0.04) 100%)`,
277
+ boxShadow: [
278
+ `0 0 0 1px ${color}30`,
279
+ `0 4px 24px ${color}25`,
280
+ "inset 0 1px 0 rgba(255,255,255,0.35)",
281
+ `inset 0 -2px 8px ${color}20`
282
+ ].join(", "),
283
+ backdropFilter: "blur(2px)"
284
+ },
285
+ children: [
286
+ /* @__PURE__ */ jsxs(
287
+ "svg",
288
+ {
289
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:w-full tuwadocs:h-full",
290
+ style: { mixBlendMode: "screen", opacity: 0.85 },
291
+ children: [
292
+ /* @__PURE__ */ jsxs("defs", { children: [
293
+ getCosmicFilter(packageType, filterId),
294
+ /* @__PURE__ */ jsxs("radialGradient", { id: nebGradId, cx: "50%", cy: "50%", r: "50%", children: [
295
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: "0.9" }),
296
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: color, stopOpacity: "0.45" }),
297
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: "0" })
298
+ ] })
299
+ ] }),
300
+ /* @__PURE__ */ jsx(
301
+ "circle",
302
+ {
303
+ cx: "50%",
304
+ cy: "50%",
305
+ r: "52%",
306
+ fill: `url(#${nebGradId})`,
307
+ filter: `url(#${filterId})`,
308
+ className: "tuwa-orb-spin",
309
+ style: { transformOrigin: "center" }
310
+ }
311
+ )
312
+ ]
313
+ }
314
+ ),
315
+ /* @__PURE__ */ jsxs(
316
+ "svg",
317
+ {
318
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:w-full tuwadocs:h-full",
319
+ style: { mixBlendMode: "soft-light", opacity: 0.6 },
320
+ children: [
321
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("radialGradient", { id: glowGradId, cx: "50%", cy: "50%", r: "50%", children: [
322
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color, stopOpacity: "1", children: /* @__PURE__ */ jsx("animate", { attributeName: "stop-opacity", values: "1;0.4;1", dur: "4s", repeatCount: "indefinite" }) }),
323
+ /* @__PURE__ */ jsx("stop", { offset: "60%", stopColor: color, stopOpacity: "0.2" }),
324
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: color, stopOpacity: "0" })
325
+ ] }) }),
326
+ /* @__PURE__ */ jsx("circle", { cx: "50%", cy: "50%", r: "40%", fill: `url(#${glowGradId})` })
327
+ ]
328
+ }
329
+ )
330
+ ]
331
+ }
332
+ ),
333
+ /* @__PURE__ */ jsx(
334
+ "div",
335
+ {
336
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:pointer-events-none",
337
+ style: {
338
+ background: "radial-gradient(ellipse at 28% 22%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.12) 28%, transparent 55%)"
339
+ }
340
+ }
341
+ ),
342
+ /* @__PURE__ */ jsx(
343
+ "div",
344
+ {
345
+ className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:rounded-full tuwadocs:pointer-events-none",
346
+ style: {
347
+ background: `radial-gradient(ellipse at 70% 78%, ${color}22 0%, transparent 55%)`
348
+ }
349
+ }
350
+ ),
351
+ /* @__PURE__ */ jsx(
352
+ "div",
353
+ {
354
+ className: "tuwadocs:absolute tuwadocs:pointer-events-none",
355
+ style: {
356
+ top: "14%",
357
+ left: "22%",
358
+ width: "28%",
359
+ height: "10%",
360
+ background: "linear-gradient(180deg, rgba(255,255,255,0.45) 0%, transparent 100%)",
361
+ transform: "rotate(-38deg)",
362
+ filter: "blur(0.5px)",
363
+ borderRadius: "50%"
364
+ }
365
+ }
366
+ ),
367
+ Icon && /* @__PURE__ */ jsx("div", { className: "tuwadocs:absolute tuwadocs:inset-0 tuwadocs:flex tuwadocs:items-center tuwadocs:justify-center tuwadocs:z-10 tuwadocs:pointer-events-none", children: /* @__PURE__ */ jsx(
368
+ Icon,
369
+ {
370
+ className: "tuwadocs:w-5 tuwadocs:h-5 tuwadocs:2xl:w-6 tuwadocs:2xl:h-6",
371
+ style: {
372
+ color: "rgba(255,255,255,0.95)",
373
+ filter: [
374
+ `drop-shadow(0 0 6px ${color})`,
375
+ `drop-shadow(0 0 14px ${color}90)`,
376
+ "drop-shadow(0 2px 4px rgba(0,0,0,0.4))"
377
+ ].join(" ")
378
+ }
379
+ }
380
+ ) })
381
+ ]
382
+ }
383
+ );
384
+ }
385
+ );
386
+ Orb.displayName = "Orb";
387
+ export {
388
+ Orb
389
+ };
package/dist/index.cjs CHANGED
@@ -41,6 +41,7 @@ __reExport(index_exports, require("./components/Footer"), module.exports);
41
41
  __reExport(index_exports, require("./components/Logo"), module.exports);
42
42
  __reExport(index_exports, require("./components/NavBar"), module.exports);
43
43
  var import_NoSSR = __toESM(require("./components/NoSSR"), 1);
44
+ __reExport(index_exports, require("./components/Orb"), module.exports);
44
45
  __reExport(index_exports, require("./components/PackageInstallationTabs"), module.exports);
45
46
  var import_StarryBackground = __toESM(require("./components/StarryBackground"), 1);
46
47
  __reExport(index_exports, require("./components/StyledLink"), module.exports);
@@ -59,6 +60,7 @@ __reExport(index_exports, require("@tuwaio/nova-core"), module.exports);
59
60
  ...require("./components/Footer"),
60
61
  ...require("./components/Logo"),
61
62
  ...require("./components/NavBar"),
63
+ ...require("./components/Orb"),
62
64
  ...require("./components/PackageInstallationTabs"),
63
65
  ...require("./components/StyledLink"),
64
66
  ...require("./components/ThemeSwitcher"),
package/dist/index.css CHANGED
@@ -652,6 +652,9 @@ html {
652
652
  .tuwadocs\:h-4 {
653
653
  height: calc(var(--tuwadocs-spacing) * 4);
654
654
  }
655
+ .tuwadocs\:h-5 {
656
+ height: calc(var(--tuwadocs-spacing) * 5);
657
+ }
655
658
  .tuwadocs\:h-6 {
656
659
  height: calc(var(--tuwadocs-spacing) * 6);
657
660
  }
@@ -670,6 +673,9 @@ html {
670
673
  .tuwadocs\:w-4 {
671
674
  width: calc(var(--tuwadocs-spacing) * 4);
672
675
  }
676
+ .tuwadocs\:w-5 {
677
+ width: calc(var(--tuwadocs-spacing) * 5);
678
+ }
673
679
  .tuwadocs\:w-6 {
674
680
  width: calc(var(--tuwadocs-spacing) * 6);
675
681
  }
@@ -733,6 +739,9 @@ html {
733
739
  .tuwadocs\:rounded-\[var\(--tuwa-rounded-corners\)\] {
734
740
  border-radius: var(--tuwa-rounded-corners);
735
741
  }
742
+ .tuwadocs\:rounded-full {
743
+ border-radius: calc(infinity * 1px);
744
+ }
736
745
  .tuwadocs\:border {
737
746
  border-style: var(--tw-border-style);
738
747
  border-width: 1px;
@@ -1002,6 +1011,14 @@ html {
1002
1011
  opacity: 0%;
1003
1012
  }
1004
1013
  }
1014
+ @media (width >= 96rem) {
1015
+ .tuwadocs\:2xl\:h-6 {
1016
+ height: calc(var(--tuwadocs-spacing) * 6);
1017
+ }
1018
+ .tuwadocs\:2xl\:w-6 {
1019
+ width: calc(var(--tuwadocs-spacing) * 6);
1020
+ }
1021
+ }
1005
1022
  .tuwadocs\:dark\:border-white\/10:where(.dark, .dark *) {
1006
1023
  border-color: var(--tuwadocs-color-white);
1007
1024
  @supports (color: color-mix(in lab, red, red)) {
@@ -1438,6 +1455,46 @@ article:focus {
1438
1455
  outline: 2px solid var(--tuwa-primary);
1439
1456
  outline-offset: 2px;
1440
1457
  }
1458
+ @keyframes orb-spin {
1459
+ 0% {
1460
+ transform: rotate(0deg);
1461
+ }
1462
+ 100% {
1463
+ transform: rotate(360deg);
1464
+ }
1465
+ }
1466
+ @keyframes orb-pulse-slow {
1467
+ 0%,
1468
+ 100% {
1469
+ opacity: 0.8;
1470
+ transform: scale(1);
1471
+ }
1472
+ 50% {
1473
+ opacity: 1;
1474
+ transform: scale(1.05);
1475
+ }
1476
+ }
1477
+ @keyframes orb-float {
1478
+ 0%,
1479
+ 100% {
1480
+ transform: translateY(0) rotate(0deg);
1481
+ }
1482
+ 50% {
1483
+ transform: translateY(-3%) rotate(5deg);
1484
+ }
1485
+ }
1486
+ .tuwa-orb-spin {
1487
+ animation: orb-spin 20s linear infinite;
1488
+ }
1489
+ .tuwa-orb-spin-reverse {
1490
+ animation: orb-spin 25s linear infinite reverse;
1491
+ }
1492
+ .tuwa-orb-float {
1493
+ animation: orb-float 8s ease-in-out infinite;
1494
+ }
1495
+ .tuwa-orb-pulse {
1496
+ animation: orb-pulse-slow 4s ease-in-out infinite;
1497
+ }
1441
1498
  @property --tw-gradient-position {
1442
1499
  syntax: "*";
1443
1500
  inherits: false;
package/dist/index.d.cts CHANGED
@@ -6,6 +6,7 @@ export { Footer } from './components/Footer.cjs';
6
6
  export { RemoteLogo, RemoteLogoProps } from './components/Logo.cjs';
7
7
  export { NavProps, Navbar, SocialLink } from './components/NavBar.cjs';
8
8
  export { default as NoSSR } from './components/NoSSR.cjs';
9
+ export { Orb, OrbProps, PackageType } from './components/Orb.cjs';
9
10
  export { PackageInstallationTabs } from './components/PackageInstallationTabs.cjs';
10
11
  export { default as StarryBackground } from './components/StarryBackground.cjs';
11
12
  export { StyledLink } from './components/StyledLink.cjs';
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { Footer } from './components/Footer.js';
6
6
  export { RemoteLogo, RemoteLogoProps } from './components/Logo.js';
7
7
  export { NavProps, Navbar, SocialLink } from './components/NavBar.js';
8
8
  export { default as NoSSR } from './components/NoSSR.js';
9
+ export { Orb, OrbProps, PackageType } from './components/Orb.js';
9
10
  export { PackageInstallationTabs } from './components/PackageInstallationTabs.js';
10
11
  export { default as StarryBackground } from './components/StarryBackground.js';
11
12
  export { StyledLink } from './components/StyledLink.js';
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from "./components/Footer";
6
6
  export * from "./components/Logo";
7
7
  export * from "./components/NavBar";
8
8
  import { default as default2 } from "./components/NoSSR";
9
+ export * from "./components/Orb";
9
10
  export * from "./components/PackageInstallationTabs";
10
11
  import { default as default3 } from "./components/StarryBackground";
11
12
  export * from "./components/StyledLink";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/docs-ui",
3
- "version": "0.0.35",
3
+ "version": "0.0.37",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -49,10 +49,10 @@
49
49
  }
50
50
  ],
51
51
  "dependencies": {
52
- "@tuwaio/nova-core": "^0.5.0",
52
+ "@tuwaio/nova-core": "^0.6.0",
53
53
  "@types/react-syntax-highlighter": "^15.5.13",
54
54
  "clsx": "^2.1.1",
55
- "html-react-parser": "^6.1.5",
55
+ "html-react-parser": "^6.1.7",
56
56
  "react-syntax-highlighter": "^16.1.1",
57
57
  "tailwind-merge": "^3.6.0"
58
58
  },
@@ -68,17 +68,17 @@
68
68
  "@tailwindcss/postcss": "^4.3.3",
69
69
  "@tailwindcss/vite": "^4.3.3",
70
70
  "@types/node": "^26",
71
- "@types/react": "^19.2.18",
72
- "autoprefixer": "^10.5.4",
73
- "next": "16.3.0",
71
+ "@types/react": "^19.3.0",
72
+ "autoprefixer": "^10.5.5",
73
+ "next": "16.3.4",
74
74
  "nextra": "^4.6.1",
75
75
  "nextra-theme-docs": "^4.6.1",
76
- "postcss": "^8.5.26",
77
- "postcss-cli": "^11.0.1",
78
- "react": "^19.2.8",
76
+ "postcss": "^8.5.28",
77
+ "postcss-cli": "^12.0.0",
78
+ "react": "^19.3.0",
79
79
  "tailwindcss": "^4.3.3",
80
80
  "tsup": "^8.5.1",
81
- "typescript": "^6.0.3"
81
+ "typescript": "6.0.3"
82
82
  },
83
83
  "scripts": {
84
84
  "build": "tsup && pnpm exec postcss src/styles/general.css -o ./dist/index.css"