@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.
- package/components/ai-elements/agent-trace.d.ts +87 -0
- package/components/ai-elements/agent-trace.js +180 -0
- package/components/ai-elements/chain-of-thought.js +63 -63
- package/components/ai-elements/index.d.ts +1 -0
- package/components/ai-elements/tool.js +3 -3
- package/components/ai-elements/voice.d.ts +24 -14
- package/components/ai-elements/voice.js +237 -670
- package/components/assistant-ui/composer-harness.js +5 -4
- package/components/index.js +259 -257
- package/lib/icons.js +2 -2
- package/llms.txt +5 -0
- package/manifest.json +50 -4
- package/package.json +1 -1
- package/styles.css +5 -5
- package/theme.css +2 -2
- package/components/agents-ui/agent-audio-visualizer-aura.d.ts +0 -11
- package/components/agents-ui/agent-audio-visualizer-aura.js +0 -277
- package/components/agents-ui/agent-audio-visualizer-wave.d.ts +0 -12
- package/components/agents-ui/agent-audio-visualizer-wave.js +0 -203
- package/components/agents-ui/react-shader-toy.d.ts +0 -87
- package/components/agents-ui/react-shader-toy.js +0 -531
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import * as
|
|
4
|
-
import {
|
|
5
|
-
import { cn as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
484
|
-
idle:
|
|
485
|
-
connecting:
|
|
486
|
-
listening:
|
|
487
|
-
thinking:
|
|
488
|
-
speaking:
|
|
489
|
-
muted:
|
|
490
|
-
asleep: { ...
|
|
491
|
-
},
|
|
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
|
-
}`,
|
|
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
|
-
|
|
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
|
-
//
|
|
581
|
-
|
|
582
|
-
|
|
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
|
|
638
|
-
const
|
|
639
|
-
return
|
|
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
|
|
642
|
-
const
|
|
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 (!
|
|
648
|
-
const
|
|
649
|
-
if (!
|
|
650
|
-
const
|
|
651
|
-
if (
|
|
652
|
-
|
|
653
|
-
const
|
|
654
|
-
|
|
655
|
-
|
|
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
|
-
|
|
240
|
+
e.STATIC_DRAW
|
|
658
241
|
);
|
|
659
|
-
const
|
|
660
|
-
|
|
661
|
-
const
|
|
662
|
-
u_time:
|
|
663
|
-
u_speed:
|
|
664
|
-
u_amplitude:
|
|
665
|
-
u_glow:
|
|
666
|
-
u_brightness:
|
|
667
|
-
u_pulse:
|
|
668
|
-
u_saturation:
|
|
669
|
-
u_seed:
|
|
670
|
-
u_hue:
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
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:
|
|
260
|
+
return { gl: e, uniforms: d };
|
|
677
261
|
}
|
|
678
|
-
function
|
|
679
|
-
if (
|
|
680
|
-
if (typeof
|
|
681
|
-
let
|
|
682
|
-
for (let
|
|
683
|
-
|
|
684
|
-
return Math.abs(
|
|
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
|
|
687
|
-
return
|
|
270
|
+
function b(t, e, n) {
|
|
271
|
+
return t + (e - t) * n;
|
|
688
272
|
}
|
|
689
|
-
const
|
|
690
|
-
state:
|
|
691
|
-
palette:
|
|
692
|
-
volume:
|
|
693
|
-
reduced:
|
|
694
|
-
seed:
|
|
695
|
-
hue:
|
|
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
|
|
698
|
-
|
|
699
|
-
const
|
|
700
|
-
|
|
701
|
-
const
|
|
702
|
-
|
|
703
|
-
const
|
|
704
|
-
|
|
705
|
-
const
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
const [
|
|
712
|
-
|
|
713
|
-
|
|
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(
|
|
302
|
+
cancelAnimationFrame(g), M(!1);
|
|
716
303
|
};
|
|
717
304
|
}, []);
|
|
718
|
-
const
|
|
719
|
-
const
|
|
720
|
-
if (!
|
|
721
|
-
const { gl:
|
|
722
|
-
if (!
|
|
723
|
-
const
|
|
724
|
-
|
|
725
|
-
const
|
|
726
|
-
(
|
|
727
|
-
const
|
|
728
|
-
|
|
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
|
|
731
|
-
if (!
|
|
732
|
-
const
|
|
733
|
-
if (
|
|
734
|
-
return
|
|
735
|
-
cancelAnimationFrame(
|
|
736
|
-
const
|
|
737
|
-
if (
|
|
738
|
-
const
|
|
739
|
-
|
|
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
|
-
}, [
|
|
744
|
-
}),
|
|
330
|
+
}, [I, L]), /* @__PURE__ */ a("canvas", { ref: h, className: "size-full", "data-state": e });
|
|
331
|
+
}), se = i.forwardRef(
|
|
745
332
|
({
|
|
746
|
-
state:
|
|
747
|
-
variant:
|
|
748
|
-
className:
|
|
749
|
-
volume:
|
|
750
|
-
palette:
|
|
751
|
-
seed:
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
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
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
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
|
-
|
|
819
|
-
const
|
|
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
|
|
829
|
-
return /* @__PURE__ */
|
|
386
|
+
function ue({ state: t = "idle", className: e }) {
|
|
387
|
+
return /* @__PURE__ */ a(
|
|
830
388
|
"span",
|
|
831
389
|
{
|
|
832
390
|
"aria-hidden": !0,
|
|
833
|
-
className:
|
|
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
|
-
|
|
836
|
-
|
|
393
|
+
ae[t],
|
|
394
|
+
e
|
|
837
395
|
)
|
|
838
396
|
}
|
|
839
397
|
);
|
|
840
398
|
}
|
|
841
|
-
function
|
|
842
|
-
onConnect:
|
|
843
|
-
disabled:
|
|
844
|
-
className:
|
|
399
|
+
function le({
|
|
400
|
+
onConnect: t,
|
|
401
|
+
disabled: e,
|
|
402
|
+
className: n
|
|
845
403
|
}) {
|
|
846
|
-
return /* @__PURE__ */
|
|
847
|
-
|
|
404
|
+
return /* @__PURE__ */ a(
|
|
405
|
+
U,
|
|
848
406
|
{
|
|
849
|
-
variant: "
|
|
407
|
+
variant: "ghost",
|
|
850
408
|
size: "sm",
|
|
851
|
-
disabled:
|
|
852
|
-
onClick:
|
|
853
|
-
startContent: /* @__PURE__ */
|
|
854
|
-
className:
|
|
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
|
|
860
|
-
isMuted:
|
|
861
|
-
onMute:
|
|
862
|
-
onUnmute:
|
|
863
|
-
disabled:
|
|
864
|
-
className:
|
|
420
|
+
function fe({
|
|
421
|
+
isMuted: t = !1,
|
|
422
|
+
onMute: e,
|
|
423
|
+
onUnmute: n,
|
|
424
|
+
disabled: u,
|
|
425
|
+
className: o
|
|
865
426
|
}) {
|
|
866
|
-
return /* @__PURE__ */
|
|
867
|
-
|
|
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:
|
|
872
|
-
"aria-label":
|
|
873
|
-
onClick: () =>
|
|
874
|
-
className:
|
|
875
|
-
|
|
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
|
|
880
|
-
onDisconnect:
|
|
881
|
-
disabled:
|
|
882
|
-
className:
|
|
443
|
+
function de({
|
|
444
|
+
onDisconnect: t,
|
|
445
|
+
disabled: e,
|
|
446
|
+
className: n
|
|
883
447
|
}) {
|
|
884
|
-
return /* @__PURE__ */
|
|
885
|
-
|
|
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:
|
|
453
|
+
disabled: e,
|
|
890
454
|
"aria-label": "Disconnect",
|
|
891
|
-
onClick:
|
|
892
|
-
className:
|
|
893
|
-
|
|
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
|
|
898
|
-
return
|
|
464
|
+
function me(t, e) {
|
|
465
|
+
return t === "ended" ? "idle" : t === "starting" ? "connecting" : e ? "muted" : "listening";
|
|
899
466
|
}
|
|
900
|
-
function
|
|
901
|
-
status:
|
|
902
|
-
isMuted:
|
|
903
|
-
onConnect:
|
|
904
|
-
onMute:
|
|
905
|
-
onUnmute:
|
|
906
|
-
onDisconnect:
|
|
907
|
-
className:
|
|
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__ */
|
|
910
|
-
/* @__PURE__ */
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
/* @__PURE__ */
|
|
915
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
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
|
};
|