@actioneer/ads 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,19 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as l, Fragment as _ } from "react/jsx-runtime";
3
- import * as s from "react";
4
- import { MotionConfig as Q, motion as U, useReducedMotion as ee } from "motion/react";
5
- import { cn as z } from "../../lib/cn.js";
6
- import { EASE_OUT as G, EASE_IN_OUT as oe } from "../../lib/motion.js";
7
- import { Button as W } from "../button.js";
8
- import { Tooltip as Z } from "../tooltip.js";
9
- import { AgentAudioVisualizerAura as te } from "../agents-ui/agent-audio-visualizer-aura.js";
10
- import { AgentAudioVisualizerWave as ie } from "../agents-ui/agent-audio-visualizer-wave.js";
11
- import { Call as re, PhoneOff as ne, MicOff as ce, Mic as le } from "../../lib/icons.js";
12
- const Ie = [
2
+ import { jsx as a, jsxs as G, Fragment as X } from "react/jsx-runtime";
3
+ import * as i from "react";
4
+ import { useReducedMotion as $ } from "motion/react";
5
+ import { cn as R } from "../../lib/cn.js";
6
+ import { Button as U } from "../button.js";
7
+ import { Tooltip as H } from "../tooltip.js";
8
+ import { Call as J, PhoneOff as Q, MicOff as Z, Mic as ee } from "../../lib/icons.js";
9
+ const be = [
13
10
  "default",
14
11
  "identity",
15
- "mono",
16
12
  "blue",
17
13
  "violet",
18
14
  "emerald",
19
15
  "sunset"
20
- ], se = ["orb", "aura", "wave"], Ve = [
16
+ ], Re = ["orb"], we = [
21
17
  "idle",
22
18
  "connecting",
23
19
  "listening",
@@ -25,422 +21,16 @@ const Ie = [
25
21
  "speaking",
26
22
  "muted",
27
23
  "asleep"
28
- ], C = {
29
- // Near-white slash with a silver sheen; quiet, silver-on-light.
30
- command: {
31
- sheen: "#ffffff",
32
- silver: "#c7ccd6",
33
- silverDeep: "#a6adbc",
34
- shadow: "rgba(58,64,82,0.22)",
35
- accent: "#c7ccd6"
36
- },
37
- // Two flat electric-violet 4-point sparkles.
38
- glint: {
39
- spark: "#8030e0",
40
- sparkLite: "#9a4cf0",
41
- accent: "#8030e0"
42
- },
43
- // Thin silver-white ring with a soft warm-white glow.
44
- halo: {
45
- ring: "#cfd4de",
46
- ringLite: "#ffffff",
47
- glow: "#fff2dd",
48
- accent: "#e9d9b8"
49
- },
50
- // Glossy deep-blue sphere: navy shadow → cobalt body → ice-blue highlights.
51
- mana: {
52
- lit: "#5b7ce0",
53
- body: "#4060b0",
54
- mid: "#203060",
55
- shadow: "#001020",
56
- cloud: "#3a5aa8",
57
- cloudLite: "#6f8fe4",
58
- ice: "#90d0ff",
59
- spec: "#ffffff",
60
- accent: "#90d0ff"
61
- },
62
- // Polished chrome ball: silver body, gray crescent core, white gloss.
63
- obsidian: {
64
- hi: "#f6f6f8",
65
- body: "#d0d2d8",
66
- horizon: "#8a8a92",
67
- low: "#e4e5ea",
68
- coreLite: "#dcdde2",
69
- coreDark: "#6f6f76",
70
- rim: "#101010",
71
- gloss: "#ffffff",
72
- accent: "#c8ccd6"
73
- },
74
- // Iridescent orb: crimson top, magenta left, amber right, cyan bottom, melting.
75
- opal: {
76
- crimson: "#e03020",
77
- rust: "#802010",
78
- pink: "#f080d0",
79
- magenta: "#f080e0",
80
- amber: "#f0b024",
81
- yellow: "#ffd45a",
82
- cyan: "#30d0d0",
83
- sheen: "#ffffff",
84
- accent: "#f080d0"
85
- }
86
- }, ae = {
87
- idle: { scale: [1, 1.04, 1], opacity: 1, duration: 4 },
88
- connecting: { scale: [1, 1.06, 1], opacity: 1, duration: 1.3 },
89
- listening: { scale: [1, 1.09, 1], opacity: 1, duration: 1.7 },
90
- thinking: { scale: [1, 1.03, 1], opacity: 1, duration: 2.4 },
91
- speaking: { scale: [1, 1.12, 0.99, 1.07, 1], opacity: 1, duration: 0.95 },
92
- muted: { scale: [1, 1.02, 1], opacity: 0.7, duration: 5 },
93
- asleep: { scale: [1, 1.015, 1], opacity: 0.45, duration: 6 }
94
- }, ue = {
95
- command: { idle: 0, think: 42 },
96
- glint: { idle: 5, think: 65 },
97
- halo: { idle: 20, think: 80 },
98
- mana: { idle: 0, think: 28 },
99
- obsidian: { idle: 4, think: 48 },
100
- opal: { idle: 9, think: 40 }
101
- }, fe = {
102
- idle: "idle",
103
- connecting: "think",
104
- listening: "idle",
105
- thinking: "think",
106
- speaking: "idle",
107
- muted: "slow",
108
- asleep: "stop"
109
- }, de = {
110
- listening: { count: 2, duration: 1.7, maxScale: 1.7, peak: 0.4 },
111
- connecting: { count: 1, duration: 1.9, maxScale: 1.55, peak: 0.32 }
112
- };
113
- function pe(r, o) {
114
- switch (r) {
115
- case "command": {
116
- const t = C.command, i = `${o}-cmd`;
117
- return {
118
- defs: /* @__PURE__ */ l(_, { children: [
119
- /* @__PURE__ */ l("linearGradient", { id: i, x1: "0", y1: "1", x2: "1", y2: "0", children: [
120
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.silverDeep }),
121
- /* @__PURE__ */ e("stop", { offset: "45%", stopColor: t.silver }),
122
- /* @__PURE__ */ e("stop", { offset: "70%", stopColor: t.sheen }),
123
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: t.silver })
124
- ] }),
125
- /* @__PURE__ */ e("filter", { id: `${i}-s`, x: "-40%", y: "-40%", width: "180%", height: "180%", children: /* @__PURE__ */ e("feDropShadow", { dx: "0", dy: "2.5", stdDeviation: "3", floodColor: t.shadow }) })
126
- ] }),
127
- body: /* @__PURE__ */ e("g", { filter: `url(#${i}-s)`, children: /* @__PURE__ */ e(
128
- "line",
129
- {
130
- x1: 37,
131
- y1: 72,
132
- x2: 63,
133
- y2: 28,
134
- stroke: `url(#${i})`,
135
- strokeWidth: 13,
136
- strokeLinecap: "round"
137
- }
138
- ) })
139
- };
140
- }
141
- case "glint": {
142
- const t = C.glint;
143
- return {
144
- defs: null,
145
- body: /* @__PURE__ */ l(_, { children: [
146
- /* @__PURE__ */ e(
147
- "path",
148
- {
149
- d: "M50 16 C53.5 43 56.5 46.5 84 50 C56.5 53.5 53.5 57 50 84 C46.5 57 43.5 53.5 16 50 C43.5 46.5 46.5 43 50 16 Z",
150
- fill: t.spark
151
- }
152
- ),
153
- /* @__PURE__ */ e(
154
- "path",
155
- {
156
- d: "M27 60 C28.6 68 29.4 68.8 37 70.5 C29.4 72.2 28.6 73 27 81 C25.4 73 24.6 72.2 17 70.5 C24.6 68.8 25.4 68 27 60 Z",
157
- fill: t.sparkLite
158
- }
159
- )
160
- ] })
161
- };
162
- }
163
- case "halo": {
164
- const t = C.halo, i = `${o}-halo`;
165
- return {
166
- defs: /* @__PURE__ */ l(_, { children: [
167
- /* @__PURE__ */ l("linearGradient", { id: i, x1: "0", y1: "0", x2: "1", y2: "1", children: [
168
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.ringLite }),
169
- /* @__PURE__ */ e("stop", { offset: "50%", stopColor: t.ring }),
170
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: t.ringLite })
171
- ] }),
172
- /* @__PURE__ */ e("filter", { id: `${i}-glow`, x: "-60%", y: "-60%", width: "220%", height: "220%", children: /* @__PURE__ */ e("feGaussianBlur", { stdDeviation: "4" }) })
173
- ] }),
174
- // Warm-white glow + the crisp silver ring stay fixed …
175
- under: /* @__PURE__ */ l(_, { children: [
176
- /* @__PURE__ */ e(
177
- "circle",
178
- {
179
- cx: 50,
180
- cy: 50,
181
- r: 30,
182
- fill: "none",
183
- stroke: t.glow,
184
- strokeWidth: 9,
185
- opacity: 0.55,
186
- filter: `url(#${i}-glow)`
187
- }
188
- ),
189
- /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 30, fill: "none", stroke: `url(#${i})`, strokeWidth: 4 })
190
- ] }),
191
- // … while a bright sheen arc travels around it.
192
- body: /* @__PURE__ */ e(
193
- "path",
194
- {
195
- d: "M50 20 A30 30 0 0 1 78 44",
196
- fill: "none",
197
- stroke: t.ringLite,
198
- strokeWidth: 4.5,
199
- strokeLinecap: "round"
200
- }
201
- )
202
- };
203
- }
204
- case "mana": {
205
- const t = C.mana, i = `${o}-mana`;
206
- return {
207
- defs: /* @__PURE__ */ l(_, { children: [
208
- /* @__PURE__ */ l("radialGradient", { id: i, cx: "0.4", cy: "0.34", r: "0.75", children: [
209
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.lit }),
210
- /* @__PURE__ */ e("stop", { offset: "45%", stopColor: t.body }),
211
- /* @__PURE__ */ e("stop", { offset: "78%", stopColor: t.mid }),
212
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: t.shadow })
213
- ] }),
214
- /* @__PURE__ */ e("filter", { id: `${i}-b`, x: "-30%", y: "-30%", width: "160%", height: "160%", children: /* @__PURE__ */ e("feGaussianBlur", { stdDeviation: "2.4" }) }),
215
- /* @__PURE__ */ e("clipPath", { id: `${i}-c`, children: /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 32 }) })
216
- ] }),
217
- // Sphere + cloudy internal texture rotate inside the clipped circle …
218
- body: /* @__PURE__ */ l("g", { clipPath: `url(#${i}-c)`, children: [
219
- /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 32, fill: `url(#${i})` }),
220
- /* @__PURE__ */ l("g", { filter: `url(#${i}-b)`, children: [
221
- /* @__PURE__ */ e(
222
- "ellipse",
223
- {
224
- cx: 44,
225
- cy: 60,
226
- rx: 14,
227
- ry: 9,
228
- fill: t.cloud,
229
- opacity: 0.55,
230
- transform: "rotate(-20 44 60)"
231
- }
232
- ),
233
- /* @__PURE__ */ e(
234
- "ellipse",
235
- {
236
- cx: 60,
237
- cy: 44,
238
- rx: 10,
239
- ry: 7,
240
- fill: t.cloudLite,
241
- opacity: 0.45,
242
- transform: "rotate(25 60 44)"
243
- }
244
- ),
245
- /* @__PURE__ */ e("ellipse", { cx: 38, cy: 40, rx: 7, ry: 5, fill: t.cloudLite, opacity: 0.35 })
246
- ] })
247
- ] }),
248
- // … while the ice-blue + white speculars stay put (fixed light source).
249
- over: /* @__PURE__ */ l("g", { children: [
250
- /* @__PURE__ */ e(
251
- "ellipse",
252
- {
253
- cx: 62,
254
- cy: 38,
255
- rx: 9,
256
- ry: 6,
257
- fill: t.ice,
258
- opacity: 0.5,
259
- transform: "rotate(-30 62 38)",
260
- filter: `url(#${i}-b)`
261
- }
262
- ),
263
- /* @__PURE__ */ e(
264
- "ellipse",
265
- {
266
- cx: 59,
267
- cy: 35,
268
- rx: 5.5,
269
- ry: 3.8,
270
- fill: t.spec,
271
- opacity: 0.9,
272
- transform: "rotate(-30 59 35)"
273
- }
274
- ),
275
- /* @__PURE__ */ e("ellipse", { cx: 66, cy: 43, rx: 2.6, ry: 1.9, fill: t.spec, opacity: 0.7 })
276
- ] })
277
- };
278
- }
279
- case "opal": {
280
- const t = C.opal, i = `${o}-opal`;
281
- return {
282
- defs: /* @__PURE__ */ l(_, { children: [
283
- /* @__PURE__ */ e("filter", { id: `${i}-b`, x: "-30%", y: "-30%", width: "160%", height: "160%", children: /* @__PURE__ */ e("feGaussianBlur", { stdDeviation: "7" }) }),
284
- /* @__PURE__ */ e("clipPath", { id: `${i}-c`, children: /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 33 }) }),
285
- /* @__PURE__ */ l("radialGradient", { id: `${i}-sheen`, cx: "0.4", cy: "0.32", r: "0.5", children: [
286
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.sheen, stopOpacity: 0.55 }),
287
- /* @__PURE__ */ e("stop", { offset: "60%", stopColor: t.sheen, stopOpacity: 0 })
288
- ] })
289
- ] }),
290
- // The multi-hue field drifts (rotates slowly) so the colors melt.
291
- body: /* @__PURE__ */ l("g", { clipPath: `url(#${i}-c)`, children: [
292
- /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 33, fill: t.pink }),
293
- /* @__PURE__ */ l("g", { filter: `url(#${i}-b)`, children: [
294
- /* @__PURE__ */ e("ellipse", { cx: 50, cy: 24, rx: 27, ry: 23, fill: t.crimson }),
295
- /* @__PURE__ */ e("ellipse", { cx: 40, cy: 20, rx: 14, ry: 12, fill: t.rust }),
296
- /* @__PURE__ */ e("ellipse", { cx: 26, cy: 52, rx: 22, ry: 26, fill: t.magenta }),
297
- /* @__PURE__ */ e("ellipse", { cx: 74, cy: 50, rx: 23, ry: 25, fill: t.amber }),
298
- /* @__PURE__ */ e("ellipse", { cx: 80, cy: 60, rx: 12, ry: 12, fill: t.yellow }),
299
- /* @__PURE__ */ e("ellipse", { cx: 50, cy: 78, rx: 27, ry: 22, fill: t.cyan }),
300
- /* @__PURE__ */ e("ellipse", { cx: 62, cy: 70, rx: 14, ry: 12, fill: t.pink })
301
- ] })
302
- ] }),
303
- over: /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 33, fill: `url(#${i}-sheen)` })
304
- };
305
- }
306
- case "obsidian":
307
- default: {
308
- const t = C.obsidian, i = `${o}-obs`;
309
- return {
310
- defs: /* @__PURE__ */ l(_, { children: [
311
- /* @__PURE__ */ l("linearGradient", { id: `${i}-b`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
312
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.hi }),
313
- /* @__PURE__ */ e("stop", { offset: "34%", stopColor: t.body }),
314
- /* @__PURE__ */ e("stop", { offset: "54%", stopColor: t.horizon }),
315
- /* @__PURE__ */ e("stop", { offset: "72%", stopColor: t.body }),
316
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: t.low })
317
- ] }),
318
- /* @__PURE__ */ l("radialGradient", { id: `${i}-core`, cx: "0.42", cy: "0.4", r: "0.65", children: [
319
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: t.coreLite }),
320
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: t.coreDark })
321
- ] }),
322
- /* @__PURE__ */ e("filter", { id: `${i}-gl`, x: "-40%", y: "-40%", width: "180%", height: "180%", children: /* @__PURE__ */ e("feGaussianBlur", { stdDeviation: "2" }) }),
323
- /* @__PURE__ */ e("clipPath", { id: `${i}-c`, children: /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 32 }) })
324
- ] }),
325
- // Chrome body + gray crescent core + rim accents rotate …
326
- body: /* @__PURE__ */ l("g", { clipPath: `url(#${i}-c)`, children: [
327
- /* @__PURE__ */ e("circle", { cx: 50, cy: 50, r: 32, fill: `url(#${i}-b)` }),
328
- /* @__PURE__ */ e(
329
- "circle",
330
- {
331
- cx: 50,
332
- cy: 51,
333
- r: 20,
334
- fill: "none",
335
- stroke: t.coreLite,
336
- strokeWidth: 2.5,
337
- opacity: 0.8
338
- }
339
- ),
340
- /* @__PURE__ */ e("circle", { cx: 51, cy: 53, r: 16, fill: `url(#${i}-core)` }),
341
- /* @__PURE__ */ e("circle", { cx: 47, cy: 49, r: 14, fill: `url(#${i}-b)` }),
342
- /* @__PURE__ */ e("circle", { cx: 73, cy: 58, r: 1.6, fill: t.rim, opacity: 0.5 }),
343
- /* @__PURE__ */ e("circle", { cx: 30, cy: 64, r: 1.3, fill: t.rim, opacity: 0.4 })
344
- ] }),
345
- // … while the white gloss stays fixed (polished-chrome highlight).
346
- over: /* @__PURE__ */ e(
347
- "ellipse",
348
- {
349
- cx: 41,
350
- cy: 37,
351
- rx: 8,
352
- ry: 5.5,
353
- fill: t.gloss,
354
- opacity: 0.85,
355
- transform: "rotate(-25 41 37)",
356
- filter: `url(#${i}-gl)`
357
- }
358
- )
359
- };
360
- }
361
- }
362
- }
363
- const K = s.forwardRef(({ state: r, variant: o, className: t, ariaLabel: i }, n) => {
364
- const h = s.useId().replace(/[:]/g, ""), u = pe(o, h), g = ae[r], k = C[o].accent, p = de[r], d = fe[r], v = ue[o], m = d === "think" ? v.think : d === "idle" ? v.idle : d === "slow" ? v.idle * 0.4 : 0, x = m > 0, L = x ? { duration: 360 / m, ease: "linear", repeat: 1 / 0 } : { duration: 0.2, ease: G };
365
- return /* @__PURE__ */ e(Q, { reducedMotion: "user", children: /* @__PURE__ */ e(
366
- U.div,
367
- {
368
- ref: n,
369
- role: "img",
370
- "aria-label": i ?? `AI voice, ${r}`,
371
- "data-state": r,
372
- "data-variant": o,
373
- className: z(
374
- "relative inline-flex size-16 shrink-0 items-center justify-center",
375
- t
376
- ),
377
- animate: { scale: g.scale, opacity: g.opacity },
378
- transition: {
379
- scale: {
380
- duration: g.duration,
381
- ease: oe,
382
- repeat: 1 / 0,
383
- repeatType: "loop"
384
- },
385
- opacity: { duration: 0.2, ease: G }
386
- },
387
- children: /* @__PURE__ */ l("svg", { viewBox: "0 0 100 100", className: "size-full", fill: "none", "aria-hidden": !0, children: [
388
- u.defs && /* @__PURE__ */ e("defs", { children: u.defs }),
389
- u.under,
390
- p && Array.from({ length: p.count }).map((D, y) => /* @__PURE__ */ e(
391
- U.rect,
392
- {
393
- x: 20,
394
- y: 20,
395
- width: 60,
396
- height: 60,
397
- rx: o === "command" ? 18 : 30,
398
- fill: "none",
399
- stroke: k,
400
- strokeWidth: 2.5,
401
- style: { transformBox: "fill-box", transformOrigin: "center" },
402
- initial: { scale: 0.95, opacity: 0 },
403
- animate: { scale: p.maxScale, opacity: [0, p.peak, 0] },
404
- transition: {
405
- duration: p.duration,
406
- ease: G,
407
- repeat: 1 / 0,
408
- delay: y * (p.duration / 2)
409
- }
410
- },
411
- y
412
- )),
413
- /* @__PURE__ */ e(
414
- U.g,
415
- {
416
- style: { transformBox: "fill-box", transformOrigin: "center" },
417
- animate: { rotate: x ? 360 : 0 },
418
- transition: L,
419
- children: u.body
420
- }
421
- ),
422
- u.over
423
- ] })
424
- }
425
- ) });
426
- });
427
- K.displayName = "PersonaVisual";
428
- const X = {
24
+ ], te = {
429
25
  /**
430
26
  * Base colours for `seed`-derived hues. The shader rotates these by u_hue,
431
- * so each seed lands on its own colourway from one shared palette.
27
+ * so each seed lands on its own colourway from one shared spectrum.
432
28
  */
433
29
  identity: [
434
30
  [0.08, 0.78, 1],
435
31
  [0.58, 0.24, 1],
436
32
  [1, 0.16, 0.58]
437
33
  ],
438
- /** Neutral greys, for monochrome products that take no chromatic accent. */
439
- mono: [
440
- [0.62, 0.62, 0.65],
441
- [0.26, 0.26, 0.29],
442
- [0.86, 0.86, 0.89]
443
- ],
444
34
  default: [
445
35
  [0.08, 0.78, 1],
446
36
  [0.58, 0.24, 1],
@@ -466,35 +56,27 @@ const X = {
466
56
  [1, 0.12, 0.46],
467
57
  [0.58, 0.18, 1]
468
58
  ]
469
- }, me = {
470
- identity: 0.65,
471
- mono: 0,
472
- default: 0.65,
473
- blue: 0.3,
474
- violet: 0.5,
475
- emerald: 0.4,
476
- sunset: 0.55
477
- }, w = {
59
+ }, v = {
478
60
  idle: { speed: 0.15, amplitude: 0.04, glow: 0.15, brightness: 0.55, pulse: 0, saturation: 0.7 },
479
61
  connecting: { speed: 0.5, amplitude: 0.1, glow: 0.45, brightness: 0.75, pulse: 1, saturation: 0.9 },
480
62
  listening: { speed: 0.4, amplitude: 0.14, glow: 0.5, brightness: 0.85, pulse: 0, saturation: 1 },
481
63
  speaking: { speed: 1.4, amplitude: 0.35, glow: 0.9, brightness: 1, pulse: 0, saturation: 1 },
482
64
  muted: { speed: 0.06, amplitude: 0.015, glow: 0.08, brightness: 0.35, pulse: 0, saturation: 0.2 }
483
- }, M = {
484
- idle: w.idle,
485
- connecting: w.connecting,
486
- listening: w.listening,
487
- thinking: w.connecting,
488
- speaking: w.speaking,
489
- muted: w.muted,
490
- asleep: { ...w.idle, brightness: 0.35, speed: 0.08 }
491
- }, he = `#version 300 es
65
+ }, F = {
66
+ idle: v.idle,
67
+ connecting: v.connecting,
68
+ listening: v.listening,
69
+ thinking: v.connecting,
70
+ speaking: v.speaking,
71
+ muted: v.muted,
72
+ asleep: { ...v.idle, brightness: 0.35, speed: 0.08 }
73
+ }, oe = `#version 300 es
492
74
  in vec2 a_position;
493
75
  out vec2 v_uv;
494
76
  void main() {
495
77
  v_uv = a_position * 0.5 + 0.5;
496
78
  gl_Position = vec4(a_position, 0.0, 1.0);
497
- }`, ge = `#version 300 es
79
+ }`, ne = `#version 300 es
498
80
  precision highp float;
