@norbert_bodziony/bloub 0.4.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +27 -4
  2. package/dist/package/assets/boule.webp +0 -0
  3. package/dist/package/assets/cloe-corps.webp +0 -0
  4. package/dist/package/assets/cloe-oeil0-x.webp +0 -0
  5. package/dist/package/assets/cloe-oeil0-y.webp +0 -0
  6. package/dist/package/assets/cloe-oeil1-x.webp +0 -0
  7. package/dist/package/assets/cloe-oeil1-y.webp +0 -0
  8. package/dist/package/assets/forme-capsule.webp +0 -0
  9. package/dist/package/assets/forme-carre.webp +0 -0
  10. package/dist/package/assets/forme-cercle.webp +0 -0
  11. package/dist/package/assets/forme-galet.webp +0 -0
  12. package/dist/package/assets/forme-goutte.webp +0 -0
  13. package/dist/package/assets/forme-hexagone.webp +0 -0
  14. package/dist/package/assets/forme-losange.webp +0 -0
  15. package/dist/package/assets/forme-nuage.webp +0 -0
  16. package/dist/package/assets/forme-pentagone.webp +0 -0
  17. package/dist/package/assets/forme-squircle.webp +0 -0
  18. package/dist/package/assets/forme-triangle.webp +0 -0
  19. package/dist/package/assets/fred-corps.webp +0 -0
  20. package/dist/package/assets/fred-oeil0-x.webp +0 -0
  21. package/dist/package/assets/fred-oeil0-y.webp +0 -0
  22. package/dist/package/assets/fred-oeil1-x.webp +0 -0
  23. package/dist/package/assets/fred-oeil1-y.webp +0 -0
  24. package/dist/package/assets/malu-corps.webp +0 -0
  25. package/dist/package/assets/malu-oeil0-x.webp +0 -0
  26. package/dist/package/assets/malu-oeil0-y.webp +0 -0
  27. package/dist/package/assets/malu-oeil1-x.webp +0 -0
  28. package/dist/package/assets/malu-oeil1-y.webp +0 -0
  29. package/dist/package/assets/nexo-corps.webp +0 -0
  30. package/dist/package/assets/nexo-oeil0-x.webp +0 -0
  31. package/dist/package/assets/nexo-oeil0-y.webp +0 -0
  32. package/dist/package/assets/nexo-oeil1-x.webp +0 -0
  33. package/dist/package/assets/nexo-oeil1-y.webp +0 -0
  34. package/dist/package/assets/vita-corps.webp +0 -0
  35. package/dist/package/assets/vita-oeil0-x.webp +0 -0
  36. package/dist/package/assets/vita-oeil0-y.webp +0 -0
  37. package/dist/package/assets/vita-oeil1-x.webp +0 -0
  38. package/dist/package/assets/vita-oeil1-y.webp +0 -0
  39. package/dist/package/assets/yoshi-corps.webp +0 -0
  40. package/dist/package/assets/yoshi-oeil0-x.webp +0 -0
  41. package/dist/package/assets/yoshi-oeil0-y.webp +0 -0
  42. package/dist/package/assets/yoshi-oeil1-x.webp +0 -0
  43. package/dist/package/assets/yoshi-oeil1-y.webp +0 -0
  44. package/dist/package/chunks/BloubBot-_XolrDe1.js +2226 -0
  45. package/dist/package/chunks/BloubBot-server-V9r0a_k-.js +1 -0
  46. package/dist/package/index.js +2 -2135
  47. package/dist/package/plush-server.js +1 -0
  48. package/dist/package/plush.js +1208 -0
  49. package/dist/package/server.js +1 -1
  50. package/dist/package/types/bot/engine.d.ts +45 -0
  51. package/dist/package/types/bot/skins.d.ts +1 -1
  52. package/dist/package/types/bot/states.d.ts +2 -0
  53. package/dist/package/types/components/BloubBot.d.ts +42 -1
  54. package/dist/package/types/index.d.ts +1 -1
  55. package/dist/package/types/plush/PlushBot.d.ts +64 -0
  56. package/dist/package/types/plush/assets.d.ts +1 -0
  57. package/dist/package/types/plush/body.d.ts +28 -0
  58. package/dist/package/types/plush/catalogue.d.ts +56 -0
  59. package/dist/package/types/plush/index.d.ts +5 -0
  60. package/dist/package/types/plush/layer.d.ts +36 -0
  61. package/dist/package/types/plush/motion.d.ts +236 -0
  62. package/dist/package/types/plush/slices.d.ts +49 -0
  63. package/dist/package/types/plush/tint.d.ts +27 -0
  64. package/dist/package/types/plush/transition.d.ts +33 -0
  65. package/dist/package/types/plush/warp.d.ts +10 -0
  66. package/package.json +13 -2
