@bg-effects/fireworks 1.0.6 → 1.0.8
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.
- package/LICENSE +21 -0
- package/README.md +39 -232
- package/dist/ConfigPanel-CEj7MToh.js +189 -0
- package/dist/index-CQylcZgx.js +1814 -0
- package/dist/index.d.ts +203 -0
- package/dist/index.js +7 -0
- package/dist/index.umd.cjs +161 -0
- package/package.json +73 -19
|
@@ -0,0 +1,1814 @@
|
|
|
1
|
+
var Wa = Object.defineProperty;
|
|
2
|
+
var Da = (a, r, t) => r in a ? Wa(a, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[r] = t;
|
|
3
|
+
var T = (a, r, t) => Da(a, typeof r != "symbol" ? r + "" : r, t);
|
|
4
|
+
import { defineComponent as Z, computed as B, openBlock as x, createElementBlock as I, normalizeClass as U, createElementVNode as d, normalizeStyle as Fa, Fragment as Q, renderList as ia, createCommentVNode as V, toDisplayString as C, h as pa, isRef as fa, toRefs as qa, customRef as Ka, toValue as z, watch as K, getCurrentScope as Qa, onScopeDispose as at, ref as A, shallowRef as Oa, readonly as tt, unref as h, createVNode as R, withCtx as sa, createBlock as H, renderSlot as ha, onUnmounted as ma, Teleport as xa, withModifiers as _a, resolveDynamicComponent as Ra, Transition as rt, createTextVNode as et, onMounted as Xa, defineAsyncComponent as nt } from "vue";
|
|
5
|
+
import { Color as ba, Renderer as ot, Geometry as it, Program as st, Mesh as ut } from "ogl";
|
|
6
|
+
const dt = `#version 300 es
|
|
7
|
+
in vec3 position;
|
|
8
|
+
in vec3 velocity;
|
|
9
|
+
in float startTime;
|
|
10
|
+
in float burstTime;
|
|
11
|
+
in vec3 color;
|
|
12
|
+
in float isRocket;
|
|
13
|
+
in float stayTime;
|
|
14
|
+
|
|
15
|
+
uniform float uTime;
|
|
16
|
+
uniform float uSpeed;
|
|
17
|
+
uniform float uSize;
|
|
18
|
+
uniform float uCurvature;
|
|
19
|
+
uniform float uIsCircular;
|
|
20
|
+
uniform float uGravity;
|
|
21
|
+
uniform float uClusterSize;
|
|
22
|
+
uniform float uAspect;
|
|
23
|
+
uniform float uFlashIntensity;
|
|
24
|
+
|
|
25
|
+
out vec3 vColor;
|
|
26
|
+
out float vOpacity;
|
|
27
|
+
|
|
28
|
+
void main() {
|
|
29
|
+
float t = (uTime - startTime) * uSpeed;
|
|
30
|
+
float duration = burstTime + 9.0;
|
|
31
|
+
t = mod(t, duration);
|
|
32
|
+
|
|
33
|
+
vec3 pos = position;
|
|
34
|
+
vec3 baseColor = color;
|
|
35
|
+
vColor = color;
|
|
36
|
+
vOpacity = 0.0;
|
|
37
|
+
gl_PointSize = 0.0;
|
|
38
|
+
|
|
39
|
+
if (t < burstTime) {
|
|
40
|
+
if (isRocket > 0.5) {
|
|
41
|
+
float progress = t / burstTime;
|
|
42
|
+
pos.y += t * 1.5;
|
|
43
|
+
pos.x += uCurvature * progress * progress;
|
|
44
|
+
vOpacity = smoothstep(0.0, 0.1, t);
|
|
45
|
+
gl_PointSize = uSize * 8.0 * vOpacity;
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
if (isRocket < 0.5) {
|
|
49
|
+
float bt = t - burstTime;
|
|
50
|
+
float burstPosY = position.y + burstTime * 1.5;
|
|
51
|
+
float burstPosX = position.x + uCurvature;
|
|
52
|
+
float flash = exp(-bt * 5.0) * uFlashIntensity;
|
|
53
|
+
|
|
54
|
+
if (uIsCircular > 0.5) {
|
|
55
|
+
float expansion = 1.0 - exp(-bt * 8.0);
|
|
56
|
+
float dropFactor = smoothstep(stayTime, 9.0, bt);
|
|
57
|
+
pos.x = burstPosX + (velocity.x * expansion * uClusterSize) / uAspect;
|
|
58
|
+
pos.y = burstPosY + velocity.y * expansion * uClusterSize - 0.5 * 9.8 * uGravity * pow(bt * dropFactor, 2.0) * 0.1;
|
|
59
|
+
pos.z = position.z + velocity.z * expansion * uClusterSize;
|
|
60
|
+
vOpacity = smoothstep(9.0, 0.0, bt);
|
|
61
|
+
} else {
|
|
62
|
+
float dropFactor = smoothstep(stayTime, 9.0, bt);
|
|
63
|
+
float effectiveBt = bt * dropFactor;
|
|
64
|
+
pos.x = burstPosX + (velocity.x * bt * uClusterSize) / uAspect;
|
|
65
|
+
pos.y = burstPosY + velocity.y * bt * uClusterSize - 0.5 * 9.8 * uGravity * effectiveBt * effectiveBt * 0.1;
|
|
66
|
+
pos.z = position.z + velocity.z * bt * uClusterSize;
|
|
67
|
+
vOpacity = smoothstep(9.0, 0.0, bt);
|
|
68
|
+
}
|
|
69
|
+
vColor = mix(baseColor, vec3(2.0), flash);
|
|
70
|
+
float flicker = (bt > stayTime) ? (0.8 + 0.2 * sin(bt * 20.0)) : 1.0;
|
|
71
|
+
vOpacity *= flicker;
|
|
72
|
+
float flashSize = 1.0 + exp(-bt * 8.0) * 5.0 * uFlashIntensity;
|
|
73
|
+
gl_PointSize = uSize * 4.0 * vOpacity * flashSize;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
gl_Position = vec4(pos, 1.0);
|
|
77
|
+
}
|
|
78
|
+
`, ct = `#version 300 es
|
|
79
|
+
precision highp float;
|
|
80
|
+
in vec3 vColor;
|
|
81
|
+
in float vOpacity;
|
|
82
|
+
out vec4 fragColor;
|
|
83
|
+
void main() {
|
|
84
|
+
if (vOpacity <= 0.01) discard;
|
|
85
|
+
float d = distance(gl_PointCoord, vec2(0.5));
|
|
86
|
+
if (d > 0.5) discard;
|
|
87
|
+
float strength = smoothstep(0.5, 0.2, d);
|
|
88
|
+
fragColor = vec4(vColor, vOpacity * strength);
|
|
89
|
+
}
|
|
90
|
+
`, Ta = [
|
|
91
|
+
"#ff3333",
|
|
92
|
+
"#ff5500",
|
|
93
|
+
"#ffcc00",
|
|
94
|
+
"#ffff33",
|
|
95
|
+
"#33ff33",
|
|
96
|
+
"#00ffcc",
|
|
97
|
+
"#33ffff",
|
|
98
|
+
"#3333ff",
|
|
99
|
+
"#7733ff",
|
|
100
|
+
"#ff33ff",
|
|
101
|
+
"#ff66aa",
|
|
102
|
+
"#ffffff"
|
|
103
|
+
].map((a) => new ba(a)), Ya = ["normal", "circular", "heart", "star", "butterfly", "spiral", "ring", "doubleRing", "atom", "trefoil", "clover", "cross", "saturn", "hexagram", "astroid", "gear", "fermat", "folium", "random"];
|
|
104
|
+
class ja {
|
|
105
|
+
constructor(r, t) {
|
|
106
|
+
T(this, "renderer");
|
|
107
|
+
T(this, "gl");
|
|
108
|
+
T(this, "geometry");
|
|
109
|
+
T(this, "program");
|
|
110
|
+
T(this, "mesh");
|
|
111
|
+
T(this, "container");
|
|
112
|
+
T(this, "groupCount");
|
|
113
|
+
T(this, "particlesPerGroup");
|
|
114
|
+
T(this, "totalCount");
|
|
115
|
+
T(this, "colors");
|
|
116
|
+
T(this, "velocities");
|
|
117
|
+
T(this, "isRockets");
|
|
118
|
+
T(this, "groupBaseColors", []);
|
|
119
|
+
T(this, "animationId", 0);
|
|
120
|
+
T(this, "timeStart", 0);
|
|
121
|
+
T(this, "isPaused", !1);
|
|
122
|
+
T(this, "config");
|
|
123
|
+
T(this, "updateVelocities", () => {
|
|
124
|
+
for (let r = 0; r < this.groupCount; r++) {
|
|
125
|
+
let t = this.config.shape;
|
|
126
|
+
this.config.shape === "random" && (t = Ya[r % Ya.length]);
|
|
127
|
+
const e = this.config.rotation * Math.PI / 180, o = (r * 0.1357 % 1 - 0.5) * 2 * (this.config.rotationJitter * Math.PI), n = e + o, i = Math.cos(n), l = Math.sin(n);
|
|
128
|
+
for (let u = 0; u < this.particlesPerGroup; u++) {
|
|
129
|
+
const p = r * this.particlesPerGroup + u;
|
|
130
|
+
if (this.isRockets[p] > 0.5) continue;
|
|
131
|
+
let f = 0, g = 0, w = 0;
|
|
132
|
+
const M = 0.15;
|
|
133
|
+
switch (t) {
|
|
134
|
+
case "heart": {
|
|
135
|
+
const s = Math.random() * Math.PI * 2;
|
|
136
|
+
f = 16 * Math.pow(Math.sin(s), 3) * 6e-3, g = (13 * Math.cos(s) - 5 * Math.cos(2 * s) - 2 * Math.cos(3 * s) - Math.cos(4 * s)) * 6e-3, w = (Math.random() - 0.5) * 0.05;
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
case "star": {
|
|
140
|
+
const s = Math.random() * Math.PI * 2, c = 1 + 0.8 * Math.abs(Math.cos(s * 2.5));
|
|
141
|
+
f = Math.cos(s) * c * 0.08, g = Math.sin(s) * c * 0.08, w = (Math.random() - 0.5) * 0.05;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
case "butterfly": {
|
|
145
|
+
const s = Math.random() * Math.PI * 12, c = Math.exp(Math.cos(s)) - 2 * Math.cos(4 * s) + Math.pow(Math.sin(s / 12), 5);
|
|
146
|
+
f = Math.sin(s) * c * 0.05, g = Math.cos(s) * c * 0.05, w = (Math.random() - 0.5) * 0.05;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case "spiral": {
|
|
150
|
+
const s = Math.random() * Math.PI * 8, c = 0.015 * s;
|
|
151
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case "ring": {
|
|
155
|
+
const s = Math.random() * Math.PI * 2, c = 0.12 + (Math.random() - 0.5) * 0.02;
|
|
156
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.02;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case "doubleRing": {
|
|
160
|
+
const s = u / this.particlesPerGroup * Math.PI * 2, y = (u % 2 === 0 ? 0.15 : 0.09) + (Math.random() - 0.5) * 0.01;
|
|
161
|
+
f = Math.cos(s) * y, g = Math.sin(s) * y, w = (Math.random() - 0.5) * 0.02;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
case "atom": {
|
|
165
|
+
const s = Math.random() * Math.PI * 2, c = 0.15, F = u % 3 * Math.PI / 3, Y = Math.cos(s) * c, O = Math.sin(s) * c, N = (Math.random() - 0.5) * 0.01;
|
|
166
|
+
f = Y * Math.cos(F) - N * Math.sin(F), g = O, w = Y * Math.sin(F) + N * Math.cos(F);
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case "trefoil": {
|
|
170
|
+
const s = Math.random() * Math.PI * 2, c = Math.cos(3 * s) * 0.15;
|
|
171
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case "clover": {
|
|
175
|
+
const s = Math.random() * Math.PI * 2, c = Math.cos(2 * s) * 0.15;
|
|
176
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case "cross": {
|
|
180
|
+
const s = Math.floor(Math.random() * 4) * Math.PI / 2, c = Math.random() * 0.18;
|
|
181
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
case "saturn": {
|
|
185
|
+
if (u < this.particlesPerGroup * 0.6) {
|
|
186
|
+
const s = Math.random() * Math.PI * 2, c = Math.acos(2 * Math.random() - 1), y = Math.random() * 0.08;
|
|
187
|
+
f = Math.sin(c) * Math.cos(s) * y, g = Math.sin(c) * Math.sin(s) * y, w = Math.cos(c) * y;
|
|
188
|
+
} else {
|
|
189
|
+
const s = Math.random() * Math.PI * 2, c = 0.14 + (Math.random() - 0.5) * 0.02, y = Math.PI * 0.15;
|
|
190
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c * Math.sin(y), w = Math.sin(s) * c * Math.cos(y);
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case "hexagram": {
|
|
195
|
+
const s = Math.random() > 0.5, c = (Math.floor(Math.random() * 3) * 120 + (s ? 60 : 0)) * (Math.PI / 180), y = c + 120 * Math.PI / 180, F = Math.random(), Y = 0.15;
|
|
196
|
+
f = (Math.cos(c) * (1 - F) + Math.cos(y) * F) * Y, g = (Math.sin(c) * (1 - F) + Math.sin(y) * F) * Y, w = (Math.random() - 0.5) * 0.05;
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case "astroid": {
|
|
200
|
+
const s = Math.random() * Math.PI * 2, c = 0.18;
|
|
201
|
+
f = Math.pow(Math.cos(s), 3) * c, g = Math.pow(Math.sin(s), 3) * c, w = (Math.random() - 0.5) * 0.05;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
case "gear": {
|
|
205
|
+
const s = Math.random() * Math.PI * 2, c = 0.12 + 0.04 * Math.cos(8 * s);
|
|
206
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
case "fermat": {
|
|
210
|
+
const s = Math.random() * Math.PI * 10, c = 0.05 * Math.sqrt(s);
|
|
211
|
+
f = Math.cos(s) * c, g = Math.sin(s) * c, w = (Math.random() - 0.5) * 0.05;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
case "folium": {
|
|
215
|
+
const s = -0.5 + Math.random() * 2.5, c = 0.12, y = 1 + Math.pow(s, 3);
|
|
216
|
+
f = 3 * c * s / y, g = 3 * c * s * s / y, w = (Math.random() - 0.5) * 0.05;
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
default:
|
|
220
|
+
if (this.config.uniformity > 0.01) {
|
|
221
|
+
const s = this.particlesPerGroup - 1, c = u - 1, y = Math.acos(1 - 2 * (c + 0.5) / s), F = Math.PI * (1 + Math.sqrt(5)) * (c + 0.5);
|
|
222
|
+
f = Math.cos(F) * Math.sin(y), g = Math.sin(F) * Math.sin(y), w = Math.cos(y);
|
|
223
|
+
const Y = M * (this.config.uniformity + (1 - this.config.uniformity) * Math.random());
|
|
224
|
+
f *= Y, g *= Y, w *= Y;
|
|
225
|
+
} else {
|
|
226
|
+
const s = Math.random() * Math.PI * 2, c = Math.acos(2 * Math.random() - 1), y = Math.random() * M;
|
|
227
|
+
f = Math.sin(c) * Math.cos(s) * y, g = Math.sin(c) * Math.sin(s) * y, w = Math.cos(c) * y;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
const P = f * i - g * l, v = f * l + g * i;
|
|
231
|
+
this.velocities[p * 3 + 0] = P, this.velocities[p * 3 + 1] = v, this.velocities[p * 3 + 2] = w;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
T(this, "resize", () => {
|
|
236
|
+
this.container && (this.renderer.setSize(this.container.offsetWidth, this.container.offsetHeight), this.program.uniforms.uAspect.value = this.container.offsetWidth / this.container.offsetHeight);
|
|
237
|
+
});
|
|
238
|
+
T(this, "update", (r) => {
|
|
239
|
+
this.isPaused || (this.timeStart || (this.timeStart = r), this.animationId = requestAnimationFrame(this.update), this.program.uniforms.uTime.value = (r - this.timeStart) % 1e6 * 1e-3, this.renderer.render({ scene: this.mesh }));
|
|
240
|
+
});
|
|
241
|
+
this.container = r, this.config = { ...t }, this.renderer = new ot({ dpr: 2, alpha: !0 }), this.gl = this.renderer.gl, this.container.appendChild(this.gl.canvas), this.groupCount = this.config.fireworkCount, this.particlesPerGroup = Math.floor(100 * this.config.density), this.totalCount = this.groupCount * this.particlesPerGroup;
|
|
242
|
+
const e = new Float32Array(this.totalCount * 3);
|
|
243
|
+
this.velocities = new Float32Array(this.totalCount * 3);
|
|
244
|
+
const o = new Float32Array(this.totalCount), n = new Float32Array(this.totalCount), i = new Float32Array(this.totalCount);
|
|
245
|
+
this.colors = new Float32Array(this.totalCount * 3), this.isRockets = new Float32Array(this.totalCount);
|
|
246
|
+
for (let l = 0; l < this.groupCount; l++) {
|
|
247
|
+
let u;
|
|
248
|
+
this.config.launchMode === "random" ? u = (Math.random() - 0.5) * 1.8 : u = (l / (this.groupCount - 1) - 0.5) * 1.8;
|
|
249
|
+
const p = -1.1, f = 0.6 + l * 13.57 % 1 * 0.4, g = 1 + Math.random() * 4, w = Ta[Math.floor(Math.random() * Ta.length)];
|
|
250
|
+
this.groupBaseColors.push(w);
|
|
251
|
+
let M;
|
|
252
|
+
if (this.config.launchMode === "burst") {
|
|
253
|
+
const v = Math.max(2, Math.floor(this.groupCount / 6));
|
|
254
|
+
M = Math.floor(l / (this.groupCount / v)) * -this.config.launchInterval - Math.random() * 0.1;
|
|
255
|
+
} else if (this.config.launchMode === "wave")
|
|
256
|
+
M = l / this.groupCount * -this.config.launchInterval;
|
|
257
|
+
else if (this.config.launchMode === "tide") {
|
|
258
|
+
const v = Math.abs(u) / 0.9;
|
|
259
|
+
M = Math.cos(v * Math.PI) * -this.config.launchInterval * 0.5 - this.config.launchInterval * 0.5;
|
|
260
|
+
} else if (this.config.launchMode === "simultaneous")
|
|
261
|
+
M = -this.config.launchInterval;
|
|
262
|
+
else if (this.config.launchMode === "pendulum") {
|
|
263
|
+
const v = l / (this.groupCount - 1);
|
|
264
|
+
M = Math.abs(v * 2 - 1) * -this.config.launchInterval;
|
|
265
|
+
} else
|
|
266
|
+
M = Math.random() * -this.config.launchInterval * 2;
|
|
267
|
+
const P = this.config.colorMode === "single" ? new ba(this.config.color) : w;
|
|
268
|
+
for (let v = 0; v < this.particlesPerGroup; v++) {
|
|
269
|
+
const s = l * this.particlesPerGroup + v;
|
|
270
|
+
e[s * 3 + 0] = u, e[s * 3 + 1] = p, e[s * 3 + 2] = (Math.random() - 0.5) * 0.2, this.isRockets[s] = v === 0 ? 1 : 0, o[s] = M;
|
|
271
|
+
const c = this.config.flightHeight * (1 + (f - 1) * this.config.flightHeightJitter);
|
|
272
|
+
n[s] = c, i[s] = g;
|
|
273
|
+
const y = this.config.colorJitter || 0;
|
|
274
|
+
this.colors[s * 3 + 0] = Math.max(0, Math.min(1, P.r + (Math.random() - 0.5) * y)), this.colors[s * 3 + 1] = Math.max(0, Math.min(1, P.g + (Math.random() - 0.5) * y)), this.colors[s * 3 + 2] = Math.max(0, Math.min(1, P.b + (Math.random() - 0.5) * y));
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
this.updateVelocities(), this.geometry = new it(this.gl, {
|
|
278
|
+
position: { size: 3, data: e },
|
|
279
|
+
velocity: { size: 3, data: this.velocities },
|
|
280
|
+
startTime: { size: 1, data: o },
|
|
281
|
+
burstTime: { size: 1, data: n },
|
|
282
|
+
stayTime: { size: 1, data: i },
|
|
283
|
+
color: { size: 3, data: this.colors },
|
|
284
|
+
isRocket: { size: 1, data: this.isRockets }
|
|
285
|
+
}), this.program = new st(this.gl, {
|
|
286
|
+
vertex: dt,
|
|
287
|
+
fragment: ct,
|
|
288
|
+
uniforms: {
|
|
289
|
+
uTime: { value: 0 },
|
|
290
|
+
uSpeed: { value: this.config.speed },
|
|
291
|
+
uSize: { value: this.config.size },
|
|
292
|
+
uCurvature: { value: this.config.curvature },
|
|
293
|
+
uIsCircular: { value: this.config.shape === "circular" ? 1 : 0 },
|
|
294
|
+
uGravity: { value: this.config.gravity },
|
|
295
|
+
uClusterSize: { value: this.config.clusterSize },
|
|
296
|
+
uAspect: { value: 1 },
|
|
297
|
+
uFlashIntensity: { value: this.config.flashIntensity }
|
|
298
|
+
},
|
|
299
|
+
transparent: !0,
|
|
300
|
+
depthTest: !1,
|
|
301
|
+
depthWrite: !1
|
|
302
|
+
}), this.mesh = new ut(this.gl, { geometry: this.geometry, program: this.program, mode: this.gl.POINTS }), this.resize(), window.addEventListener("resize", this.resize), this.animationId = requestAnimationFrame(this.update);
|
|
303
|
+
}
|
|
304
|
+
updateConfig(r) {
|
|
305
|
+
const t = { ...this.config };
|
|
306
|
+
if (this.config = { ...this.config, ...r }, this.program.uniforms.uSpeed.value = this.config.speed, this.program.uniforms.uSize.value = this.config.size, this.program.uniforms.uCurvature.value = this.config.curvature, this.program.uniforms.uGravity.value = this.config.gravity, this.program.uniforms.uClusterSize.value = this.config.clusterSize, this.program.uniforms.uFlashIntensity.value = this.config.flashIntensity, this.program.uniforms.uIsCircular.value = this.config.shape === "circular" ? 1 : 0, (t.shape !== this.config.shape || t.rotation !== this.config.rotation || t.rotationJitter !== this.config.rotationJitter || t.uniformity !== this.config.uniformity) && (this.updateVelocities(), this.geometry.attributes.velocity.needsUpdate = !0), t.colorMode !== this.config.colorMode || t.color !== this.config.color || t.colorJitter !== this.config.colorJitter) {
|
|
307
|
+
for (let e = 0; e < this.groupCount; e++) {
|
|
308
|
+
const o = this.config.colorMode === "single" ? new ba(this.config.color) : this.groupBaseColors[e];
|
|
309
|
+
for (let n = 0; n < this.particlesPerGroup; n++) {
|
|
310
|
+
const i = e * this.particlesPerGroup + n, l = this.config.colorJitter || 0;
|
|
311
|
+
this.colors[i * 3 + 0] = Math.max(0, Math.min(1, o.r + (Math.random() - 0.5) * l)), this.colors[i * 3 + 1] = Math.max(0, Math.min(1, o.g + (Math.random() - 0.5) * l)), this.colors[i * 3 + 2] = Math.max(0, Math.min(1, o.b + (Math.random() - 0.5) * l));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
this.geometry.attributes.color.needsUpdate = !0;
|
|
315
|
+
}
|
|
316
|
+
if (t.launchMode !== this.config.launchMode || t.launchInterval !== this.config.launchInterval) {
|
|
317
|
+
this.timeStart = 0;
|
|
318
|
+
const e = this.geometry.attributes.position.data, o = this.geometry.attributes.startTime.data;
|
|
319
|
+
for (let n = 0; n < this.groupCount; n++) {
|
|
320
|
+
let i;
|
|
321
|
+
this.config.launchMode === "random" ? i = (Math.random() - 0.5) * 1.8 : i = (n / (this.groupCount - 1) - 0.5) * 1.8;
|
|
322
|
+
let l;
|
|
323
|
+
if (this.config.launchMode === "burst") {
|
|
324
|
+
const u = Math.max(2, Math.floor(this.groupCount / 6));
|
|
325
|
+
l = Math.floor(n / (this.groupCount / u)) * -this.config.launchInterval - Math.random() * 0.1;
|
|
326
|
+
} else if (this.config.launchMode === "wave")
|
|
327
|
+
l = n / this.groupCount * -this.config.launchInterval;
|
|
328
|
+
else if (this.config.launchMode === "tide") {
|
|
329
|
+
const u = Math.abs(i) / 0.9;
|
|
330
|
+
l = Math.cos(u * Math.PI) * -this.config.launchInterval * 0.5 - this.config.launchInterval * 0.5;
|
|
331
|
+
} else if (this.config.launchMode === "simultaneous")
|
|
332
|
+
l = -this.config.launchInterval;
|
|
333
|
+
else if (this.config.launchMode === "pendulum") {
|
|
334
|
+
const u = n / (this.groupCount - 1);
|
|
335
|
+
l = Math.abs(u * 2 - 1) * -this.config.launchInterval;
|
|
336
|
+
} else
|
|
337
|
+
l = Math.random() * -this.config.launchInterval * 2;
|
|
338
|
+
for (let u = 0; u < this.particlesPerGroup; u++) {
|
|
339
|
+
const p = n * this.particlesPerGroup + u;
|
|
340
|
+
e[p * 3 + 0] = i, o[p] = l;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
this.geometry.attributes.position.needsUpdate = !0, this.geometry.attributes.startTime.needsUpdate = !0;
|
|
344
|
+
}
|
|
345
|
+
if (t.flightHeight !== this.config.flightHeight || t.flightHeightJitter !== this.config.flightHeightJitter) {
|
|
346
|
+
const e = this.geometry.attributes.burstTime.data;
|
|
347
|
+
for (let o = 0; o < this.groupCount; o++) {
|
|
348
|
+
const n = 0.6 + o * 13.57 % 1 * 0.4, i = this.config.flightHeight * (1 + (n - 1) * this.config.flightHeightJitter);
|
|
349
|
+
for (let l = 0; l < this.particlesPerGroup; l++) {
|
|
350
|
+
const u = o * this.particlesPerGroup + l;
|
|
351
|
+
e[u] = i;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
this.geometry.attributes.burstTime.needsUpdate = !0;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
pause() {
|
|
358
|
+
this.isPaused = !0, this.animationId && (cancelAnimationFrame(this.animationId), this.animationId = 0);
|
|
359
|
+
}
|
|
360
|
+
resume() {
|
|
361
|
+
this.isPaused && (this.isPaused = !1, this.animationId = requestAnimationFrame(this.update));
|
|
362
|
+
}
|
|
363
|
+
restart() {
|
|
364
|
+
this.timeStart = 0, this.isPaused && this.resume();
|
|
365
|
+
}
|
|
366
|
+
destroy() {
|
|
367
|
+
var r;
|
|
368
|
+
this.pause(), window.removeEventListener("resize", this.resize), this.container.contains(this.gl.canvas) && this.container.removeChild(this.gl.canvas), (r = this.gl.getExtension("WEBGL_lose_context")) == null || r.loseContext();
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
(function() {
|
|
372
|
+
try {
|
|
373
|
+
if (typeof document < "u") {
|
|
374
|
+
var a = document.createElement("style");
|
|
375
|
+
a.appendChild(document.createTextNode(`[data-v-518e4603],[data-v-518e4603]:before,[data-v-518e4603]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-518e4603]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-none[data-v-518e4603]{pointer-events:none}.h-1\\.5[data-v-518e4603]{height:.375rem}.w-full[data-v-518e4603]{width:100%}.flex[data-v-518e4603]{display:flex}.flex-col[data-v-518e4603]{flex-direction:column}.cursor-pointer[data-v-518e4603]{cursor:pointer}.appearance-none[data-v-518e4603]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.items-center[data-v-518e4603]{align-items:center}.justify-between[data-v-518e4603]{justify-content:space-between}.gap-3[data-v-518e4603]{gap:.75rem}.border[data-v-518e4603]{border-width:1px}.border-white\\/5[data-v-518e4603]{border-color:#ffffff0d}.rounded-full[data-v-518e4603]{border-radius:9999px}.bg-white\\/5[data-v-518e4603]{background-color:#ffffff0d}.hover\\:bg-white\\/10[data-v-518e4603]:hover{background-color:#ffffff1a}.px-1[data-v-518e4603]{padding-left:.25rem;padding-right:.25rem}.text-\\[10px\\][data-v-518e4603]{font-size:10px}.text-\\[11px\\][data-v-518e4603]{font-size:11px}.text-white\\/20[data-v-518e4603]{color:#fff3}.text-white\\/40[data-v-518e4603],.group\\/item:hover .group-hover\\/item\\:text-white\\/40[data-v-518e4603]{color:#fff6}.group\\/item:hover .group-hover\\/item\\:text-blue-400[data-v-518e4603]{--un-text-opacity:1;color:rgb(96 165 250 / var(--un-text-opacity))}.font-black[data-v-518e4603]{font-weight:900}.font-bold[data-v-518e4603]{font-weight:700}.tracking-\\[0\\.2em\\][data-v-518e4603]{letter-spacing:.2em}.font-mono[data-v-518e4603]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-518e4603]{text-transform:uppercase}.accent-blue-500[data-v-518e4603]{--un-accent-opacity:1;accent-color:rgb(59 130 246 / var(--un-accent-opacity))}.opacity-50[data-v-518e4603]{opacity:.5}.transition-all[data-v-518e4603]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-518e4603]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-eebdf2f8],[data-v-eebdf2f8]:before,[data-v-eebdf2f8]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-eebdf2f8]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-none[data-v-eebdf2f8]{pointer-events:none}.absolute[data-v-eebdf2f8]{position:absolute}.relative[data-v-eebdf2f8]{position:relative}.inset-0[data-v-eebdf2f8]{top:0;right:0;bottom:0;left:0}.h-\\[150\\%\\][data-v-eebdf2f8]{height:150%}.h-10[data-v-eebdf2f8]{height:2.5rem}.w-\\[150\\%\\][data-v-eebdf2f8]{width:150%}.w-10[data-v-eebdf2f8]{width:2.5rem}.flex[data-v-eebdf2f8]{display:flex}.flex-col[data-v-eebdf2f8]{flex-direction:column}.-translate-x-1\\/4[data-v-eebdf2f8]{--un-translate-x:-25%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.-translate-y-1\\/4[data-v-eebdf2f8]{--un-translate-y:-25%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.scale-125[data-v-eebdf2f8]{--un-scale-x:1.25;--un-scale-y:1.25;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-eebdf2f8]{cursor:pointer}.items-center[data-v-eebdf2f8]{align-items:center}.gap-3[data-v-eebdf2f8]{gap:.75rem}.gap-4[data-v-eebdf2f8]{gap:1rem}.overflow-hidden[data-v-eebdf2f8]{overflow:hidden}.border[data-v-eebdf2f8]{border-width:1px}.border-white\\/10[data-v-eebdf2f8]{border-color:#ffffff1a}.border-white\\/5[data-v-eebdf2f8]{border-color:#ffffff0d}.hover\\:border-white\\/20[data-v-eebdf2f8]:hover{border-color:#fff3}.rounded-lg[data-v-eebdf2f8]{border-radius:.5rem}.bg-white\\/5[data-v-eebdf2f8]{background-color:#ffffff0d}.px-1[data-v-eebdf2f8]{padding-left:.25rem;padding-right:.25rem}.px-3[data-v-eebdf2f8]{padding-left:.75rem;padding-right:.75rem}.py-1\\.5[data-v-eebdf2f8]{padding-top:.375rem;padding-bottom:.375rem}.text-\\[10px\\][data-v-eebdf2f8]{font-size:10px}.text-xs[data-v-eebdf2f8]{font-size:.75rem;line-height:1rem}.text-white\\/20[data-v-eebdf2f8]{color:#fff3}.text-white\\/40[data-v-eebdf2f8]{color:#fff6}.font-bold[data-v-eebdf2f8]{font-weight:700}.tracking-\\[0\\.2em\\][data-v-eebdf2f8]{letter-spacing:.2em}.font-mono[data-v-eebdf2f8]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-eebdf2f8]{text-transform:uppercase}.opacity-50[data-v-eebdf2f8]{opacity:.5}.shadow-lg[data-v-eebdf2f8]{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.transition-all[data-v-eebdf2f8]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.select-control[data-v-b022a6dd]{display:flex;flex-direction:column;gap:var(--spacing-sm);transition:var(--transition-base)}.select-control.is-disabled[data-v-b022a6dd]{opacity:var(--opacity-disabled);pointer-events:none}.select-label[data-v-b022a6dd]{padding:0 var(--spacing-xs)}.select-input[data-v-b022a6dd]{width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-color-base);background:#ffffff0d;color:#ffffffe6;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-all);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='rgba(255,255,255,0.6)' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm) center;padding-right:calc(var(--spacing-md) + 16px)}.select-input[data-v-b022a6dd]:hover{background-color:#ffffff1a;border-color:var(--border-color-hover)}.select-input[data-v-b022a6dd]:focus{outline:none;border-color:var(--border-color-focus);box-shadow:0 0 0 3px #3b82f61a}.select-input option[data-v-b022a6dd]{background:#000000f2;color:#fff;padding:var(--spacing-sm)}[data-v-b022a6dd],[data-v-b022a6dd]:before,[data-v-b022a6dd]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-b022a6dd]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.flex[data-v-b022a6dd]{display:flex}.border[data-v-b022a6dd]{border-width:1px}.outline[data-v-b022a6dd]{outline-style:solid}.transition[data-v-b022a6dd]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-abada5c9],[data-v-abada5c9]:before,[data-v-abada5c9]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-abada5c9]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-none[data-v-abada5c9]{pointer-events:none}.flex[data-v-abada5c9]{display:flex}.flex-1[data-v-abada5c9]{flex:1 1 0%}.flex-row[data-v-abada5c9]{flex-direction:row}.flex-col[data-v-abada5c9]{flex-direction:column}.cursor-pointer[data-v-abada5c9]{cursor:pointer}.cursor-not-allowed[data-v-abada5c9]{cursor:not-allowed}.gap-2[data-v-abada5c9]{gap:.5rem}.gap-3[data-v-abada5c9]{gap:.75rem}.truncate[data-v-abada5c9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border[data-v-abada5c9]{border-width:1px}.border-blue-400\\/50[data-v-abada5c9]{border-color:#60a5fa80}.border-white\\/5[data-v-abada5c9]{border-color:#ffffff0d}.rounded-lg[data-v-abada5c9]{border-radius:.5rem}.bg-blue-600[data-v-abada5c9]{--un-bg-opacity:1;background-color:rgb(37 99 235 / var(--un-bg-opacity))}.bg-white\\/\\[0\\.03\\][data-v-abada5c9]{background-color:#ffffff08}.hover\\:bg-white\\/10[data-v-abada5c9]:hover{background-color:#ffffff1a}.px-1[data-v-abada5c9]{padding-left:.25rem;padding-right:.25rem}.py-2\\.5[data-v-abada5c9]{padding-top:.625rem;padding-bottom:.625rem}.text-\\[10px\\][data-v-abada5c9]{font-size:10px}.text-\\[8px\\][data-v-abada5c9]{font-size:8px}.text-white[data-v-abada5c9]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-white\\/20[data-v-abada5c9]{color:#fff3}.text-white\\/25[data-v-abada5c9]{color:#ffffff40}.hover\\:text-white\\/60[data-v-abada5c9]:hover{color:#fff9}.font-bold[data-v-abada5c9]{font-weight:700}.tracking-\\[0\\.2em\\][data-v-abada5c9]{letter-spacing:.2em}.uppercase[data-v-abada5c9]{text-transform:uppercase}.opacity-50[data-v-abada5c9]{opacity:.5}.shadow-sm[data-v-abada5c9]{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-1[data-v-abada5c9]{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-blue-400\\/30[data-v-abada5c9]{--un-ring-color:rgb(96 165 250 / .3) }.transition-all[data-v-abada5c9]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-2fc0bb08],[data-v-2fc0bb08]:before,[data-v-2fc0bb08]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-2fc0bb08]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-none[data-v-2fc0bb08]{pointer-events:none}.absolute[data-v-2fc0bb08]{position:absolute}.relative[data-v-2fc0bb08]{position:relative}.inset-\\[2px\\][data-v-2fc0bb08]{top:2px;right:2px;bottom:2px;left:2px}.inset-0[data-v-2fc0bb08]{top:0;right:0;bottom:0;left:0}.left-\\[2px\\][data-v-2fc0bb08]{left:2px}.top-\\[2px\\][data-v-2fc0bb08]{top:2px}.h-5[data-v-2fc0bb08]{height:1.25rem}.h-6[data-v-2fc0bb08]{height:1.5rem}.w-11[data-v-2fc0bb08]{width:2.75rem}.w-5[data-v-2fc0bb08]{width:1.25rem}.flex[data-v-2fc0bb08]{display:flex}.translate-x-0[data-v-2fc0bb08]{--un-translate-x:0;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.translate-x-5[data-v-2fc0bb08]{--un-translate-x:1.25rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-2fc0bb08]{cursor:pointer}.items-center[data-v-2fc0bb08]{align-items:center}.justify-center[data-v-2fc0bb08]{justify-content:center}.justify-between[data-v-2fc0bb08]{justify-content:space-between}.border[data-v-2fc0bb08]{border-width:1px}.border-0[data-v-2fc0bb08]{border-width:0px}.border-white\\/10[data-v-2fc0bb08]{border-color:#ffffff1a}.rounded-full[data-v-2fc0bb08]{border-radius:9999px}.bg-white[data-v-2fc0bb08]{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.bg-white\\/10[data-v-2fc0bb08]{background-color:#ffffff1a}.hover\\:bg-white\\/15[data-v-2fc0bb08]:hover{background-color:#ffffff26}.from-blue-500[data-v-2fc0bb08]{--un-gradient-from-position:0%;--un-gradient-from:rgb(59 130 246 / var(--un-from-opacity, 1)) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(59 130 246 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-white[data-v-2fc0bb08]{--un-gradient-from-position:0%;--un-gradient-from:rgb(255 255 255 / var(--un-from-opacity, 1)) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.to-blue-600[data-v-2fc0bb08]{--un-gradient-to-position:100%;--un-gradient-to:rgb(37 99 235 / var(--un-to-opacity, 1)) var(--un-gradient-to-position)}.to-gray-100[data-v-2fc0bb08]{--un-gradient-to-position:100%;--un-gradient-to:rgb(243 244 246 / var(--un-to-opacity, 1)) var(--un-gradient-to-position)}.bg-gradient-to-br[data-v-2fc0bb08]{--un-gradient-shape:to bottom right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-r[data-v-2fc0bb08]{--un-gradient-shape:to right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.px-1[data-v-2fc0bb08]{padding-left:.25rem;padding-right:.25rem}.py-2[data-v-2fc0bb08]{padding-top:.5rem;padding-bottom:.5rem}.text-\\[10px\\][data-v-2fc0bb08]{font-size:10px}.text-white\\/20[data-v-2fc0bb08]{color:#fff3}.group\\/item:hover .group-hover\\/item\\:text-white\\/40[data-v-2fc0bb08]{color:#fff6}.font-bold[data-v-2fc0bb08]{font-weight:700}.tracking-\\[0\\.2em\\][data-v-2fc0bb08]{letter-spacing:.2em}.uppercase[data-v-2fc0bb08]{text-transform:uppercase}.opacity-50[data-v-2fc0bb08]{opacity:.5}.shadow-blue-500\\/30[data-v-2fc0bb08]{--un-shadow-color:rgb(59 130 246 / .3) }.shadow-inner[data-v-2fc0bb08]{--un-shadow:inset 0 2px 4px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-lg[data-v-2fc0bb08]{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.backdrop-blur-md[data-v-2fc0bb08]{--un-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all[data-v-2fc0bb08]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-2fc0bb08]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300[data-v-2fc0bb08]{transition-duration:.3s}[data-v-994f0c5c],[data-v-994f0c5c]:before,[data-v-994f0c5c]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-994f0c5c]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.absolute[data-v-994f0c5c]{position:absolute}.relative[data-v-994f0c5c]{position:relative}.inset-0[data-v-994f0c5c]{top:0;right:0;bottom:0;left:0}.z-10[data-v-994f0c5c]{z-index:10}.grid[data-v-994f0c5c]{display:grid}.flex[data-v-994f0c5c]{display:flex}.flex-1[data-v-994f0c5c]{flex:1 1 0%}.cursor-pointer[data-v-994f0c5c]{cursor:pointer}.gap-1[data-v-994f0c5c]{gap:.25rem}.overflow-hidden[data-v-994f0c5c]{overflow:hidden}.border[data-v-994f0c5c]{border-width:1px}.border-white\\/5[data-v-994f0c5c]{border-color:#ffffff0d}.border-white\\/8[data-v-994f0c5c]{border-color:#ffffff14}.rounded-lg[data-v-994f0c5c]{border-radius:.5rem}.rounded-xl[data-v-994f0c5c]{border-radius:.75rem}.bg-white\\/\\[0\\.04\\][data-v-994f0c5c]{background-color:#ffffff0a}.hover\\:bg-white\\/10[data-v-994f0c5c]:hover{background-color:#ffffff1a}.from-black\\/40[data-v-994f0c5c]{--un-gradient-from-position:0%;--un-gradient-from:rgb(0 0 0 / .4) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(0 0 0 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-blue-400\\/10[data-v-994f0c5c]{--un-gradient-from-position:0%;--un-gradient-from:rgb(96 165 250 / .1) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(96 165 250 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-blue-500[data-v-994f0c5c]{--un-gradient-from-position:0%;--un-gradient-from:rgb(59 130 246 / var(--un-from-opacity, 1)) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(59 130 246 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-blue-500\\/5[data-v-994f0c5c]{--un-gradient-from-position:0%;--un-gradient-from:rgb(59 130 246 / .05) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(59 130 246 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-white\\/25[data-v-994f0c5c]{--un-gradient-from-position:0%;--un-gradient-from:rgb(255 255 255 / .25) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.via-purple-500\\/5[data-v-994f0c5c]{--un-gradient-via-position:50%;--un-gradient-to:rgb(168 85 247 / 0);--un-gradient-stops:var(--un-gradient-from), rgb(168 85 247 / .05) var(--un-gradient-via-position), var(--un-gradient-to)}.via-transparent[data-v-994f0c5c]{--un-gradient-via-position:50%;--un-gradient-to:rgb(255 255 255 / 0);--un-gradient-stops:var(--un-gradient-from), transparent var(--un-gradient-via-position), var(--un-gradient-to)}.to-black\\/20[data-v-994f0c5c]{--un-gradient-to-position:100%;--un-gradient-to:rgb(0 0 0 / .2) var(--un-gradient-to-position)}.to-blue-500\\/5[data-v-994f0c5c]{--un-gradient-to-position:100%;--un-gradient-to:rgb(59 130 246 / .05) var(--un-gradient-to-position)}.to-blue-600[data-v-994f0c5c]{--un-gradient-to-position:100%;--un-gradient-to:rgb(37 99 235 / var(--un-to-opacity, 1)) var(--un-gradient-to-position)}.to-transparent[data-v-994f0c5c]{--un-gradient-to-position:100%;--un-gradient-to:transparent var(--un-gradient-to-position)}.bg-gradient-to-b[data-v-994f0c5c]{--un-gradient-shape:to bottom in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-br[data-v-994f0c5c]{--un-gradient-shape:to bottom right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-r[data-v-994f0c5c]{--un-gradient-shape:to right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-t[data-v-994f0c5c]{--un-gradient-shape:to top in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.p-1[data-v-994f0c5c]{padding:.25rem}.py-2[data-v-994f0c5c]{padding-top:.5rem;padding-bottom:.5rem}.text-\\[9px\\][data-v-994f0c5c]{font-size:9px}.text-white[data-v-994f0c5c]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-white\\/45[data-v-994f0c5c]{color:#ffffff73}.hover\\:text-white\\/80[data-v-994f0c5c]:hover{color:#fffc}.font-black[data-v-994f0c5c]{font-weight:900}.tracking-\\[0\\.12em\\][data-v-994f0c5c]{letter-spacing:.12em}.uppercase[data-v-994f0c5c]{text-transform:uppercase}.tab[data-v-994f0c5c]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.opacity-0[data-v-994f0c5c]{opacity:0}.opacity-50[data-v-994f0c5c]{opacity:.5}.group:hover .group-hover\\:opacity-100[data-v-994f0c5c]{opacity:1}.shadow-blue-500\\/20[data-v-994f0c5c]{--un-shadow-color:rgb(59 130 246 / .2) }.shadow-lg[data-v-994f0c5c]{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-md[data-v-994f0c5c]{--un-shadow:var(--un-shadow-inset) 0 4px 6px -1px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 2px 4px -2px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.backdrop-blur-md[data-v-994f0c5c]{--un-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all[data-v-994f0c5c]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity[data-v-994f0c5c]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300[data-v-994f0c5c]{transition-duration:.3s}.panel-container[data-v-37c62bcb]{width:100%;color:#fff}.panel-header[data-v-37c62bcb]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:var(--border-width) solid var(--border-color-base)}.panel-header.collapsible[data-v-37c62bcb]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-base)}.panel-header.collapsible[data-v-37c62bcb]:hover{background:#ffffff08}.panel-title[data-v-37c62bcb]{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#ffffffe6}.collapse-icon[data-v-37c62bcb]{font-size:var(--font-size-xs);color:#ffffff80;transition:transform var(--transition-base)}.collapse-icon.collapsed[data-v-37c62bcb]{transform:rotate(-90deg)}.panel-content[data-v-37c62bcb]{padding:var(--spacing-md)}[data-v-37c62bcb],[data-v-37c62bcb]:before,[data-v-37c62bcb]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-37c62bcb]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.flex[data-v-37c62bcb]{display:flex}.transform[data-v-37c62bcb]{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transition[data-v-37c62bcb]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.section-container[data-v-997297d7]{display:flex;flex-direction:column}.gap-2[data-v-997297d7]{gap:var(--spacing-sm)}.gap-4[data-v-997297d7]{gap:var(--spacing-md)}.gap-6[data-v-997297d7]{gap:var(--spacing-lg)}.section-title[data-v-997297d7]{padding:0 var(--spacing-xs);margin:0}.section-content[data-v-997297d7]{display:flex;flex-direction:column;gap:inherit}[data-v-997297d7],[data-v-997297d7]:before,[data-v-997297d7]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-997297d7]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.flex[data-v-997297d7]{display:flex}.gap-2[data-v-997297d7]{gap:.5rem}.gap-4[data-v-997297d7]{gap:1rem}.gap-6[data-v-997297d7]{gap:1.5rem}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-active: #1d4ed8;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #06b6d4;--opacity-disabled: .4;--opacity-secondary: .6;--opacity-tertiary: .3;--opacity-primary: .9;--opacity-full: 1;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--border-width: 1px;--border-color-base: rgba(255, 255, 255, .05);--border-color-hover: rgba(255, 255, 255, .2);--border-color-focus: rgba(59, 130, 246, .5);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-all: all var(--transition-base);--font-size-xs: .625rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--letter-spacing-wider: .1em;--letter-spacing-widest: .2em;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}.control-base{border-radius:var(--radius-md);transition:var(--transition-all);border:var(--border-width) solid var(--border-color-base);background:#ffffff08}.control-hover:hover{background:#ffffff1a;border-color:var(--border-color-hover)}.control-focus:focus{outline:none;border-color:var(--border-color-focus);box-shadow:0 0 0 3px #3b82f61a}.control-disabled{opacity:var(--opacity-disabled);cursor:not-allowed;pointer-events:none}.label-base{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:rgba(255,255,255,var(--opacity-secondary))}.label-primary{color:rgba(255,255,255,var(--opacity-primary))}.value-display{font-size:var(--font-size-sm);font-weight:var(--font-weight-black);font-family:ui-monospace,monospace;color:rgba(255,255,255,var(--opacity-secondary))}.value-display-active{color:var(--color-primary)}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-col-gap{display:flex;flex-direction:column;gap:var(--spacing-sm)}.btn-base{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-color-base);background:#ffffff08;color:#fff9;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);cursor:pointer;transition:var(--transition-all);text-align:center}.btn-base:hover:not(:disabled){background:#ffffff1a;color:#ffffffe6}.btn-primary{background:var(--color-primary);color:#fff;border-color:#3b82f680}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-active{background:var(--color-primary);color:#fff;border-color:#3b82f680;box-shadow:0 0 0 1px #3b82f64d}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#fff3;border-radius:var(--radius-full)}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.input-base{width:100%;padding:var(--spacing-sm);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-color-base);background:#ffffff0d;color:#fff;font-size:var(--font-size-sm);transition:var(--transition-all)}.input-base:hover{background:#ffffff14;border-color:var(--border-color-hover)}.input-base:focus{outline:none;background:#ffffff1a;border-color:var(--border-color-focus)}.panel-base{background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);border:var(--border-width) solid var(--border-color-base);box-shadow:var(--shadow-xl)}.panel-header{padding:var(--spacing-md);border-bottom:var(--border-width) solid var(--border-color-base);cursor:move}.panel-content{padding:var(--spacing-md)}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#3b82f64d;color:#fff}`)), document.head.appendChild(a);
|
|
376
|
+
}
|
|
377
|
+
} catch (r) {
|
|
378
|
+
console.error("vite-plugin-css-injected-by-js", r);
|
|
379
|
+
}
|
|
380
|
+
})();
|
|
381
|
+
function j(a, r, t = 2) {
|
|
382
|
+
const e = Math.random() * (r - a) + a;
|
|
383
|
+
return Number(e.toFixed(t));
|
|
384
|
+
}
|
|
385
|
+
const lt = (a, r) => {
|
|
386
|
+
const t = a.__vccOpts || a;
|
|
387
|
+
for (const [e, o] of r)
|
|
388
|
+
t[e] = o;
|
|
389
|
+
return t;
|
|
390
|
+
}, pt = ["onClick"], ft = {
|
|
391
|
+
key: 0,
|
|
392
|
+
class: "absolute inset-0 bg-gradient-to-br from-white/25 via-transparent to-transparent"
|
|
393
|
+
}, bt = { class: "relative z-10" }, gt = /* @__PURE__ */ Z({
|
|
394
|
+
__name: "SubTabs",
|
|
395
|
+
props: {
|
|
396
|
+
tabs: {},
|
|
397
|
+
modelValue: {},
|
|
398
|
+
rows: {},
|
|
399
|
+
className: {}
|
|
400
|
+
},
|
|
401
|
+
emits: ["update:modelValue"],
|
|
402
|
+
setup(a, { emit: r }) {
|
|
403
|
+
const t = a, e = r, o = B(() => {
|
|
404
|
+
const u = Math.floor(t.rows || 1);
|
|
405
|
+
return u > 1 ? u : 1;
|
|
406
|
+
}), n = B(() => {
|
|
407
|
+
const u = o.value;
|
|
408
|
+
return u > 1 ? Math.ceil(t.tabs.length / u) : 0;
|
|
409
|
+
}), i = B(() => {
|
|
410
|
+
if (!(o.value <= 1))
|
|
411
|
+
return {
|
|
412
|
+
gridTemplateColumns: `repeat(${n.value}, minmax(0, 1fr))`
|
|
413
|
+
};
|
|
414
|
+
}), l = (u) => {
|
|
415
|
+
e("update:modelValue", u);
|
|
416
|
+
};
|
|
417
|
+
return (u, p) => (x(), I("div", {
|
|
418
|
+
class: U(["p-1 bg-gradient-to-b from-black/40 to-black/20 rounded-xl border border-white/8 shadow-lg backdrop-blur-md relative overflow-hidden", a.className])
|
|
419
|
+
}, [
|
|
420
|
+
p[1] || (p[1] = d("div", { class: "absolute inset-0 bg-gradient-to-r from-blue-500/5 via-purple-500/5 to-blue-500/5 opacity-50" }, null, -1)),
|
|
421
|
+
d("div", {
|
|
422
|
+
class: U(["relative z-10 gap-1", o.value > 1 ? "grid" : "flex"]),
|
|
423
|
+
style: Fa(i.value)
|
|
424
|
+
}, [
|
|
425
|
+
(x(!0), I(Q, null, ia(a.tabs, (f) => (x(), I("button", {
|
|
426
|
+
key: f.id,
|
|
427
|
+
class: U(["py-2 text-[9px] font-black uppercase tracking-[0.12em] rounded-lg transition-all duration-300 cursor-pointer relative overflow-hidden group", [
|
|
428
|
+
o.value > 1 ? "" : "flex-1",
|
|
429
|
+
a.modelValue === f.id ? "bg-gradient-to-br from-blue-500 to-blue-600 text-white shadow-md shadow-blue-500/20" : "bg-white/[0.04] text-white/45 hover:text-white/80 hover:bg-white/10 border border-white/5"
|
|
430
|
+
]]),
|
|
431
|
+
onClick: (g) => l(f.id)
|
|
432
|
+
}, [
|
|
433
|
+
a.modelValue === f.id ? (x(), I("div", ft)) : V("", !0),
|
|
434
|
+
d("span", bt, C(f.label), 1),
|
|
435
|
+
p[0] || (p[0] = d("div", { class: "absolute inset-0 bg-gradient-to-t from-blue-400/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300" }, null, -1))
|
|
436
|
+
], 10, pt))), 128))
|
|
437
|
+
], 6)
|
|
438
|
+
], 2));
|
|
439
|
+
}
|
|
440
|
+
}), xn = /* @__PURE__ */ lt(gt, [["__scopeId", "data-v-994f0c5c"]]), q = {
|
|
441
|
+
id: "fireworks",
|
|
442
|
+
name: {
|
|
443
|
+
en: "Fireworks",
|
|
444
|
+
"zh-CN": "烟花"
|
|
445
|
+
},
|
|
446
|
+
category: "special",
|
|
447
|
+
version: "1.0.0",
|
|
448
|
+
defaultConfig: {
|
|
449
|
+
debug: !1,
|
|
450
|
+
lang: "zh-CN",
|
|
451
|
+
fireworkCount: 30,
|
|
452
|
+
speed: 1,
|
|
453
|
+
size: 2,
|
|
454
|
+
curvature: 0,
|
|
455
|
+
shape: "normal",
|
|
456
|
+
launchMode: "random",
|
|
457
|
+
density: 1,
|
|
458
|
+
colorMode: "multi",
|
|
459
|
+
color: "#ff0000",
|
|
460
|
+
gravity: 0.5,
|
|
461
|
+
clusterSize: 3,
|
|
462
|
+
flightHeight: 1,
|
|
463
|
+
uniformity: 0.5,
|
|
464
|
+
flashIntensity: 1,
|
|
465
|
+
flashOpacity: 0.5,
|
|
466
|
+
launchInterval: 3,
|
|
467
|
+
flightHeightJitter: 0.2,
|
|
468
|
+
rotation: 0,
|
|
469
|
+
rotationJitter: 0,
|
|
470
|
+
colorJitter: 0.2
|
|
471
|
+
},
|
|
472
|
+
randomize: (a, r) => {
|
|
473
|
+
const t = { ...a };
|
|
474
|
+
if (r) {
|
|
475
|
+
if (r === "general")
|
|
476
|
+
t.fireworkCount = j(10, 60, 0), t.density = j(0.5, 3), t.clusterSize = j(1, 8), t.gravity = j(0, 1.5);
|
|
477
|
+
else if (r === "shape") {
|
|
478
|
+
const e = ["normal", "circular", "heart", "star", "butterfly", "spiral", "ring", "doubleRing", "atom", "trefoil", "clover", "cross", "saturn", "hexagram", "astroid", "gear", "fermat", "folium"];
|
|
479
|
+
t.shape = e[Math.floor(Math.random() * e.length)], t.rotation = j(0, 360, 0), t.rotationJitter = j(0, 1);
|
|
480
|
+
} else if (r === "launch") {
|
|
481
|
+
const e = ["random", "burst", "wave", "tide", "simultaneous", "pendulum"];
|
|
482
|
+
t.launchMode = e[Math.floor(Math.random() * e.length)], t.launchInterval = j(1, 10);
|
|
483
|
+
} else if (r === "visual") {
|
|
484
|
+
t.speed = j(0.5, 2), t.flashIntensity = j(0.5, 2.5), t.flashOpacity = j(0.1, 1);
|
|
485
|
+
const e = ["single", "multi"];
|
|
486
|
+
if (t.colorMode = e[Math.floor(Math.random() * e.length)], t.colorMode === "single") {
|
|
487
|
+
const o = ["#ff3333", "#ff5500", "#ffcc00", "#ffff33", "#33ff33", "#00ffcc", "#33ffff", "#3333ff", "#7733ff", "#ff33ff"];
|
|
488
|
+
t.color = o[Math.floor(Math.random() * o.length)];
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
} else {
|
|
492
|
+
t.fireworkCount = j(10, 60, 0), t.density = j(0.5, 3), t.clusterSize = j(1, 8), t.gravity = j(0, 1.5);
|
|
493
|
+
const e = ["normal", "circular", "heart", "star", "butterfly", "spiral", "ring", "doubleRing", "atom", "trefoil", "clover", "cross", "saturn", "hexagram", "astroid", "gear", "fermat", "folium"];
|
|
494
|
+
t.shape = e[Math.floor(Math.random() * e.length)], t.rotation = j(0, 360, 0), t.rotationJitter = j(0, 1);
|
|
495
|
+
const o = ["random", "burst", "wave", "tide", "simultaneous", "pendulum"];
|
|
496
|
+
t.launchMode = o[Math.floor(Math.random() * o.length)], t.launchInterval = j(1, 10), t.speed = j(0.5, 2), t.flashIntensity = j(0.5, 2.5), t.flashOpacity = j(0.1, 1);
|
|
497
|
+
const n = ["single", "multi"];
|
|
498
|
+
if (t.colorMode = n[Math.floor(Math.random() * n.length)], t.colorMode === "single") {
|
|
499
|
+
const i = ["#ff3333", "#ff5500", "#ffcc00", "#ffff33", "#33ff33", "#00ffcc", "#33ffff", "#3333ff", "#7733ff", "#ff33ff"];
|
|
500
|
+
t.color = i[Math.floor(Math.random() * i.length)];
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
return t;
|
|
504
|
+
},
|
|
505
|
+
presets: [
|
|
506
|
+
{
|
|
507
|
+
id: "midnight-bloom",
|
|
508
|
+
name: { en: "Midnight Bloom", "zh-CN": "午夜盛放" },
|
|
509
|
+
config: { fireworkCount: 30, speed: 1.2, size: 1.2, launchInterval: 3, colorMode: "multi", shape: "circular" }
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
id: "golden-rain",
|
|
513
|
+
name: { en: "Golden Rain", "zh-CN": "金色雨露" },
|
|
514
|
+
config: { fireworkCount: 25, speed: 0.8, size: 1.5, launchInterval: 4, colorMode: "single", color: "#ffcc00", shape: "normal", gravity: 0.5 }
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
id: "rapid-sequence",
|
|
518
|
+
name: { en: "Rapid Sequence", "zh-CN": "连环发射" },
|
|
519
|
+
config: { fireworkCount: 15, speed: 1.5, size: 1.8, launchInterval: 1, shape: "random", lanuchMode: "random", colorMode: "multi", density: 2 }
|
|
520
|
+
}
|
|
521
|
+
]
|
|
522
|
+
};
|
|
523
|
+
/**
|
|
524
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
525
|
+
*
|
|
526
|
+
* This source code is licensed under the ISC license.
|
|
527
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
528
|
+
*/
|
|
529
|
+
const vt = (a) => a.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
530
|
+
/**
|
|
531
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
532
|
+
*
|
|
533
|
+
* This source code is licensed under the ISC license.
|
|
534
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
535
|
+
*/
|
|
536
|
+
var ea = {
|
|
537
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
538
|
+
width: 24,
|
|
539
|
+
height: 24,
|
|
540
|
+
viewBox: "0 0 24 24",
|
|
541
|
+
fill: "none",
|
|
542
|
+
stroke: "currentColor",
|
|
543
|
+
"stroke-width": 2,
|
|
544
|
+
"stroke-linecap": "round",
|
|
545
|
+
"stroke-linejoin": "round"
|
|
546
|
+
};
|
|
547
|
+
/**
|
|
548
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
549
|
+
*
|
|
550
|
+
* This source code is licensed under the ISC license.
|
|
551
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
552
|
+
*/
|
|
553
|
+
const ht = ({ size: a, strokeWidth: r = 2, absoluteStrokeWidth: t, color: e, iconNode: o, name: n, class: i, ...l }, { slots: u }) => pa(
|
|
554
|
+
"svg",
|
|
555
|
+
{
|
|
556
|
+
...ea,
|
|
557
|
+
width: a || ea.width,
|
|
558
|
+
height: a || ea.height,
|
|
559
|
+
stroke: e || ea.stroke,
|
|
560
|
+
"stroke-width": t ? Number(r) * 24 / Number(a) : r,
|
|
561
|
+
class: ["lucide", `lucide-${vt(n ?? "icon")}`],
|
|
562
|
+
...l
|
|
563
|
+
},
|
|
564
|
+
[...o.map((p) => pa(...p)), ...u.default ? [u.default()] : []]
|
|
565
|
+
);
|
|
566
|
+
/**
|
|
567
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
568
|
+
*
|
|
569
|
+
* This source code is licensed under the ISC license.
|
|
570
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
571
|
+
*/
|
|
572
|
+
const W = (a, r) => (t, { slots: e }) => pa(
|
|
573
|
+
ht,
|
|
574
|
+
{
|
|
575
|
+
...t,
|
|
576
|
+
iconNode: r,
|
|
577
|
+
name: a
|
|
578
|
+
},
|
|
579
|
+
e
|
|
580
|
+
);
|
|
581
|
+
/**
|
|
582
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
583
|
+
*
|
|
584
|
+
* This source code is licensed under the ISC license.
|
|
585
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
586
|
+
*/
|
|
587
|
+
const ga = W("ActivityIcon", [
|
|
588
|
+
[
|
|
589
|
+
"path",
|
|
590
|
+
{
|
|
591
|
+
d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
|
|
592
|
+
key: "169zse"
|
|
593
|
+
}
|
|
594
|
+
]
|
|
595
|
+
]);
|
|
596
|
+
/**
|
|
597
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
598
|
+
*
|
|
599
|
+
* This source code is licensed under the ISC license.
|
|
600
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
601
|
+
*/
|
|
602
|
+
const Na = W("BookmarkIcon", [
|
|
603
|
+
["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z", key: "1fy3hk" }]
|
|
604
|
+
]);
|
|
605
|
+
/**
|
|
606
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
607
|
+
*
|
|
608
|
+
* This source code is licensed under the ISC license.
|
|
609
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
610
|
+
*/
|
|
611
|
+
const oa = W("CodeIcon", [
|
|
612
|
+
["polyline", { points: "16 18 22 12 16 6", key: "z7tu5w" }],
|
|
613
|
+
["polyline", { points: "8 6 2 12 8 18", key: "1eg1df" }]
|
|
614
|
+
]);
|
|
615
|
+
/**
|
|
616
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
617
|
+
*
|
|
618
|
+
* This source code is licensed under the ISC license.
|
|
619
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
620
|
+
*/
|
|
621
|
+
const mt = W("LanguagesIcon", [
|
|
622
|
+
["path", { d: "m5 8 6 6", key: "1wu5hv" }],
|
|
623
|
+
["path", { d: "m4 14 6-6 2-3", key: "1k1g8d" }],
|
|
624
|
+
["path", { d: "M2 5h12", key: "or177f" }],
|
|
625
|
+
["path", { d: "M7 2h1", key: "1t2jsx" }],
|
|
626
|
+
["path", { d: "m22 22-5-10-5 10", key: "don7ne" }],
|
|
627
|
+
["path", { d: "M14 18h6", key: "1m8k6r" }]
|
|
628
|
+
]);
|
|
629
|
+
/**
|
|
630
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
631
|
+
*
|
|
632
|
+
* This source code is licensed under the ISC license.
|
|
633
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
634
|
+
*/
|
|
635
|
+
const xt = W("MonitorIcon", [
|
|
636
|
+
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
637
|
+
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
638
|
+
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
639
|
+
]);
|
|
640
|
+
/**
|
|
641
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
642
|
+
*
|
|
643
|
+
* This source code is licensed under the ISC license.
|
|
644
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
645
|
+
*/
|
|
646
|
+
const La = W("PlayIcon", [
|
|
647
|
+
["polygon", { points: "6 3 20 12 6 21 6 3", key: "1oa8hb" }]
|
|
648
|
+
]);
|
|
649
|
+
/**
|
|
650
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
651
|
+
*
|
|
652
|
+
* This source code is licensed under the ISC license.
|
|
653
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
654
|
+
*/
|
|
655
|
+
const wa = W("SettingsIcon", [
|
|
656
|
+
[
|
|
657
|
+
"path",
|
|
658
|
+
{
|
|
659
|
+
d: "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",
|
|
660
|
+
key: "1qme2f"
|
|
661
|
+
}
|
|
662
|
+
],
|
|
663
|
+
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
664
|
+
]);
|
|
665
|
+
/**
|
|
666
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
667
|
+
*
|
|
668
|
+
* This source code is licensed under the ISC license.
|
|
669
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
670
|
+
*/
|
|
671
|
+
const wt = W("XIcon", [
|
|
672
|
+
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
673
|
+
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
674
|
+
]);
|
|
675
|
+
function yt(a, r) {
|
|
676
|
+
return Qa() ? (at(a, r), !0) : !1;
|
|
677
|
+
}
|
|
678
|
+
const Va = typeof window < "u" && typeof document < "u";
|
|
679
|
+
typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
|
|
680
|
+
const kt = Object.prototype.toString, zt = (a) => kt.call(a) === "[object Object]";
|
|
681
|
+
function da(a) {
|
|
682
|
+
return Array.isArray(a) ? a : [a];
|
|
683
|
+
}
|
|
684
|
+
function Mt(a, r = {}) {
|
|
685
|
+
if (!fa(a)) return qa(a);
|
|
686
|
+
const t = Array.isArray(a.value) ? Array.from({ length: a.value.length }) : {};
|
|
687
|
+
for (const e in a.value) t[e] = Ka(() => ({
|
|
688
|
+
get() {
|
|
689
|
+
return a.value[e];
|
|
690
|
+
},
|
|
691
|
+
set(o) {
|
|
692
|
+
var n;
|
|
693
|
+
if (!((n = z(r.replaceRef)) !== null && n !== void 0) || n) if (Array.isArray(a.value)) {
|
|
694
|
+
const i = [...a.value];
|
|
695
|
+
i[e] = o, a.value = i;
|
|
696
|
+
} else {
|
|
697
|
+
const i = {
|
|
698
|
+
...a.value,
|
|
699
|
+
[e]: o
|
|
700
|
+
};
|
|
701
|
+
Object.setPrototypeOf(i, Object.getPrototypeOf(a.value)), a.value = i;
|
|
702
|
+
}
|
|
703
|
+
else a.value[e] = o;
|
|
704
|
+
}
|
|
705
|
+
}));
|
|
706
|
+
return t;
|
|
707
|
+
}
|
|
708
|
+
function Ct(a, r, t) {
|
|
709
|
+
return K(a, r, {
|
|
710
|
+
...t,
|
|
711
|
+
immediate: !0
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
const ya = Va ? window : void 0;
|
|
715
|
+
function St(a) {
|
|
716
|
+
var r;
|
|
717
|
+
const t = z(a);
|
|
718
|
+
return (r = t == null ? void 0 : t.$el) !== null && r !== void 0 ? r : t;
|
|
719
|
+
}
|
|
720
|
+
function ca(...a) {
|
|
721
|
+
const r = (e, o, n, i) => (e.addEventListener(o, n, i), () => e.removeEventListener(o, n, i)), t = B(() => {
|
|
722
|
+
const e = da(z(a[0])).filter((o) => o != null);
|
|
723
|
+
return e.every((o) => typeof o != "string") ? e : void 0;
|
|
724
|
+
});
|
|
725
|
+
return Ct(() => {
|
|
726
|
+
var e, o;
|
|
727
|
+
return [
|
|
728
|
+
(e = (o = t.value) === null || o === void 0 ? void 0 : o.map((n) => St(n))) !== null && e !== void 0 ? e : [ya].filter((n) => n != null),
|
|
729
|
+
da(z(t.value ? a[1] : a[0])),
|
|
730
|
+
da(h(t.value ? a[2] : a[1])),
|
|
731
|
+
z(t.value ? a[3] : a[2])
|
|
732
|
+
];
|
|
733
|
+
}, ([e, o, n, i], l, u) => {
|
|
734
|
+
if (!(e != null && e.length) || !(o != null && o.length) || !(n != null && n.length)) return;
|
|
735
|
+
const p = zt(i) ? { ...i } : i, f = e.flatMap((g) => o.flatMap((w) => n.map((M) => r(g, w, M, p))));
|
|
736
|
+
u(() => {
|
|
737
|
+
f.forEach((g) => g());
|
|
738
|
+
});
|
|
739
|
+
}, { flush: "post" });
|
|
740
|
+
}
|
|
741
|
+
function It(a, r = {}) {
|
|
742
|
+
const { immediate: t = !0, fpsLimit: e = null, window: o = ya, once: n = !1 } = r, i = Oa(!1), l = B(() => {
|
|
743
|
+
const M = z(e);
|
|
744
|
+
return M ? 1e3 / M : null;
|
|
745
|
+
});
|
|
746
|
+
let u = 0, p = null;
|
|
747
|
+
function f(M) {
|
|
748
|
+
if (!i.value || !o) return;
|
|
749
|
+
u || (u = M);
|
|
750
|
+
const P = M - u;
|
|
751
|
+
if (l.value && P < l.value) {
|
|
752
|
+
p = o.requestAnimationFrame(f);
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
if (u = M, a({
|
|
756
|
+
delta: P,
|
|
757
|
+
timestamp: M
|
|
758
|
+
}), n) {
|
|
759
|
+
i.value = !1, p = null;
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
p = o.requestAnimationFrame(f);
|
|
763
|
+
}
|
|
764
|
+
function g() {
|
|
765
|
+
!i.value && o && (i.value = !0, u = 0, p = o.requestAnimationFrame(f));
|
|
766
|
+
}
|
|
767
|
+
function w() {
|
|
768
|
+
i.value = !1, p != null && o && (o.cancelAnimationFrame(p), p = null);
|
|
769
|
+
}
|
|
770
|
+
return t && g(), yt(w), {
|
|
771
|
+
isActive: tt(i),
|
|
772
|
+
pause: w,
|
|
773
|
+
resume: g
|
|
774
|
+
};
|
|
775
|
+
}
|
|
776
|
+
const na = {
|
|
777
|
+
speed: 2,
|
|
778
|
+
margin: 30,
|
|
779
|
+
direction: "both"
|
|
780
|
+
};
|
|
781
|
+
function Pt(a) {
|
|
782
|
+
a.scrollLeft > a.scrollWidth - a.clientWidth && (a.scrollLeft = Math.max(0, a.scrollWidth - a.clientWidth)), a.scrollTop > a.scrollHeight - a.clientHeight && (a.scrollTop = Math.max(0, a.scrollHeight - a.clientHeight));
|
|
783
|
+
}
|
|
784
|
+
function _t(a, r = {}) {
|
|
785
|
+
var t, e, o, n;
|
|
786
|
+
const { pointerTypes: i, preventDefault: l, stopPropagation: u, exact: p, onMove: f, onEnd: g, onStart: w, initialValue: M, axis: P = "both", draggingElement: v = ya, containerElement: s, handle: c = a, buttons: y = [0], restrictInView: F, autoScroll: Y = !1 } = r, O = A((t = z(M)) !== null && t !== void 0 ? t : {
|
|
787
|
+
x: 0,
|
|
788
|
+
y: 0
|
|
789
|
+
}), N = A(), X = (b) => i ? i.includes(b.pointerType) : !0, E = (b) => {
|
|
790
|
+
z(l) && b.preventDefault(), z(u) && b.stopPropagation();
|
|
791
|
+
}, $ = z(Y), J = typeof $ == "object" ? {
|
|
792
|
+
speed: (e = z($.speed)) !== null && e !== void 0 ? e : na.speed,
|
|
793
|
+
margin: (o = z($.margin)) !== null && o !== void 0 ? o : na.margin,
|
|
794
|
+
direction: (n = $.direction) !== null && n !== void 0 ? n : na.direction
|
|
795
|
+
} : na, ka = (b) => typeof b == "number" ? [b, b] : [b.x, b.y], za = (b, m, k) => {
|
|
796
|
+
const { clientWidth: _, clientHeight: S, scrollLeft: L, scrollTop: aa, scrollWidth: ua, scrollHeight: Ua } = b, [Ca, Sa] = ka(J.margin), [Ia, Pa] = ka(J.speed);
|
|
797
|
+
let ta = 0, ra = 0;
|
|
798
|
+
(J.direction === "x" || J.direction === "both") && (k.x < Ca && L > 0 ? ta = -Ia : k.x + m.width > _ - Ca && L < ua - _ && (ta = Ia)), (J.direction === "y" || J.direction === "both") && (k.y < Sa && aa > 0 ? ra = -Pa : k.y + m.height > S - Sa && aa < Ua - S && (ra = Pa)), (ta || ra) && b.scrollBy({
|
|
799
|
+
left: ta,
|
|
800
|
+
top: ra,
|
|
801
|
+
behavior: "auto"
|
|
802
|
+
});
|
|
803
|
+
};
|
|
804
|
+
let D = null;
|
|
805
|
+
const $a = () => {
|
|
806
|
+
const b = z(s);
|
|
807
|
+
b && !D && (D = setInterval(() => {
|
|
808
|
+
const m = z(a).getBoundingClientRect(), { x: k, y: _ } = O.value, S = {
|
|
809
|
+
x: k - b.scrollLeft,
|
|
810
|
+
y: _ - b.scrollTop
|
|
811
|
+
};
|
|
812
|
+
S.x >= 0 && S.y >= 0 && (za(b, m, S), S.x += b.scrollLeft, S.y += b.scrollTop, O.value = S);
|
|
813
|
+
}, 1e3 / 60));
|
|
814
|
+
}, Ma = () => {
|
|
815
|
+
D && (clearInterval(D), D = null);
|
|
816
|
+
}, Ha = (b, m, k, _) => {
|
|
817
|
+
const [S, L] = typeof k == "number" ? [k, k] : [k.x, k.y], { clientWidth: aa, clientHeight: ua } = m;
|
|
818
|
+
return b.x < S || b.x + _.width > aa - S || b.y < L || b.y + _.height > ua - L;
|
|
819
|
+
}, Ba = () => {
|
|
820
|
+
if (z(r.disabled) || !N.value) return;
|
|
821
|
+
const b = z(s);
|
|
822
|
+
if (!b) return;
|
|
823
|
+
const m = z(a).getBoundingClientRect(), { x: k, y: _ } = O.value;
|
|
824
|
+
Ha({
|
|
825
|
+
x: k - b.scrollLeft,
|
|
826
|
+
y: _ - b.scrollTop
|
|
827
|
+
}, b, J.margin, m) ? $a() : Ma();
|
|
828
|
+
};
|
|
829
|
+
z(Y) && K(O, Ba);
|
|
830
|
+
const Ea = (b) => {
|
|
831
|
+
var m;
|
|
832
|
+
if (!z(y).includes(b.button) || z(r.disabled) || !X(b) || z(p) && b.target !== z(a)) return;
|
|
833
|
+
const k = z(s), _ = k == null || (m = k.getBoundingClientRect) === null || m === void 0 ? void 0 : m.call(k), S = z(a).getBoundingClientRect(), L = {
|
|
834
|
+
x: b.clientX - (k ? S.left - _.left + (Y ? 0 : k.scrollLeft) : S.left),
|
|
835
|
+
y: b.clientY - (k ? S.top - _.top + (Y ? 0 : k.scrollTop) : S.top)
|
|
836
|
+
};
|
|
837
|
+
(w == null ? void 0 : w(L, b)) !== !1 && (N.value = L, E(b));
|
|
838
|
+
}, Ga = (b) => {
|
|
839
|
+
if (z(r.disabled) || !X(b) || !N.value) return;
|
|
840
|
+
const m = z(s);
|
|
841
|
+
m instanceof HTMLElement && Pt(m);
|
|
842
|
+
const k = z(a).getBoundingClientRect();
|
|
843
|
+
let { x: _, y: S } = O.value;
|
|
844
|
+
if ((P === "x" || P === "both") && (_ = b.clientX - N.value.x, m && (_ = Math.min(Math.max(0, _), m.scrollWidth - k.width))), (P === "y" || P === "both") && (S = b.clientY - N.value.y, m && (S = Math.min(Math.max(0, S), m.scrollHeight - k.height))), z(Y) && m && (D === null && za(m, k, {
|
|
845
|
+
x: _,
|
|
846
|
+
y: S
|
|
847
|
+
}), _ += m.scrollLeft, S += m.scrollTop), m && (F || Y)) {
|
|
848
|
+
if (P !== "y") {
|
|
849
|
+
const L = _ - m.scrollLeft;
|
|
850
|
+
L < 0 ? _ = m.scrollLeft : L > m.clientWidth - k.width && (_ = m.clientWidth - k.width + m.scrollLeft);
|
|
851
|
+
}
|
|
852
|
+
if (P !== "x") {
|
|
853
|
+
const L = S - m.scrollTop;
|
|
854
|
+
L < 0 ? S = m.scrollTop : L > m.clientHeight - k.height && (S = m.clientHeight - k.height + m.scrollTop);
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
O.value = {
|
|
858
|
+
x: _,
|
|
859
|
+
y: S
|
|
860
|
+
}, f == null || f(O.value, b), E(b);
|
|
861
|
+
}, Ja = (b) => {
|
|
862
|
+
z(r.disabled) || !X(b) || N.value && (N.value = void 0, Y && Ma(), g == null || g(O.value, b), E(b));
|
|
863
|
+
};
|
|
864
|
+
if (Va) {
|
|
865
|
+
const b = () => {
|
|
866
|
+
var m;
|
|
867
|
+
return {
|
|
868
|
+
capture: (m = r.capture) !== null && m !== void 0 ? m : !0,
|
|
869
|
+
passive: !z(l)
|
|
870
|
+
};
|
|
871
|
+
};
|
|
872
|
+
ca(c, "pointerdown", Ea, b), ca(v, "pointermove", Ga, b), ca(v, "pointerup", Ja, b);
|
|
873
|
+
}
|
|
874
|
+
return {
|
|
875
|
+
...Mt(O),
|
|
876
|
+
position: O,
|
|
877
|
+
isDragging: B(() => !!N.value),
|
|
878
|
+
style: B(() => `
|
|
879
|
+
left: ${O.value.x}px;
|
|
880
|
+
top: ${O.value.y}px;
|
|
881
|
+
${Y ? "text-wrap: nowrap;" : ""}
|
|
882
|
+
`)
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
// @__NO_SIDE_EFFECTS__
|
|
886
|
+
function Tt(a) {
|
|
887
|
+
var r;
|
|
888
|
+
const t = Oa(0);
|
|
889
|
+
if (typeof performance > "u") return t;
|
|
890
|
+
const e = (r = void 0) !== null && r !== void 0 ? r : 10;
|
|
891
|
+
let o = performance.now(), n = 0;
|
|
892
|
+
return It(() => {
|
|
893
|
+
if (n += 1, n >= e) {
|
|
894
|
+
const i = performance.now(), l = i - o;
|
|
895
|
+
t.value = Math.round(1e3 / (l / n)), o = i, n = 0;
|
|
896
|
+
}
|
|
897
|
+
}), t;
|
|
898
|
+
}
|
|
899
|
+
(function() {
|
|
900
|
+
try {
|
|
901
|
+
if (typeof document < "u") {
|
|
902
|
+
var a = document.createElement("style");
|
|
903
|
+
a.appendChild(document.createTextNode('.tabs-container[data-v-883d4db1]{position:relative}.tabs-container[data-v-883d4db1]:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:1rem;padding:1px;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}[data-v-883d4db1],[data-v-883d4db1]:before,[data-v-883d4db1]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-883d4db1]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-883d4db1]{pointer-events:auto}.absolute[data-v-883d4db1]{position:absolute}.relative[data-v-883d4db1]{position:relative}.inset-0[data-v-883d4db1]{top:0;right:0;bottom:0;left:0}.z-10[data-v-883d4db1]{z-index:10}.mb-1\\.5[data-v-883d4db1]{margin-bottom:.375rem}.h-4[data-v-883d4db1]{height:1rem}.w-4[data-v-883d4db1]{width:1rem}.flex[data-v-883d4db1]{display:flex}.flex-1[data-v-883d4db1]{flex:1 1 0%}.flex-col[data-v-883d4db1]{flex-direction:column}.scale-\\[1\\.02\\][data-v-883d4db1]{--un-scale-x:1.02;--un-scale-y:1.02;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.scale-110[data-v-883d4db1]{--un-scale-x:1.1;--un-scale-y:1.1;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.group\\/tab:hover .group-hover\\/tab\\:scale-105[data-v-883d4db1]{--un-scale-x:1.05;--un-scale-y:1.05;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.hover\\:scale-\\[1\\.01\\][data-v-883d4db1]:hover{--un-scale-x:1.01;--un-scale-y:1.01;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-883d4db1]{cursor:pointer}.items-center[data-v-883d4db1]{align-items:center}.justify-center[data-v-883d4db1]{justify-content:center}.gap-1\\.5[data-v-883d4db1]{gap:.375rem}.gap-2[data-v-883d4db1]{gap:.5rem}.overflow-hidden[data-v-883d4db1]{overflow:hidden}.border[data-v-883d4db1]{border-width:1px}.border-white\\/10[data-v-883d4db1]{border-color:#ffffff1a}.border-white\\/5[data-v-883d4db1]{border-color:#ffffff0d}.rounded-2xl[data-v-883d4db1]{border-radius:1rem}.rounded-xl[data-v-883d4db1]{border-radius:.75rem}.bg-white\\/\\[0\\.04\\][data-v-883d4db1]{background-color:#ffffff0a}.hover\\:bg-white\\/10[data-v-883d4db1]:hover{background-color:#ffffff1a}.from-black\\/50[data-v-883d4db1]{--un-gradient-from-position:0%;--un-gradient-from:rgb(0 0 0 / .5) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(0 0 0 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-blue-400\\/0[data-v-883d4db1]{--un-gradient-from-position:0%;--un-gradient-from:rgb(96 165 250 / 0) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(96 165 250 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-blue-500[data-v-883d4db1]{--un-gradient-from-position:0%;--un-gradient-from:rgb(59 130 246 / var(--un-from-opacity, 1)) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(59 130 246 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.from-white\\/20[data-v-883d4db1]{--un-gradient-from-position:0%;--un-gradient-from:rgb(255 255 255 / .2) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.via-blue-400\\/5[data-v-883d4db1]{--un-gradient-via-position:50%;--un-gradient-to:rgb(96 165 250 / 0);--un-gradient-stops:var(--un-gradient-from), rgb(96 165 250 / .05) var(--un-gradient-via-position), var(--un-gradient-to)}.to-black\\/30[data-v-883d4db1]{--un-gradient-to-position:100%;--un-gradient-to:rgb(0 0 0 / .3) var(--un-gradient-to-position)}.to-blue-400\\/0[data-v-883d4db1]{--un-gradient-to-position:100%;--un-gradient-to:rgb(96 165 250 / 0) var(--un-gradient-to-position)}.to-blue-600[data-v-883d4db1]{--un-gradient-to-position:100%;--un-gradient-to:rgb(37 99 235 / var(--un-to-opacity, 1)) var(--un-gradient-to-position)}.to-transparent[data-v-883d4db1]{--un-gradient-to-position:100%;--un-gradient-to:transparent var(--un-gradient-to-position)}.bg-gradient-to-b[data-v-883d4db1]{--un-gradient-shape:to bottom in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-br[data-v-883d4db1]{--un-gradient-shape:to bottom right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.bg-gradient-to-t[data-v-883d4db1]{--un-gradient-shape:to top in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}.p-1\\.5[data-v-883d4db1]{padding:.375rem}.p-2[data-v-883d4db1]{padding:.5rem}.text-center[data-v-883d4db1]{text-align:center}.text-\\[8px\\][data-v-883d4db1]{font-size:8px}.text-white[data-v-883d4db1]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-white\\/30[data-v-883d4db1]{color:#ffffff4d}.text-white\\/50[data-v-883d4db1]{color:#ffffff80}.group\\/tab:hover .group-hover\\/tab\\:text-white\\/60[data-v-883d4db1]{color:#fff9}.hover\\:text-white[data-v-883d4db1]:hover{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-black[data-v-883d4db1]{font-weight:900}.leading-tight[data-v-883d4db1]{line-height:1.25}.tracking-\\[0\\.15em\\][data-v-883d4db1]{letter-spacing:.15em}.uppercase[data-v-883d4db1]{text-transform:uppercase}.tab[data-v-883d4db1]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.opacity-0[data-v-883d4db1]{opacity:0}.opacity-50[data-v-883d4db1]{opacity:.5}.group\\/tab:hover .group-hover\\/tab\\:opacity-100[data-v-883d4db1]{opacity:1}.shadow-2xl[data-v-883d4db1]{--un-shadow:var(--un-shadow-inset) 0 25px 50px -12px var(--un-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-blue-500\\/30[data-v-883d4db1]{--un-shadow-color:rgb(59 130 246 / .3) }.shadow-lg[data-v-883d4db1]{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.backdrop-blur-xl[data-v-883d4db1]{--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.drop-shadow-lg[data-v-883d4db1]{--un-drop-shadow:drop-shadow(0 10px 8px var(--un-drop-shadow-color, rgb(0 0 0 / .04))) drop-shadow(0 4px 3px var(--un-drop-shadow-color, rgb(0 0 0 / .1)));filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition-all[data-v-883d4db1]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity[data-v-883d4db1]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform[data-v-883d4db1]{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300[data-v-883d4db1]{transition-duration:.3s}.panel-base[data-v-29a974c4]{background:#0a0a0cd9;-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);border-radius:1rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 32px 64px -16px #000000b3,0 0 0 1px #ffffff0d;pointer-events:auto}[data-v-29a974c4],[data-v-29a974c4]:before,[data-v-29a974c4]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-29a974c4]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-29a974c4]{pointer-events:auto}.fixed[data-v-29a974c4]{position:fixed}.z-\\[10000\\][data-v-29a974c4]{z-index:10000}.h-1\\.5[data-v-29a974c4]{height:.375rem}.h-12[data-v-29a974c4]{height:3rem}.h-3\\.5[data-v-29a974c4]{height:.875rem}.h-7[data-v-29a974c4]{height:1.75rem}.w-1\\.5[data-v-29a974c4]{width:.375rem}.w-3\\.5[data-v-29a974c4]{width:.875rem}.w-7[data-v-29a974c4]{width:1.75rem}.w-80[data-v-29a974c4]{width:20rem}.flex[data-v-29a974c4]{display:flex}.flex-col[data-v-29a974c4]{flex-direction:column}.cursor-pointer[data-v-29a974c4]{cursor:pointer}.cursor-move[data-v-29a974c4]{cursor:move}.active\\:cursor-grabbing[data-v-29a974c4]:active{cursor:grabbing}.select-none[data-v-29a974c4]{-webkit-user-select:none;user-select:none}.items-center[data-v-29a974c4]{align-items:center}.justify-center[data-v-29a974c4]{justify-content:center}.justify-between[data-v-29a974c4]{justify-content:space-between}.gap-2[data-v-29a974c4]{gap:.5rem}.gap-3[data-v-29a974c4]{gap:.75rem}.overflow-hidden[data-v-29a974c4]{overflow:hidden}.truncate[data-v-29a974c4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border[data-v-29a974c4]{border-width:1px}.border-b[data-v-29a974c4]{border-bottom-width:1px}.border-white\\/10[data-v-29a974c4]{border-color:#ffffff1a}.border-white\\/5[data-v-29a974c4]{border-color:#ffffff0d}.hover\\:border-blue-500\\/30[data-v-29a974c4]:hover{border-color:#3b82f64d}.hover\\:border-red-500\\/30[data-v-29a974c4]:hover{border-color:#ef44444d}.rounded-full[data-v-29a974c4]{border-radius:9999px}.rounded-lg[data-v-29a974c4]{border-radius:.5rem}.bg-blue-500[data-v-29a974c4]{--un-bg-opacity:1;background-color:rgb(59 130 246 / var(--un-bg-opacity))}.bg-white\\/5[data-v-29a974c4]{background-color:#ffffff0d}.hover\\:bg-red-500\\/20[data-v-29a974c4]:hover{background-color:#ef444433}.hover\\:bg-white\\/10[data-v-29a974c4]:hover{background-color:#ffffff1a}.px-5[data-v-29a974c4]{padding-left:1.25rem;padding-right:1.25rem}.text-\\[10px\\][data-v-29a974c4]{font-size:10px}.text-white[data-v-29a974c4]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-white\\/30[data-v-29a974c4]{color:#ffffff4d}.text-white\\/40[data-v-29a974c4]{color:#fff6}.text-white\\/60[data-v-29a974c4]{color:#fff9}.hover\\:text-white[data-v-29a974c4]:hover{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-bold[data-v-29a974c4]{font-weight:700}.tracking-\\[0\\.2em\\][data-v-29a974c4]{letter-spacing:.2em}.font-sans[data-v-29a974c4]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.uppercase[data-v-29a974c4]{text-transform:uppercase}.shadow-\\[0_0_8px_rgba\\(59\\,130\\,246\\,0\\.6\\)\\][data-v-29a974c4]{--un-shadow:0 0 8px var(--un-shadow-color, rgba(59, 130, 246, .6));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.backdrop-filter[data-v-29a974c4]{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all[data-v-29a974c4]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.settings-container[data-v-47dffb90] input[type=range],.settings-container[data-v-47dffb90] button,.settings-container[data-v-47dffb90] select{pointer-events:auto!important}[data-v-47dffb90],[data-v-47dffb90]:before,[data-v-47dffb90]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-47dffb90]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-47dffb90]{pointer-events:auto}@keyframes spin-slow-6c1a0d2f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow[data-v-6c1a0d2f]{animation:spin-slow-6c1a0d2f 8s linear infinite}[data-v-6c1a0d2f],[data-v-6c1a0d2f]:before,[data-v-6c1a0d2f]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-6c1a0d2f]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-6c1a0d2f]{pointer-events:auto}.grid[data-v-6c1a0d2f]{display:grid}.grid-cols-2[data-v-6c1a0d2f]{grid-template-columns:repeat(2,minmax(0,1fr))}.mx-1[data-v-6c1a0d2f]{margin-left:.25rem;margin-right:.25rem}.mb-0\\.5[data-v-6c1a0d2f]{margin-bottom:.125rem}.h-1\\.5[data-v-6c1a0d2f]{height:.375rem}.h-10[data-v-6c1a0d2f]{height:2.5rem}.h-5[data-v-6c1a0d2f]{height:1.25rem}.w-10[data-v-6c1a0d2f]{width:2.5rem}.w-5[data-v-6c1a0d2f]{width:1.25rem}.w-full[data-v-6c1a0d2f]{width:100%}.flex[data-v-6c1a0d2f]{display:flex}.flex-col[data-v-6c1a0d2f]{flex-direction:column}.transform[data-v-6c1a0d2f]{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-6c1a0d2f]{cursor:pointer}.appearance-none[data-v-6c1a0d2f]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.items-center[data-v-6c1a0d2f]{align-items:center}.justify-center[data-v-6c1a0d2f]{justify-content:center}.justify-between[data-v-6c1a0d2f]{justify-content:space-between}.gap-3[data-v-6c1a0d2f]{gap:.75rem}.gap-4[data-v-6c1a0d2f]{gap:1rem}.gap-6[data-v-6c1a0d2f]{gap:1.5rem}.border[data-v-6c1a0d2f]{border-width:1px}.border-orange-500\\/10[data-v-6c1a0d2f]{border-color:#f973161a}.border-white\\/5[data-v-6c1a0d2f]{border-color:#ffffff0d}.group:hover .group-hover\\:border-white\\/20[data-v-6c1a0d2f]{border-color:#fff3}.rounded-full[data-v-6c1a0d2f]{border-radius:9999px}.rounded-xl[data-v-6c1a0d2f]{border-radius:.75rem}.bg-orange-500\\/5[data-v-6c1a0d2f]{background-color:#f973160d}.bg-white\\/\\[0\\.03\\][data-v-6c1a0d2f]{background-color:#ffffff08}.bg-white\\/5[data-v-6c1a0d2f]{background-color:#ffffff0d}.hover\\:bg-white\\/10[data-v-6c1a0d2f]:hover{background-color:#ffffff1a}.p-4[data-v-6c1a0d2f]{padding:1rem}.px-1[data-v-6c1a0d2f]{padding-left:.25rem;padding-right:.25rem}.py-2[data-v-6c1a0d2f]{padding-top:.5rem;padding-bottom:.5rem}.py-5[data-v-6c1a0d2f]{padding-top:1.25rem;padding-bottom:1.25rem}.text-center[data-v-6c1a0d2f]{text-align:center}.text-\\[11px\\][data-v-6c1a0d2f]{font-size:11px}.text-\\[9px\\][data-v-6c1a0d2f]{font-size:9px}.text-blue-400[data-v-6c1a0d2f],.group\\/item:hover .group-hover\\/item\\:text-blue-400[data-v-6c1a0d2f]{--un-text-opacity:1;color:rgb(96 165 250 / var(--un-text-opacity))}.text-current[data-v-6c1a0d2f]{color:currentColor}.text-green-400\\/60[data-v-6c1a0d2f]{color:#4ade8099}.text-orange-400\\/60[data-v-6c1a0d2f]{color:#fb923c99}.text-white\\/20[data-v-6c1a0d2f]{color:#fff3}.text-white\\/30[data-v-6c1a0d2f]{color:#ffffff4d}.text-white\\/40[data-v-6c1a0d2f]{color:#fff6}.group\\/item:hover .group-hover\\/item\\:text-white\\/50[data-v-6c1a0d2f]{color:#ffffff80}.hover\\:text-white[data-v-6c1a0d2f]:hover{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-black[data-v-6c1a0d2f]{font-weight:900}.font-medium[data-v-6c1a0d2f]{font-weight:500}.leading-relaxed[data-v-6c1a0d2f]{line-height:1.625}.tracking-\\[0\\.1em\\][data-v-6c1a0d2f]{letter-spacing:.1em}.tracking-\\[0\\.2em\\][data-v-6c1a0d2f]{letter-spacing:.2em}.font-mono[data-v-6c1a0d2f]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-6c1a0d2f]{text-transform:uppercase}.accent-blue-500[data-v-6c1a0d2f]{--un-accent-opacity:1;accent-color:rgb(59 130 246 / var(--un-accent-opacity))}.shadow-inner[data-v-6c1a0d2f]{--un-shadow:inset 0 2px 4px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-sm[data-v-6c1a0d2f]{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.transition-all[data-v-6c1a0d2f]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-6c1a0d2f]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-b19e2d94],[data-v-b19e2d94]:before,[data-v-b19e2d94]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-b19e2d94]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-b19e2d94]{pointer-events:auto}.relative[data-v-b19e2d94]{position:relative}.grid[data-v-b19e2d94]{display:grid}.grid-cols-1[data-v-b19e2d94]{grid-template-columns:repeat(1,minmax(0,1fr))}.mb-2[data-v-b19e2d94]{margin-bottom:.5rem}.h-3\\.5[data-v-b19e2d94]{height:.875rem}.w-3\\.5[data-v-b19e2d94]{width:.875rem}.flex[data-v-b19e2d94]{display:flex}.flex-col[data-v-b19e2d94]{flex-direction:column}.flex-wrap[data-v-b19e2d94]{flex-wrap:wrap}.active\\:scale-\\[0\\.98\\][data-v-b19e2d94]:active{--un-scale-x:.98;--un-scale-y:.98;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-b19e2d94]{cursor:pointer}.items-center[data-v-b19e2d94]{align-items:center}.justify-between[data-v-b19e2d94]{justify-content:space-between}.gap-1\\.5[data-v-b19e2d94]{gap:.375rem}.gap-2\\.5[data-v-b19e2d94]{gap:.625rem}.gap-3[data-v-b19e2d94]{gap:.75rem}.gap-5[data-v-b19e2d94]{gap:1.25rem}.overflow-hidden[data-v-b19e2d94]{overflow:hidden}.border[data-v-b19e2d94]{border-width:1px}.border-white\\/5[data-v-b19e2d94]{border-color:#ffffff0d}.rounded[data-v-b19e2d94]{border-radius:.25rem}.rounded-xl[data-v-b19e2d94]{border-radius:.75rem}.bg-white\\/\\[0\\.03\\][data-v-b19e2d94]{background-color:#ffffff08}.bg-white\\/5[data-v-b19e2d94]{background-color:#ffffff0d}.hover\\:bg-white\\/10[data-v-b19e2d94]:hover{background-color:#ffffff1a}.p-4[data-v-b19e2d94]{padding:1rem}.px-1[data-v-b19e2d94]{padding-left:.25rem;padding-right:.25rem}.px-1\\.5[data-v-b19e2d94]{padding-left:.375rem;padding-right:.375rem}.py-0\\.5[data-v-b19e2d94]{padding-top:.125rem;padding-bottom:.125rem}.text-left[data-v-b19e2d94]{text-align:left}.text-\\[8px\\][data-v-b19e2d94]{font-size:8px}.text-\\[9px\\][data-v-b19e2d94]{font-size:9px}.text-xs[data-v-b19e2d94]{font-size:.75rem;line-height:1rem}.text-white\\/10[data-v-b19e2d94]{color:#ffffff1a}.text-white\\/25[data-v-b19e2d94]{color:#ffffff40}.text-white\\/40[data-v-b19e2d94]{color:#fff6}.text-white\\/50[data-v-b19e2d94]{color:#ffffff80}.group:hover .group-hover\\:text-blue-400[data-v-b19e2d94]{--un-text-opacity:1;color:rgb(96 165 250 / var(--un-text-opacity))}.group:hover .group-hover\\:text-white[data-v-b19e2d94]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-black[data-v-b19e2d94]{font-weight:900}.tracking-tighter[data-v-b19e2d94]{letter-spacing:-.05em}.tracking-widest[data-v-b19e2d94]{letter-spacing:.1em}.font-mono[data-v-b19e2d94]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-b19e2d94]{text-transform:uppercase}.opacity-20[data-v-b19e2d94]{opacity:.2}.group:hover .group-hover\\:opacity-60[data-v-b19e2d94]{opacity:.6}.transition-all[data-v-b19e2d94]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-b19e2d94]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity[data-v-b19e2d94]{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.custom-scrollbar[data-v-bc42beda]::-webkit-scrollbar{width:4px}.custom-scrollbar[data-v-bc42beda]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-bc42beda]::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.custom-scrollbar[data-v-bc42beda]::-webkit-scrollbar-thumb:hover{background:#fff3}[data-v-bc42beda],[data-v-bc42beda]:before,[data-v-bc42beda]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-bc42beda]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-bc42beda]{pointer-events:auto}.absolute[data-v-bc42beda]{position:absolute}.relative[data-v-bc42beda]{position:relative}.right-3[data-v-bc42beda]{right:.75rem}.top-3[data-v-bc42beda]{top:.75rem}.h-4[data-v-bc42beda]{height:1rem}.max-h-32[data-v-bc42beda]{max-height:8rem}.max-h-48[data-v-bc42beda]{max-height:12rem}.w-4[data-v-bc42beda]{width:1rem}.flex[data-v-bc42beda]{display:flex}.flex-col[data-v-bc42beda]{flex-direction:column}.cursor-pointer[data-v-bc42beda]{cursor:pointer}.items-center[data-v-bc42beda]{align-items:center}.justify-between[data-v-bc42beda]{justify-content:space-between}.gap-3[data-v-bc42beda]{gap:.75rem}.gap-6[data-v-bc42beda]{gap:1.5rem}.overflow-hidden[data-v-bc42beda]{overflow:hidden}.overflow-y-auto[data-v-bc42beda]{overflow-y:auto}.whitespace-pre-wrap[data-v-bc42beda]{white-space:pre-wrap}.border[data-v-bc42beda]{border-width:1px}.border-white\\/10[data-v-bc42beda]{border-color:#ffffff1a}.border-white\\/5[data-v-bc42beda]{border-color:#ffffff0d}.rounded-lg[data-v-bc42beda]{border-radius:.5rem}.rounded-xl[data-v-bc42beda]{border-radius:.75rem}.bg-black\\/40[data-v-bc42beda]{background-color:#0006}.bg-white\\/5[data-v-bc42beda]{background-color:#ffffff0d}.hover\\:bg-blue-600[data-v-bc42beda]:hover{--un-bg-opacity:1;background-color:rgb(37 99 235 / var(--un-bg-opacity))}.active\\:bg-blue-700[data-v-bc42beda]:active{--un-bg-opacity:1;background-color:rgb(29 78 216 / var(--un-bg-opacity))}.p-2[data-v-bc42beda]{padding:.5rem}.p-4[data-v-bc42beda]{padding:1rem}.px-1[data-v-bc42beda]{padding-left:.25rem;padding-right:.25rem}.text-\\[9px\\][data-v-bc42beda]{font-size:9px}.text-white\\/25[data-v-bc42beda]{color:#ffffff40}.text-white\\/30[data-v-bc42beda]{color:#ffffff4d}.text-white\\/40[data-v-bc42beda]{color:#fff6}.font-black[data-v-bc42beda]{font-weight:900}.leading-relaxed[data-v-bc42beda]{line-height:1.625}.tracking-widest[data-v-bc42beda]{letter-spacing:.1em}.font-mono[data-v-bc42beda]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-bc42beda]{text-transform:uppercase}.italic[data-v-bc42beda]{font-style:italic}.opacity-0[data-v-bc42beda]{opacity:0}.group:hover .group-hover\\:opacity-100[data-v-bc42beda]{opacity:1}.shadow-inner[data-v-bc42beda]{--un-shadow:inset 0 2px 4px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.transition-all[data-v-bc42beda]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-v-63239024],[data-v-63239024]:before,[data-v-63239024]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-63239024]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.relative[data-v-63239024]{position:relative}.mb-1[data-v-63239024]{margin-bottom:.25rem}.h-24[data-v-63239024]{height:6rem}.h-5[data-v-63239024]{height:1.25rem}.h-full[data-v-63239024]{height:100%}.w-5[data-v-63239024]{width:1.25rem}.w-full[data-v-63239024]{width:100%}.flex[data-v-63239024]{display:flex}.flex-col[data-v-63239024]{flex-direction:column}.items-end[data-v-63239024]{align-items:flex-end}.items-center[data-v-63239024]{align-items:center}.justify-center[data-v-63239024]{justify-content:center}.justify-between[data-v-63239024]{justify-content:space-between}.gap-3[data-v-63239024]{gap:.75rem}.gap-6[data-v-63239024]{gap:1.5rem}.overflow-hidden[data-v-63239024]{overflow:hidden}.border[data-v-63239024]{border-width:1px}.border-white\\/10[data-v-63239024]{border-color:#ffffff1a}.rounded-2xl[data-v-63239024]{border-radius:1rem}.rounded-xl[data-v-63239024]{border-radius:.75rem}.bg-black\\/40[data-v-63239024]{background-color:#0006}.from-white\\/\\[0\\.05\\][data-v-63239024]{--un-gradient-from-position:0%;--un-gradient-from:rgb(255 255 255 / .05) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.hover\\:from-white\\/\\[0\\.08\\][data-v-63239024]:hover{--un-gradient-from-position:0%;--un-gradient-from:rgb(255 255 255 / .08) var(--un-gradient-from-position);--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / 0) var(--un-gradient-to-position);--un-gradient-stops:var(--un-gradient-from), var(--un-gradient-to)}.to-white\\/\\[0\\.02\\][data-v-63239024]{--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / .02) var(--un-gradient-to-position)}.hover\\:to-white\\/\\[0\\.04\\][data-v-63239024]:hover{--un-gradient-to-position:100%;--un-gradient-to:rgb(255 255 255 / .04) var(--un-gradient-to-position)}.bg-gradient-to-br[data-v-63239024]{--un-gradient-shape:to bottom right in oklch;--un-gradient:var(--un-gradient-shape), var(--un-gradient-stops);background-image:linear-gradient(var(--un-gradient))}[stroke-width~="2"][data-v-63239024]{stroke-width:2px}.stroke-blue-400\\/40[data-v-63239024]{stroke:#60a5fa66}[stroke~=none][data-v-63239024]{stroke:none}.p-6[data-v-63239024]{padding:1.5rem}.px-1[data-v-63239024]{padding-left:.25rem;padding-right:.25rem}.py-2[data-v-63239024]{padding-top:.5rem;padding-bottom:.5rem}.text-\\[10px\\][data-v-63239024]{font-size:10px}.text-\\[11px\\][data-v-63239024]{font-size:11px}.text-\\[8px\\][data-v-63239024]{font-size:8px}.text-\\[9px\\][data-v-63239024]{font-size:9px}.text-6xl[data-v-63239024]{font-size:3.75rem;line-height:1}.text-blue-400\\/40[data-v-63239024]{color:#60a5fa66}.text-green-400[data-v-63239024]{--un-text-opacity:1;color:rgb(74 222 128 / var(--un-text-opacity))}.text-red-400[data-v-63239024]{--un-text-opacity:1;color:rgb(248 113 113 / var(--un-text-opacity))}.text-white\\/15[data-v-63239024]{color:#ffffff26}.text-white\\/25[data-v-63239024]{color:#ffffff40}.text-white\\/30[data-v-63239024]{color:#ffffff4d}.text-yellow-400[data-v-63239024]{--un-text-opacity:1;color:rgb(250 204 21 / var(--un-text-opacity))}.group\\/stat:hover .group-hover\\/stat\\:text-blue-400\\/70[data-v-63239024]{color:#60a5fab3}.font-black[data-v-63239024]{font-weight:900}.font-bold[data-v-63239024]{font-weight:700}.tracking-\\[0\\.15em\\][data-v-63239024]{letter-spacing:.15em}.tracking-\\[0\\.2em\\][data-v-63239024]{letter-spacing:.2em}.tracking-tighter[data-v-63239024]{letter-spacing:-.05em}.tracking-widest[data-v-63239024]{letter-spacing:.1em}.font-mono[data-v-63239024]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase[data-v-63239024]{text-transform:uppercase}.shadow-inner[data-v-63239024]{--un-shadow:inset 0 2px 4px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-xl[data-v-63239024]{--un-shadow:var(--un-shadow-inset) 0 20px 25px -5px var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 8px 10px -6px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-1[data-v-63239024]{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-white\\/5[data-v-63239024]{--un-ring-color:rgb(255 255 255 / .05) }.ring-inset[data-v-63239024]{--un-ring-inset:inset}.drop-shadow-\\[0_0_20px_rgba\\(234\\,179\\,8\\,0\\.5\\)\\][data-v-63239024]{--un-drop-shadow:drop-shadow(0 0 20px rgba(234,179,8,.5));filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.drop-shadow-\\[0_0_20px_rgba\\(239\\,68\\,68\\,0\\.5\\)\\][data-v-63239024]{--un-drop-shadow:drop-shadow(0 0 20px rgba(239,68,68,.5));filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.drop-shadow-\\[0_0_20px_rgba\\(34\\,197\\,94\\,0\\.5\\)\\][data-v-63239024]{--un-drop-shadow:drop-shadow(0 0 20px rgba(34,197,94,.5));filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition-all[data-v-63239024]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-63239024]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300[data-v-63239024]{transition-duration:.3s}[data-v-eb6add23],[data-v-eb6add23]:before,[data-v-eb6add23]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-eb6add23]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-eb6add23]{pointer-events:auto}.absolute[data-v-eb6add23]{position:absolute}.fixed[data-v-eb6add23]{position:fixed}.bottom-8[data-v-eb6add23]{bottom:2rem}.right-3[data-v-eb6add23]{right:.75rem}.right-8[data-v-eb6add23]{right:2rem}.top-3[data-v-eb6add23]{top:.75rem}.z-\\[10001\\][data-v-eb6add23]{z-index:10001}.h-14[data-v-eb6add23]{height:3.5rem}.h-2\\.5[data-v-eb6add23]{height:.625rem}.h-6[data-v-eb6add23]{height:1.5rem}.w-14[data-v-eb6add23]{width:3.5rem}.w-2\\.5[data-v-eb6add23]{width:.625rem}.w-6[data-v-eb6add23]{width:1.5rem}.flex[data-v-eb6add23]{display:flex}.rotate-180[data-v-eb6add23]{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.scale-110[data-v-eb6add23]{--un-scale-x:1.1;--un-scale-y:1.1;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.active\\:scale-90[data-v-eb6add23]:active{--un-scale-x:.9;--un-scale-y:.9;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.items-center[data-v-eb6add23]{align-items:center}.justify-center[data-v-eb6add23]{justify-content:center}.border[data-v-eb6add23]{border-width:1px}.border-2[data-v-eb6add23]{border-width:2px}.border-\\[\\#121212\\][data-v-eb6add23]{--un-border-opacity:1;border-color:rgb(18 18 18 / var(--un-border-opacity))}.border-white\\/20[data-v-eb6add23]{border-color:#fff3}.rounded-full[data-v-eb6add23]{border-radius:9999px}.bg-\\[\\#121212\\]\\/90[data-v-eb6add23]{background-color:#121212e6}.bg-green-500[data-v-eb6add23]{--un-bg-opacity:1;background-color:rgb(34 197 94 / var(--un-bg-opacity))}.hover\\:bg-black[data-v-eb6add23]:hover{--un-bg-opacity:1;background-color:rgb(0 0 0 / var(--un-bg-opacity))}.text-blue-400[data-v-eb6add23]{--un-text-opacity:1;color:rgb(96 165 250 / var(--un-text-opacity))}.text-white\\/50[data-v-eb6add23]{color:#ffffff80}.hover\\:text-white[data-v-eb6add23]:hover{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.shadow-\\[0_0_8px_rgba\\(34\\,197\\,94\\,0\\.6\\)\\][data-v-eb6add23]{--un-shadow:0 0 8px var(--un-shadow-color, rgba(34, 197, 94, .6));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-\\[0_20px_40px_-8px_rgba\\(0\\,0\\,0\\,0\\.5\\)\\][data-v-eb6add23]{--un-shadow:0 20px 40px -8px var(--un-shadow-color, rgba(0, 0, 0, .5));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-4[data-v-eb6add23]{--un-ring-width:4px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-white\\/5[data-v-eb6add23]{--un-ring-color:rgb(255 255 255 / .05) }.backdrop-blur-2xl[data-v-eb6add23]{--un-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all[data-v-eb6add23]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform[data-v-eb6add23]{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500[data-v-eb6add23]{transition-duration:.5s}[data-v-7e780824],[data-v-7e780824]:before,[data-v-7e780824]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-7e780824]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.fixed[data-v-7e780824]{position:fixed}.bottom-24[data-v-7e780824]{bottom:6rem}.right-8[data-v-7e780824]{right:2rem}.z-\\[10002\\][data-v-7e780824]{z-index:10002}.h-4[data-v-7e780824]{height:1rem}.w-4[data-v-7e780824]{width:1rem}.flex[data-v-7e780824]{display:flex}.translate-y-0[data-v-7e780824]{--un-translate-y:0;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.translate-y-4[data-v-7e780824]{--un-translate-y:1rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.items-center[data-v-7e780824]{align-items:center}.gap-2[data-v-7e780824]{gap:.5rem}.border[data-v-7e780824]{border-width:1px}.border-green-400\\/30[data-v-7e780824]{border-color:#4ade804d}.rounded-xl[data-v-7e780824]{border-radius:.75rem}.bg-green-600\\/90[data-v-7e780824]{background-color:#16a34ae6}[stroke-width~="2"][data-v-7e780824]{stroke-width:2px}.px-5[data-v-7e780824]{padding-left:1.25rem;padding-right:1.25rem}.py-3[data-v-7e780824]{padding-top:.75rem;padding-bottom:.75rem}.text-sm[data-v-7e780824]{font-size:.875rem;line-height:1.25rem}.text-white[data-v-7e780824]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-bold[data-v-7e780824]{font-weight:700}.opacity-0[data-v-7e780824]{opacity:0}.opacity-100[data-v-7e780824]{opacity:1}.shadow-2xl[data-v-7e780824]{--un-shadow:var(--un-shadow-inset) 0 25px 50px -12px var(--un-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.backdrop-blur-xl[data-v-7e780824]{--un-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all[data-v-7e780824]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300[data-v-7e780824]{transition-duration:.3s}.custom-scrollbar[data-v-e0f091f2]::-webkit-scrollbar{width:4px}.custom-scrollbar[data-v-e0f091f2]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-e0f091f2]::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.custom-scrollbar[data-v-e0f091f2]::-webkit-scrollbar-thumb:hover{background:#fff3}[data-v-e0f091f2],[data-v-e0f091f2]:before,[data-v-e0f091f2]:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }[data-v-e0f091f2]::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-auto[data-v-e0f091f2]{pointer-events:auto}.h-11[data-v-e0f091f2]{height:2.75rem}.h-3\\.5[data-v-e0f091f2]{height:.875rem}.max-h-\\[480px\\][data-v-e0f091f2]{max-height:480px}.w-3\\.5[data-v-e0f091f2]{width:.875rem}.w-full[data-v-e0f091f2]{width:100%}.flex[data-v-e0f091f2]{display:flex}.flex-1[data-v-e0f091f2]{flex:1 1 0%}.group\\/btn:hover .group-hover\\/btn\\:rotate-12[data-v-e0f091f2]{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:12deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.active\\:scale-\\[0\\.98\\][data-v-e0f091f2]:active{--un-scale-x:.98;--un-scale-y:.98;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer[data-v-e0f091f2]{cursor:pointer}.items-center[data-v-e0f091f2]{align-items:center}.justify-center[data-v-e0f091f2]{justify-content:center}.gap-3[data-v-e0f091f2]{gap:.75rem}.overflow-y-auto[data-v-e0f091f2]{overflow-y:auto}.border[data-v-e0f091f2]{border-width:1px}.border-white\\/5[data-v-e0f091f2]{border-color:#ffffff0d}.rounded-xl[data-v-e0f091f2]{border-radius:.75rem}.bg-white\\/\\[0\\.03\\][data-v-e0f091f2]{background-color:#ffffff08}.hover\\:bg-white\\/10[data-v-e0f091f2]:hover{background-color:#ffffff1a}.px-5[data-v-e0f091f2]{padding-left:1.25rem;padding-right:1.25rem}.py-2[data-v-e0f091f2]{padding-top:.5rem;padding-bottom:.5rem}.py-3[data-v-e0f091f2]{padding-top:.75rem;padding-bottom:.75rem}.pb-5[data-v-e0f091f2]{padding-bottom:1.25rem}.pt-3[data-v-e0f091f2]{padding-top:.75rem}.text-\\[10px\\][data-v-e0f091f2]{font-size:10px}.text-white\\/30[data-v-e0f091f2]{color:#ffffff4d}.text-white\\/50[data-v-e0f091f2]{color:#ffffff80}.group\\/btn:hover .group-hover\\/btn\\:text-blue-400[data-v-e0f091f2]{--un-text-opacity:1;color:rgb(96 165 250 / var(--un-text-opacity))}.group\\/btn:hover .group-hover\\/btn\\:text-white[data-v-e0f091f2]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.font-bold[data-v-e0f091f2]{font-weight:700}.tracking-\\[0\\.25em\\][data-v-e0f091f2]{letter-spacing:.25em}.uppercase[data-v-e0f091f2]{text-transform:uppercase}.shadow-sm[data-v-e0f091f2]{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.transition-all[data-v-e0f091f2]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors[data-v-e0f091f2]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}')), document.head.appendChild(a);
|
|
904
|
+
}
|
|
905
|
+
} catch (r) {
|
|
906
|
+
console.error("vite-plugin-css-injected-by-js", r);
|
|
907
|
+
}
|
|
908
|
+
})();
|
|
909
|
+
const Yt = {
|
|
910
|
+
settings: "配置",
|
|
911
|
+
animation: "动画",
|
|
912
|
+
presets: "预设",
|
|
913
|
+
export: "导出",
|
|
914
|
+
stats: "性能"
|
|
915
|
+
}, jt = "播放引擎", At = "继续", Ft = "运行中", Ot = "重置", Rt = "引擎当前已暂停。配置更改仍会生效,但可能在恢复前无法即时预览。", Xt = "内置预设", Nt = "Vue 组件 (SFC)", Lt = "组件属性用法", Vt = "配置数据 (JSON)", Zt = "全选复制", $t = "复制成功", Ht = "实时性能统计", Bt = "滚动 30 个采样点", Et = "随机生成", Gt = "帧率", Jt = "帧每秒", Ut = "动画速度", Wt = "速度值", Dt = {
|
|
916
|
+
tabs: Yt,
|
|
917
|
+
engine: jt,
|
|
918
|
+
resume: At,
|
|
919
|
+
active: Ft,
|
|
920
|
+
restart: Ot,
|
|
921
|
+
pausedHint: Rt,
|
|
922
|
+
presets: Xt,
|
|
923
|
+
vueComponent: Nt,
|
|
924
|
+
componentProps: Lt,
|
|
925
|
+
configJson: Vt,
|
|
926
|
+
copyAll: Zt,
|
|
927
|
+
copySuccess: $t,
|
|
928
|
+
stats: Ht,
|
|
929
|
+
rolling: Bt,
|
|
930
|
+
randomize: Et,
|
|
931
|
+
frameRate: Gt,
|
|
932
|
+
framesPerSecond: Jt,
|
|
933
|
+
timeSpeed: Ut,
|
|
934
|
+
timeSpeedValue: Wt
|
|
935
|
+
}, qt = {
|
|
936
|
+
settings: "Config",
|
|
937
|
+
animation: "Anim",
|
|
938
|
+
presets: "Presets",
|
|
939
|
+
export: "Export",
|
|
940
|
+
stats: "Stats"
|
|
941
|
+
}, Kt = "Playback Engine", Qt = "Resume", ar = "Active", tr = "Restart", rr = "Engine is currently paused. Configuration updates will take effect but may not be visually updated until resumed.", er = "Built-in Presets", nr = "Vue Component (SFC)", or = "Component Props Usage", ir = "Configuration JSON", sr = "COPY ALL", ur = "Copied Successfully", dr = "Live Performance Stats", cr = "Rolling 30 Samples", lr = "Randomize", pr = "Frame Rate", fr = "frames per second", br = "Animation Speed", gr = "Speed", vr = {
|
|
942
|
+
tabs: qt,
|
|
943
|
+
engine: Kt,
|
|
944
|
+
resume: Qt,
|
|
945
|
+
active: ar,
|
|
946
|
+
restart: tr,
|
|
947
|
+
pausedHint: rr,
|
|
948
|
+
presets: er,
|
|
949
|
+
vueComponent: nr,
|
|
950
|
+
componentProps: or,
|
|
951
|
+
configJson: ir,
|
|
952
|
+
copyAll: sr,
|
|
953
|
+
copySuccess: ur,
|
|
954
|
+
stats: dr,
|
|
955
|
+
rolling: cr,
|
|
956
|
+
randomize: lr,
|
|
957
|
+
frameRate: pr,
|
|
958
|
+
framesPerSecond: fr,
|
|
959
|
+
timeSpeed: br,
|
|
960
|
+
timeSpeedValue: gr
|
|
961
|
+
}, hr = { class: "tabs-container p-1.5 gap-2 bg-gradient-to-b from-black/50 to-black/30 rounded-2xl border border-white/10 shadow-2xl backdrop-blur-xl" }, mr = { class: "flex gap-1.5" }, xr = ["onClick"], wr = {
|
|
962
|
+
key: 0,
|
|
963
|
+
class: "absolute inset-0 bg-gradient-to-br from-white/20 to-transparent opacity-50"
|
|
964
|
+
}, yr = { class: "text-[8px] font-black uppercase tracking-[0.15em] text-center leading-tight relative z-10" }, kr = /* @__PURE__ */ Z({
|
|
965
|
+
__name: "Tabs",
|
|
966
|
+
props: {
|
|
967
|
+
tabs: {},
|
|
968
|
+
modelValue: {}
|
|
969
|
+
},
|
|
970
|
+
emits: ["update:modelValue"],
|
|
971
|
+
setup(a, { emit: r }) {
|
|
972
|
+
const t = r, e = (o) => {
|
|
973
|
+
t("update:modelValue", o);
|
|
974
|
+
};
|
|
975
|
+
return (o, n) => (x(), I("div", hr, [
|
|
976
|
+
d("div", mr, [
|
|
977
|
+
(x(!0), I(Q, null, ia(a.tabs, (i) => (x(), I("button", {
|
|
978
|
+
key: i.id,
|
|
979
|
+
onClick: (l) => e(i.id),
|
|
980
|
+
class: U(["flex-1 flex flex-col items-center justify-center p-2 rounded-xl transition-all duration-300 relative group/tab pointer-events-auto cursor-pointer overflow-hidden", a.modelValue === i.id ? "bg-gradient-to-br from-blue-500 to-blue-600 text-white shadow-lg shadow-blue-500/30 scale-[1.02]" : "bg-white/[0.04] text-white/50 hover:text-white hover:bg-white/10 hover:scale-[1.01] border border-white/5"])
|
|
981
|
+
}, [
|
|
982
|
+
a.modelValue === i.id ? (x(), I("div", wr)) : V("", !0),
|
|
983
|
+
i.icon ? (x(), H(Ra(i.icon), {
|
|
984
|
+
key: 1,
|
|
985
|
+
class: U(["w-4 h-4 mb-1.5 relative z-10 transition-transform duration-300", [
|
|
986
|
+
a.modelValue === i.id ? "text-white drop-shadow-lg" : "text-white/30 group-hover/tab:text-white/60",
|
|
987
|
+
a.modelValue === i.id ? "scale-110" : "group-hover/tab:scale-105"
|
|
988
|
+
]])
|
|
989
|
+
}, null, 8, ["class"])) : V("", !0),
|
|
990
|
+
d("span", yr, C(i.label), 1),
|
|
991
|
+
n[0] || (n[0] = d("div", { class: "absolute inset-0 bg-gradient-to-t from-blue-400/0 via-blue-400/5 to-blue-400/0 opacity-0 group-hover/tab:opacity-100 transition-opacity duration-300" }, null, -1))
|
|
992
|
+
], 10, xr))), 128))
|
|
993
|
+
])
|
|
994
|
+
]));
|
|
995
|
+
}
|
|
996
|
+
}), G = (a, r) => {
|
|
997
|
+
const t = a.__vccOpts || a;
|
|
998
|
+
for (const [e, o] of r)
|
|
999
|
+
t[e] = o;
|
|
1000
|
+
return t;
|
|
1001
|
+
}, zr = /* @__PURE__ */ G(kr, [["__scopeId", "data-v-883d4db1"]]), Mr = { class: "flex items-center gap-3 overflow-hidden" }, Cr = { class: "text-[10px] font-bold uppercase tracking-[0.2em] text-white/40 truncate" }, Sr = { class: "flex items-center gap-2" }, Ir = ["title"], Pr = /* @__PURE__ */ Z({
|
|
1002
|
+
__name: "DraggablePanel",
|
|
1003
|
+
props: {
|
|
1004
|
+
isOpen: { type: Boolean },
|
|
1005
|
+
title: {},
|
|
1006
|
+
lang: {}
|
|
1007
|
+
},
|
|
1008
|
+
emits: ["update:isOpen", "toggleLang"],
|
|
1009
|
+
setup(a, { emit: r }) {
|
|
1010
|
+
const t = r, e = A(null), o = A(null), { style: n } = _t(e, {
|
|
1011
|
+
handle: o,
|
|
1012
|
+
initialValue: { x: window.innerWidth - 320, y: 80 }
|
|
1013
|
+
}), i = () => {
|
|
1014
|
+
t("update:isOpen", !1);
|
|
1015
|
+
};
|
|
1016
|
+
return (l, u) => (x(), H(xa, { to: "body" }, [
|
|
1017
|
+
a.isOpen ? (x(), I("div", {
|
|
1018
|
+
key: 0,
|
|
1019
|
+
ref_key: "el",
|
|
1020
|
+
ref: e,
|
|
1021
|
+
class: "panel-base fixed z-[10000] w-80 flex flex-col text-white font-sans select-none overflow-hidden",
|
|
1022
|
+
style: Fa(h(n))
|
|
1023
|
+
}, [
|
|
1024
|
+
d("div", {
|
|
1025
|
+
ref_key: "handle",
|
|
1026
|
+
ref: o,
|
|
1027
|
+
class: "panel-header h-12 flex items-center justify-between px-5 cursor-move group/handle active:cursor-grabbing border-b border-white/5 bg-white/5"
|
|
1028
|
+
}, [
|
|
1029
|
+
d("div", Mr, [
|
|
1030
|
+
u[1] || (u[1] = d("div", { class: "w-1.5 h-1.5 rounded-full bg-blue-500 shadow-[0_0_8px_rgba(59,130,246,0.6)]" }, null, -1)),
|
|
1031
|
+
d("span", Cr, C(a.title), 1)
|
|
1032
|
+
]),
|
|
1033
|
+
d("div", Sr, [
|
|
1034
|
+
a.lang ? (x(), I("button", {
|
|
1035
|
+
key: 0,
|
|
1036
|
+
class: "w-7 h-7 flex items-center justify-center rounded-lg bg-white/5 border border-white/10 hover:bg-white/10 hover:border-blue-500/30 transition-all cursor-pointer",
|
|
1037
|
+
title: a.lang === "zh-CN" ? "切换到英文" : "Switch to Chinese",
|
|
1038
|
+
onClick: u[0] || (u[0] = _a((p) => t("toggleLang"), ["stop"]))
|
|
1039
|
+
}, [
|
|
1040
|
+
R(h(mt), { class: "w-3.5 h-3.5 text-white/60" })
|
|
1041
|
+
], 8, Ir)) : V("", !0),
|
|
1042
|
+
d("button", {
|
|
1043
|
+
class: "w-7 h-7 rounded-lg flex items-center justify-center bg-white/5 border border-white/10 text-white/30 hover:text-white hover:bg-red-500/20 hover:border-red-500/30 transition-all pointer-events-auto cursor-pointer",
|
|
1044
|
+
onClick: _a(i, ["stop"])
|
|
1045
|
+
}, [
|
|
1046
|
+
R(h(wt), { class: "w-3.5 h-3.5" })
|
|
1047
|
+
])
|
|
1048
|
+
])
|
|
1049
|
+
], 512),
|
|
1050
|
+
ha(l.$slots, "default", {}, void 0, !0)
|
|
1051
|
+
], 4)) : V("", !0)
|
|
1052
|
+
]));
|
|
1053
|
+
}
|
|
1054
|
+
}), _r = /* @__PURE__ */ G(Pr, [["__scopeId", "data-v-29a974c4"]]), Tr = { class: "settings-container pointer-events-auto" }, Yr = { ref: "configPanelRef" }, jr = /* @__PURE__ */ Z({
|
|
1055
|
+
__name: "SettingsTab",
|
|
1056
|
+
props: {
|
|
1057
|
+
configPanelRef: {}
|
|
1058
|
+
},
|
|
1059
|
+
setup(a) {
|
|
1060
|
+
return (r, t) => (x(), I("div", Tr, [
|
|
1061
|
+
d("div", Yr, [
|
|
1062
|
+
ha(r.$slots, "default", {}, void 0, !0)
|
|
1063
|
+
], 512)
|
|
1064
|
+
]));
|
|
1065
|
+
}
|
|
1066
|
+
}), Ar = /* @__PURE__ */ G(jr, [["__scopeId", "data-v-47dffb90"]]), Fr = { class: "flex flex-col gap-6 py-2" }, Or = {
|
|
1067
|
+
key: 0,
|
|
1068
|
+
class: "flex flex-col gap-4"
|
|
1069
|
+
}, Rr = { class: "text-[9px] font-black uppercase tracking-[0.2em] text-white/20 px-1" }, Xr = { class: "flex flex-col gap-3 group/item px-1" }, Nr = { class: "flex justify-between items-center" }, Lr = { class: "text-[9px] font-mono text-white/30 group-hover/item:text-white/50 transition-colors" }, Vr = { class: "text-[11px] font-black font-mono text-white/40 group-hover/item:text-blue-400 transition-colors" }, Zr = ["value"], $r = { class: "flex flex-col gap-4" }, Hr = { class: "text-[9px] font-black uppercase tracking-[0.2em] text-white/20 px-1" }, Br = { class: "grid grid-cols-2 gap-3" }, Er = { class: "w-10 h-10 rounded-full bg-white/5 flex items-center justify-center mb-0.5 border border-white/5 group-hover:border-white/20" }, Gr = { class: "text-[9px] font-black uppercase tracking-[0.1em]" }, Jr = { class: "w-10 h-10 rounded-full bg-white/5 flex items-center justify-center mb-0.5 border border-white/5" }, Ur = { class: "text-[9px] font-black uppercase tracking-[0.1em]" }, Wr = {
|
|
1070
|
+
key: 1,
|
|
1071
|
+
class: "p-4 rounded-xl bg-orange-500/5 border border-orange-500/10 shadow-inner text-center mx-1"
|
|
1072
|
+
}, Dr = { class: "text-[9px] text-orange-400/60 leading-relaxed font-medium" }, qr = /* @__PURE__ */ Z({
|
|
1073
|
+
__name: "AnimationTab",
|
|
1074
|
+
props: {
|
|
1075
|
+
config: {},
|
|
1076
|
+
engine: {},
|
|
1077
|
+
isPaused: { type: Boolean },
|
|
1078
|
+
t: { type: Function }
|
|
1079
|
+
},
|
|
1080
|
+
emits: ["update:config", "togglePause", "restart"],
|
|
1081
|
+
setup(a, { emit: r }) {
|
|
1082
|
+
const t = a, e = r, o = (n) => {
|
|
1083
|
+
e("update:config", { ...t.config, timeSpeed: n });
|
|
1084
|
+
};
|
|
1085
|
+
return (n, i) => {
|
|
1086
|
+
var l;
|
|
1087
|
+
return x(), I("div", Fr, [
|
|
1088
|
+
((l = a.config) == null ? void 0 : l.timeSpeed) !== void 0 ? (x(), I("div", Or, [
|
|
1089
|
+
d("label", Rr, C(a.t("timeSpeed") || "动画速度"), 1),
|
|
1090
|
+
d("div", Xr, [
|
|
1091
|
+
d("div", Nr, [
|
|
1092
|
+
d("span", Lr, C(a.t("timeSpeedValue") || "速度"), 1),
|
|
1093
|
+
d("span", Vr, C(a.config.timeSpeed.toFixed(1)) + "x ", 1)
|
|
1094
|
+
]),
|
|
1095
|
+
d("input", {
|
|
1096
|
+
value: a.config.timeSpeed,
|
|
1097
|
+
type: "range",
|
|
1098
|
+
min: "0.1",
|
|
1099
|
+
max: "5",
|
|
1100
|
+
step: "0.1",
|
|
1101
|
+
class: "w-full accent-blue-500 bg-white/5 hover:bg-white/10 h-1.5 rounded-full appearance-none cursor-pointer transition-all border border-white/5",
|
|
1102
|
+
onInput: i[0] || (i[0] = (u) => o(Number(u.target.value)))
|
|
1103
|
+
}, null, 40, Zr)
|
|
1104
|
+
])
|
|
1105
|
+
])) : V("", !0),
|
|
1106
|
+
d("div", $r, [
|
|
1107
|
+
d("label", Hr, C(a.t("engine")), 1),
|
|
1108
|
+
d("div", Br, [
|
|
1109
|
+
d("button", {
|
|
1110
|
+
class: "flex flex-col items-center justify-center gap-3 py-5 rounded-xl bg-white/[0.03] border border-white/5 hover:bg-white/10 transition-all text-white/30 hover:text-white pointer-events-auto shadow-sm cursor-pointer",
|
|
1111
|
+
onClick: i[1] || (i[1] = (u) => e("togglePause"))
|
|
1112
|
+
}, [
|
|
1113
|
+
d("div", Er, [
|
|
1114
|
+
(x(), H(Ra(a.isPaused ? h(La) : h(wa)), {
|
|
1115
|
+
class: U(["w-5 h-5 transition-all text-current", { "animate-spin-slow text-blue-400": !a.isPaused }])
|
|
1116
|
+
}, null, 8, ["class"]))
|
|
1117
|
+
]),
|
|
1118
|
+
d("span", Gr, C(a.isPaused ? a.t("resume") : a.t("active")), 1)
|
|
1119
|
+
]),
|
|
1120
|
+
d("button", {
|
|
1121
|
+
class: "flex flex-col items-center justify-center gap-3 py-5 rounded-xl bg-white/[0.03] border border-white/5 hover:bg-white/10 transition-all text-white/30 hover:text-white pointer-events-auto shadow-sm cursor-pointer",
|
|
1122
|
+
onClick: i[2] || (i[2] = (u) => e("restart"))
|
|
1123
|
+
}, [
|
|
1124
|
+
d("div", Jr, [
|
|
1125
|
+
R(h(ga), { class: "w-5 h-5 text-green-400/60" })
|
|
1126
|
+
]),
|
|
1127
|
+
d("span", Ur, C(a.t("restart")), 1)
|
|
1128
|
+
])
|
|
1129
|
+
])
|
|
1130
|
+
]),
|
|
1131
|
+
a.isPaused ? (x(), I("div", Wr, [
|
|
1132
|
+
d("p", Dr, ' "' + C(a.t("pausedHint")) + '" ', 1)
|
|
1133
|
+
])) : V("", !0)
|
|
1134
|
+
]);
|
|
1135
|
+
};
|
|
1136
|
+
}
|
|
1137
|
+
}), Kr = /* @__PURE__ */ G(qr, [["__scopeId", "data-v-6c1a0d2f"]]), Qr = { class: "flex flex-col gap-5" }, ae = { class: "flex flex-col gap-3" }, te = { class: "text-[9px] font-black uppercase tracking-widest text-white/25 px-1" }, re = { class: "grid grid-cols-1 gap-2.5" }, ee = ["onClick"], ne = { class: "flex items-center justify-between mb-2" }, oe = { class: "text-xs font-black text-white/40 group-hover:text-white transition-colors" }, ie = { class: "flex flex-wrap gap-1.5 opacity-20 group-hover:opacity-60 transition-opacity" }, se = /* @__PURE__ */ Z({
|
|
1138
|
+
__name: "PresetsTab",
|
|
1139
|
+
props: {
|
|
1140
|
+
presets: {},
|
|
1141
|
+
config: {},
|
|
1142
|
+
t: { type: Function },
|
|
1143
|
+
tObj: { type: Function }
|
|
1144
|
+
},
|
|
1145
|
+
emits: ["update:config"],
|
|
1146
|
+
setup(a, { emit: r }) {
|
|
1147
|
+
const t = a, e = r, o = (n) => {
|
|
1148
|
+
e("update:config", { ...t.config, ...n.config });
|
|
1149
|
+
};
|
|
1150
|
+
return (n, i) => (x(), I("div", Qr, [
|
|
1151
|
+
d("div", ae, [
|
|
1152
|
+
d("label", te, C(a.t("presets")), 1),
|
|
1153
|
+
d("div", re, [
|
|
1154
|
+
(x(!0), I(Q, null, ia(a.presets, (l) => (x(), I("button", {
|
|
1155
|
+
key: l.id,
|
|
1156
|
+
class: "group flex flex-col p-4 rounded-xl bg-white/[0.03] hover:bg-white/10 border border-white/5 transition-all text-left relative overflow-hidden active:scale-[0.98] pointer-events-auto cursor-pointer",
|
|
1157
|
+
onClick: (u) => o(l)
|
|
1158
|
+
}, [
|
|
1159
|
+
d("div", ne, [
|
|
1160
|
+
d("span", oe, C(a.tObj(l.name)), 1),
|
|
1161
|
+
R(h(Na), { class: "w-3.5 h-3.5 text-white/10 group-hover:text-blue-400 transition-colors" })
|
|
1162
|
+
]),
|
|
1163
|
+
d("div", ie, [
|
|
1164
|
+
(x(!0), I(Q, null, ia(l.config, (u, p) => (x(), I("span", {
|
|
1165
|
+
key: String(p),
|
|
1166
|
+
class: "text-[8px] px-1.5 py-0.5 rounded bg-white/5 text-white/50 font-mono tracking-tighter"
|
|
1167
|
+
}, C(p) + ":" + C(typeof u == "number" ? u.toFixed(1) : u), 1))), 128))
|
|
1168
|
+
])
|
|
1169
|
+
], 8, ee))), 128))
|
|
1170
|
+
])
|
|
1171
|
+
])
|
|
1172
|
+
]));
|
|
1173
|
+
}
|
|
1174
|
+
}), ue = /* @__PURE__ */ G(se, [["__scopeId", "data-v-b19e2d94"]]);
|
|
1175
|
+
function de() {
|
|
1176
|
+
const a = A(!0), r = A("settings"), t = A(!1);
|
|
1177
|
+
return {
|
|
1178
|
+
isOpen: a,
|
|
1179
|
+
activeTab: r,
|
|
1180
|
+
isPaused: t,
|
|
1181
|
+
toggleOpen: () => {
|
|
1182
|
+
a.value = !a.value;
|
|
1183
|
+
},
|
|
1184
|
+
setTab: (e) => {
|
|
1185
|
+
r.value = e;
|
|
1186
|
+
},
|
|
1187
|
+
togglePause: (e) => {
|
|
1188
|
+
e && (t.value ? (e.resume(), t.value = !1) : (e.pause(), t.value = !0));
|
|
1189
|
+
},
|
|
1190
|
+
restart: (e) => {
|
|
1191
|
+
e && (e.restart(), t.value && (e.resume(), t.value = !1));
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
function ce() {
|
|
1196
|
+
const a = /* @__PURE__ */ Tt(), r = A([]);
|
|
1197
|
+
let t = null;
|
|
1198
|
+
return Xa(() => {
|
|
1199
|
+
t = setInterval(() => {
|
|
1200
|
+
const e = typeof a.value == "number" && !isNaN(a.value) ? a.value : 0;
|
|
1201
|
+
r.value.push(e), r.value.length > 30 && r.value.shift();
|
|
1202
|
+
}, 500);
|
|
1203
|
+
}), ma(() => {
|
|
1204
|
+
t && clearInterval(t);
|
|
1205
|
+
}), {
|
|
1206
|
+
fps: a,
|
|
1207
|
+
fpsHistory: r
|
|
1208
|
+
};
|
|
1209
|
+
}
|
|
1210
|
+
function Za(a) {
|
|
1211
|
+
const r = A(""), t = A(null), e = () => a.metaId.charAt(0).toUpperCase() + a.metaId.slice(1).replace(/-([a-z])/g, (l) => l[1].toUpperCase()), o = (l) => {
|
|
1212
|
+
const u = e();
|
|
1213
|
+
if (l === "config")
|
|
1214
|
+
return JSON.stringify(a.config, null, 2);
|
|
1215
|
+
if (l === "props") {
|
|
1216
|
+
const p = Object.entries(a.config || {}).filter(([f]) => !["debug", "lang", "className"].includes(f)).map(([f, g]) => typeof g == "string" ? `${f}="${g}"` : `:${f}="${g}"`).join(`
|
|
1217
|
+
`);
|
|
1218
|
+
return `<${u}
|
|
1219
|
+
${p}
|
|
1220
|
+
/>`;
|
|
1221
|
+
}
|
|
1222
|
+
return `<script setup>
|
|
1223
|
+
import { ${u} } from '@bg-effects/${a.metaId}'
|
|
1224
|
+
|
|
1225
|
+
const config = ${JSON.stringify(a.config, null, 2)}
|
|
1226
|
+
<\/script>
|
|
1227
|
+
|
|
1228
|
+
<template>
|
|
1229
|
+
<${u} v-bind="config" />
|
|
1230
|
+
</template>`;
|
|
1231
|
+
}, n = async (l) => {
|
|
1232
|
+
var u;
|
|
1233
|
+
const p = o(l);
|
|
1234
|
+
try {
|
|
1235
|
+
await navigator.clipboard.writeText(p), i("复制成功!"), (u = a.onSuccess) == null || u.call(a, "复制成功!");
|
|
1236
|
+
} catch (f) {
|
|
1237
|
+
console.error("复制失败:", f);
|
|
1238
|
+
}
|
|
1239
|
+
}, i = (l) => {
|
|
1240
|
+
r.value = l, t.value && clearTimeout(t.value), t.value = setTimeout(() => {
|
|
1241
|
+
r.value = "";
|
|
1242
|
+
}, 2e3);
|
|
1243
|
+
};
|
|
1244
|
+
return ma(() => {
|
|
1245
|
+
t.value && clearTimeout(t.value);
|
|
1246
|
+
}), {
|
|
1247
|
+
copyCode: n,
|
|
1248
|
+
copyToast: r,
|
|
1249
|
+
generateCode: o,
|
|
1250
|
+
getComponentName: e
|
|
1251
|
+
};
|
|
1252
|
+
}
|
|
1253
|
+
const le = { class: "flex flex-col gap-6" }, pe = { class: "flex flex-col gap-3" }, fe = { class: "text-[9px] font-black uppercase tracking-widest text-white/25 px-1" }, be = { class: "relative group" }, ge = { class: "bg-black/40 rounded-xl p-4 text-[9px] font-mono text-white/40 overflow-hidden whitespace-pre-wrap leading-relaxed border border-white/5 shadow-inner italic" }, ve = { class: "flex flex-col gap-3" }, he = { class: "text-[9px] font-black uppercase tracking-widest text-white/25 px-1" }, me = { class: "relative group" }, xe = { class: "bg-black/40 rounded-xl p-4 text-[9px] font-mono text-white/30 max-h-32 overflow-y-auto custom-scrollbar border border-white/5 shadow-inner leading-relaxed" }, we = { class: "flex flex-col gap-3" }, ye = { class: "flex justify-between items-center px-1" }, ke = { class: "text-[9px] font-black uppercase tracking-widest text-white/25" }, ze = { class: "relative group" }, Me = { class: "bg-black/40 rounded-xl p-4 text-[9px] font-mono text-white/30 max-h-48 overflow-y-auto custom-scrollbar border border-white/5 shadow-inner" }, Ce = /* @__PURE__ */ Z({
|
|
1254
|
+
__name: "ExportTab",
|
|
1255
|
+
props: {
|
|
1256
|
+
config: {},
|
|
1257
|
+
metaId: {},
|
|
1258
|
+
t: { type: Function }
|
|
1259
|
+
},
|
|
1260
|
+
setup(a) {
|
|
1261
|
+
const r = a, { copyCode: t, getComponentName: e } = Za({
|
|
1262
|
+
config: r.config,
|
|
1263
|
+
metaId: r.metaId
|
|
1264
|
+
}), o = e();
|
|
1265
|
+
return (n, i) => (x(), I("div", le, [
|
|
1266
|
+
d("div", pe, [
|
|
1267
|
+
d("label", fe, C(a.t("vueComponent")), 1),
|
|
1268
|
+
d("div", be, [
|
|
1269
|
+
d("pre", ge, "import { " + C(h(o)) + " } from '@bg-effects/" + C(a.metaId) + "'", 1),
|
|
1270
|
+
d("button", {
|
|
1271
|
+
class: "absolute top-3 right-3 p-2 rounded-lg bg-white/5 hover:bg-blue-600 opacity-0 group-hover:opacity-100 transition-all active:bg-blue-700 pointer-events-auto border border-white/10 cursor-pointer",
|
|
1272
|
+
onClick: i[0] || (i[0] = (l) => h(t)("sfc"))
|
|
1273
|
+
}, [
|
|
1274
|
+
R(h(oa), { class: "w-4 h-4" })
|
|
1275
|
+
])
|
|
1276
|
+
])
|
|
1277
|
+
]),
|
|
1278
|
+
d("div", ve, [
|
|
1279
|
+
d("label", he, C(a.t("componentProps")), 1),
|
|
1280
|
+
d("div", me, [
|
|
1281
|
+
d("pre", xe, "<" + C(h(o)) + " ... />", 1),
|
|
1282
|
+
d("button", {
|
|
1283
|
+
class: "absolute top-3 right-3 p-2 rounded-lg bg-white/5 hover:bg-blue-600 opacity-0 group-hover:opacity-100 transition-all active:bg-blue-700 pointer-events-auto border border-white/10 cursor-pointer",
|
|
1284
|
+
onClick: i[1] || (i[1] = (l) => h(t)("props"))
|
|
1285
|
+
}, [
|
|
1286
|
+
R(h(oa), { class: "w-4 h-4" })
|
|
1287
|
+
])
|
|
1288
|
+
])
|
|
1289
|
+
]),
|
|
1290
|
+
d("div", we, [
|
|
1291
|
+
d("div", ye, [
|
|
1292
|
+
d("label", ke, C(a.t("configJson")), 1)
|
|
1293
|
+
]),
|
|
1294
|
+
d("div", ze, [
|
|
1295
|
+
d("div", Me, [
|
|
1296
|
+
d("pre", null, C(JSON.stringify(a.config, null, 2)), 1)
|
|
1297
|
+
]),
|
|
1298
|
+
d("button", {
|
|
1299
|
+
class: "absolute top-3 right-3 p-2 rounded-lg bg-white/5 hover:bg-blue-600 opacity-0 group-hover:opacity-100 transition-all active:bg-blue-700 pointer-events-auto border border-white/10 cursor-pointer",
|
|
1300
|
+
onClick: i[2] || (i[2] = (l) => h(t)("config"))
|
|
1301
|
+
}, [
|
|
1302
|
+
R(h(oa), { class: "w-4 h-4" })
|
|
1303
|
+
])
|
|
1304
|
+
])
|
|
1305
|
+
])
|
|
1306
|
+
]));
|
|
1307
|
+
}
|
|
1308
|
+
}), Se = /* @__PURE__ */ G(Ce, [["__scopeId", "data-v-bc42beda"]]), Ie = { class: "flex flex-col gap-6 py-2" }, Pe = { class: "bg-gradient-to-br from-white/[0.05] to-white/[0.02] rounded-2xl p-6 border border-white/10 flex flex-col gap-3 items-center justify-center shadow-xl group/stat hover:from-white/[0.08] hover:to-white/[0.04] transition-all" }, _e = { class: "flex items-center gap-3 text-blue-400/40 mb-1 group-hover/stat:text-blue-400/70 transition-colors" }, Te = { class: "text-[11px] font-black uppercase tracking-[0.2em]" }, Ye = { class: "text-[10px] uppercase tracking-[0.15em] text-white/30 font-bold" }, je = { class: "flex flex-col gap-3" }, Ae = { class: "flex justify-between items-center px-1" }, Fe = { class: "text-[9px] font-black uppercase tracking-widest text-white/25" }, Oe = { class: "text-[8px] font-mono uppercase text-white/15 tracking-tighter" }, Re = { class: "bg-black/40 border border-white/10 h-24 rounded-xl relative overflow-hidden flex items-end ring-1 ring-inset ring-white/5 shadow-inner" }, Xe = {
|
|
1309
|
+
class: "w-full h-full",
|
|
1310
|
+
viewBox: "0 0 100 80",
|
|
1311
|
+
preserveAspectRatio: "none"
|
|
1312
|
+
}, Ne = ["d"], Le = ["d"], Ve = /* @__PURE__ */ Z({
|
|
1313
|
+
__name: "StatsTab",
|
|
1314
|
+
props: {
|
|
1315
|
+
t: { type: Function }
|
|
1316
|
+
},
|
|
1317
|
+
setup(a) {
|
|
1318
|
+
const { fps: r, fpsHistory: t } = ce();
|
|
1319
|
+
return (e, o) => (x(), I("div", Ie, [
|
|
1320
|
+
d("div", Pe, [
|
|
1321
|
+
d("div", _e, [
|
|
1322
|
+
R(h(xt), { class: "w-5 h-5" }),
|
|
1323
|
+
d("span", Te, C(a.t("frameRate")), 1)
|
|
1324
|
+
]),
|
|
1325
|
+
d("span", {
|
|
1326
|
+
class: U([
|
|
1327
|
+
"text-6xl font-black tracking-tighter transition-all duration-300",
|
|
1328
|
+
h(r) > 55 ? "text-green-400 drop-shadow-[0_0_20px_rgba(34,197,94,0.5)]" : h(r) > 30 ? "text-yellow-400 drop-shadow-[0_0_20px_rgba(234,179,8,0.5)]" : "text-red-400 drop-shadow-[0_0_20px_rgba(239,68,68,0.5)]"
|
|
1329
|
+
])
|
|
1330
|
+
}, C(h(r)), 3),
|
|
1331
|
+
d("span", Ye, C(a.t("framesPerSecond")), 1)
|
|
1332
|
+
]),
|
|
1333
|
+
d("div", je, [
|
|
1334
|
+
d("div", Ae, [
|
|
1335
|
+
d("label", Fe, C(a.t("stats")), 1),
|
|
1336
|
+
d("span", Oe, C(a.t("rolling")), 1)
|
|
1337
|
+
]),
|
|
1338
|
+
d("div", Re, [
|
|
1339
|
+
(x(), I("svg", Xe, [
|
|
1340
|
+
d("path", {
|
|
1341
|
+
d: `M -10 100 ${h(t).map((n, i) => `L ${i / (h(t).length - 1) * 100} ${80 - Math.min(n, 60) / 60 * 60}`).join(" ")} L 110 100 Z`,
|
|
1342
|
+
fill: "url(#fps-gradient)",
|
|
1343
|
+
stroke: "none"
|
|
1344
|
+
}, null, 8, Ne),
|
|
1345
|
+
d("path", {
|
|
1346
|
+
d: h(t).map((n, i) => `${i === 0 ? "M" : "L"} ${i / (h(t).length - 1) * 100} ${80 - Math.min(n, 60) / 60 * 60}`).join(" "),
|
|
1347
|
+
fill: "none",
|
|
1348
|
+
class: "stroke-blue-400/40",
|
|
1349
|
+
"stroke-width": "2",
|
|
1350
|
+
"stroke-linecap": "round"
|
|
1351
|
+
}, null, 8, Le),
|
|
1352
|
+
o[0] || (o[0] = d("defs", null, [
|
|
1353
|
+
d("linearGradient", {
|
|
1354
|
+
id: "fps-gradient",
|
|
1355
|
+
x1: "0",
|
|
1356
|
+
y1: "0",
|
|
1357
|
+
x2: "0",
|
|
1358
|
+
y2: "1"
|
|
1359
|
+
}, [
|
|
1360
|
+
d("stop", {
|
|
1361
|
+
offset: "0%",
|
|
1362
|
+
"stop-color": "rgba(59, 130, 246, 0.3)"
|
|
1363
|
+
}),
|
|
1364
|
+
d("stop", {
|
|
1365
|
+
offset: "100%",
|
|
1366
|
+
"stop-color": "rgba(59, 130, 246, 0)"
|
|
1367
|
+
})
|
|
1368
|
+
])
|
|
1369
|
+
], -1))
|
|
1370
|
+
]))
|
|
1371
|
+
])
|
|
1372
|
+
])
|
|
1373
|
+
]));
|
|
1374
|
+
}
|
|
1375
|
+
}), Ze = /* @__PURE__ */ G(Ve, [["__scopeId", "data-v-63239024"]]), $e = {
|
|
1376
|
+
key: 0,
|
|
1377
|
+
class: "absolute top-3 right-3 w-2.5 h-2.5 bg-green-500 rounded-full border-2 border-[#121212] shadow-[0_0_8px_rgba(34,197,94,0.6)]"
|
|
1378
|
+
}, He = /* @__PURE__ */ Z({
|
|
1379
|
+
__name: "FloatingToggleButton",
|
|
1380
|
+
props: {
|
|
1381
|
+
isOpen: { type: Boolean },
|
|
1382
|
+
isPaused: { type: Boolean }
|
|
1383
|
+
},
|
|
1384
|
+
emits: ["toggle"],
|
|
1385
|
+
setup(a, { emit: r }) {
|
|
1386
|
+
const t = r;
|
|
1387
|
+
return (e, o) => (x(), H(xa, { to: "body" }, [
|
|
1388
|
+
d("button", {
|
|
1389
|
+
class: "fixed bottom-8 right-8 z-[10001] w-14 h-14 bg-[#121212]/90 border border-white/20 backdrop-blur-2xl rounded-full flex items-center justify-center text-white/50 hover:text-white hover:bg-black transition-all shadow-[0_20px_40px_-8px_rgba(0,0,0,0.5)] active:scale-90 group pointer-events-auto ring-4 ring-white/5",
|
|
1390
|
+
onClick: o[0] || (o[0] = (n) => t("toggle"))
|
|
1391
|
+
}, [
|
|
1392
|
+
R(h(wa), {
|
|
1393
|
+
class: U(["w-6 h-6 transition-transform duration-500", { "rotate-180 text-blue-400 scale-110": a.isOpen }])
|
|
1394
|
+
}, null, 8, ["class"]),
|
|
1395
|
+
a.isPaused ? V("", !0) : (x(), I("div", $e))
|
|
1396
|
+
])
|
|
1397
|
+
]));
|
|
1398
|
+
}
|
|
1399
|
+
}), Be = /* @__PURE__ */ G(He, [["__scopeId", "data-v-eb6add23"]]), Ee = {
|
|
1400
|
+
key: 0,
|
|
1401
|
+
class: "fixed bottom-24 right-8 z-[10002] px-5 py-3 bg-green-600/90 backdrop-blur-xl rounded-xl border border-green-400/30 shadow-2xl text-white text-sm font-bold flex items-center gap-2"
|
|
1402
|
+
}, Ge = /* @__PURE__ */ Z({
|
|
1403
|
+
__name: "CopyToast",
|
|
1404
|
+
props: {
|
|
1405
|
+
message: {}
|
|
1406
|
+
},
|
|
1407
|
+
setup(a) {
|
|
1408
|
+
return (r, t) => (x(), H(xa, { to: "body" }, [
|
|
1409
|
+
R(rt, {
|
|
1410
|
+
"enter-active-class": "transition-all duration-300",
|
|
1411
|
+
"leave-active-class": "transition-all duration-300",
|
|
1412
|
+
"enter-from-class": "opacity-0 translate-y-4",
|
|
1413
|
+
"enter-to-class": "opacity-100 translate-y-0",
|
|
1414
|
+
"leave-from-class": "opacity-100 translate-y-0",
|
|
1415
|
+
"leave-to-class": "opacity-0 translate-y-4"
|
|
1416
|
+
}, {
|
|
1417
|
+
default: sa(() => [
|
|
1418
|
+
a.message ? (x(), I("div", Ee, [
|
|
1419
|
+
t[0] || (t[0] = d("svg", {
|
|
1420
|
+
class: "w-4 h-4",
|
|
1421
|
+
fill: "none",
|
|
1422
|
+
stroke: "currentColor",
|
|
1423
|
+
viewBox: "0 0 24 24"
|
|
1424
|
+
}, [
|
|
1425
|
+
d("path", {
|
|
1426
|
+
"stroke-linecap": "round",
|
|
1427
|
+
"stroke-linejoin": "round",
|
|
1428
|
+
"stroke-width": "2",
|
|
1429
|
+
d: "M5 13l4 4L19 7"
|
|
1430
|
+
})
|
|
1431
|
+
], -1)),
|
|
1432
|
+
et(" " + C(a.message), 1)
|
|
1433
|
+
])) : V("", !0)
|
|
1434
|
+
]),
|
|
1435
|
+
_: 1
|
|
1436
|
+
})
|
|
1437
|
+
]));
|
|
1438
|
+
}
|
|
1439
|
+
}), Je = /* @__PURE__ */ G(Ge, [["__scopeId", "data-v-7e780824"]]), Ue = { class: "px-5 py-3" }, We = { class: "flex-1 overflow-y-auto max-h-[480px] custom-scrollbar px-5 py-2 pointer-events-auto" }, De = {
|
|
1440
|
+
key: 0,
|
|
1441
|
+
class: "px-5 pb-5 pt-3"
|
|
1442
|
+
}, qe = { class: "text-white/50 group-hover/btn:text-white transition-colors" }, Ke = /* @__PURE__ */ Z({
|
|
1443
|
+
__name: "DebugShell",
|
|
1444
|
+
props: {
|
|
1445
|
+
config: {},
|
|
1446
|
+
meta: {},
|
|
1447
|
+
engine: {},
|
|
1448
|
+
lang: {}
|
|
1449
|
+
},
|
|
1450
|
+
emits: ["update:config", "update:lang", "randomize"],
|
|
1451
|
+
setup(a, { emit: r }) {
|
|
1452
|
+
const t = a, e = r, o = B({
|
|
1453
|
+
get: () => t.lang || "zh-CN",
|
|
1454
|
+
set: (X) => e("update:lang", X)
|
|
1455
|
+
}), { isOpen: n, activeTab: i, isPaused: l, toggleOpen: u, togglePause: p, restart: f } = de(), g = A(null), { copyToast: w } = Za({
|
|
1456
|
+
config: t.config,
|
|
1457
|
+
metaId: t.meta.id
|
|
1458
|
+
}), M = {
|
|
1459
|
+
"zh-CN": Dt,
|
|
1460
|
+
en: vr
|
|
1461
|
+
}, P = B(() => o.value), v = (X) => {
|
|
1462
|
+
const E = M[P.value];
|
|
1463
|
+
return X.split(".").reduce(($, J) => $ == null ? void 0 : $[J], E) || X;
|
|
1464
|
+
}, s = (X) => X[P.value] || X.en, c = () => {
|
|
1465
|
+
o.value = o.value === "zh-CN" ? "en" : "zh-CN";
|
|
1466
|
+
}, y = B(() => [
|
|
1467
|
+
{ id: "settings", icon: wa, label: v("tabs.settings") },
|
|
1468
|
+
{ id: "presets", icon: Na, label: v("tabs.presets") },
|
|
1469
|
+
{ id: "animation", icon: La, label: v("tabs.animation") },
|
|
1470
|
+
{ id: "export", icon: oa, label: v("tabs.export") },
|
|
1471
|
+
{ id: "stats", icon: ga, label: v("tabs.stats") }
|
|
1472
|
+
]), F = () => {
|
|
1473
|
+
e("randomize");
|
|
1474
|
+
}, Y = () => {
|
|
1475
|
+
p(t.engine);
|
|
1476
|
+
}, O = () => {
|
|
1477
|
+
f(t.engine);
|
|
1478
|
+
}, N = (X) => {
|
|
1479
|
+
e("update:config", X);
|
|
1480
|
+
};
|
|
1481
|
+
return (X, E) => (x(), I(Q, null, [
|
|
1482
|
+
R(_r, {
|
|
1483
|
+
isOpen: h(n),
|
|
1484
|
+
"onUpdate:isOpen": E[1] || (E[1] = ($) => fa(n) ? n.value = $ : null),
|
|
1485
|
+
title: a.meta.name[P.value] || a.meta.name.en,
|
|
1486
|
+
lang: P.value,
|
|
1487
|
+
onToggleLang: c
|
|
1488
|
+
}, {
|
|
1489
|
+
default: sa(() => [
|
|
1490
|
+
d("div", Ue, [
|
|
1491
|
+
R(zr, {
|
|
1492
|
+
modelValue: h(i),
|
|
1493
|
+
"onUpdate:modelValue": E[0] || (E[0] = ($) => fa(i) ? i.value = $ : null),
|
|
1494
|
+
tabs: y.value
|
|
1495
|
+
}, null, 8, ["modelValue", "tabs"])
|
|
1496
|
+
]),
|
|
1497
|
+
d("div", We, [
|
|
1498
|
+
h(i) === "settings" ? (x(), H(Ar, {
|
|
1499
|
+
key: 0,
|
|
1500
|
+
"config-panel-ref": g.value
|
|
1501
|
+
}, {
|
|
1502
|
+
default: sa(() => [
|
|
1503
|
+
d("div", {
|
|
1504
|
+
ref_key: "configPanelRef",
|
|
1505
|
+
ref: g
|
|
1506
|
+
}, [
|
|
1507
|
+
ha(X.$slots, "settings", {}, void 0, !0)
|
|
1508
|
+
], 512)
|
|
1509
|
+
]),
|
|
1510
|
+
_: 3
|
|
1511
|
+
}, 8, ["config-panel-ref"])) : h(i) === "animation" ? (x(), H(Kr, {
|
|
1512
|
+
key: 1,
|
|
1513
|
+
config: a.config,
|
|
1514
|
+
engine: a.engine,
|
|
1515
|
+
"is-paused": h(l),
|
|
1516
|
+
t: v,
|
|
1517
|
+
"onUpdate:config": N,
|
|
1518
|
+
onTogglePause: Y,
|
|
1519
|
+
onRestart: O
|
|
1520
|
+
}, null, 8, ["config", "engine", "is-paused"])) : h(i) === "presets" ? (x(), H(ue, {
|
|
1521
|
+
key: 2,
|
|
1522
|
+
presets: a.meta.presets,
|
|
1523
|
+
config: a.config,
|
|
1524
|
+
t: v,
|
|
1525
|
+
"t-obj": s,
|
|
1526
|
+
"onUpdate:config": N
|
|
1527
|
+
}, null, 8, ["presets", "config"])) : h(i) === "export" ? (x(), H(Se, {
|
|
1528
|
+
key: 3,
|
|
1529
|
+
config: a.config,
|
|
1530
|
+
"meta-id": a.meta.id,
|
|
1531
|
+
t: v
|
|
1532
|
+
}, null, 8, ["config", "meta-id"])) : h(i) === "stats" ? (x(), H(Ze, {
|
|
1533
|
+
key: 4,
|
|
1534
|
+
t: v
|
|
1535
|
+
})) : V("", !0)
|
|
1536
|
+
]),
|
|
1537
|
+
h(i) === "settings" ? (x(), I("div", De, [
|
|
1538
|
+
d("button", {
|
|
1539
|
+
class: "w-full h-11 flex items-center justify-center gap-3 bg-white/[0.03] hover:bg-white/10 rounded-xl border border-white/5 text-[10px] font-bold uppercase tracking-[0.25em] transition-all active:scale-[0.98] pointer-events-auto shadow-sm group/btn cursor-pointer",
|
|
1540
|
+
onClick: F
|
|
1541
|
+
}, [
|
|
1542
|
+
R(h(ga), { class: "w-3.5 h-3.5 text-white/30 group-hover/btn:text-blue-400 group-hover/btn:rotate-12 transition-all" }),
|
|
1543
|
+
d("span", qe, C(v("randomize")), 1)
|
|
1544
|
+
])
|
|
1545
|
+
])) : V("", !0)
|
|
1546
|
+
]),
|
|
1547
|
+
_: 3
|
|
1548
|
+
}, 8, ["isOpen", "title", "lang"]),
|
|
1549
|
+
R(Be, {
|
|
1550
|
+
"is-open": h(n),
|
|
1551
|
+
"is-paused": h(l),
|
|
1552
|
+
onToggle: h(u)
|
|
1553
|
+
}, null, 8, ["is-open", "is-paused", "onToggle"]),
|
|
1554
|
+
R(Je, { message: h(w) }, null, 8, ["message"])
|
|
1555
|
+
], 64));
|
|
1556
|
+
}
|
|
1557
|
+
}), Qe = /* @__PURE__ */ G(Ke, [["__scopeId", "data-v-e0f091f2"]]);
|
|
1558
|
+
function la(a) {
|
|
1559
|
+
if (a === null || typeof a != "object")
|
|
1560
|
+
return !1;
|
|
1561
|
+
const r = Object.getPrototypeOf(a);
|
|
1562
|
+
return r !== null && r !== Object.prototype && Object.getPrototypeOf(r) !== null || Symbol.iterator in a ? !1 : Symbol.toStringTag in a ? Object.prototype.toString.call(a) === "[object Module]" : !0;
|
|
1563
|
+
}
|
|
1564
|
+
function va(a, r, t = ".", e) {
|
|
1565
|
+
if (!la(r))
|
|
1566
|
+
return va(a, {}, t, e);
|
|
1567
|
+
const o = Object.assign({}, r);
|
|
1568
|
+
for (const n in a) {
|
|
1569
|
+
if (n === "__proto__" || n === "constructor")
|
|
1570
|
+
continue;
|
|
1571
|
+
const i = a[n];
|
|
1572
|
+
i != null && (e && e(o, n, i, t) || (Array.isArray(i) && Array.isArray(o[n]) ? o[n] = [...i, ...o[n]] : la(i) && la(o[n]) ? o[n] = va(
|
|
1573
|
+
i,
|
|
1574
|
+
o[n],
|
|
1575
|
+
(t ? `${t}.` : "") + n.toString(),
|
|
1576
|
+
e
|
|
1577
|
+
) : o[n] = i));
|
|
1578
|
+
}
|
|
1579
|
+
return o;
|
|
1580
|
+
}
|
|
1581
|
+
function an(a) {
|
|
1582
|
+
return (...r) => (
|
|
1583
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
1584
|
+
r.reduce((t, e) => va(t, e, "", a), {})
|
|
1585
|
+
);
|
|
1586
|
+
}
|
|
1587
|
+
const Aa = an(), tn = /* @__PURE__ */ Z({
|
|
1588
|
+
__name: "Fireworks",
|
|
1589
|
+
props: {
|
|
1590
|
+
className: {},
|
|
1591
|
+
debug: { type: Boolean },
|
|
1592
|
+
lang: {},
|
|
1593
|
+
fireworkCount: {},
|
|
1594
|
+
speed: {},
|
|
1595
|
+
size: {},
|
|
1596
|
+
curvature: {},
|
|
1597
|
+
shape: {},
|
|
1598
|
+
launchMode: {},
|
|
1599
|
+
density: {},
|
|
1600
|
+
colorMode: {},
|
|
1601
|
+
color: {},
|
|
1602
|
+
gravity: {},
|
|
1603
|
+
clusterSize: {},
|
|
1604
|
+
flightHeight: {},
|
|
1605
|
+
uniformity: {},
|
|
1606
|
+
flashIntensity: {},
|
|
1607
|
+
flashOpacity: {},
|
|
1608
|
+
launchInterval: {},
|
|
1609
|
+
flightHeightJitter: {},
|
|
1610
|
+
rotation: {},
|
|
1611
|
+
rotationJitter: {},
|
|
1612
|
+
colorJitter: {}
|
|
1613
|
+
},
|
|
1614
|
+
emits: ["update:fireworkCount", "update:speed", "update:gravity", "update:colorMode", "update:color"],
|
|
1615
|
+
setup(a) {
|
|
1616
|
+
const r = a, t = nt(() => import("./ConfigPanel-CEj7MToh.js")), e = A(null), n = A(Aa(r, q.defaultConfig)), i = A(n.value.lang || "zh-CN");
|
|
1617
|
+
K(() => r, (v) => {
|
|
1618
|
+
r.debug || (n.value = Aa(v, q.defaultConfig));
|
|
1619
|
+
}, { deep: !0 });
|
|
1620
|
+
const l = () => {
|
|
1621
|
+
var v;
|
|
1622
|
+
if (q.randomize) {
|
|
1623
|
+
const s = (v = e.value) == null ? void 0 : v.activeTab, c = typeof s == "object" && (s != null && s.value) ? s.value : s, y = q.randomize(n.value, c);
|
|
1624
|
+
n.value = {
|
|
1625
|
+
...y,
|
|
1626
|
+
debug: n.value.debug,
|
|
1627
|
+
lang: n.value.lang
|
|
1628
|
+
};
|
|
1629
|
+
}
|
|
1630
|
+
}, u = A(null);
|
|
1631
|
+
let p = null;
|
|
1632
|
+
const f = A(!1), g = A(1), w = B(() => ({
|
|
1633
|
+
pause: () => p == null ? void 0 : p.pause(),
|
|
1634
|
+
resume: () => p == null ? void 0 : p.resume(),
|
|
1635
|
+
restart: () => p == null ? void 0 : p.restart()
|
|
1636
|
+
})), M = A(n.value.fireworkCount), P = A(n.value.density);
|
|
1637
|
+
return K(n, (v) => {
|
|
1638
|
+
if (!p || !u.value) return;
|
|
1639
|
+
v.fireworkCount !== M.value || v.density !== P.value ? (f.value = !0, g.value = 0, setTimeout(() => {
|
|
1640
|
+
if (!p || !u.value) return;
|
|
1641
|
+
const c = p.isPaused;
|
|
1642
|
+
p.destroy(), p = new ja(u.value, v), c && p.pause(), M.value = v.fireworkCount, P.value = v.density, setTimeout(() => {
|
|
1643
|
+
g.value = 1, f.value = !1;
|
|
1644
|
+
}, 50);
|
|
1645
|
+
}, 300)) : p.updateConfig(v);
|
|
1646
|
+
}, { deep: !0 }), Xa(() => {
|
|
1647
|
+
if (!u.value) return;
|
|
1648
|
+
p = new ja(u.value, n.value), M.value = n.value.fireworkCount, P.value = n.value.density;
|
|
1649
|
+
const v = u.value.querySelector("canvas");
|
|
1650
|
+
v && (v.style.transition = "opacity 0.3s ease-in-out", K(g, (s) => {
|
|
1651
|
+
v.style.opacity = s.toString();
|
|
1652
|
+
}));
|
|
1653
|
+
}), ma(() => {
|
|
1654
|
+
p == null || p.destroy(), p = null;
|
|
1655
|
+
}), (v, s) => (x(), I("div", {
|
|
1656
|
+
ref_key: "containerRef",
|
|
1657
|
+
ref: u,
|
|
1658
|
+
class: U(["fireworks-container absolute inset-0 z-0", r.className])
|
|
1659
|
+
}, [
|
|
1660
|
+
a.debug ? (x(), H(h(Qe), {
|
|
1661
|
+
key: 0,
|
|
1662
|
+
config: n.value,
|
|
1663
|
+
"onUpdate:config": s[1] || (s[1] = (c) => n.value = c),
|
|
1664
|
+
lang: i.value,
|
|
1665
|
+
"onUpdate:lang": s[2] || (s[2] = (c) => i.value = c),
|
|
1666
|
+
meta: h(q),
|
|
1667
|
+
engine: w.value,
|
|
1668
|
+
onRandomize: l
|
|
1669
|
+
}, {
|
|
1670
|
+
settings: sa(() => [
|
|
1671
|
+
R(h(t), {
|
|
1672
|
+
ref_key: "configContentRef",
|
|
1673
|
+
ref: e,
|
|
1674
|
+
config: n.value,
|
|
1675
|
+
"onUpdate:config": s[0] || (s[0] = (c) => n.value = c),
|
|
1676
|
+
lang: i.value
|
|
1677
|
+
}, null, 8, ["config", "lang"])
|
|
1678
|
+
]),
|
|
1679
|
+
_: 1
|
|
1680
|
+
}, 8, ["config", "lang", "meta", "engine"])) : V("", !0)
|
|
1681
|
+
], 2));
|
|
1682
|
+
}
|
|
1683
|
+
}), rn = (a, r) => {
|
|
1684
|
+
const t = a.__vccOpts || a;
|
|
1685
|
+
for (const [e, o] of r)
|
|
1686
|
+
t[e] = o;
|
|
1687
|
+
return t;
|
|
1688
|
+
}, wn = /* @__PURE__ */ rn(tn, [["__scopeId", "data-v-cf4ad147"]]), en = "Debug Panel", nn = {
|
|
1689
|
+
general: "General",
|
|
1690
|
+
shape: "Shape",
|
|
1691
|
+
launch: "Launch",
|
|
1692
|
+
visual: "Visual"
|
|
1693
|
+
}, on = {
|
|
1694
|
+
count: "Count",
|
|
1695
|
+
density: "Density",
|
|
1696
|
+
size: "Particle Size",
|
|
1697
|
+
cluster: "Cluster Size",
|
|
1698
|
+
gravity: "Gravity",
|
|
1699
|
+
style: "Explosion Style",
|
|
1700
|
+
rotation: "Rotation",
|
|
1701
|
+
jitter: "Jitter",
|
|
1702
|
+
uniformity: "Uniformity",
|
|
1703
|
+
launchMode: "Launch Mode",
|
|
1704
|
+
interval: "Launch Interval",
|
|
1705
|
+
colorMode: "Color Mode",
|
|
1706
|
+
color: "Primary Color",
|
|
1707
|
+
speed: "Speed",
|
|
1708
|
+
intensity: "Flash Intensity",
|
|
1709
|
+
flash: "Flash Opacity"
|
|
1710
|
+
}, sn = {
|
|
1711
|
+
normal: "Normal",
|
|
1712
|
+
circular: "Circular",
|
|
1713
|
+
heart: "Heart",
|
|
1714
|
+
star: "Star",
|
|
1715
|
+
butterfly: "Butterfly",
|
|
1716
|
+
spiral: "Spiral",
|
|
1717
|
+
ring: "Ring",
|
|
1718
|
+
doubleRing: "Double Ring",
|
|
1719
|
+
atom: "Atom",
|
|
1720
|
+
trefoil: "Trefoil",
|
|
1721
|
+
clover: "Clover",
|
|
1722
|
+
cross: "Cross",
|
|
1723
|
+
saturn: "Saturn",
|
|
1724
|
+
hexagram: "Hexagram",
|
|
1725
|
+
astroid: "Astroid",
|
|
1726
|
+
gear: "Gear",
|
|
1727
|
+
fermat: "Fermat",
|
|
1728
|
+
folium: "Folium",
|
|
1729
|
+
random: "Random"
|
|
1730
|
+
}, un = {
|
|
1731
|
+
random: "Random",
|
|
1732
|
+
burst: "Burst",
|
|
1733
|
+
wave: "Wave",
|
|
1734
|
+
tide: "Tide",
|
|
1735
|
+
simultaneous: "Simultaneous",
|
|
1736
|
+
pendulum: "Pendulum",
|
|
1737
|
+
single: "Single Color",
|
|
1738
|
+
multi: "Multi Color"
|
|
1739
|
+
}, dn = {
|
|
1740
|
+
title: en,
|
|
1741
|
+
tabs: nn,
|
|
1742
|
+
labels: on,
|
|
1743
|
+
styles: sn,
|
|
1744
|
+
modes: un
|
|
1745
|
+
}, cn = "调试面板", ln = {
|
|
1746
|
+
general: "基础",
|
|
1747
|
+
shape: "形状",
|
|
1748
|
+
launch: "发射",
|
|
1749
|
+
visual: "视觉"
|
|
1750
|
+
}, pn = {
|
|
1751
|
+
count: "烟花数量",
|
|
1752
|
+
density: "粒子密度",
|
|
1753
|
+
size: "粒子大小",
|
|
1754
|
+
cluster: "爆炸范围",
|
|
1755
|
+
gravity: "重力强度",
|
|
1756
|
+
style: "爆炸样式",
|
|
1757
|
+
rotation: "旋转角度",
|
|
1758
|
+
jitter: "随机抖动",
|
|
1759
|
+
uniformity: "均匀度",
|
|
1760
|
+
launchMode: "发射模式",
|
|
1761
|
+
interval: "发射间隔",
|
|
1762
|
+
colorMode: "颜色模式",
|
|
1763
|
+
color: "主颜色",
|
|
1764
|
+
speed: "动画速度",
|
|
1765
|
+
intensity: "闪光强度",
|
|
1766
|
+
flash: "闪光透明度"
|
|
1767
|
+
}, fn = {
|
|
1768
|
+
normal: "常规",
|
|
1769
|
+
circular: "圆形",
|
|
1770
|
+
heart: "爱心",
|
|
1771
|
+
star: "星形",
|
|
1772
|
+
butterfly: "蝴蝶",
|
|
1773
|
+
spiral: "螺旋",
|
|
1774
|
+
ring: "圆环",
|
|
1775
|
+
doubleRing: "双环",
|
|
1776
|
+
atom: "原子",
|
|
1777
|
+
trefoil: "三叶草",
|
|
1778
|
+
clover: "四叶草",
|
|
1779
|
+
cross: "十字",
|
|
1780
|
+
saturn: "土星",
|
|
1781
|
+
hexagram: "六角星",
|
|
1782
|
+
astroid: "星形线",
|
|
1783
|
+
gear: "齿轮",
|
|
1784
|
+
fermat: "费马螺旋",
|
|
1785
|
+
folium: "叶形线",
|
|
1786
|
+
random: "随机形态"
|
|
1787
|
+
}, bn = {
|
|
1788
|
+
random: "随机位置",
|
|
1789
|
+
burst: "迸发模式",
|
|
1790
|
+
wave: "波动模式",
|
|
1791
|
+
tide: "浪潮模式",
|
|
1792
|
+
simultaneous: "同时发射",
|
|
1793
|
+
pendulum: "钟摆模式",
|
|
1794
|
+
single: "单色模式",
|
|
1795
|
+
multi: "彩色模式"
|
|
1796
|
+
}, gn = {
|
|
1797
|
+
title: cn,
|
|
1798
|
+
tabs: ln,
|
|
1799
|
+
labels: pn,
|
|
1800
|
+
styles: fn,
|
|
1801
|
+
modes: bn
|
|
1802
|
+
}, yn = {
|
|
1803
|
+
en: dn,
|
|
1804
|
+
"zh-CN": gn
|
|
1805
|
+
};
|
|
1806
|
+
export {
|
|
1807
|
+
wn as F,
|
|
1808
|
+
xn as S,
|
|
1809
|
+
rn as _,
|
|
1810
|
+
dn as e,
|
|
1811
|
+
yn as l,
|
|
1812
|
+
q as m,
|
|
1813
|
+
gn as z
|
|
1814
|
+
};
|