499
81
 
500
82
  in vec2 v_uv;
@@ -509,6 +91,7 @@ uniform float u_pulse;
509
91
  uniform float u_saturation;
510
92
  uniform float u_seed;
511
93
  uniform float u_hue;
94
+ uniform float u_radius;
512
95
  uniform vec3 u_color0;
513
96
  uniform vec3 u_color1;
514
97
  uniform vec3 u_color2;
@@ -572,16 +155,16 @@ void main() {
572
155
  float dist = length(uv);
573
156
  float t = u_time * u_speed;
574
157
 
575
- // Perfect circle — hard boundary, soft anti-aliased edge
576
- float radius = 0.44;
158
+ // Perfect circle — hard boundary, soft anti-aliased edge. u_radius is in
159
+ // uv units where the box edge midpoint is 1.0, so 0.44 is the legacy disc
160
+ // (transparent padding around it) and ~0.98 fills the box (fill mode).
161
+ float radius = u_radius;
577
162
  float circle = 1.0 - smoothstep(radius - 0.008, radius + 0.008, dist);
578
163
 
579
164
  if (circle < 0.001) {
580
- // Outer glow only
581
- float glowDist = dist - radius;
582
- float glow = exp(-glowDist * 12.0) * u_glow * 0.4;
583
- vec3 glowColor = mix(u_color0, u_color1, 0.5);
584
- fragColor = vec4(glowColor * glow, glow);
165
+ // No halo behind the orb — everything outside the circle is fully
166
+ // transparent, so the orb reads as a clean disc with nothing cast behind it.
167
+ fragColor = vec4(0.0);
585
168
  return;
586
169
  }
587
170
 
@@ -634,189 +217,164 @@ void main() {
634
217
 
635
218
  fragColor = vec4(col, circle);
636
219
  }`;
637
- function Y(r, o, t) {
638
- const i = r.createShader(o);
639
- return i ? (r.shaderSource(i, t), r.compileShader(i), r.getShaderParameter(i, r.COMPILE_STATUS) ? i : (r.deleteShader(i), null)) : null;
220
+ function q(t, e, n) {
221
+ const u = t.createShader(e);
222
+ return u ? (t.shaderSource(u, n), t.compileShader(u), t.getShaderParameter(u, t.COMPILE_STATUS) ? u : (t.deleteShader(u), null)) : null;
640
223
  }
641
- function ve(r) {
642
- const o = r.getContext("webgl2", {
224
+ function re(t) {
225
+ const e = t.getContext("webgl2", {
643
226
  alpha: !0,
644
227
  premultipliedAlpha: !1,
645
228
  antialias: !0
646
229
  });
647
- if (!o) return null;
648
- const t = Y(o, o.VERTEX_SHADER, he), i = Y(o, o.FRAGMENT_SHADER, ge);
649
- if (!t || !i) return null;
650
- const n = o.createProgram();
651
- if (o.attachShader(n, t), o.attachShader(n, i), o.linkProgram(n), !o.getProgramParameter(n, o.LINK_STATUS)) return null;
652
- o.useProgram(n);
653
- const h = o.createBuffer();
654
- o.bindBuffer(o.ARRAY_BUFFER, h), o.bufferData(
655
- o.ARRAY_BUFFER,
230
+ if (!e) return null;
231
+ const n = q(e, e.VERTEX_SHADER, oe), u = q(e, e.FRAGMENT_SHADER, ne);
232
+ if (!n || !u) return null;
233
+ const o = e.createProgram();
234
+ if (e.attachShader(o, n), e.attachShader(o, u), e.linkProgram(o), !e.getProgramParameter(o, e.LINK_STATUS)) return null;
235
+ e.useProgram(o);
236
+ const l = e.createBuffer();
237
+ e.bindBuffer(e.ARRAY_BUFFER, l), e.bufferData(
238
+ e.ARRAY_BUFFER,
656
239
  new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]),
657
- o.STATIC_DRAW
240
+ e.STATIC_DRAW
658
241
  );
659
- const u = o.getAttribLocation(n, "a_position");
660
- o.enableVertexAttribArray(u), o.vertexAttribPointer(u, 2, o.FLOAT, !1, 0, 0), o.enable(o.BLEND), o.blendFunc(o.SRC_ALPHA, o.ONE_MINUS_SRC_ALPHA);
661
- const g = {
662
- u_time: o.getUniformLocation(n, "u_time"),
663
- u_speed: o.getUniformLocation(n, "u_speed"),
664
- u_amplitude: o.getUniformLocation(n, "u_amplitude"),
665
- u_glow: o.getUniformLocation(n, "u_glow"),
666
- u_brightness: o.getUniformLocation(n, "u_brightness"),
667
- u_pulse: o.getUniformLocation(n, "u_pulse"),
668
- u_saturation: o.getUniformLocation(n, "u_saturation"),
669
- u_seed: o.getUniformLocation(n, "u_seed"),
670
- u_hue: o.getUniformLocation(n, "u_hue"),
671
- u_color0: o.getUniformLocation(n, "u_color0"),
672
- u_color1: o.getUniformLocation(n, "u_color1"),
673
- u_color2: o.getUniformLocation(n, "u_color2"),
674
- u_dpr: o.getUniformLocation(n, "u_dpr")
242
+ const f = e.getAttribLocation(o, "a_position");
243
+ e.enableVertexAttribArray(f), e.vertexAttribPointer(f, 2, e.FLOAT, !1, 0, 0), e.enable(e.BLEND), e.blendFunc(e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA);
244
+ const d = {
245
+ u_time: e.getUniformLocation(o, "u_time"),
246
+ u_speed: e.getUniformLocation(o, "u_speed"),
247
+ u_amplitude: e.getUniformLocation(o, "u_amplitude"),
248
+ u_glow: e.getUniformLocation(o, "u_glow"),
249
+ u_brightness: e.getUniformLocation(o, "u_brightness"),
250
+ u_pulse: e.getUniformLocation(o, "u_pulse"),
251
+ u_saturation: e.getUniformLocation(o, "u_saturation"),
252
+ u_seed: e.getUniformLocation(o, "u_seed"),
253
+ u_hue: e.getUniformLocation(o, "u_hue"),
254
+ u_radius: e.getUniformLocation(o, "u_radius"),
255
+ u_color0: e.getUniformLocation(o, "u_color0"),
256
+ u_color1: e.getUniformLocation(o, "u_color1"),
257
+ u_color2: e.getUniformLocation(o, "u_color2"),
258
+ u_dpr: e.getUniformLocation(o, "u_dpr")
675
259
  };
676
- return { gl: o, uniforms: g };
260
+ return { gl: e, uniforms: d };
677
261
  }
678
- function xe(r) {
679
- if (r === void 0) return 0;
680
- if (typeof r == "number") return r;
681
- let o = 0;
682
- for (let t = 0; t < r.length; t += 1)
683
- o = (o << 5) - o + r.charCodeAt(t) | 0;
684
- return Math.abs(o) % 1e3 / 1e3;
262
+ function ie(t) {
263
+ if (t === void 0) return 0;
264
+ if (typeof t == "number") return t;
265
+ let e = 0;
266
+ for (let n = 0; n < t.length; n += 1)
267
+ e = (e << 5) - e + t.charCodeAt(n) | 0;
268
+ return Math.abs(e) % 1e3 / 1e3;
685
269
  }
686
- function E(r, o, t) {
687
- return r + (o - r) * t;
270
+ function b(t, e, n) {
271
+ return t + (e - t) * n;
688
272
  }
689
- const ye = s.memo(function({
690
- state: o,
691
- palette: t,
692
- volume: i,
693
- reduced: n,
694
- seed: h,
695
- hue: u
273
+ const ce = i.memo(function({
274
+ state: e,
275
+ palette: n,
276
+ volume: u,
277
+ reduced: o,
278
+ seed: l,
279
+ hue: f,
280
+ radius: d
696
281
  }) {
697
- const g = s.useRef(0);
698
- g.current = i;
699
- const k = s.useRef(h);
700
- k.current = h;
701
- const p = s.useRef(u);
702
- p.current = u;
703
- const d = s.useRef(n);
704
- d.current = n;
705
- const v = s.useRef(null), m = s.useRef(null), x = s.useRef(0), L = s.useRef(performance.now()), D = s.useRef({ ...M.idle }), y = s.useRef({ ...M.idle });
706
- s.useEffect(() => {
707
- y.current = { ...M[o] };
708
- }, [o]);
709
- const P = X[t], T = s.useRef(P);
710
- T.current = P;
711
- const [j, q] = s.useState(!1);
712
- s.useEffect(() => {
713
- const b = requestAnimationFrame(() => q(!0));
282
+ const w = i.useRef(0);
283
+ w.current = u;
284
+ const y = i.useRef(l);
285
+ y.current = l;
286
+ const A = i.useRef(f);
287
+ A.current = f;
288
+ const S = i.useRef(d);
289
+ S.current = d;
290
+ const C = i.useRef(o);
291
+ C.current = o;
292
+ const h = i.useRef(null), m = i.useRef(null), E = i.useRef(0), W = i.useRef(performance.now()), Y = i.useRef({ ...F.idle }), N = i.useRef({ ...F.idle });
293
+ i.useEffect(() => {
294
+ N.current = { ...F[e] };
295
+ }, [e]);
296
+ const O = te[n], B = i.useRef(O);
297
+ B.current = O;
298
+ const [I, M] = i.useState(!1);
299
+ i.useEffect(() => {
300
+ const g = requestAnimationFrame(() => M(!0));
714
301
  return () => {
715
- cancelAnimationFrame(b), q(!1);
302
+ cancelAnimationFrame(g), M(!1);
716
303
  };
717
304
  }, []);
718
- const O = s.useCallback(() => {
719
- const b = m.current;
720
- if (!b) return;
721
- const { gl: c, uniforms: f } = b, R = v.current;
722
- if (!R) return;
723
- const a = D.current, A = y.current, S = 0.045;
724
- a.speed = E(a.speed, A.speed, S), a.amplitude = E(a.amplitude, A.amplitude, S), a.glow = E(a.glow, A.glow, S), a.brightness = E(a.brightness, A.brightness, S), a.pulse = E(a.pulse, A.pulse, S), a.saturation = E(a.saturation, A.saturation, S);
725
- const J = (performance.now() - L.current) / 1e3, I = window.devicePixelRatio || 1, H = R.getBoundingClientRect(), V = Math.round(H.width * I), B = Math.round(H.height * I);
726
- (R.width !== V || R.height !== B) && (R.width = V, R.height = B), c.viewport(0, 0, V, B), c.clearColor(0, 0, 0, 0), c.clear(c.COLOR_BUFFER_BIT);
727
- const $ = d.current ? 0 : 1, N = g.current * $, F = T.current;
728
- c.uniform1f(f.u_time, J), c.uniform1f(f.u_speed, (a.speed + N * 0.4) * $), c.uniform1f(f.u_amplitude, (a.amplitude + N * 0.12) * $), c.uniform1f(f.u_glow, a.glow + N * 0.2), c.uniform1f(f.u_brightness, a.brightness), c.uniform1f(f.u_pulse, a.pulse * $), c.uniform1f(f.u_saturation, a.saturation), c.uniform1f(f.u_seed, k.current), c.uniform1f(f.u_hue, p.current), c.uniform3fv(f.u_color0, F[0]), c.uniform3fv(f.u_color1, F[1]), c.uniform3fv(f.u_color2, F[2]), c.uniform1f(f.u_dpr, I), c.drawArrays(c.TRIANGLE_STRIP, 0, 4), x.current = requestAnimationFrame(O);
305
+ const L = i.useCallback(() => {
306
+ const g = m.current;
307
+ if (!g) return;
308
+ const { gl: r, uniforms: c } = g, p = h.current;
309
+ if (!p) return;
310
+ const s = Y.current, _ = N.current, x = 0.045;
311
+ s.speed = b(s.speed, _.speed, x), s.amplitude = b(s.amplitude, _.amplitude, x), s.glow = b(s.glow, _.glow, x), s.brightness = b(s.brightness, _.brightness, x), s.pulse = b(s.pulse, _.pulse, x), s.saturation = b(s.saturation, _.saturation, x);
312
+ const K = (performance.now() - W.current) / 1e3, T = window.devicePixelRatio || 1, j = p.getBoundingClientRect(), P = Math.round(j.width * T), k = Math.round(j.height * T);
313
+ (p.width !== P || p.height !== k) && (p.width = P, p.height = k), r.viewport(0, 0, P, k), r.clearColor(0, 0, 0, 0), r.clear(r.COLOR_BUFFER_BIT);
314
+ const z = C.current ? 0 : 1, V = w.current * z, D = B.current;
315
+ r.uniform1f(c.u_time, K), r.uniform1f(c.u_speed, (s.speed + V * 0.4) * z), r.uniform1f(c.u_amplitude, (s.amplitude + V * 0.12) * z), r.uniform1f(c.u_glow, s.glow + V * 0.2), r.uniform1f(c.u_brightness, s.brightness), r.uniform1f(c.u_pulse, s.pulse * z), r.uniform1f(c.u_saturation, s.saturation), r.uniform1f(c.u_seed, y.current), r.uniform1f(c.u_hue, A.current), r.uniform1f(c.u_radius, S.current), r.uniform3fv(c.u_color0, D[0]), r.uniform3fv(c.u_color1, D[1]), r.uniform3fv(c.u_color2, D[2]), r.uniform1f(c.u_dpr, T), r.drawArrays(r.TRIANGLE_STRIP, 0, 4), E.current = requestAnimationFrame(L);
729
316
  }, []);
730
- return s.useEffect(() => {
731
- if (!j) return;
732
- const b = v.current;
733
- if (b && (m.current = ve(b), !!m.current))
734
- return x.current = requestAnimationFrame(O), () => {
735
- cancelAnimationFrame(x.current);
736
- const c = m.current;
737
- if (c) {
738
- const f = c.gl.getExtension("WEBGL_lose_context");
739
- f == null || f.loseContext();
317
+ return i.useEffect(() => {
318
+ if (!I) return;
319
+ const g = h.current;
320
+ if (g && (m.current = re(g), !!m.current))
321
+ return E.current = requestAnimationFrame(L), () => {
322
+ cancelAnimationFrame(E.current);
323
+ const r = m.current;
324
+ if (r) {
325
+ const c = r.gl.getExtension("WEBGL_lose_context");
326
+ c == null || c.loseContext();
740
327
  }
741
328
  m.current = null;
742
329
  };
743
- }, [j, O]), /* @__PURE__ */ e("canvas", { ref: v, className: "size-full", "data-state": o });
744
- }), _e = s.forwardRef(
330
+ }, [I, L]), /* @__PURE__ */ a("canvas", { ref: h, className: "size-full", "data-state": e });
331
+ }), se = i.forwardRef(
745
332
  ({
746
- state: r = "idle",
747
- variant: o = "orb",
748
- className: t,
749
- volume: i = 0,
750
- palette: n = "default",
751
- seed: h,
752
- onReady: u,
753
- "aria-label": g,
754
- ...k
755
- }, p) => {
756
- const d = se.includes(o) ? o : "orb", v = ee() ?? !1, m = Math.min(1, Math.max(0, i)), x = s.useMemo(() => xe(h), [h]), L = n === "identity" ? x * Math.PI * 2 : 0;
757
- if (s.useEffect(() => {
758
- u == null || u();
759
- }, []), d === "orb" || d === "aura" || d === "wave") {
760
- const y = X[n][0], P = me[n], T = d === "orb" ? /* @__PURE__ */ e(
761
- ye,
762
- {
763
- state: r,
764
- palette: n,
765
- volume: m,
766
- reduced: v,
767
- seed: x,
768
- hue: L
769
- }
770
- ) : d === "aura" ? /* @__PURE__ */ e(
771
- te,
772
- {
773
- state: r,
774
- volume: m,
775
- reduced: v,
776
- color: y,
777
- colorShift: P
778
- }
779
- ) : /* @__PURE__ */ e(
780
- ie,
781
- {
782
- state: r,
783
- volume: m,
784
- reduced: v,
785
- color: y,
786
- colorShift: P
787
- }
788
- );
789
- return /* @__PURE__ */ e(
790
- "div",
791
- {
792
- ...k,
793
- ref: p,
794
- role: "img",
795
- "aria-label": g ?? `AI voice, ${r}`,
796
- "data-state": r,
797
- "data-variant": d,
798
- className: z(
799
- "relative inline-flex size-16 shrink-0 items-center justify-center",
800
- t
801
- ),
802
- children: T
803
- }
804
- );
805
- }
806
- return /* @__PURE__ */ e(
807
- K,
333
+ state: t = "idle",
334
+ variant: e = "orb",
335
+ className: n,
336
+ volume: u = 0,
337
+ palette: o = "default",
338
+ seed: l,
339
+ fill: f = !1,
340
+ onReady: d,
341
+ "aria-label": w,
342
+ ...y
343
+ }, A) => {
344
+ const S = $() ?? !1, C = Math.min(1, Math.max(0, u)), h = i.useMemo(() => ie(l), [l]), m = o === "identity" ? h * Math.PI * 2 : 0;
345
+ return i.useEffect(() => {
346
+ d == null || d();
347
+ }, []), /* @__PURE__ */ a(
348
+ "div",
808
349
  {
809
- ref: p,
810
- state: r,
811
- variant: d,
812
- className: t,
813
- ariaLabel: g
350
+ ...y,
351
+ ref: A,
352
+ role: "img",
353
+ "aria-label": w ?? `AI voice, ${t}`,
354
+ "data-state": t,
355
+ "data-variant": e,
356
+ className: R(
357
+ "relative inline-flex size-24 shrink-0 items-center justify-center",
358
+ n
359
+ ),
360
+ children: /* @__PURE__ */ a(
361
+ ce,
362
+ {
363
+ state: t,
364
+ palette: o,
365
+ volume: C,
366
+ reduced: S,
367
+ seed: h,
368
+ hue: m,
369
+ radius: f ? 0.98 : 0.44
370
+ }
371
+ )
814
372
  }
815
373
  );
816
374
  }
817
375
  );
818
- _e.displayName = "Voice";
819
- const be = {
376
+ se.displayName = "Voice";
377
+ const ae = {
820
378
  idle: "bg-muted-foreground",
821
379
  connecting: "bg-warning motion-safe:animate-pulse",
822
380
  listening: "bg-success",
@@ -825,105 +383,114 @@ const be = {
825
383
  muted: "bg-danger",
826
384
  asleep: "bg-muted-foreground opacity-50"
827
385
  };
828
- function we({ state: r = "idle", className: o }) {
829
- return /* @__PURE__ */ e(
386
+ function ue({ state: t = "idle", className: e }) {
387
+ return /* @__PURE__ */ a(
830
388
  "span",
831
389
  {
832
390
  "aria-hidden": !0,
833
- className: z(
391
+ className: R(
834
392
  "inline-block size-2.5 shrink-0 rounded-dot transition-[background-color,opacity] duration-(--duration-normal) ease-out motion-reduce:transition-none",
835
- be[r],
836
- o
393
+ ae[t],
394
+ e
837
395
  )
838
396
  }
839
397
  );
840
398
  }
841
- function Ce({
842
- onConnect: r,
843
- disabled: o,
844
- className: t
399
+ function le({
400
+ onConnect: t,
401
+ disabled: e,
402
+ className: n
845
403
  }) {
846
- return /* @__PURE__ */ e(
847
- W,
404
+ return /* @__PURE__ */ a(
405
+ U,
848
406
  {
849
- variant: "solid",
407
+ variant: "ghost",
850
408
  size: "sm",
851
- disabled: o,
852
- onClick: r,
853
- startContent: /* @__PURE__ */ e(re, {}),
854
- className: t,
409
+ disabled: e,
410
+ onClick: t,
411
+ startContent: /* @__PURE__ */ a(J, {}),
412
+ className: R(
413
+ "bg-success-50 text-success-700 hover:bg-success-100 hover:text-success-700",
414
+ n
415
+ ),
855
416
  children: "Connect"
856
417
  }
857
418
  );
858
419
  }
859
- function ke({
860
- isMuted: r = !1,
861
- onMute: o,
862
- onUnmute: t,
863
- disabled: i,
864
- className: n
420
+ function fe({
421
+ isMuted: t = !1,
422
+ onMute: e,
423
+ onUnmute: n,
424
+ disabled: u,
425
+ className: o
865
426
  }) {
866
- return /* @__PURE__ */ e(Z, { content: r ? "Unmute" : "Mute", children: /* @__PURE__ */ e(
867
- W,
427
+ return /* @__PURE__ */ a(H, { content: t ? "Unmute" : "Mute", children: /* @__PURE__ */ a(
428
+ U,
868
429
  {
869
430
  variant: "ghost",
870
431
  size: "icon-sm",
871
- disabled: i,
872
- "aria-label": r ? "Unmute" : "Mute",
873
- onClick: () => r ? t == null ? void 0 : t() : o == null ? void 0 : o(),
874
- className: n,
875
- children: r ? /* @__PURE__ */ e(ce, {}) : /* @__PURE__ */ e(le, {})
432
+ disabled: u,
433
+ "aria-label": t ? "Unmute" : "Mute",
434
+ onClick: () => t ? n == null ? void 0 : n() : e == null ? void 0 : e(),
435
+ className: R(
436
+ t ? "bg-warning-50 text-warning-700 hover:bg-warning-100 hover:text-warning-700" : "bg-info-50 text-info-700 hover:bg-info-100 hover:text-info-700",
437
+ o
438
+ ),
439
+ children: t ? /* @__PURE__ */ a(Z, {}) : /* @__PURE__ */ a(ee, {})
876
440
  }
877
441
  ) });
878
442
  }
879
- function Re({
880
- onDisconnect: r,
881
- disabled: o,
882
- className: t
443
+ function de({
444
+ onDisconnect: t,
445
+ disabled: e,
446
+ className: n
883
447
  }) {
884
- return /* @__PURE__ */ e(Z, { content: "Disconnect", children: /* @__PURE__ */ e(
885
- W,
448
+ return /* @__PURE__ */ a(H, { content: "Disconnect", children: /* @__PURE__ */ a(
449
+ U,
886
450
  {
887
451
  variant: "ghost",
888
452
  size: "icon-sm",
889
- disabled: o,
453
+ disabled: e,
890
454
  "aria-label": "Disconnect",
891
- onClick: r,
892
- className: z("text-danger hover:text-danger", t),
893
- children: /* @__PURE__ */ e(ne, {})
455
+ onClick: t,
456
+ className: R(
457
+ "bg-danger-50 text-danger-700 hover:bg-danger-100 hover:text-danger-700",
458
+ n
459
+ ),
460
+ children: /* @__PURE__ */ a(Q, {})
894
461
  }
895
462
  ) });
896
463
  }
897
- function Ae(r, o) {
898
- return r === "ended" ? "idle" : r === "starting" ? "connecting" : o ? "muted" : "listening";
464
+ function me(t, e) {
465
+ return t === "ended" ? "idle" : t === "starting" ? "connecting" : e ? "muted" : "listening";
899
466
  }
900
- function Be({
901
- status: r,
902
- isMuted: o = !1,
903
- onConnect: t,
904
- onMute: i,
905
- onUnmute: n,
906
- onDisconnect: h,
907
- className: u
467
+ function ye({
468
+ status: t,
469
+ isMuted: e = !1,
470
+ onConnect: n,
471
+ onMute: u,
472
+ onUnmute: o,
473
+ onDisconnect: l,
474
+ className: f
908
475
  }) {
909
- return /* @__PURE__ */ l("div", { className: z("flex items-center gap-2", u), children: [
910
- /* @__PURE__ */ e(we, { state: Ae(r, o) }),
911
- r === "ended" && /* @__PURE__ */ e(Ce, { onConnect: t }),
912
- r === "starting" && /* @__PURE__ */ e("span", { className: "text-base text-secondary", children: "Connecting…" }),
913
- r === "running" && /* @__PURE__ */ l(_, { children: [
914
- /* @__PURE__ */ e(ke, { isMuted: o, onMute: i, onUnmute: n }),
915
- /* @__PURE__ */ e(Re, { onDisconnect: h })
476
+ return /* @__PURE__ */ G("div", { className: R("flex items-center gap-2", f), children: [
477
+ /* @__PURE__ */ a(ue, { state: me(t, e) }),
478
+ t === "ended" && /* @__PURE__ */ a(le, { onConnect: n }),
479
+ t === "starting" && /* @__PURE__ */ a("span", { className: "text-base text-secondary", children: "Connecting…" }),
480
+ t === "running" && /* @__PURE__ */ G(X, { children: [
481
+ /* @__PURE__ */ a(fe, { isMuted: e, onMute: u, onUnmute: o }),
482
+ /* @__PURE__ */ a(de, { onDisconnect: l })
916
483
  ] })
917
484
  ] });
918
485
  }
919
486
  export {
920
- Ie as VOICE_PALETTES,
921
- Ve as VOICE_STATES,
922
- se as VOICE_VARIANTS,
923
- _e as Voice,
924
- Ce as VoiceConnectButton,
925
- Be as VoiceControl,
926
- Re as VoiceDisconnectButton,
927
- ke as VoiceMuteButton,
928
- we as VoiceStatusDot
487
+ be as VOICE_PALETTES,
488
+ we as VOICE_STATES,
489
+ Re as VOICE_VARIANTS,
490
+ se as Voice,
491
+ le as VoiceConnectButton,
492
+ ye as VoiceControl,
493
+ de as VoiceDisconnectButton,
494
+ fe as VoiceMuteButton,
495
+ ue as VoiceStatusDot
929
496
  };