@@ -0,0 +1,2226 @@
1
+ import { Dynamic as e, className as t, createComponent as n, effect as r, insert as i, memo as a, mergeProps as o, ref as s, setAttribute as c, style as l, template as u } from "@solidjs/web";
2
+ import { For as d, Show as f, createEffect as p, createMemo as m, createSignal as h, createUniqueId as g, onCleanup as _, onSettled as v, untrack as y } from "solid-js";
3
+ //#region src/bot/math.ts
4
+ var b = Math.PI * 2, x = (e, t = 0, n = 1) => e < t ? t : e > n ? n : e, S = (e, t, n) => e + (t - e) * n, C = {
5
+ easeOutCubic: (e) => 1 - (1 - e) ** 3,
6
+ easeInOutCubic: (e) => e < .5 ? 4 * e ** 3 : 1 - (-2 * e + 2) ** 3 / 2,
7
+ easeOutQuint: (e) => 1 - (1 - e) ** 5
8
+ };
9
+ function w(e, t, n = 0) {
10
+ let r = e / t * b;
11
+ return .55 * Math.sin(r + n) + .3 * Math.sin(2 * r + n * 1.7 + 1.1) + .15 * Math.sin(3 * r + n * 2.3 + 2.4);
12
+ }
13
+ function ee(e) {
14
+ let t = e >>> 0;
15
+ return () => {
16
+ t = t + 1831565813 >>> 0;
17
+ let e = Math.imul(t ^ t >>> 15, 1 | t);
18
+ return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
19
+ };
20
+ }
21
+ var T = (e) => Math.round(e * 100) / 100;
22
+ //#endregion
23
+ //#region src/bot/decor.ts
24
+ function te(e, t = .55, n = .62) {
25
+ let r = (e % 360 + 360) % 360, i = (1 - Math.abs(2 * n - 1)) * t, a = i * (1 - Math.abs(r / 60 % 2 - 1)), o = n - i / 2, [s, c, l] = r < 60 ? [
26
+ i,
27
+ a,
28
+ 0
29
+ ] : r < 120 ? [
30
+ a,
31
+ i,
32
+ 0
33
+ ] : r < 180 ? [
34
+ 0,
35
+ i,
36
+ a
37
+ ] : r < 240 ? [
38
+ 0,
39
+ a,
40
+ i
41
+ ] : r < 300 ? [
42
+ a,
43
+ 0,
44
+ i
45
+ ] : [
46
+ i,
47
+ 0,
48
+ a
49
+ ], u = (e) => Math.round((e + o) * 255).toString(16).padStart(2, "0");
50
+ return `#${u(s)}${u(c)}${u(l)}`;
51
+ }
52
+ function ne(e, t, n, r, i = 1) {
53
+ let a = e.phase + t * e.speed * b, o = Math.cos(e.tilt), s = Math.sin(e.tilt), c = Math.sqrt(Math.max(0, 1 - e.k * e.k)), l = e.sweep * b, u = "", d = "", f = null;
54
+ for (let t = 0; t <= 64; t++) {
55
+ let r = a + t / 64 * l, i = Math.cos(r), p = Math.sin(r), m = e.a * (i * o + p * -s * e.k) + e.cx, h = e.a * (i * s + p * o * e.k) + e.cy, g = e.a * p * c < 0, _ = T(m * n), v = T(h * n), y = g === f ? "L" : "M";
56
+ g ? d += `${y}${_} ${v}` : u += `${y}${_} ${v}`, f = g;
57
+ }
58
+ let p = Math.cos(e.tilt) * e.a * n, m = Math.sin(e.tilt) * e.a * n;
59
+ return {
60
+ id: r,
61
+ front: u,
62
+ back: d,
63
+ width: e.width * n,
64
+ opacity: i,
65
+ grad: {
66
+ x1: T(e.cx * n - p),
67
+ y1: T(e.cy * n - m),
68
+ x2: T(e.cx * n + p),
69
+ y2: T(e.cy * n + m),
70
+ stops: [
71
+ te(e.hue),
72
+ te(e.hue + e.hueSpan * .5),
73
+ te(e.hue + e.hueSpan)
74
+ ]
75
+ }
76
+ };
77
+ }
78
+ var E = ee(659918), re = Array.from({ length: 6 }, (e, t) => ({
79
+ a: 1.3 + E() * .1,
80
+ k: .05 + E() * .4,
81
+ tilt: t / 6 * Math.PI + E() * .5,
82
+ speed: 3 + E() * .7,
83
+ phase: E() * b,
84
+ sweep: .6 + E() * .25,
85
+ hue: t * 360 / 6 + E() * 30,
86
+ hueSpan: 60 + E() * 60,
87
+ width: .05 + E() * .012,
88
+ cx: 0,
89
+ cy: .1
90
+ })), D = Array.from({ length: 4 }, (e, t) => ({
91
+ a: .78 + t * .2,
92
+ k: .05 + t * .02,
93
+ tilt: -.62 + t * .05,
94
+ speed: .3,
95
+ phase: .06 * t,
96
+ sweep: .4,
97
+ hue: 95 + t * 62,
98
+ hueSpan: 100,
99
+ width: .05,
100
+ cx: 0,
101
+ cy: -.12
102
+ })), O = [
103
+ -.557,
104
+ -.013,
105
+ .532
106
+ ], k = .165, ie = 1.25, ae = ee(48879), oe = Array.from({ length: 5 }, (e, t) => ({
107
+ birth: t * .2,
108
+ angle: ae() * b,
109
+ rho: .58 + ae() * .18
110
+ }));
111
+ function se(e, t) {
112
+ let n = [];
113
+ for (let r of oe) {
114
+ let i = e - r.birth;
115
+ if (i < 0 || i > .62) continue;
116
+ let a = r.rho * .75 ** (i * 10), o = r.angle + i * 100 * Math.PI / 180;
117
+ n.push({
118
+ x: Math.cos(o) * a * t,
119
+ y: Math.sin(o) * a * t,
120
+ r: (.04 + .028 * x(i / .55)) * t,
121
+ depth: x(1 - a / .8),
122
+ opacity: x(i / .06) * x((.62 - i) / .08)
123
+ });
124
+ }
125
+ return n;
126
+ }
127
+ var ce = ee(49383), le = Array.from({ length: 4 }, (e, t) => {
128
+ let n = t - 1.5;
129
+ return {
130
+ a: .85 * (1 + n * .03),
131
+ k: .15 / .85 * (1 + n * .16),
132
+ tilt: 34 * Math.PI / 180 + n * .035,
133
+ speed: 210 / 360,
134
+ phase: -t * .045 + ce() * .012,
135
+ sweep: .34,
136
+ hue: t * 85 + ce() * 20,
137
+ hueSpan: 80,
138
+ width: .095,
139
+ cx: 0,
140
+ cy: 0
141
+ };
142
+ }), ue = .129, de = "#2496e8", A = 1.003, fe = .15, j = 1.14, pe = .054, me = 15.46, M = .186, he = .412, N = {
143
+ yaw: 28.49,
144
+ pitch: 28.62,
145
+ roll: -13
146
+ }, P = (e) => e * Math.PI / 180;
147
+ function ge(e, t, n) {
148
+ let r = Math.cos(n), i = Math.sin(n);
149
+ return [[
150
+ e[0] * r + t[0] * i,
151
+ e[1] * r + t[1] * i,
152
+ e[2] * r + t[2] * i
153
+ ], [
154
+ t[0] * r - e[0] * i,
155
+ t[1] * r - e[1] * i,
156
+ t[2] * r - e[2] * i
157
+ ]];
158
+ }
159
+ function F(e, t, n = me) {
160
+ let r = [
161
+ 0,
162
+ 0,
163
+ 1
164
+ ], i = [
165
+ 1,
166
+ 0,
167
+ 0
168
+ ], a = [
169
+ 0,
170
+ 1,
171
+ 0
172
+ ];
173
+ [r, i] = ge(r, i, P(e.yaw)), [a, r] = ge(a, r, P(e.pitch)), [i, a] = ge(i, a, P(e.roll));
174
+ let o = (e) => {
175
+ let [o, s] = ge(r, i, P(n * e));
176
+ return {
177
+ x: o[0] * t,
178
+ y: o[1] * t,
179
+ a: s[0],
180
+ b: s[1],
181
+ c: a[0],
182
+ d: a[1],
183
+ depth: o[2]
184
+ };
185
+ };
186
+ return [o(-1), o(1)];
187
+ }
188
+ var _e = ee(24301), I = (() => {
189
+ let e = [], t = 1.4;
190
+ for (; t < 900;) e.push(t), t += 1.9 + _e() * 2.7, _e() < .18 && (e.push(t), t += .24);
191
+ return e;
192
+ })(), ve = .18;
193
+ function ye(e) {
194
+ for (let t = 0; t < I.length; t++) {
195
+ let n = I[t];
196
+ if (e < n) break;
197
+ let r = (e - n) / ve;
198
+ if (r >= 0 && r <= 1) return r < .45 ? 1 - r / .45 : (r - .45) / .55;
199
+ }
200
+ return 1;
201
+ }
202
+ function be(e, t = {}) {
203
+ let { wander: n = 1, blink: r = !0, float: i = !0 } = t;
204
+ return {
205
+ dYaw: (w(e, 11.3, .4) * 5.5 + w(e, 3.7, 2.1) * 1.6) * n,
206
+ dPitch: (w(e, 9.1, 1.3) * 4.2 + w(e, 4.3, .7) * 1.3) * n,
207
+ dRoll: w(e, 13.7, 3.2) * 2.2 * n,
208
+ lid: r ? ye(e) : 1,
209
+ driftX: i ? w(e, 7.9, 1.9) * .006 : 0,
210
+ driftY: i ? w(e, 5.3, .3) * .007 : 0,
211
+ breath: i ? 1 + Math.sin(e / 3.4 * Math.PI * 2) * .005 : 1
212
+ };
213
+ }
214
+ function xe(e) {
215
+ return .06 + .94 * x(e);
216
+ }
217
+ //#endregion
218
+ //#region src/bot/expressions.ts
219
+ var L = (e, t, n = 0, r = 1) => ({
220
+ w: e,
221
+ h: t,
222
+ tilt: n,
223
+ open: r
224
+ }), R = (e, t, n = 0, r = 1) => [L(e, t, n, r), L(e, t, -n, r)], z = [
225
+ {
226
+ id: "neutre",
227
+ gaze: { ...N },
228
+ split: me,
229
+ eyes: [L(M, he), L(M, he)]
230
+ },
231
+ {
232
+ id: "attentif",
233
+ gaze: {
234
+ yaw: 4,
235
+ pitch: 5,
236
+ roll: -4
237
+ },
238
+ split: 16,
239
+ eyes: R(.21, .44)
240
+ },
241
+ {
242
+ id: "surpris",
243
+ gaze: {
244
+ yaw: 3,
245
+ pitch: -3,
246
+ roll: 0
247
+ },
248
+ split: 19,
249
+ eyes: R(.45, .47)
250
+ },
251
+ {
252
+ id: "excite",
253
+ gaze: {
254
+ yaw: 6,
255
+ pitch: -14,
256
+ roll: 0
257
+ },
258
+ split: 19.5,
259
+ eyes: R(.4, .56, -10)
260
+ },
261
+ {
262
+ id: "heureux",
263
+ gaze: {
264
+ yaw: 5,
265
+ pitch: 9,
266
+ roll: 0
267
+ },
268
+ split: 17,
269
+ eyes: R(.27, .17, 14)
270
+ },
271
+ {
272
+ id: "hilare",
273
+ gaze: {
274
+ yaw: 4,
275
+ pitch: 14,
276
+ roll: 0
277
+ },
278
+ split: 18,
279
+ eyes: R(.34, .13, 20)
280
+ },
281
+ {
282
+ id: "colere",
283
+ gaze: {
284
+ yaw: 3,
285
+ pitch: 7,
286
+ roll: 0
287
+ },
288
+ split: 17,
289
+ eyes: R(.34, .15, 30)
290
+ },
291
+ {
292
+ id: "triste",
293
+ gaze: {
294
+ yaw: 3,
295
+ pitch: -13,
296
+ roll: 0
297
+ },
298
+ split: 16,
299
+ eyes: R(.22, .4, -28)
300
+ },
301
+ {
302
+ id: "effraye",
303
+ gaze: {
304
+ yaw: 2,
305
+ pitch: -20,
306
+ roll: 0
307
+ },
308
+ split: 20.5,
309
+ eyes: R(.4, .6)
310
+ },
311
+ {
312
+ id: "mefiant",
313
+ gaze: {
314
+ yaw: 12,
315
+ pitch: 6,
316
+ roll: -6
317
+ },
318
+ split: 16,
319
+ eyes: [L(.21, .4), L(.22, .15)]
320
+ },
321
+ {
322
+ id: "confus",
323
+ gaze: {
324
+ yaw: -14,
325
+ pitch: 3,
326
+ roll: 8
327
+ },
328
+ split: 16.5,
329
+ eyes: [L(.2, .44, -18), L(.28, .17, 14)]
330
+ },
331
+ {
332
+ id: "curieux",
333
+ gaze: {
334
+ yaw: 16,
335
+ pitch: -9,
336
+ roll: -15
337
+ },
338
+ split: 16.5,
339
+ eyes: [L(.24, .46, -8), L(.2, .38, -8)]
340
+ },
341
+ {
342
+ id: "fier",
343
+ gaze: {
344
+ yaw: 5,
345
+ pitch: 17,
346
+ roll: 0
347
+ },
348
+ split: 17,
349
+ eyes: R(.3, .15, 18)
350
+ },
351
+ {
352
+ id: "timide",
353
+ gaze: {
354
+ yaw: -19,
355
+ pitch: -14,
356
+ roll: -7
357
+ },
358
+ split: 14,
359
+ eyes: R(.17, .3)
360
+ },
361
+ {
362
+ id: "blase",
363
+ gaze: {
364
+ yaw: -22,
365
+ pitch: 2,
366
+ roll: 0
367
+ },
368
+ split: 16,
369
+ eyes: R(.3, .12)
370
+ },
371
+ {
372
+ id: "somnolent",
373
+ gaze: {
374
+ yaw: 6,
375
+ pitch: -9,
376
+ roll: -3
377
+ },
378
+ split: 16,
379
+ eyes: R(.2, .42, 0, .42)
380
+ }
381
+ ], Se = new Map(z.map((e) => [e.id, e])), Ce = "neutre", B = (e, t, n) => ({
382
+ w: S(e.w, t.w, n),
383
+ h: S(e.h, t.h, n),
384
+ tilt: S(e.tilt ?? 0, t.tilt ?? 0, n),
385
+ open: S(e.open, t.open, n)
386
+ });
387
+ function we(e, t, n) {
388
+ return {
389
+ id: t.id,
390
+ gaze: {
391
+ yaw: S(e.gaze.yaw, t.gaze.yaw, n),
392
+ pitch: S(e.gaze.pitch, t.gaze.pitch, n),
393
+ roll: S(e.gaze.roll, t.gaze.roll, n)
394
+ },
395
+ split: S(e.split, t.split, n),
396
+ eyes: [B(e.eyes[0], t.eyes[0], n), B(e.eyes[1], t.eyes[1], n)]
397
+ };
398
+ }
399
+ //#endregion
400
+ //#region src/bot/profiles.ts
401
+ var Te = {
402
+ egg: [
403
+ .8369,
404
+ .8424,
405
+ .8497,
406
+ .8585,
407
+ .8674,
408
+ .8775,
409
+ .8878,
410
+ .8983,
411
+ .9089,
412
+ .9185,
413
+ .9288,
414
+ .9374,
415
+ .9445,
416
+ .9504,
417
+ .9543,
418
+ .9559,
419
+ .9555,
420
+ .9519,
421
+ .9466,
422
+ .9389,
423
+ .9302,
424
+ .9193,
425
+ .9085,
426
+ .8969,
427
+ .8852,
428
+ .8734,
429
+ .8625,
430
+ .8513,
431
+ .8411,
432
+ .8325,
433
+ .8243,
434
+ .8179,
435
+ .8137,
436
+ .8112,
437
+ .8102,
438
+ .8128,
439
+ .8178,
440
+ .8262,
441
+ .8374,
442
+ .8518,
443
+ .8702,
444
+ .8922,
445
+ .9169,
446
+ .9446,
447
+ .9741,
448
+ 1.0023,
449
+ 1.0267,
450
+ 1.0433,
451
+ 1.0481,
452
+ 1.0393,
453
+ 1.0216,
454
+ .997,
455
+ .9697,
456
+ .9418,
457
+ .9169,
458
+ .8949,
459
+ .876,
460
+ .8604,
461
+ .849,
462
+ .8394,
463
+ .8337,
464
+ .8314,
465
+ .8305,
466
+ .8326
467
+ ],
468
+ hexagon: [
469
+ .921,
470
+ .9282,
471
+ .9441,
472
+ .9706,
473
+ .9984,
474
+ 1.0059,
475
+ .9896,
476
+ .9562,
477
+ .929,
478
+ .9124,
479
+ .9047,
480
+ .9058,
481
+ .9157,
482
+ .9349,
483
+ .9642,
484
+ .9873,
485
+ .9882,
486
+ .9665,
487
+ .9336,
488
+ .9105,
489
+ .8968,
490
+ .8918,
491
+ .8955,
492
+ .908,
493
+ .9293,
494
+ .9611,
495
+ .982,
496
+ .9812,
497
+ .959,
498
+ .9282,
499
+ .9089,
500
+ .8978,
501
+ .8964,
502
+ .9026,
503
+ .9189,
504
+ .9439,
505
+ .9778,
506
+ .999,
507
+ .9964,
508
+ .9713,
509
+ .9439,
510
+ .9274,
511
+ .9196,
512
+ .9206,
513
+ .9308,
514
+ .9502,
515
+ .9799,
516
+ 1.0121,
517
+ 1.0226,
518
+ 1.0071,
519
+ .9752,
520
+ .951,
521
+ .9366,
522
+ .9316,
523
+ .9351,
524
+ .9485,
525
+ .9711,
526
+ 1.0026,
527
+ 1.0213,
528
+ 1.0155,
529
+ .9863,
530
+ .9547,
531
+ .9347,
532
+ .9232
533
+ ],
534
+ triangle: [
535
+ .7819,
536
+ .8211,
537
+ .8747,
538
+ .944,
539
+ 1.0223,
540
+ 1.096,
541
+ 1.1401,
542
+ 1.134,
543
+ 1.0808,
544
+ 1.0047,
545
+ .9265,
546
+ .8603,
547
+ .8104,
548
+ .773,
549
+ .745,
550
+ .7273,
551
+ .7151,
552
+ .7118,
553
+ .7148,
554
+ .7245,
555
+ .7427,
556
+ .768,
557
+ .8037,
558
+ .8518,
559
+ .9148,
560
+ .9876,
561
+ 1.0583,
562
+ 1.1073,
563
+ 1.1109,
564
+ 1.0667,
565
+ .994,
566
+ .9164,
567
+ .8482,
568
+ .7948,
569
+ .7555,
570
+ .7261,
571
+ .7056,
572
+ .6925,
573
+ .6859,
574
+ .6869,
575
+ .6938,
576
+ .7084,
577
+ .7305,
578
+ .7615,
579
+ .804,
580
+ .8595,
581
+ .9311,
582
+ 1.0092,
583
+ 1.0791,
584
+ 1.1171,
585
+ 1.1054,
586
+ 1.0501,
587
+ .9779,
588
+ .905,
589
+ .845,
590
+ .799,
591
+ .7656,
592
+ .7413,
593
+ .7258,
594
+ .716,
595
+ .7146,
596
+ .7204,
597
+ .733,
598
+ .7528
599
+ ]
600
+ }, Ee = Array.from({ length: 64 }, (e, t) => t / 64 * b), V = Ee.map(Math.cos), H = Ee.map(Math.sin);
601
+ function De(e, t = {}) {
602
+ return {
603
+ radii: [...Te[e]],
604
+ rot: 0,
605
+ cx: 0,
606
+ cy: 0,
607
+ sx: 1,
608
+ sy: 1,
609
+ ...t
610
+ };
611
+ }
612
+ function U(e, t = {}) {
613
+ return {
614
+ radii: Array(64).fill(e),
615
+ rot: 0,
616
+ cx: 0,
617
+ cy: 0,
618
+ sx: 1,
619
+ sy: 1,
620
+ ...t
621
+ };
622
+ }
623
+ function Oe(e, t, n, r) {
624
+ let i = r ?? {
625
+ radii: Array(64),
626
+ rot: 0,
627
+ cx: 0,
628
+ cy: 0,
629
+ sx: 1,
630
+ sy: 1
631
+ };
632
+ for (let r = 0; r < 64; r++) i.radii[r] = S(e.radii[r] ?? 1, t.radii[r] ?? 1, n);
633
+ let a = t.rot - e.rot;
634
+ for (; a > Math.PI;) a -= b;
635
+ for (; a < -Math.PI;) a += b;
636
+ return i.rot = e.rot + a * n, i.cx = S(e.cx, t.cx, n), i.cy = S(e.cy, t.cy, n), i.sx = S(e.sx, t.sx, n), i.sy = S(e.sy, t.sy, n), i;
637
+ }
638
+ function W(e, t, n = []) {
639
+ let r = Math.cos(e.rot), i = Math.sin(e.rot);
640
+ for (let a = 0; a < 64; a++) {
641
+ let o = e.radii[a] ?? 1, s = o * (V[a] ?? 0), c = o * (H[a] ?? 0), l = s * r - c * i, u = s * i + c * r, d = n[a] ?? {
642
+ x: 0,
643
+ y: 0
644
+ };
645
+ d.x = (l * e.sx + e.cx) * t, d.y = (u * e.sy + e.cy) * t, n[a] = d;
646
+ }
647
+ return n.length = 64, n;
648
+ }
649
+ function ke(e, t = 1 / 6) {
650
+ let n = e.length;
651
+ if (n < 3) return "";
652
+ let r = e[0], i = `M${T(r.x)} ${T(r.y)}`;
653
+ for (let r = 0; r < n; r++) {
654
+ let a = e[(r - 1 + n) % n], o = e[r], s = e[(r + 1) % n], c = e[(r + 2) % n], l = o.x + (s.x - a.x) * t, u = o.y + (s.y - a.y) * t, d = s.x - (c.x - o.x) * t, f = s.y - (c.y - o.y) * t;
655
+ i += `C${T(l)} ${T(u)} ${T(d)} ${T(f)} ${T(s.x)} ${T(s.y)}`;
656
+ }
657
+ return `${i}Z`;
658
+ }
659
+ function G(e, t, n) {
660
+ let r = Array(64).fill(0), i = e.length;
661
+ for (let a = 0; a < 64; a++) {
662
+ let o = V[a] ?? 0, s = H[a] ?? 0, c = 0;
663
+ for (let r = 0; r < i; r++) {
664
+ let a = e[r], l = e[(r + 1) % i], u = l.x - a.x, d = l.y - a.y, f = o * d - s * u;
665
+ if (Math.abs(f) < 1e-9) continue;
666
+ let p = a.x - t, m = a.y - n, h = (p * d - m * u) / f, g = (p * s - m * o) / f;
667
+ h > c && g >= 0 && g <= 1 && (c = h);
668
+ }
669
+ r[a] = c;
670
+ }
671
+ return r;
672
+ }
673
+ function K(e, t, n, r, i, a, o = 96) {
674
+ let s = r - e, c = i - t, l = Math.hypot(s, c) || 1e-6, u = Math.atan2(c, s), d = Math.acos(Math.max(-1, Math.min(1, (n - a) / l))), f = [];
675
+ for (let r = 0; r <= o / 2; r++) {
676
+ let i = u + d + (b - 2 * d) * r / (o / 2);
677
+ f.push({
678
+ x: e + Math.cos(i) * n,
679
+ y: t + Math.sin(i) * n
680
+ });
681
+ }
682
+ for (let e = 0; e <= o / 2; e++) {
683
+ let t = u - d + 2 * d * e / (o / 2);
684
+ f.push({
685
+ x: r + Math.cos(t) * a,
686
+ y: i + Math.sin(t) * a
687
+ });
688
+ }
689
+ return f;
690
+ }
691
+ function Ae(e, t) {
692
+ let n = e.length, r = (t / b % 1 + 1) % 1 * n, i = Math.floor(r);
693
+ return S(e[i % n] ?? 1, e[(i + 1) % n] ?? 1, r - i);
694
+ }
695
+ function je(e, t = 1, n = 1) {
696
+ return Ee.map((r, i) => (Math.abs((V[i] ?? 0) / t) ** e + Math.abs((H[i] ?? 0) / n) ** e) ** (-1 / e));
697
+ }
698
+ function Me(e) {
699
+ let t = Array(64).fill(0);
700
+ for (let n = 0; n < 64; n++) {
701
+ let r = V[n] ?? 0, i = H[n] ?? 0, a = 0;
702
+ for (let t of e) {
703
+ let e = r * t.x + i * t.y, n = e * e - (t.x * t.x + t.y * t.y - t.r * t.r);
704
+ if (n < 0) continue;
705
+ let o = e + Math.sqrt(n);
706
+ o > a && (a = o);
707
+ }
708
+ t[n] = a;
709
+ }
710
+ return t;
711
+ }
712
+ function Ne(e, t, n = 10) {
713
+ let r = e.length, i = [], a = (e, t) => {
714
+ let n = t.x - e.x, r = t.y - e.y, i = Math.hypot(n, r) || 1;
715
+ return Math.atan2(-n / i, r / i);
716
+ };
717
+ for (let o = 0; o < r; o++) {
718
+ let s = e[(o - 1 + r) % r], c = e[o], l = e[(o + 1) % r], u = a(s, c), d = a(c, l) - u;
719
+ for (; d > Math.PI;) d -= b;
720
+ for (; d < -Math.PI;) d += b;
721
+ for (let e = 0; e <= n; e++) {
722
+ let r = u + d * e / n;
723
+ i.push({
724
+ x: c.x + Math.cos(r) * t,
725
+ y: c.y + Math.sin(r) * t
726
+ });
727
+ }
728
+ }
729
+ return i;
730
+ }
731
+ function q(e, t, n, r = 0) {
732
+ let i = r * Math.PI / 180;
733
+ return G(Ne(Array.from({ length: e }, (r, a) => {
734
+ let o = i + a / e * b;
735
+ return {
736
+ x: Math.cos(o) * (t - n),
737
+ y: Math.sin(o) * (t - n)
738
+ };
739
+ }), n), 0, 0);
740
+ }
741
+ function Pe(e, t = 1) {
742
+ if (e.length < 3) return "";
743
+ let n = "";
744
+ for (let r = 0; r < e.length; r++) {
745
+ let i = e[r];
746
+ n += `${r === 0 ? "M" : "L"}${T(i.x * t)} ${T(i.y * t)}`;
747
+ }
748
+ return `${n}Z`;
749
+ }
750
+ function Fe(e, t) {
751
+ let n = Math.max(e, .01) / 2, r = Math.max(t, .01) / 2, i = Math.min(n, r);
752
+ return `M${T(-n)} ${T(-r + i)}A${T(i)} ${T(i)} 0 0 1 ${T(-n + i)} ${T(-r)}L${T(n - i)} ${T(-r)}A${T(i)} ${T(i)} 0 0 1 ${T(n)} ${T(-r + i)}L${T(n)} ${T(r - i)}A${T(i)} ${T(i)} 0 0 1 ${T(n - i)} ${T(r)}L${T(-n + i)} ${T(r)}A${T(i)} ${T(i)} 0 0 1 ${T(-n)} ${T(r - i)}Z`;
753
+ }
754
+ //#endregion
755
+ //#region src/bot/skins.ts
756
+ function Ie(e, t = 1) {
757
+ let n = Math.max(...e);
758
+ if (n <= 0) return e;
759
+ let r = t / n;
760
+ return e.map((e) => e * r);
761
+ }
762
+ var Le = Ie(Array.from({ length: 64 }, (e, t) => t / 64 * Math.PI * 2).map((e) => 1 + .075 * Math.cos(2 * e + .5) + .035 * Math.cos(3 * e + 2.1)), 1.02), Re = Ie(Me([
763
+ {
764
+ x: -.44,
765
+ y: .2,
766
+ r: .54
767
+ },
768
+ {
769
+ x: .46,
770
+ y: .2,
771
+ r: .5
772
+ },
773
+ {
774
+ x: .02,
775
+ y: .3,
776
+ r: .6
777
+ },
778
+ {
779
+ x: -.24,
780
+ y: -.3,
781
+ r: .48
782
+ },
783
+ {
784
+ x: .3,
785
+ y: -.24,
786
+ r: .44
787
+ }
788
+ ]), 1.02), ze = Ie(G(K(0, .28, .66, 0, -.96, .05), 0, 0), 1.04), Be = G(K(-.42, 0, .62, .42, 0, .62), 0, 0), Ve = [
789
+ {
790
+ id: "cercle",
791
+ radii: Array(64).fill(1)
792
+ },
793
+ {
794
+ id: "galet",
795
+ radii: Le
796
+ },
797
+ {
798
+ id: "squircle",
799
+ radii: Ie(je(4.2), 1.15)
800
+ },
801
+ {
802
+ id: "capsule",
803
+ radii: Be
804
+ },
805
+ {
806
+ id: "triangle",
807
+ radii: q(3, 1.12, .34, -90)
808
+ },
809
+ {
810
+ id: "hexagone",
811
+ radii: q(6, 1.04, .26, 0)
812
+ },
813
+ {
814
+ id: "nuage",
815
+ radii: Re
816
+ },
817
+ {
818
+ id: "goutte",
819
+ radii: ze
820
+ },
821
+ {
822
+ id: "carre",
823
+ radii: q(4, 1.2, .24, 45)
824
+ },
825
+ {
826
+ id: "losange",
827
+ radii: q(4, 1.14, .3, -90)
828
+ },
829
+ {
830
+ id: "pentagone",
831
+ radii: q(5, 1.08, .28, -90)
832
+ }
833
+ ], He = new Map(Ve.map((e) => [e.id, e])), Ue = "cercle", We = [
834
+ {
835
+ id: "encre",
836
+ hex: "#0a0a0c"
837
+ },
838
+ {
839
+ id: "brun",
840
+ hex: "#8b5e3c"
841
+ },
842
+ {
843
+ id: "rouge",
844
+ hex: "#e8483f"
845
+ },
846
+ {
847
+ id: "orange",
848
+ hex: "#f08a24"
849
+ },
850
+ {
851
+ id: "ambre",
852
+ hex: "#f0b429"
853
+ },
854
+ {
855
+ id: "vert",
856
+ hex: "#3ecf8e"
857
+ },
858
+ {
859
+ id: "turquoise",
860
+ hex: "#2fbfa0"
861
+ },
862
+ {
863
+ id: "bleu",
864
+ hex: "#3b93f0"
865
+ },
866
+ {
867
+ id: "violet",
868
+ hex: "#8b5cf6"
869
+ },
870
+ {
871
+ id: "rose",
872
+ hex: "#e152b0"
873
+ },
874
+ {
875
+ id: "gris",
876
+ hex: "#a3a3a3"
877
+ },
878
+ {
879
+ id: "creme",
880
+ hex: "#f1efe9"
881
+ }
882
+ ], Ge = new Map(We.map((e) => [e.id, e])), Ke = "encre";
883
+ function qe(e, t, n) {
884
+ let r = (e) => {
885
+ let t = parseInt(e.slice(1), 16);
886
+ return [
887
+ t >> 16 & 255,
888
+ t >> 8 & 255,
889
+ t & 255
890
+ ];
891
+ }, i = r(e), a = r(t);
892
+ return `#${i.map((e, t) => Math.round(e + (a[t] - e) * n)).map((e) => e.toString(16).padStart(2, "0")).join("")}`;
893
+ }
894
+ //#endregion
895
+ //#region src/bot/states.ts
896
+ var J = (e, t) => [{
897
+ w: e,
898
+ h: t,
899
+ open: 1
900
+ }, {
901
+ w: e,
902
+ h: t,
903
+ open: 1
904
+ }];
905
+ function Y(e = {}) {
906
+ return {
907
+ sil: U(1),
908
+ offX: 0,
909
+ offY: 0,
910
+ gaze: { ...N },
911
+ split: me,
912
+ eyes: J(M, he),
913
+ eyeAlpha: 1,
914
+ bodyAlpha: 1,
915
+ dots: [],
916
+ arcs: [],
917
+ notif: null,
918
+ dotsBehind: !1,
919
+ ...e
920
+ };
921
+ }
922
+ var Je = -.1875, X = G(K(0, -.505, .132, 0, .13, .075), 0, Je), Ye = G(K(0, -.2535, .1345, 0, .2535, .1345), 0, 0), Xe = (e = {}) => ({
923
+ radii: [...X],
924
+ rot: 0,
925
+ cx: 0,
926
+ cy: Je,
927
+ sx: 1,
928
+ sy: 1,
929
+ ...e
930
+ }), Ze = (e = {}) => ({
931
+ radii: [...Ye],
932
+ rot: 0,
933
+ cx: 0,
934
+ cy: 0,
935
+ sx: 1,
936
+ sy: 1,
937
+ ...e
938
+ }), Qe = Pe(K(0, 0, .118, 0, .172, .012)), $e = .213;
939
+ function et(e) {
940
+ return De("triangle", {
941
+ rot: e,
942
+ cx: -.213 * Math.sin(e),
943
+ cy: $e * Math.cos(e)
944
+ });
945
+ }
946
+ function tt(e, t) {
947
+ let n = ((e - t * .5) / 1.5 % 1 + 1) % 1;
948
+ return x((n < .5 ? .5 - .5 * Math.cos(n * b) : 0) * 2);
949
+ }
950
+ var nt = [
951
+ {
952
+ id: "idle",
953
+ duration: 2.4,
954
+ morph: .45,
955
+ blinkIn: !1,
956
+ baseFace: !0,
957
+ baseBody: !0,
958
+ pose: () => Y()
959
+ },
960
+ {
961
+ id: "thinking",
962
+ duration: 2.6,
963
+ morph: .4,
964
+ baseFace: !1,
965
+ baseBody: !1,
966
+ blinkIn: !0,
967
+ pose: (e) => {
968
+ let t = tt(e, 1), n = .3 + .7 * C.easeOutCubic(x(e / .3));
969
+ return Y({
970
+ sil: U(k * (1 + (ie - 1) * t), { cx: O[1] }),
971
+ eyeAlpha: 0,
972
+ dots: [0, 2].map((t) => {
973
+ let r = tt(e, t);
974
+ return {
975
+ x: O[t] * n,
976
+ y: 0,
977
+ r: k * (1 + (ie - 1) * r),
978
+ opacity: .55 + .45 * r
979
+ };
980
+ })
981
+ });
982
+ }
983
+ },
984
+ {
985
+ id: "wink",
986
+ duration: 1.6,
987
+ morph: .3,
988
+ blinkIn: !0,
989
+ baseFace: !1,
990
+ baseBody: !0,
991
+ pose: () => Y({
992
+ gaze: {
993
+ yaw: -5.37,
994
+ pitch: 4.55,
995
+ roll: 6.7
996
+ },
997
+ split: 16.25,
998
+ eyes: [{
999
+ w: .236,
1000
+ h: .464,
1001
+ open: 1
1002
+ }, {
1003
+ w: .447,
1004
+ h: .089,
1005
+ open: 1
1006
+ }]
1007
+ })
1008
+ },
1009
+ {
1010
+ id: "wide",
1011
+ duration: 1.8,
1012
+ morph: .55,
1013
+ blinkIn: !0,
1014
+ baseFace: !1,
1015
+ baseBody: !0,
1016
+ pose: () => Y({
1017
+ gaze: {
1018
+ yaw: 6.92,
1019
+ pitch: -21.96,
1020
+ roll: 11.6
1021
+ },
1022
+ split: 18.43,
1023
+ eyes: J(.356, .875)
1024
+ })
1025
+ },
1026
+ {
1027
+ id: "alert",
1028
+ duration: 2.4,
1029
+ minDuration: 2,
1030
+ morph: .45,
1031
+ baseFace: !1,
1032
+ baseBody: !1,
1033
+ blinkIn: !1,
1034
+ pose: (e) => {
1035
+ let t = x(e / 1.5), n = C.easeInOutCubic(t) * .82 - .087, r = e > 1.6 ? x((e - 1.6) / .4) : 0, i = n * (1 - r) + .1 * r, a = Math.sin(e * 2.5 * b) * .005, o = 17.7 * Math.PI / 180;
1036
+ return Y({
1037
+ sil: Ze({
1038
+ rot: o,
1039
+ cx: i,
1040
+ cy: -.325 - a
1041
+ }),
1042
+ eyeAlpha: 0,
1043
+ dots: [{
1044
+ x: i - Math.sin(o) * .58,
1045
+ y: -.325 + Math.cos(o) * .58 + a * 2.8,
1046
+ r: .118,
1047
+ d: Qe,
1048
+ rot: o * 180 / Math.PI,
1049
+ opacity: 1
1050
+ }]
1051
+ });
1052
+ }
1053
+ },
1054
+ {
1055
+ id: "notify",
1056
+ duration: 2.2,
1057
+ morph: .5,
1058
+ blinkIn: !0,
1059
+ baseFace: !1,
1060
+ baseBody: !0,
1061
+ pose: (e) => {
1062
+ let t = x(e / .45), n = 1 + (j - 1) * Math.sin(t * Math.PI) * (1 - t * .35), r = fe * (t < 1 ? n : 1), i = -42 * Math.PI / 180;
1063
+ return Y({
1064
+ gaze: {
1065
+ yaw: -21.94,
1066
+ pitch: -5.82,
1067
+ roll: -12.2
1068
+ },
1069
+ split: 18.89,
1070
+ eyes: J(.505, .498),
1071
+ notif: {
1072
+ x: Math.cos(i) * A,
1073
+ y: Math.sin(i) * A,
1074
+ r,
1075
+ notch: r + pe
1076
+ }
1077
+ });
1078
+ }
1079
+ },
1080
+ {
1081
+ id: "exclaim",
1082
+ duration: 2,
1083
+ morph: .45,
1084
+ baseFace: !1,
1085
+ baseBody: !1,
1086
+ blinkIn: !1,
1087
+ pose: () => Y({
1088
+ sil: Xe(),
1089
+ eyeAlpha: 0,
1090
+ dots: [{
1091
+ x: -.012,
1092
+ y: .526,
1093
+ r: .113,
1094
+ opacity: 1
1095
+ }]
1096
+ })
1097
+ },
1098
+ {
1099
+ id: "sleep",
1100
+ duration: 2.4,
1101
+ morph: .5,
1102
+ baseFace: !1,
1103
+ baseBody: !1,
1104
+ blinkIn: !1,
1105
+ pose: (e) => Y({
1106
+ sil: U(.1585, { cy: .11 + Math.sin(b / .6 * e) * .19 }),
1107
+ eyeAlpha: 0
1108
+ })
1109
+ },
1110
+ {
1111
+ id: "egg",
1112
+ duration: 1.8,
1113
+ morph: .4,
1114
+ baseFace: !1,
1115
+ baseBody: !1,
1116
+ blinkIn: !0,
1117
+ pose: () => Y({
1118
+ sil: De("egg"),
1119
+ gaze: {
1120
+ yaw: 19.97,
1121
+ pitch: 26.01,
1122
+ roll: -17.1
1123
+ },
1124
+ split: 11.07,
1125
+ eyes: J(.164, .385)
1126
+ })
1127
+ },
1128
+ {
1129
+ id: "hexagon",
1130
+ duration: 1.6,
1131
+ morph: .4,
1132
+ baseFace: !1,
1133
+ baseBody: !1,
1134
+ blinkIn: !0,
1135
+ pose: () => Y({
1136
+ sil: De("hexagon"),
1137
+ gaze: {
1138
+ yaw: 23.11,
1139
+ pitch: 24.42,
1140
+ roll: -13.3
1141
+ },
1142
+ split: 13.37,
1143
+ eyes: J(.177, .411)
1144
+ })
1145
+ },
1146
+ {
1147
+ id: "play",
1148
+ duration: 2,
1149
+ morph: .5,
1150
+ baseFace: !1,
1151
+ baseBody: !1,
1152
+ blinkIn: !0,
1153
+ pose: (e) => {
1154
+ let t = x(e / .35) * x((2.2 - e) / .5);
1155
+ return Y({
1156
+ sil: et(0),
1157
+ gaze: {
1158
+ yaw: 12,
1159
+ pitch: -8,
1160
+ roll: -6
1161
+ },
1162
+ split: 15,
1163
+ eyes: J(.18, .34),
1164
+ arcs: D.map((n, r) => ({
1165
+ id: `sw${r}`,
1166
+ seed: {
1167
+ ...n,
1168
+ cx: .45 - e * .42
1169
+ },
1170
+ t: e,
1171
+ opacity: t
1172
+ }))
1173
+ });
1174
+ }
1175
+ },
1176
+ {
1177
+ id: "orbit",
1178
+ duration: 3.4,
1179
+ minDuration: 2.5,
1180
+ morph: .6,
1181
+ baseFace: !1,
1182
+ baseBody: !1,
1183
+ blinkIn: !1,
1184
+ pose: (e) => {
1185
+ let t = C.easeInOutCubic(x(e / .35)), n = -b * 1.25 * e * t, r = C.easeInOutCubic(x((e - 1.6) / .9)), i = et(n), a = U(1, { rot: n }), o = {
1186
+ radii: i.radii.map((e, t) => e + (a.radii[t] - e) * r),
1187
+ rot: n,
1188
+ cx: i.cx * (1 - r),
1189
+ cy: i.cy * (1 - r),
1190
+ sx: 1,
1191
+ sy: 1
1192
+ }, s = x(e / .8) * x((3.6 - e) / .9);
1193
+ return Y({
1194
+ sil: o,
1195
+ gaze: {
1196
+ yaw: N.yaw + Math.sin(e * 6.5) * 65 * (1 - r),
1197
+ pitch: -4 + r * 32,
1198
+ roll: -13
1199
+ },
1200
+ eyes: J(.18, .34 + r * .07),
1201
+ arcs: re.map((t, n) => ({
1202
+ id: `rg${n}`,
1203
+ seed: t,
1204
+ t: e,
1205
+ opacity: s * x((e - n * .13) / .3)
1206
+ }))
1207
+ });
1208
+ }
1209
+ },
1210
+ {
1211
+ id: "swirl",
1212
+ duration: 1.3,
1213
+ minDuration: 1.3,
1214
+ morph: .3,
1215
+ baseFace: !0,
1216
+ baseBody: !0,
1217
+ blinkIn: !0,
1218
+ pose: (e) => Y({ arcs: re.slice(0, 3).map((t, n) => ({
1219
+ id: `sw${n}`,
1220
+ seed: t,
1221
+ t: e,
1222
+ opacity: x((e - n * .06) / .14) * x((1.22 - e) / .34)
1223
+ })) })
1224
+ },
1225
+ {
1226
+ id: "burst",
1227
+ duration: 2.6,
1228
+ minDuration: 2.4,
1229
+ morph: .4,
1230
+ baseFace: !1,
1231
+ baseBody: !1,
1232
+ blinkIn: !1,
1233
+ pose: (e) => {
1234
+ let t = 1 - .834 * C.easeOutQuint(x(e / .7)), n = C.easeOutQuint(x((e - 1.7) / .7));
1235
+ return Y({
1236
+ sil: U(t + (1 - t) * n),
1237
+ eyeAlpha: x((e - 1.85) / .4),
1238
+ dots: se(e, 1),
1239
+ dotsBehind: !0
1240
+ });
1241
+ }
1242
+ },
1243
+ {
1244
+ id: "comet",
1245
+ duration: 2.4,
1246
+ minDuration: 2.4,
1247
+ morph: .45,
1248
+ baseFace: !1,
1249
+ baseBody: !1,
1250
+ blinkIn: !1,
1251
+ pose: (e) => {
1252
+ let t = 1 - (1 - ue) * C.easeOutQuint(x(e / .55)), n = C.easeOutQuint(x((e - 1.85) / .6)), r = x((e - .15) / .25) * x((1.95 - e) / .3);
1253
+ return Y({
1254
+ sil: U(t + (1 - t) * n, { cy: Math.sin(x(e / 1.7) * Math.PI) * .035 }),
1255
+ eyeAlpha: x((e - 2) / .35),
1256
+ arcs: le.map((t, n) => ({
1257
+ id: `cm${n}`,
1258
+ seed: t,
1259
+ t: e,
1260
+ opacity: r
1261
+ }))
1262
+ });
1263
+ }
1264
+ }
1265
+ ], Z = new Map(nt.map((e) => [e.id, e])), rt = {
1266
+ idle: 1,
1267
+ thinking: 1.1,
1268
+ wink: .8,
1269
+ wide: .8,
1270
+ alert: .75,
1271
+ notify: .9,
1272
+ exclaim: .8,
1273
+ sleep: .45,
1274
+ egg: .8,
1275
+ hexagon: .8,
1276
+ play: .9,
1277
+ orbit: 1.2,
1278
+ swirl: .5,
1279
+ burst: .45,
1280
+ comet: 1.15
1281
+ }, it = [
1282
+ "idle",
1283
+ "thinking",
1284
+ "wink",
1285
+ "wide",
1286
+ "alert",
1287
+ "notify",
1288
+ "exclaim",
1289
+ "sleep",
1290
+ "egg",
1291
+ "hexagon",
1292
+ "play",
1293
+ "orbit",
1294
+ "burst",
1295
+ "comet"
1296
+ ], Q = 100, at = 7.1, ot = 5.5, st = .006, ct = .007;
1297
+ function lt(e, t, n) {
1298
+ let r = [], i = F(e.gaze, Q, e.split);
1299
+ for (let a = 0; a < 2; a++) {
1300
+ let o = i[a];
1301
+ if (o.depth <= .02) continue;
1302
+ let s = e.eyes[a], c = (s.tilt ?? 0) * Math.PI / 180, l = Math.cos(c), u = Math.sin(c), d = o.a * l + o.c * u, f = o.b * l + o.d * u, p = -o.a * u + o.c * l, m = -o.b * u + o.d * l, h = Math.max(s.w * Q, .01) / 2, g = Math.max(s.h * Q, .01) / 2, _ = Math.min(h, g), v = g > h, y = v ? g - _ : h - _, b = Ae(n, Math.atan2(o.y, o.x) - t.rot);
1303
+ r.push({
1304
+ x: o.x * b,
1305
+ y: o.y * b,
1306
+ ax: (v ? p : d) * y,
1307
+ ay: (v ? m : f) * y,
1308
+ r: _,
1309
+ m: [
1310
+ d,
1311
+ f,
1312
+ p,
1313
+ m
1314
+ ]
1315
+ });
1316
+ }
1317
+ return r;
1318
+ }
1319
+ function ut(e, t, n, r, i) {
1320
+ let a = r - t, o = i - n, s = a * a + o * o, c = Infinity, l = 0, u = 0;
1321
+ for (let r = 0; r < e.length; r++) {
1322
+ let i = e[r], d = s > 0 ? ((i.x - t) * a + (i.y - n) * o) / s : 0;
1323
+ d = d < 0 ? 0 : d > 1 ? 1 : d;
1324
+ let f = t + d * a - i.x, p = n + d * o - i.y, m = f * f + p * p;
1325
+ m < c && (c = m, l = f, u = p);
1326
+ }
1327
+ let d = Math.sqrt(c);
1328
+ return {
1329
+ d,
1330
+ ux: d > 1e-9 ? l / d : 0,
1331
+ uy: d > 1e-9 ? u / d : 0
1332
+ };
1333
+ }
1334
+ var dt = Math.hypot(st, ct) * Q;
1335
+ function ft(e, t, n, r) {
1336
+ let i = Infinity, a = 0, o = 0;
1337
+ for (let s of t) {
1338
+ let t = s.x + n, c = s.y + r, l = ut(e, t - s.ax, c - s.ay, t + s.ax, c + s.ay), [u, d, f, p] = s.m, m = s.r * Math.hypot(u * l.ux + d * l.uy, f * l.ux + p * l.uy) + dt;
1339
+ l.d - m < i && (i = l.d - m, a = l.ux, o = l.uy);
1340
+ }
1341
+ return {
1342
+ marge: i,
1343
+ ux: a,
1344
+ uy: o
1345
+ };
1346
+ }
1347
+ var pt = 12, mt = 8;
1348
+ function ht(e) {
1349
+ if (!e.length) return {
1350
+ x: 0,
1351
+ y: 0
1352
+ };
1353
+ let t = (t, n) => {
1354
+ let r = Infinity;
1355
+ for (let i of e) r = Math.min(r, ft(i.contour, i.empreintes, t, n).marge);
1356
+ return r;
1357
+ }, n = Infinity;
1358
+ for (let t of e) n = Math.min(n, ft(t.calContour, t.reference, 0, 0).marge);
1359
+ let r = 0, i = 0, a = e[0].empreintes;
1360
+ for (let e of a) r -= e.x / a.length, i -= e.y / a.length;
1361
+ let o = Math.max(.35 * Q, Math.hypot(r, i) * 1.25);
1362
+ n = Math.min(n, t(r, i));
1363
+ let s = t(0, 0);
1364
+ if (s >= n && s >= 0) return {
1365
+ x: 0,
1366
+ y: 0
1367
+ };
1368
+ let c = Math.max(n, 0), l = 0, u = 0, d = Infinity, f = 0, p = 0, m = s;
1369
+ for (let e = 0; e < pt; e++) {
1370
+ let n = e / pt * Math.PI * 2, r = Math.cos(n), i = Math.sin(n);
1371
+ if (t(r * o, i * o) < c) {
1372
+ for (let e of [
1373
+ .3,
1374
+ .6,
1375
+ 1
1376
+ ]) {
1377
+ let n = t(r * o * e, i * o * e);
1378
+ n > m && (m = n, f = r * o * e, p = i * o * e);
1379
+ }
1380
+ continue;
1381
+ }
1382
+ let a = 0, s = o;
1383
+ for (let e = 0; e < mt; e++) {
1384
+ let e = (a + s) / 2;
1385
+ t(r * e, i * e) >= c ? s = e : a = e;
1386
+ }
1387
+ s < d && (d = s, l = r * s, u = i * s);
1388
+ }
1389
+ let h = d === Infinity ? f : l, g = d === Infinity ? p : u;
1390
+ return {
1391
+ x: +(h / Q).toFixed(6),
1392
+ y: +(g / Q).toFixed(6)
1393
+ };
1394
+ }
1395
+ function gt(e, t, n) {
1396
+ return e.baseFace && n ? {
1397
+ gaze: n.gaze,
1398
+ split: n.split,
1399
+ eyes: n.eyes
1400
+ } : {
1401
+ gaze: t.gaze,
1402
+ split: t.split,
1403
+ eyes: t.eyes
1404
+ };
1405
+ }
1406
+ function _t(e) {
1407
+ let t = (e) => JSON.stringify([
1408
+ e.gaze,
1409
+ e.split,
1410
+ e.eyes,
1411
+ e.sil.rot,
1412
+ e.sil.cx,
1413
+ e.sil.cy,
1414
+ e.sil.sx,
1415
+ e.sil.sy
1416
+ ]);
1417
+ return t(e.pose(0)) === t(e.pose(e.duration)) ? [0] : Array.from({ length: 3 }, (t, n) => n / 2 * e.duration);
1418
+ }
1419
+ function vt(e, t, n) {
1420
+ let r = [];
1421
+ for (let i of _t(e)) {
1422
+ let a = e.pose(i), o = W({
1423
+ ...a.sil,
1424
+ radii: t
1425
+ }, Q), s = W(a.sil, Q), c = gt(e, a, n), l = [];
1426
+ for (let e of [-7.1, at]) for (let t of [-5.5, ot]) l.push({
1427
+ ...c,
1428
+ gaze: {
1429
+ yaw: c.gaze.yaw + e,
1430
+ pitch: c.gaze.pitch + t,
1431
+ roll: c.gaze.roll
1432
+ }
1433
+ });
1434
+ for (let e of l) r.push({
1435
+ empreintes: lt(e, a.sil, t),
1436
+ reference: lt(e, a.sil, a.sil.radii),
1437
+ contour: o,
1438
+ calContour: s
1439
+ });
1440
+ }
1441
+ return ht(r);
1442
+ }
1443
+ var yt = {
1444
+ x: 0,
1445
+ y: 0
1446
+ }, bt = (e, t) => `${e}|${t ?? ""}`;
1447
+ function xt() {
1448
+ return new Map(Ve.map((e) => {
1449
+ let t = /* @__PURE__ */ new Map();
1450
+ for (let n of nt) {
1451
+ if (!n.baseBody) continue;
1452
+ let r = n.baseFace ? [null, ...z] : [null];
1453
+ for (let i of r) t.set(bt(n.id, i?.id ?? null), vt(n, e.radii, i));
1454
+ }
1455
+ return [e.radii, t];
1456
+ }));
1457
+ }
1458
+ var St = xt();
1459
+ function Ct(e, t, n) {
1460
+ if (!e) return yt;
1461
+ let r = St.get(e);
1462
+ return r ? r.get(bt(t, n)) ?? r.get(bt(t, null)) ?? yt : yt;
1463
+ }
1464
+ //#endregion
1465
+ //#region src/bot/engine.ts
1466
+ var wt = .2, Tt = {
1467
+ yaw: 0,
1468
+ pitch: 0,
1469
+ mix: 0,
1470
+ spin: 0,
1471
+ wander: 1
1472
+ }, Et = (e, t, n) => ({
1473
+ yaw: S(e.yaw, t.yaw, n),
1474
+ pitch: S(e.pitch, t.pitch, n),
1475
+ mix: S(e.mix, t.mix, n),
1476
+ spin: S(e.spin, t.spin, n),
1477
+ wander: S(e.wander, t.wander, n),
1478
+ ...e.blink === void 0 && t.blink === void 0 ? {} : { blink: S(e.blink ?? 1, t.blink ?? 1, n) }
1479
+ }), Dt = (e, t, n) => ({
1480
+ w: S(e.w, t.w, n),
1481
+ h: S(e.h, t.h, n),
1482
+ open: S(e.open, t.open, n),
1483
+ tilt: S(e.tilt ?? 0, t.tilt ?? 0, n)
1484
+ });
1485
+ function Ot(e, t, n) {
1486
+ let r = 1 - n;
1487
+ return {
1488
+ sil: Oe(e.sil, t.sil, n),
1489
+ offX: S(e.offX, t.offX, n),
1490
+ offY: S(e.offY, t.offY, n),
1491
+ gaze: {
1492
+ yaw: S(e.gaze.yaw, t.gaze.yaw, n),
1493
+ pitch: S(e.gaze.pitch, t.gaze.pitch, n),
1494
+ roll: S(e.gaze.roll, t.gaze.roll, n)
1495
+ },
1496
+ split: S(e.split, t.split, n),
1497
+ eyes: [Dt(e.eyes[0], t.eyes[0], n), Dt(e.eyes[1], t.eyes[1], n)],
1498
+ eyeAlpha: S(e.eyeAlpha, t.eyeAlpha, n),
1499
+ bodyAlpha: S(e.bodyAlpha, t.bodyAlpha, n),
1500
+ dots: [...e.dots.map((e) => ({
1501
+ ...e,
1502
+ opacity: e.opacity * r
1503
+ })), ...t.dots.map((e) => ({
1504
+ ...e,
1505
+ opacity: e.opacity * n
1506
+ }))],
1507
+ arcs: [...e.arcs.map((e) => ({
1508
+ ...e,
1509
+ id: `a${e.id}`,
1510
+ opacity: e.opacity * r
1511
+ })), ...t.arcs.map((e) => ({
1512
+ ...e,
1513
+ id: `b${e.id}`,
1514
+ opacity: e.opacity * n
1515
+ }))],
1516
+ notif: n < .5 ? e.notif : t.notif,
1517
+ dotsBehind: n < .5 ? e.dotsBehind : t.dotsBehind
1518
+ };
1519
+ }
1520
+ var kt = class e {
1521
+ scale;
1522
+ cur;
1523
+ prev = null;
1524
+ departFige = null;
1525
+ decalageFige = null;
1526
+ tCur = 0;
1527
+ tPrev = 0;
1528
+ posePhase = 0;
1529
+ previousPosePhase = 0;
1530
+ blinkAt = -10;
1531
+ pts = [];
1532
+ shape = null;
1533
+ shapePrev = null;
1534
+ shapeAt = -10;
1535
+ expr = null;
1536
+ exprPrev = null;
1537
+ exprAt = -10;
1538
+ exprDepart = null;
1539
+ look = Tt;
1540
+ lookPrev = Tt;
1541
+ lookAt = -10;
1542
+ lookMorph = .24;
1543
+ static SHAPE_MORPH = .45;
1544
+ static LOOK_MORPH = .24;
1545
+ constructor(e = 100, t = "idle", n = null, r = null) {
1546
+ this.scale = e, this.cur = t, this.shape = n, this.expr = r;
1547
+ }
1548
+ setExpression(t, n = 0) {
1549
+ if (t === this.expr) return;
1550
+ let r = (n - this.exprAt) / e.SHAPE_MORPH;
1551
+ if (this.expr && this.exprPrev && r >= 0 && r < 1) {
1552
+ let e = C.easeOutQuint(x(r)), t = this.exprDepart ?? [{
1553
+ id: this.exprPrev.id,
1554
+ poids: 1
1555
+ }];
1556
+ this.exprDepart = [...t.map(({ id: t, poids: n }) => ({
1557
+ id: t,
1558
+ poids: n * (1 - e)
1559
+ })).filter(({ poids: e }) => e > 1e-9), {
1560
+ id: this.expr.id,
1561
+ poids: e
1562
+ }], this.exprPrev = we(this.exprPrev, this.expr, e);
1563
+ } else this.exprDepart = null, this.exprPrev = this.expr;
1564
+ this.expr = t, this.exprAt = n;
1565
+ }
1566
+ exprAtTime(t) {
1567
+ let n = this.expr, r = this.exprPrev;
1568
+ if (!n || !r) return n;
1569
+ let i = (t - this.exprAt) / e.SHAPE_MORPH;
1570
+ return i >= 1 ? n : we(r, n, C.easeOutQuint(x(i)));
1571
+ }
1572
+ setShape(e, t = 0) {
1573
+ e !== this.shape && (this.shapePrev = this.shape, this.shape = e, this.shapeAt = t);
1574
+ }
1575
+ shapeAtTime(t) {
1576
+ let n = this.shape, r = this.shapePrev;
1577
+ if (!n || !r) return n;
1578
+ let i = (t - this.shapeAt) / e.SHAPE_MORPH;
1579
+ if (i >= 1) return n;
1580
+ let a = C.easeOutQuint(x(i));
1581
+ return n.map((e, t) => S(r[t] ?? e, e, a));
1582
+ }
1583
+ setLook(t, n, r = e.LOOK_MORPH) {
1584
+ t && !Number.isFinite(t.yaw + t.pitch + t.mix + t.spin + t.wander + (t.blink ?? 1)) || (this.lookPrev = this.lookAtTime(n), this.look = t ?? Tt, this.lookAt = n, this.lookMorph = r);
1585
+ }
1586
+ lookAtTime(e) {
1587
+ let t = (e - this.lookAt) / this.lookMorph;
1588
+ return t >= 1 ? this.look : Et(this.lookPrev, this.look, C.easeOutQuint(x(t)));
1589
+ }
1590
+ posed(e, t, n, r) {
1591
+ let i = e.pose(t);
1592
+ return e.baseBody && n && (i = {
1593
+ ...i,
1594
+ sil: {
1595
+ ...i.sil,
1596
+ radii: n
1597
+ }
1598
+ }), e.baseFace && r && (i = {
1599
+ ...i,
1600
+ gaze: r.gaze,
1601
+ split: r.split,
1602
+ eyes: r.eyes
1603
+ }), i;
1604
+ }
1605
+ decalageAtTime(t, n) {
1606
+ let r = (e, n, r, i) => {
1607
+ if (r === i) return i;
1608
+ let a = (t - e) / n;
1609
+ if (a >= 1) return i;
1610
+ let o = C.easeOutQuint(x(a));
1611
+ return {
1612
+ x: S(r.x, i.x, o),
1613
+ y: S(r.y, i.y, o)
1614
+ };
1615
+ }, i = (e) => {
1616
+ if (!this.exprDepart) return Ct(e, n, this.exprPrev?.id ?? null);
1617
+ let t = 0, r = 0;
1618
+ for (let { id: i, poids: a } of this.exprDepart) {
1619
+ let o = Ct(e, n, i);
1620
+ t += o.x * a, r += o.y * a;
1621
+ }
1622
+ return {
1623
+ x: t,
1624
+ y: r
1625
+ };
1626
+ }, a = (a) => {
1627
+ let o = Ct(a, n, this.expr?.id ?? null);
1628
+ return t - this.exprAt >= e.SHAPE_MORPH ? o : r(this.exprAt, e.SHAPE_MORPH, i(a), o);
1629
+ };
1630
+ return r(this.shapeAt, e.SHAPE_MORPH, a(this.shapePrev), a(this.shape));
1631
+ }
1632
+ get state() {
1633
+ return this.cur;
1634
+ }
1635
+ quiet(t) {
1636
+ let n = Z.get(this.cur).morph;
1637
+ return t - this.tCur < n || t - this.shapeAt < e.SHAPE_MORPH || t - this.exprAt < e.SHAPE_MORPH || t - this.blinkAt < wt ? !1 : this.lookAtTime(t).blink === 0 || be(t).lid >= 1;
1638
+ }
1639
+ reset(e, t) {
1640
+ this.cur = e, this.prev = null, this.departFige = null, this.decalageFige = null, this.tCur = t, this.tPrev = t, this.posePhase = 0, this.previousPosePhase = 0, this.blinkAt = -10;
1641
+ }
1642
+ origine(e, t, n) {
1643
+ if (this.departFige) return this.departFige;
1644
+ if (!this.prev) return null;
1645
+ let r = Z.get(this.prev);
1646
+ return this.posed(r, Math.max(0, e - this.tPrev + this.previousPosePhase), t, n);
1647
+ }
1648
+ poseComposee(e) {
1649
+ let t = Z.get(this.cur), n = this.shapeAtTime(e), r = this.exprAtTime(e), i = this.posed(t, Math.max(0, e - this.tCur + this.posePhase), n, r), a = e - this.tCur;
1650
+ if (a >= t.morph) return i;
1651
+ let o = this.origine(e, n, r);
1652
+ return o ? Ot(o, i, C.easeOutQuint(x(a / t.morph))) : i;
1653
+ }
1654
+ decalageCompose(e) {
1655
+ let t = Z.get(this.cur), n = this.decalageAtTime(e, this.cur), r = e - this.tCur;
1656
+ if (r >= t.morph || !this.prev) return n;
1657
+ let i = this.decalageFige ?? this.decalageAtTime(e, this.prev), a = C.easeOutQuint(x(r / t.morph));
1658
+ return {
1659
+ x: S(i.x, n.x, a),
1660
+ y: S(i.y, n.y, a)
1661
+ };
1662
+ }
1663
+ setState(e, t, n = 0) {
1664
+ if (e === this.cur) return;
1665
+ let r = Z.get(this.cur).morph, i = this.prev !== null && t - this.tCur < r;
1666
+ this.departFige = i ? this.poseComposee(t) : null, this.decalageFige = i ? this.decalageCompose(t) : null, this.prev = this.cur, this.tPrev = this.tCur, this.previousPosePhase = this.posePhase, this.posePhase = n, this.cur = e, this.tCur = t, Z.get(e)?.blinkIn && (this.blinkAt = t);
1667
+ }
1668
+ sample(e) {
1669
+ let t = this.scale, n = Z.get(this.cur), r = this.shapeAtTime(e), i = this.exprAtTime(e), a = this.posed(n, Math.max(0, e - this.tCur + this.posePhase), r, i), o = this.decalageCompose(e), s = e - this.tCur, c = s < n.morph ? this.origine(e, r, i) : null;
1670
+ if (c) {
1671
+ let e = C.easeOutQuint(x(s / n.morph));
1672
+ a = Ot(c, a, e);
1673
+ }
1674
+ let l = a.eyeAlpha > .01, u = this.lookAtTime(e), d = be(e, {
1675
+ wander: l ? u.wander : 0,
1676
+ blink: l
1677
+ }), f = {
1678
+ yaw: S(a.gaze.yaw, u.yaw, u.mix) + d.dYaw - u.spin,
1679
+ pitch: S(a.gaze.pitch, u.pitch, u.mix) + d.dPitch,
1680
+ roll: a.gaze.roll + d.dRoll
1681
+ }, p = x((e - this.blinkAt) / wt), m = p < 1 ? Math.abs(p * 2 - 1) : 1, h = Math.min(d.lid, m), g = u.blink === void 0 || u.blink === 1 ? h : 1 - (1 - h) * x(u.blink), _ = a.offX + d.driftX, v = a.offY + d.driftY, y = ke(W({
1682
+ ...a.sil,
1683
+ cx: a.sil.cx + _,
1684
+ cy: a.sil.cy + v,
1685
+ sy: a.sil.sy * d.breath
1686
+ }, t, this.pts)), b = (e, t) => Ae(a.sil.radii, Math.atan2(t, e) - a.sil.rot), w = [];
1687
+ if (a.eyeAlpha > .01) {
1688
+ let e = F(f, t, a.split);
1689
+ for (let n = 0; n < 2; n++) {
1690
+ let r = e[n];
1691
+ if (r.depth <= .02) continue;
1692
+ let i = a.eyes[n], s = b(r.x, r.y), c = (i.tilt ?? 0) * Math.PI / 180, l = Math.cos(c), u = Math.sin(c), d = r.a * l + r.c * u, f = r.b * l + r.d * u, p = -r.a * u + r.c * l, m = -r.b * u + r.d * l, h = xe(Math.min(g, i.open));
1693
+ w.push({
1694
+ d: Fe(i.w * t, i.h * t),
1695
+ w: i.w * t,
1696
+ h: i.h * t,
1697
+ matrix: `matrix(${T(d)},${T(f * h)},${T(p)},${T(m * h)},${T(r.x * s + (_ + o.x) * t)},${T(r.y * s + (v + o.y) * t)})`,
1698
+ open: h,
1699
+ rest: xe(i.open),
1700
+ alpha: a.eyeAlpha * x(r.depth / .12)
1701
+ });
1702
+ }
1703
+ }
1704
+ let ee = a.dots.filter((e) => e.opacity > .01 && e.r > 5e-4).map((e) => ({
1705
+ ...e,
1706
+ x: (e.x + _) * t,
1707
+ y: (e.y + v) * t,
1708
+ r: e.r * t
1709
+ })), te = a.notif ? b(a.notif.x, a.notif.y) : 1, E = a.notif ? (a.notif.x * te + _) * t : 0, re = a.notif ? (a.notif.y * te + v) * t : 0, D = a.notif ? {
1710
+ x: E,
1711
+ y: re,
1712
+ r: a.notif.r * t
1713
+ } : null, O = a.notif ? {
1714
+ x: E,
1715
+ y: re,
1716
+ r: a.notif.notch * t
1717
+ } : null;
1718
+ return {
1719
+ bodyPath: y,
1720
+ bodyAlpha: a.bodyAlpha,
1721
+ eyes: w,
1722
+ dots: ee,
1723
+ dotsBehind: a.dotsBehind,
1724
+ arcs: a.arcs.filter((e) => e.opacity > .01).map((e) => ne(e.seed, e.t, t, e.id, e.opacity)),
1725
+ notif: D,
1726
+ notch: O
1727
+ };
1728
+ }
1729
+ }, At = 1.1, jt = 1.5, Mt = (e) => ({
1730
+ yaw: 0,
1731
+ pitch: 0,
1732
+ mix: 0,
1733
+ spin: 360 * (1 - C.easeInOutCubic(x(e / jt))),
1734
+ wander: 1
1735
+ });
1736
+ function Nt({ nx: e, ny: t, tour: n, pointer: r }) {
1737
+ return {
1738
+ yaw: -26 + e * 16,
1739
+ pitch: 10 - t * 13,
1740
+ mix: n,
1741
+ spin: 360 * (1 - n),
1742
+ wander: +!r
1743
+ };
1744
+ }
1745
+ //#endregion
1746
+ //#region src/bot/cycles.ts
1747
+ var Pt = Math.max(...nt.map((e) => e.morph)), Ft = 10, It = 200, Lt = 50, Rt = .1, zt = "defaut";
1748
+ function Bt(e) {
1749
+ return Math.max(Pt, Z.get(e)?.minDuration ?? Pt);
1750
+ }
1751
+ function Vt(e, t) {
1752
+ let n = Math.round(t / Rt) * Rt, r = Math.min(10, Math.max(Bt(e), n));
1753
+ return Math.round(r * 100) / 100;
1754
+ }
1755
+ function Ht(e) {
1756
+ return {
1757
+ state: e,
1758
+ duration: Vt(e, Z.get(e)?.duration ?? 2)
1759
+ };
1760
+ }
1761
+ function Ut() {
1762
+ return {
1763
+ name: "",
1764
+ id: zt,
1765
+ blocks: it.map(Ht)
1766
+ };
1767
+ }
1768
+ function Wt(e) {
1769
+ return e.reduce((e, t) => e + t.duration, 0);
1770
+ }
1771
+ function Gt(e, t) {
1772
+ let n = 0;
1773
+ for (let r = 0; r < t && r < e.length; r++) n += e[r].duration;
1774
+ return n;
1775
+ }
1776
+ function Kt(e, t) {
1777
+ let n = Wt(e);
1778
+ if (!e.length || n <= 0) return {
1779
+ index: 0,
1780
+ elapsed: 0
1781
+ };
1782
+ let r = t >= 0 && t < n ? t : (t % n + n) % n, i = 0;
1783
+ for (let t = 0; t < e.length; t++) {
1784
+ let n = i + e[t].duration;
1785
+ if (r < n) return {
1786
+ index: t,
1787
+ elapsed: r - i
1788
+ };
1789
+ i = n;
1790
+ }
1791
+ return {
1792
+ index: e.length - 1,
1793
+ elapsed: 0
1794
+ };
1795
+ }
1796
+ function qt(e, t) {
1797
+ return e.length >= 200 ? e : [...e, Ht(t)];
1798
+ }
1799
+ function Jt(e, t, n) {
1800
+ let r = e.slice(), [i] = r.splice(t, 1);
1801
+ return i ? (r.splice(Math.min(Math.max(n, 0), r.length), 0, i), r) : e;
1802
+ }
1803
+ function Yt(e, t) {
1804
+ let n = new Set(t.map((e) => e.name));
1805
+ if (!n.has(e)) return e;
1806
+ let r = 2;
1807
+ for (; n.has(`${e} ${r}`);) r++;
1808
+ return `${e} ${r}`;
1809
+ }
1810
+ function Xt(e) {
1811
+ let t = new Set(e.map((e) => e.id)), n = 1;
1812
+ for (; t.has(`c${n}`);) n++;
1813
+ return `c${n}`;
1814
+ }
1815
+ function Zt(e) {
1816
+ if (typeof e != "object" || !e) return null;
1817
+ let { state: t, duration: n } = e;
1818
+ return typeof t != "string" || !it.includes(t) || typeof n != "number" || !Number.isFinite(n) ? null : {
1819
+ state: t,
1820
+ duration: Vt(t, n)
1821
+ };
1822
+ }
1823
+ function Qt(e, t) {
1824
+ if (typeof e != "object" || !e) return null;
1825
+ let { id: n, name: r, blocks: i } = e;
1826
+ if (typeof n != "string" || !n || typeof r != "string" || !Array.isArray(i)) return null;
1827
+ let a = i.slice(0, 200).map(Zt).filter((e) => e !== null);
1828
+ return !a.length || t.some((e) => e.id === n) ? null : {
1829
+ id: n,
1830
+ name: r,
1831
+ blocks: a
1832
+ };
1833
+ }
1834
+ function $t(e) {
1835
+ if (!e) return [];
1836
+ let t;
1837
+ try {
1838
+ t = JSON.parse(e);
1839
+ } catch {
1840
+ return [];
1841
+ }
1842
+ if (!Array.isArray(t)) return [];
1843
+ let n = [];
1844
+ for (let e of t.slice(0, 50)) {
1845
+ let t = Qt(e, n);
1846
+ t && n.push(t);
1847
+ }
1848
+ return n;
1849
+ }
1850
+ //#endregion
1851
+ //#region src/bot/repere.ts
1852
+ var en = 100, tn = 158, nn = /* @__PURE__ */ u("<svg role=img><defs><mask maskUnits=userSpaceOnUse><path fill=#fff></path><!><!></mask></defs><g fill=none stroke-linecap=round></g><g fill=none stroke-linecap=round>"), rn = /* @__PURE__ */ u("<svg><path fill=#000></svg>", 2), an = /* @__PURE__ */ u("<svg><circle fill=#000></svg>", 2), on = /* @__PURE__ */ u("<svg><linearGradient gradientUnits=userSpaceOnUse></svg>", 2), sn = /* @__PURE__ */ u("<svg><stop></svg>", 2), cn = /* @__PURE__ */ u("<svg><path></svg>", 2), ln = /* @__PURE__ */ u("<svg><g></svg>", 2), un = /* @__PURE__ */ u("<svg><g><path></path><g><rect></svg>", 2), dn = /* @__PURE__ */ u("<svg><circle></svg>", 2);
1853
+ function $(e, t, n) {
1854
+ p(e, (e, n) => {
1855
+ y(() => t(e, n));
1856
+ }, n?.defer ? { defer: !0 } : void 0);
1857
+ }
1858
+ function fn(u) {
1859
+ let b = o({
1860
+ size: 320,
1861
+ shape: Ue,
1862
+ color: Ke,
1863
+ expression: Ce,
1864
+ paper: "#f9f9f9",
1865
+ cycle: Ut().blocks,
1866
+ follow: !1,
1867
+ gaze: null,
1868
+ autoPause: !0,
1869
+ ariaLabel: "Animated Bloub avatar"
1870
+ }, u), S = y(() => {
1871
+ let e = b.initialPhase !== void 0 && b.frozenAt === void 0, t = e ? b.initialPhase : 0, n = e ? Kt(b.cycle, t) : {
1872
+ index: 0,
1873
+ elapsed: 0
1874
+ }, r = e ? b.cycle[n.index]?.state ?? "idle" : "idle";
1875
+ return {
1876
+ phased: e,
1877
+ phase: t,
1878
+ ...n,
1879
+ state: r
1880
+ };
1881
+ }), [w, ee] = h(S.index), [T, te] = h(S.state), [ne] = h(!1), [E, re] = h(S.elapsed), D = () => u.block ?? w(), O = () => u.state ?? T(), k = () => u.playing ?? ne(), ie = () => u.elapsed ?? E();
1882
+ function ae(e) {
1883
+ u.block === void 0 && ee(e), u.onBlockChange?.(e);
1884
+ }
1885
+ function oe(e) {
1886
+ u.state === void 0 && te(e), u.onStateChange?.(e);
1887
+ }
1888
+ function se(e) {
1889
+ u.elapsed === void 0 && re(e), u.onElapsedChange?.(e);
1890
+ }
1891
+ let ce = m(() => He.get(b.shape)?.radii ?? null), le = m(() => Ge.get(b.color)?.hex ?? (/^#[0-9a-f]{6}$/i.test(b.color) ? b.color : "#0a0a0c")), ue = m(() => {
1892
+ let e = b.expression;
1893
+ return typeof e == "string" ? Se.get(e) ?? null : e ?? null;
1894
+ }), A = y(() => {
1895
+ let e = new kt(100, O(), ce(), ue());
1896
+ return S.phased && e.reset(O(), S.phase - S.elapsed), e;
1897
+ }), fe = y(() => b.frozenAt ?? S.phase), [j, pe] = h(A.sample(fe), { equals: !1 });
1898
+ function me(e) {
1899
+ fe = e, pe(A.sample(e));
1900
+ }
1901
+ let M = g(), he = `bot-mask-${M}`, N, P = 0, ge = -Infinity, F = Infinity, _e = 0, I = S.phase, ve = 0, ye = 0, be = -1, [xe, L] = h(!0), R = -Infinity;
1902
+ function z(e) {
1903
+ R = Math.max(R, I + e), L(!0);
1904
+ }
1905
+ function B(e, t = 0, n = 0) {
1906
+ let r = b.cycle[e];
1907
+ if (!r) {
1908
+ F = Infinity;
1909
+ return;
1910
+ }
1911
+ ve = I - t, se(t), oe(r.state), A.setState(r.state, I, n), F = k() ? ve + r.duration : Infinity, z(0);
1912
+ }
1913
+ function we(e) {
1914
+ ae(e), B(e);
1915
+ }
1916
+ function Te(e, t = 0) {
1917
+ if (D() === e) {
1918
+ B(e, t);
1919
+ return;
1920
+ }
1921
+ ye = t, ae(e);
1922
+ }
1923
+ function Ee(e) {
1924
+ let t = b.cycle;
1925
+ if (!t.length) return;
1926
+ let { index: n } = Kt(t, e);
1927
+ if (n !== be) {
1928
+ let e = t[n];
1929
+ oe(e.state), n < be ? A.reset(e.state, Gt(t, n)) : A.setState(e.state, Gt(t, n)), be = n;
1930
+ }
1931
+ me(e);
1932
+ }
1933
+ let V = null, H = !1, De = 0, U = 0, Oe = !1, W = 1 / 60;
1934
+ function ke(e) {
1935
+ e.pointerType !== "touch" && (V = {
1936
+ x: e.clientX,
1937
+ y: e.clientY
1938
+ });
1939
+ }
1940
+ function G() {
1941
+ V = null;
1942
+ }
1943
+ function K() {
1944
+ H &&= (A.setLook(null, I, At), z(At), !1);
1945
+ }
1946
+ function Ae() {
1947
+ if (!Z.get(O())?.baseFace) {
1948
+ K();
1949
+ return;
1950
+ }
1951
+ let e = N?.getBoundingClientRect();
1952
+ if (!e || e.width === 0 || e.height === 0) return;
1953
+ H || (De = I);
1954
+ let t = Math.max(1, window.innerWidth / 2), n = Math.max(1, window.innerHeight / 2);
1955
+ A.setLook(Nt({
1956
+ nx: V ? x((V.x - (e.left + e.width / 2)) / t, -1, 1) : 0,
1957
+ ny: V ? x((V.y - (e.top + e.height / 2)) / n, -1, 1) : 0,
1958
+ tour: C.easeOutQuint(x((I - De) / At)),
1959
+ pointer: V !== null
1960
+ }), I), H = !0;
1961
+ }
1962
+ function je(e) {
1963
+ A.setLook(e(I - U), I, W);
1964
+ }
1965
+ function Me() {
1966
+ window.removeEventListener("pointermove", ke), document.removeEventListener("pointerleave", G);
1967
+ }
1968
+ function Ne(e) {
1969
+ P = requestAnimationFrame(Ne);
1970
+ let t = _e ? Math.min((e - _e) / 1e3, .064) : 0;
1971
+ _e = e, I += t;
1972
+ let n = b.fps && b.fps > 0 ? 1 / b.fps : 0;
1973
+ I - ge < n || (ge = I, k() && (I >= F && b.cycle.length ? we((D() + 1) % b.cycle.length) : se(I - ve)), b.follow ? Ae() : b.gaze && je(b.gaze), me(I), b.paused && !b.follow && I >= R && A.quiet(I) && L(!1));
1974
+ }
1975
+ function q() {
1976
+ b.frozenAt !== void 0 && me(b.frozenAt);
1977
+ }
1978
+ $(() => b.gaze, (e) => {
1979
+ e ? (U = I, Oe = !0, A.setLook(e(0), I - W, W), z(W)) : Oe &&= (A.setLook(null, I), z(kt.LOOK_MORPH), !1);
1980
+ }), $(D, (e) => {
1981
+ B(e, ye), ye = 0;
1982
+ }, { defer: !0 }), $(O, (e) => {
1983
+ A.state !== e && (A.setState(e, I), z(0), q());
1984
+ }, { defer: !0 }), $(k, (e) => {
1985
+ e ? B(D(), ie()) : F = Infinity;
1986
+ }, { defer: !0 }), $(() => b.cycle, (e) => {
1987
+ if (!e.length) {
1988
+ F = Infinity;
1989
+ return;
1990
+ }
1991
+ let t = Math.min(D(), e.length - 1);
1992
+ if (t !== D()) we(t);
1993
+ else if (e[t].state !== A.state) {
1994
+ let n = S.phase % e[t].duration;
1995
+ B(t, n, n);
1996
+ } else F = k() ? ve + e[t].duration : Infinity;
1997
+ }, { defer: !0 }), $(ce, (e) => {
1998
+ A.setShape(e, I), z(0), q();
1999
+ }, { defer: !0 }), $(ue, (e) => {
2000
+ A.setExpression(e, I), z(0), q();
2001
+ }, { defer: !0 }), $(() => b.paused, (e) => {
2002
+ e && z(0);
2003
+ }, { defer: !0 }), $(() => b.frozenAt, q, { defer: !0 }), p(() => b.follow && b.frozenAt === void 0, (e) => {
2004
+ e ? (window.addEventListener("pointermove", ke), document.addEventListener("pointerleave", G)) : (Me(), K());
2005
+ });
2006
+ function Pe() {
2007
+ P || typeof requestAnimationFrame > "u" || (_e = 0, P = requestAnimationFrame(Ne));
2008
+ }
2009
+ function Fe() {
2010
+ P &&= (typeof cancelAnimationFrame < "u" && cancelAnimationFrame(P), 0);
2011
+ }
2012
+ let [Ie, Le] = h(!0), [Re, ze] = h(!0), [Be, Ve] = h(!1);
2013
+ p(() => Be() && b.frozenAt === void 0 && (!b.paused || b.follow || xe()) && (!b.autoPause || Ie() && Re()), (e) => {
2014
+ e ? Pe() : Fe();
2015
+ }), v(() => {
2016
+ if (u.ref?.({
2017
+ get svg() {
2018
+ return N;
2019
+ },
2020
+ seek: Te,
2021
+ renderAt: Ee
2022
+ }), b.frozenAt !== void 0) return;
2023
+ B(D(), ie());
2024
+ let e = () => ze(document.visibilityState !== "hidden");
2025
+ document.addEventListener("visibilitychange", e), e();
2026
+ let t = typeof IntersectionObserver > "u" ? null : new IntersectionObserver((e) => {
2027
+ let t = e[e.length - 1];
2028
+ t && Le(t.isIntersecting);
2029
+ });
2030
+ return t?.observe(N), Ve(!0), () => {
2031
+ document.removeEventListener("visibilitychange", e), t?.disconnect();
2032
+ };
2033
+ }), _(() => {
2034
+ Fe(), typeof window < "u" && Me();
2035
+ });
2036
+ function We(e) {
2037
+ let t = {
2038
+ fill: e.color ?? (e.depth === void 0 ? le() : qe(b.paper, le(), e.depth)),
2039
+ opacity: e.opacity
2040
+ };
2041
+ return e.d ? {
2042
+ ...t,
2043
+ d: e.d,
2044
+ transform: `translate(${e.x} ${e.y}) rotate(${e.rot ?? 0}) scale(100)`
2045
+ } : {
2046
+ ...t,
2047
+ cx: e.x,
2048
+ cy: e.y,
2049
+ r: e.r
2050
+ };
2051
+ }
2052
+ let J = () => n(d, {
2053
+ get each() {
2054
+ return j().dots;
2055
+ },
2056
+ keyed: !1,
2057
+ children: (t) => n(e, o({ get component() {
2058
+ return t().d ? "path" : "circle";
2059
+ } }, () => We(t())))
2060
+ });
2061
+ var Y = nn(), Je = Y.firstChild, X = Je.firstChild, Ye = X.firstChild, Xe = Ye.nextSibling, Ze = Xe.nextSibling, Qe = Je.nextSibling, $e = Qe.nextSibling, et = N;
2062
+ return typeof et == "function" || Array.isArray(et) ? s(() => et, Y) : N = Y, c(Y, "viewBox", "-158 -158 316 316"), c(X, "id", he), c(X, "x", -158), c(X, "y", -158), c(X, "width", 316), c(X, "height", 316), i(X, n(d, {
2063
+ get each() {
2064
+ return j().eyes;
2065
+ },
2066
+ keyed: !1,
2067
+ children: (e) => (() => {
2068
+ var t = rn();
2069
+ return r(() => ({
2070
+ e: e().d,
2071
+ t: e().matrix,
2072
+ a: e().alpha
2073
+ }), ({ e, t: n, a: r }, i) => {
2074
+ e !== i?.e && c(t, "d", e), n !== i?.t && c(t, "transform", n), r !== i?.a && c(t, "opacity", r);
2075
+ }), t;
2076
+ })()
2077
+ }), Xe), i(X, n(f, {
2078
+ get when() {
2079
+ return j().notch;
2080
+ },
2081
+ children: (e) => (() => {
2082
+ var t = an();
2083
+ return r(() => ({
2084
+ e: e().x,
2085
+ t: e().y,
2086
+ a: e().r
2087
+ }), ({ e, t: n, a: r }, i) => {
2088
+ e !== i?.e && c(t, "cx", e), n !== i?.t && c(t, "cy", n), r !== i?.a && c(t, "r", r);
2089
+ }), t;
2090
+ })()
2091
+ }), Ze), i(Je, n(d, {
2092
+ get each() {
2093
+ return j().arcs;
2094
+ },
2095
+ keyed: !1,
2096
+ children: (e) => (() => {
2097
+ var t = on();
2098
+ return i(t, n(d, {
2099
+ get each() {
2100
+ return e().grad.stops;
2101
+ },
2102
+ keyed: !1,
2103
+ children: (t, n) => (() => {
2104
+ var i = sn();
2105
+ return r(() => ({
2106
+ e: n / (e().grad.stops.length - 1),
2107
+ t: t()
2108
+ }), ({ e, t }, n) => {
2109
+ e !== n?.e && c(i, "offset", e), t !== n?.t && c(i, "stop-color", t);
2110
+ }), i;
2111
+ })()
2112
+ })), r(() => ({
2113
+ e: `${M}-${e().id}`,
2114
+ t: e().grad.x1,
2115
+ a: e().grad.y1,
2116
+ o: e().grad.x2,
2117
+ i: e().grad.y2
2118
+ }), ({ e, t: n, a: r, o: i, i: a }, o) => {
2119
+ e !== o?.e && c(t, "id", e), n !== o?.t && c(t, "x1", n), r !== o?.a && c(t, "y1", r), i !== o?.o && c(t, "x2", i), a !== o?.i && c(t, "y2", a);
2120
+ }), t;
2121
+ })()
2122
+ }), null), i(Qe, n(d, {
2123
+ get each() {
2124
+ return j().arcs;
2125
+ },
2126
+ keyed: !1,
2127
+ children: (e) => (() => {
2128
+ var t = cn();
2129
+ return r(() => ({
2130
+ e: e().back,
2131
+ t: `url(#${M}-${e().id})`,
2132
+ a: e().width,
2133
+ o: e().opacity
2134
+ }), ({ e, t: n, a: r, o: i }, a) => {
2135
+ e !== a?.e && c(t, "d", e), n !== a?.t && c(t, "stroke", n), r !== a?.a && c(t, "stroke-width", r), i !== a?.o && c(t, "opacity", i);
2136
+ }), t;
2137
+ })()
2138
+ })), i(Y, n(f, {
2139
+ get when() {
2140
+ return b.layer;
2141
+ },
2142
+ get fallback() {
2143
+ return [
2144
+ n(f, {
2145
+ get when() {
2146
+ return j().dotsBehind;
2147
+ },
2148
+ get children() {
2149
+ var e = ln();
2150
+ return i(e, n(J, {})), e;
2151
+ }
2152
+ }),
2153
+ (() => {
2154
+ var e = un(), t = e.firstChild, n = t.nextSibling, i = n.firstChild;
2155
+ return c(n, "mask", `url(#${he})`), c(i, "x", -158), c(i, "y", -158), c(i, "width", 316), c(i, "height", 316), r(() => ({
2156
+ e: j().bodyAlpha,
2157
+ t: j().bodyPath,
2158
+ a: b.paper,
2159
+ o: le()
2160
+ }), ({ e: n, t: r, a, o }, s) => {
2161
+ n !== s?.e && c(e, "opacity", n), r !== s?.t && c(t, "d", r), a !== s?.a && c(t, "fill", a), o !== s?.o && c(i, "fill", o);
2162
+ }), e;
2163
+ })(),
2164
+ n(f, {
2165
+ get when() {
2166
+ return !j().dotsBehind;
2167
+ },
2168
+ get children() {
2169
+ var e = ln();
2170
+ return i(e, n(J, {})), e;
2171
+ }
2172
+ }),
2173
+ n(f, {
2174
+ get when() {
2175
+ return j().notif;
2176
+ },
2177
+ children: (e) => (() => {
2178
+ var t = dn();
2179
+ return c(t, "fill", de), r(() => ({
2180
+ e: e().x,
2181
+ t: e().y,
2182
+ a: e().r
2183
+ }), ({ e, t: n, a: r }, i) => {
2184
+ e !== i?.e && c(t, "cx", e), n !== i?.t && c(t, "cy", n), r !== i?.a && c(t, "r", r);
2185
+ }), t;
2186
+ })()
2187
+ })
2188
+ ];
2189
+ },
2190
+ children: (e) => a(() => e()({
2191
+ frame: j,
2192
+ time: () => fe,
2193
+ clock: () => I,
2194
+ hold: z,
2195
+ ink: le,
2196
+ uid: M
2197
+ }))
2198
+ }), Qe.nextSibling), i($e, n(d, {
2199
+ get each() {
2200
+ return j().arcs;
2201
+ },
2202
+ keyed: !1,
2203
+ children: (e) => (() => {
2204
+ var t = cn();
2205
+ return r(() => ({
2206
+ e: e().front,
2207
+ t: `url(#${M}-${e().id})`,
2208
+ a: e().width,
2209
+ o: e().opacity
2210
+ }), ({ e, t: n, a: r, o: i }, a) => {
2211
+ e !== a?.e && c(t, "d", e), n !== a?.t && c(t, "stroke", n), r !== a?.a && c(t, "stroke-width", r), i !== a?.o && c(t, "opacity", i);
2212
+ }), t;
2213
+ })()
2214
+ })), r(() => ({
2215
+ e: b.size,
2216
+ t: b.size,
2217
+ a: b.ariaLabel,
2218
+ o: b.class,
2219
+ i: b.style,
2220
+ n: j().bodyPath
2221
+ }), ({ e, t: n, a: r, o: i, i: a, n: o }, s) => {
2222
+ e !== s?.e && c(Y, "width", e), n !== s?.t && c(Y, "height", n), r !== s?.a && c(Y, "aria-label", r), t(Y, i, s?.o), l(Y, a, s?.i), o !== s?.n && c(Ye, "d", o);
2223
+ }), Y;
2224
+ }
2225
+ //#endregion
2226
+ export { tt as A, Se as B, Nt as C, it as D, rt as E, Ve as F, O as G, xe as H, He as I, x as J, de as K, qe as L, Ge as M, Ke as N, nt as O, Ue as P, Ce as R, At as S, kt as T, ie as U, we as V, k as W, S as X, C as Y, Gt as _, It as a, Yt as b, Rt as c, Vt as d, Ut as f, Xt as g, Jt as h, Ft as i, We as j, Z as k, Kt as l, Bt as m, tn as n, Lt as o, Ht as p, b as q, en as r, Pt as s, fn as t, qt as u, $t as v, Mt as w, jt as x, Wt as y, z };