@44-audio/components 0.1.0-dev.2 → 0.1.0-dev.20

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/dist/player.es.js CHANGED
@@ -1,215 +1,2533 @@
1
- import { h as Q, t as ne, d as le, c as W, p as X, a as Y, b as M, s as d, f as m, A as de, e as h, g as b, i as k, j as i, k as Z, l as R, m as P, n as f, u as ce, r as y, o as I, q as z, v as S, w as V, x as N, y as ue, z as ve, B as ge } from "./AudioPlayer-bUgQMAfs.mjs";
2
- function fe(a, t, s, r) {
3
- var n = a.__style;
4
- if (Q || n !== t) {
5
- var c = ne(t);
6
- (!Q || c !== a.getAttribute("style")) && (c == null ? a.removeAttribute("style") : a.style.cssText = c), a.__style = t;
7
- }
8
- return r;
9
- }
10
- function me(a, t) {
11
- d(t, !f(t));
12
- }
13
- var pe = m('&bull; <button class="link svelte-8utcjm"> </button>', 1), _e = (a, t) => d(t, !0), he = m(' <button class="link svelte-8utcjm">Show more</button>', 1), be = (a, t) => d(t, !1), ye = m(' <button class="link svelte-8utcjm">Show less</button>', 1), ke = m('<div class="details svelte-8utcjm"><div class="title svelte-8utcjm">Transcription <!></div> <div class="transcription"><!></div></div>'), xe = m('<div class="container svelte-8utcjm" role="group" aria-label="44 audio player"><div class="display svelte-8utcjm"><!></div> <!></div>');
14
- const je = {
15
- hash: "svelte-8utcjm",
16
- code: "button.svelte-8utcjm {font:inherit;margin:0;padding:0;box-sizing:border-box;border:none;background:none;cursor:pointer;}.link.svelte-8utcjm {background:none;border:none;color:var(--44-color-2);cursor:pointer;padding:0;font:inherit;}.link.svelte-8utcjm:hover {color:var(--44-color-3);text-decoration:underline;}.container.svelte-8utcjm {padding:16px;}.display.svelte-8utcjm {display:flex;align-items:center;gap:12px;}.details.svelte-8utcjm .title:where(.svelte-8utcjm) {font-weight:bold;margin-top:16px;margin-bottom:8px;}"
1
+ import { b as Ke, E as or, a as Xe, d as wr, n as xr, h as Se, c as Ze, e as ar, i as zr, f as kr, s as _r, g as nr, j as Fe, k as ir, U as Pr, p as lr, l as ue, m as ge, o as d, u as de, q as e, r as q, t as Lr, v as se, w as re, x as z, y as ye, z as m, A as er, B as S, C as v, D as J, F as K, G as Pe, H as M, I as W, J as he, K as we, L as G, M as D, N as rr, O as Ee, P as qe, Q as me, R as We, S as pe, T as He, V as ie, W as Er, X as Le, Y as Ir, Z as sr, _ as Be, $ as ur, a0 as Ne, a1 as Ce, a2 as Re, a3 as Z } from "./index-DCaqXYMO.js";
2
+ function Ae(g, r, ...c) {
3
+ var n = g, a = xr, o;
4
+ Ke(() => {
5
+ a !== (a = r()) && (o && (wr(o), o = null), o = Xe(() => (
6
+ /** @type {SnippetFn} */
7
+ a(n, ...c)
8
+ )));
9
+ }, or), Se && (n = Ze);
10
+ }
11
+ function Cr(g, r, c) {
12
+ Se && ar();
13
+ var n = g, a = Pr, o, i, l = null, y = zr() ? kr : _r;
14
+ function h() {
15
+ o && lr(o), l !== null && (l.lastChild.remove(), n.before(l), l = null), o = i;
16
+ }
17
+ Ke(() => {
18
+ if (y(a, a = r())) {
19
+ var f = n, x = ir();
20
+ x && (l = document.createDocumentFragment(), l.append(f = nr())), i = Xe(() => c(f)), x ? Fe.add_callback(h) : h();
21
+ }
22
+ }), Se && (n = Ze);
23
+ }
24
+ function Rr(g, r, c) {
25
+ Se && ar();
26
+ var n = g, a, o, i = null, l = null;
27
+ function y() {
28
+ o && (lr(o), o = null), i && (i.lastChild.remove(), n.before(i), i = null), o = l, l = null;
29
+ }
30
+ Ke(() => {
31
+ if (a !== (a = r())) {
32
+ var h = ir();
33
+ if (a) {
34
+ var f = n;
35
+ h && (i = document.createDocumentFragment(), i.append(f = nr()), o && Fe.skipped_effects.add(o)), l = Xe(() => c(f, a));
36
+ }
37
+ h ? Fe.add_callback(y) : y();
38
+ }
39
+ }, or), Se && (n = Ze);
40
+ }
41
+ const Oe = {
42
+ delay: 0
17
43
  };
18
- function $(a, t) {
19
- X(t, !0), Y(a, je);
20
- let s = M(t, "recordingId", 7), r = M(t, "recording", 7), n = M(t, "audioRef", 7), c = R(!1), p = R(!1), E = R(0), _ = R("idle");
21
- n().addEventListener("play", () => {
22
- d(_, "playing");
23
- }), n().addEventListener("pause", () => {
24
- d(_, "paused");
25
- }), n().addEventListener("ended", () => {
26
- d(_, "idle"), d(E, 0);
27
- }), n().addEventListener("timeupdate", () => {
28
- d(E, n().currentTime * 1e3);
29
- });
30
- var F = {
44
+ typeof window < "u" && (window.__44_dev = Oe);
45
+ function Tr(g) {
46
+ return new Promise((r) => setTimeout(r, g));
47
+ }
48
+ async function Mr(g, r, c) {
49
+ const n = `https://${r}/v1/recordings/${c}/player`;
50
+ Oe.delay > 0 && await Tr(Oe.delay);
51
+ const a = await fetch(n, { signal: g });
52
+ if (!a.ok)
53
+ throw a.status === 404 ? new Error(`Recording not found: ${c}`) : new Error(`Failed to fetch recording (${a.status})`);
54
+ const o = await a.json();
55
+ if (o.status !== "ready")
56
+ throw new Error(`Recording not ready: ${c}`);
57
+ return o;
58
+ }
59
+ var Hr = K("<audio hidden></audio>");
60
+ function jr(g, r) {
61
+ ge(r, !0);
62
+ const c = r.$$host;
63
+ let n = d(r, "recordingId", 7), a = d(r, "apiHost", 7, "api.44.audio"), o = d(r, "preload", 7, "none"), i = q(null), l = q(null), y = q(0), h = q(0), f = q("idle"), x = null, u = null;
64
+ const s = S(() => ({
65
+ waveform: e(i)?.waveform ?? [],
66
+ transcription: e(i)?.transcription ?? null,
67
+ translation: e(i)?.translation ?? null,
68
+ words: e(i)?.words ?? null
69
+ }));
70
+ function k() {
71
+ c.duration = e(h), c.currentTime = e(y), c.state = e(f), c.metadata = e(s), c.setAttribute("data-state", e(f));
72
+ }
73
+ function p(b) {
74
+ k(), c.dispatchEvent(new CustomEvent(b, { bubbles: !0, composed: !0 }));
75
+ }
76
+ function w() {
77
+ if (!e(l)) {
78
+ u = null;
79
+ return;
80
+ }
81
+ m(y, Math.floor(e(l).currentTime * 1e3), !0), p("timeupdate"), u = requestAnimationFrame(w);
82
+ }
83
+ async function C() {
84
+ if (e(f) === "idle") {
85
+ if (!n()) {
86
+ console.warn("fortyfour-recording: recording-id attribute is required");
87
+ return;
88
+ }
89
+ x = new AbortController(), m(f, "loading"), p("loading");
90
+ try {
91
+ const b = await Mr(x.signal, a(), n());
92
+ m(i, b, !0), m(h, b.duration, !0), m(f, "ready"), p("loadedmetadata");
93
+ } catch (b) {
94
+ if (b.name === "AbortError")
95
+ return;
96
+ console.warn(`fortyfour-recording: ${b.message}`), m(f, "error"), p("error");
97
+ }
98
+ }
99
+ }
100
+ async function U() {
101
+ if (!e(l)) {
102
+ console.warn("fortyfour-recording: play() called but audio element not ready");
103
+ return;
104
+ }
105
+ try {
106
+ await e(l).play(), m(f, "playing"), p("play"), u || w();
107
+ } catch (b) {
108
+ console.warn(`fortyfour-recording: ${b.message}`), m(f, "error"), p("error");
109
+ }
110
+ }
111
+ function X() {
112
+ if (!e(l)) {
113
+ console.warn("fortyfour-recording: pause() called but audio element not ready");
114
+ return;
115
+ }
116
+ e(l).pause(), m(f, "paused"), cancelAnimationFrame(u), u = null, p("pause");
117
+ }
118
+ async function F() {
119
+ if (e(f) === "error") {
120
+ console.warn("fortyfour-recording: togglePlay() called while in error state");
121
+ return;
122
+ }
123
+ e(f) !== "loading" && (e(f) === "playing" ? X() : e(f) === "idle" ? (await C(), await er(), e(f) === "ready" && await U()) : await U());
124
+ }
125
+ function te(b) {
126
+ if (!e(l)) {
127
+ console.warn("fortyfour-recording: seek() called but audio element not ready");
128
+ return;
129
+ }
130
+ if (typeof b != "number" || Number.isNaN(b)) {
131
+ console.warn("fortyfour-recording: seek() called with invalid time:", b);
132
+ return;
133
+ }
134
+ if (b < 0 || b > e(h)) {
135
+ console.warn("fortyfour-recording: seek() time out of range:", b, "duration:", e(h));
136
+ return;
137
+ }
138
+ e(l).currentTime = b / 1e3, m(y, Math.floor(b), !0), p("timeupdate");
139
+ }
140
+ async function V() {
141
+ cancelAnimationFrame(u), u = null, m(y, e(h), !0), p("timeupdate"), await er(), m(y, 0), e(l).currentTime = 0, p("timeupdate"), m(f, "ready"), p("ended");
142
+ }
143
+ function H(b) {
144
+ console.warn("fortyfour-recording: audio error", b.target.error), m(f, "error"), p("error");
145
+ }
146
+ function be() {
147
+ x?.abort(), cancelAnimationFrame(u), u = null, e(l)?.pause(), m(i, null), m(y, 0), m(h, 0), m(f, "idle"), I = n(), p("timeupdate");
148
+ }
149
+ let I = n();
150
+ de(() => {
151
+ n() !== I && be(), e(f) === "idle" && (o() === "auto" || o() === "metadata") && C();
152
+ }), c.togglePlay = F, c.seek = te, k(), Lr(() => {
153
+ x?.abort(), e(l)?.pause(), cancelAnimationFrame(u);
154
+ });
155
+ var j = {
31
156
  get recordingId() {
157
+ return n();
158
+ },
159
+ set recordingId(b) {
160
+ n(b), v();
161
+ },
162
+ get apiHost() {
163
+ return a();
164
+ },
165
+ set apiHost(b = "api.44.audio") {
166
+ a(b), v();
167
+ },
168
+ get preload() {
169
+ return o();
170
+ },
171
+ set preload(b = "none") {
172
+ o(b), v();
173
+ }
174
+ }, B = se(), ee = re(B);
175
+ return Cr(ee, n, (b) => {
176
+ var L = se(), Q = re(L);
177
+ {
178
+ var ve = (E) => {
179
+ var R = Hr();
180
+ Pe(R, (t) => m(l, t), () => e(l)), M(() => {
181
+ W(R, "src", e(i).audioUrl), W(R, "preload", o() === "auto" ? "auto" : "none");
182
+ }), he("ended", R, V), he("error", R, H), z(E, R);
183
+ };
184
+ J(Q, (E) => {
185
+ e(i)?.audioUrl && E(ve);
186
+ });
187
+ }
188
+ z(b, L);
189
+ }), z(g, B), ye(j);
190
+ }
191
+ customElements.define("fortyfour-recording", ue(
192
+ jr,
193
+ {
194
+ apiHost: { attribute: "api-host", reflect: !0 },
195
+ recordingId: { attribute: "recording-id", reflect: !0 },
196
+ preload: { reflect: !0 }
197
+ },
198
+ [],
199
+ [],
200
+ !1
201
+ ));
202
+ function Ie(g) {
203
+ if (isNaN(g) || g < 0)
204
+ return "-:--";
205
+ const r = Math.floor(g / 3600), c = Math.floor(g % 3600 / 60), n = g % 60;
206
+ return r > 0 ? `${r}:${c.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}` : `${c}:${n.toString().padStart(2, "0")}`;
207
+ }
208
+ function tr(g) {
209
+ if (isNaN(g) || g < 0)
210
+ return "--";
211
+ const r = Math.floor(g / 1e3), c = Math.floor(r / 60), n = r % 60;
212
+ return c > 0 ? `${c}m ${n}s` : `${n}s`;
213
+ }
214
+ function Me(g) {
215
+ if (isNaN(g) || g < 0)
216
+ return "0 seconds";
217
+ const r = Math.floor(g / 60), c = Math.floor(g % 60);
218
+ return r > 0 && c > 0 ? `${r} ${r === 1 ? "minute" : "minutes"} ${c} ${c === 1 ? "second" : "seconds"}` : r > 0 ? `${r} ${r === 1 ? "minute" : "minutes"}` : `${c} ${c === 1 ? "second" : "seconds"}`;
219
+ }
220
+ function Ye(g, r = 200) {
221
+ let c = q(!1);
222
+ return de(() => {
223
+ if (g()) {
224
+ const n = setTimeout(() => m(c, !0), r);
225
+ return () => clearTimeout(n);
226
+ } else
227
+ m(c, !1);
228
+ }), () => e(c);
229
+ }
230
+ function Te(g, r, c) {
231
+ de(() => {
232
+ c() ? g.setAttribute(r, "") : g.removeAttribute(r);
233
+ });
234
+ }
235
+ var qr = K("<span><!></span>");
236
+ const Sr = {
237
+ hash: "svelte-hrw77x",
238
+ code: `:host {--fortyfour-duration-font-family: system-ui, sans-serif;--fortyfour-duration-font-size: 14px;--fortyfour-duration-color: #1f2937;display:flex;align-items:center;justify-content:center;font-family:var(--fortyfour-duration-font-family);font-size:var(--fortyfour-duration-font-size);font-variant-numeric:tabular-nums;color:var(--fortyfour-duration-color);min-height:1lh;white-space:nowrap;}
239
+
240
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-duration-color: #f3f4f6;}
241
+ }`
242
+ };
243
+ function Ar(g, r) {
244
+ ge(r, !0), we(g, Sr);
245
+ const c = r.$$host;
246
+ let n = d(r, "for", 7, ""), a = d(r, "format", 7, "elapsed/total"), o = q(0), i = q(0);
247
+ function l(k, p, w) {
248
+ const C = Math.floor(k / 1e3), U = Math.floor(p / 1e3), X = Math.max(0, U - C);
249
+ switch (w) {
250
+ case "-remaining":
251
+ return "-" + Ie(X);
252
+ case "remaining":
253
+ return Ie(X);
254
+ case "elapsed":
255
+ return Ie(C);
256
+ case "elapsed-text":
257
+ return tr(k);
258
+ case "total":
259
+ return Ie(U);
260
+ case "elapsed/total":
261
+ return Ie(C) + " / " + Ie(U);
262
+ case "remaining-text":
263
+ return tr(Math.max(0, p - k));
264
+ case "%":
265
+ return Math.min(100, Math.ceil(k / p * 100)) + "%";
266
+ default:
267
+ return console.warn(`fortyfour-duration: invalid format "${w}"`), null;
268
+ }
269
+ }
270
+ function y(k) {
271
+ switch (k) {
272
+ case "-remaining":
273
+ return "-0:00";
274
+ case "remaining":
275
+ case "elapsed":
276
+ case "total":
277
+ return "0:00";
278
+ case "elapsed/total":
279
+ return "0:00 / 0:00";
280
+ case "%":
281
+ return "0%";
282
+ default:
283
+ return "0";
284
+ }
285
+ }
286
+ Te(c, "data-placeholder", () => e(i) === 0), de(() => {
287
+ if (!n()) {
288
+ console.warn("fortyfour-duration: for attribute is required");
289
+ return;
290
+ }
291
+ const p = c.getRootNode().getElementById(n());
292
+ if (!p) {
293
+ console.warn(`fortyfour-duration: element with id "${n()}" not found`);
294
+ return;
295
+ }
296
+ m(i, p.duration || 0, !0), m(o, p.currentTime || 0, !0);
297
+ function w() {
298
+ m(o, p.currentTime, !0), m(i, p.duration, !0);
299
+ }
300
+ return p.addEventListener("loadedmetadata", w), p.addEventListener("timeupdate", w), () => {
301
+ p.removeEventListener("loadedmetadata", w), p.removeEventListener("timeupdate", w);
302
+ };
303
+ });
304
+ var h = {
305
+ get for() {
306
+ return n();
307
+ },
308
+ set for(k = "") {
309
+ n(k), v();
310
+ },
311
+ get format() {
312
+ return a();
313
+ },
314
+ set format(k = "elapsed/total") {
315
+ a(k), v();
316
+ }
317
+ }, f = qr(), x = G(f);
318
+ {
319
+ var u = (k) => {
320
+ var p = rr();
321
+ M((w) => Ee(p, w), [
322
+ () => l(e(o), e(i), a())
323
+ ]), z(k, p);
324
+ }, s = (k) => {
325
+ var p = se(), w = re(p);
326
+ qe(w, r, "placeholder", {}, (C) => {
327
+ var U = rr();
328
+ M((X) => Ee(U, X), [() => y(a())]), z(C, U);
329
+ }), z(k, p);
330
+ };
331
+ J(x, (k) => {
332
+ e(i) !== 0 ? k(u) : k(s, !1);
333
+ });
334
+ }
335
+ return D(f), z(g, f), ye(h);
336
+ }
337
+ customElements.define("fortyfour-duration", ue(
338
+ Ar,
339
+ {
340
+ for: { attribute: "for", reflect: !0 },
341
+ format: { attribute: "format", reflect: !0 }
342
+ },
343
+ ["placeholder"],
344
+ [],
345
+ !0
346
+ ));
347
+ var Br = K('<div part="ring" class="ring-progress svelte-qaqt0h"><div class="ring-inner svelte-qaqt0h"></div></div>');
348
+ const Nr = {
349
+ hash: "svelte-qaqt0h",
350
+ code: `.ring-progress.svelte-qaqt0h {position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;background:conic-gradient(
351
+ from 0deg,
352
+ var(--fortyfour-play-button-ring-fill-color) var(--progress-deg),
353
+ var(--fortyfour-play-button-ring-track-color) var(--progress-deg)
354
+ );}.ring-inner.svelte-qaqt0h {position:absolute;inset:var(--fortyfour-play-button-ring-width);border-radius:inherit;background:var(--fortyfour-play-button-background-color);}`
355
+ };
356
+ function Ve(g, r) {
357
+ ge(r, !0), we(g, Nr);
358
+ let c = d(r, "progress", 7, 0);
359
+ const n = S(() => c() * 360);
360
+ var a = {
361
+ get progress() {
362
+ return c();
363
+ },
364
+ set progress(i = 0) {
365
+ c(i), v();
366
+ }
367
+ }, o = Br();
368
+ return M(() => me(o, `--progress-deg: ${e(n) ?? ""}deg`)), z(g, o), ye(a);
369
+ }
370
+ ue(Ve, { progress: {} }, [], [], !0);
371
+ var Wr = K('<div part="ripple" class="ripple ripple-small svelte-lgp3pt"></div>'), Dr = K('<div part="ripple" class="ripple ripple-medium svelte-lgp3pt"></div>'), Ur = K('<div part="ripple" class="ripple ripple-large svelte-lgp3pt"></div>'), Fr = K("<!> <!> <!>", 1);
372
+ const Or = {
373
+ hash: "svelte-lgp3pt",
374
+ code: `.ripple.svelte-lgp3pt {position:absolute;inset:0;border-radius:inherit;border:2px solid var(--fortyfour-play-button-background-color);pointer-events:none;
375
+ animation: ripple 1.5s ease-out infinite;}.ripple-small.svelte-lgp3pt {
376
+ animation-name: svelte-lgp3pt-ripple-small;}.ripple-medium.svelte-lgp3pt {
377
+ animation-name: svelte-lgp3pt-ripple-medium;}.ripple-large.svelte-lgp3pt {
378
+ animation-name: svelte-lgp3pt-ripple-large;}
379
+
380
+ @keyframes svelte-lgp3pt-ripple-small {
381
+ 0% {
382
+ transform: scale(1);
383
+ opacity: 0.4;
384
+ }
385
+ 100% {
386
+ transform: scale(calc(1 + 0.15 * var(--intensity, 1)));
387
+ opacity: 0;
388
+ }
389
+ }
390
+
391
+ @keyframes svelte-lgp3pt-ripple-medium {
392
+ 0% {
393
+ transform: scale(1);
394
+ opacity: 0.5;
395
+ }
396
+ 100% {
397
+ transform: scale(calc(1 + 0.3 * var(--intensity, 1)));
398
+ opacity: 0;
399
+ }
400
+ }
401
+
402
+ @keyframes svelte-lgp3pt-ripple-large {
403
+ 0% {
404
+ transform: scale(1);
405
+ opacity: 0.6;
406
+ }
407
+ 100% {
408
+ transform: scale(calc(1 + 0.5 * var(--intensity, 1)));
409
+ opacity: 0;
410
+ }
411
+ }
412
+
413
+ @media (prefers-reduced-motion: reduce) {.ripple.svelte-lgp3pt {
414
+ animation: none;}
415
+ }`
416
+ };
417
+ function Je(g, r) {
418
+ ge(r, !0), we(g, Or);
419
+ let c = d(r, "isPlaying", 7, !1), n = d(r, "amplitude", 7, 0), a = d(r, "intensity", 7, 1), o = q(We({ small: !1, medium: !1, large: !1 }));
420
+ function i(w) {
421
+ return w < 33 ? "small" : w < 66 ? "medium" : "large";
422
+ }
423
+ de(() => {
424
+ if (!c()) {
425
+ m(o, { small: !1, medium: !1, large: !1 }, !0);
426
+ return;
427
+ }
428
+ const w = i(n());
429
+ e(o)[w] || (e(o)[w] = !0);
430
+ });
431
+ function l(w) {
432
+ e(o)[w] = !1;
433
+ }
434
+ var y = {
435
+ get isPlaying() {
436
+ return c();
437
+ },
438
+ set isPlaying(w = !1) {
439
+ c(w), v();
440
+ },
441
+ get amplitude() {
442
+ return n();
443
+ },
444
+ set amplitude(w = 0) {
445
+ n(w), v();
446
+ },
447
+ get intensity() {
448
+ return a();
449
+ },
450
+ set intensity(w = 1) {
451
+ a(w), v();
452
+ }
453
+ }, h = Fr(), f = re(h);
454
+ {
455
+ var x = (w) => {
456
+ var C = Wr();
457
+ M(() => me(C, `--intensity: ${a() ?? ""};`)), he("animationend", C, () => l("small")), z(w, C);
458
+ };
459
+ J(f, (w) => {
460
+ e(o).small && w(x);
461
+ });
462
+ }
463
+ var u = pe(f, 2);
464
+ {
465
+ var s = (w) => {
466
+ var C = Dr();
467
+ M(() => me(C, `--intensity: ${a() ?? ""};`)), he("animationend", C, () => l("medium")), z(w, C);
468
+ };
469
+ J(u, (w) => {
470
+ e(o).medium && w(s);
471
+ });
472
+ }
473
+ var k = pe(u, 2);
474
+ {
475
+ var p = (w) => {
476
+ var C = Ur();
477
+ M(() => me(C, `--intensity: ${a() ?? ""};`)), he("animationend", C, () => l("large")), z(w, C);
478
+ };
479
+ J(k, (w) => {
480
+ e(o).large && w(p);
481
+ });
482
+ }
483
+ return z(g, h), ye(y);
484
+ }
485
+ ue(Je, { isPlaying: {}, amplitude: {}, intensity: {} }, [], [], !0);
486
+ var Gr = (g, r) => {
487
+ g.currentTarget.focus({ preventScroll: !0 }), r()?.(g);
488
+ }, Kr = K('<div class="shape-wrapper svelte-103okfy"><!> <button part="button"><!> <span part="icon" class="icon svelte-103okfy"><!></span></button></div>');
489
+ const Xr = {
490
+ hash: "svelte-103okfy",
491
+ code: `.shape-wrapper.svelte-103okfy {position:relative;width:var(--fortyfour-play-button-size, 48px);height:var(--fortyfour-play-button-size, 48px);font-size:var(--fortyfour-play-button-size, 48px);}.play-button.svelte-103okfy {position:relative;width:100%;height:100%;border:var(--fortyfour-play-button-border-width) solid
492
+ var(--fortyfour-play-button-border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--fortyfour-play-button-background-color);color:var(--fortyfour-play-button-icon-color);}.play-button.svelte-103okfy:focus-visible {outline:var(--fortyfour-play-button-focus-width) solid var(--fortyfour-play-button-focus-color);outline-offset:var(--fortyfour-play-button-focus-offset);}.play-button.svelte-103okfy:disabled {opacity:0.5;cursor:not-allowed;}.play-button.has-ring-progress.svelte-103okfy {border:none;}.icon.svelte-103okfy {position:relative;z-index:1;width:1em;height:1em;display:flex;align-items:center;justify-content:center;}.icon.svelte-103okfy svg {width:100%;height:100%;fill:currentColor;}`
493
+ };
494
+ function De(g, r) {
495
+ ge(r, !0), we(g, Xr);
496
+ let c = d(r, "onclick", 7), n = d(r, "disabled", 7, !1), a = d(r, "loading", 7, !1), o = d(r, "visualization", 7, "none"), i = d(r, "progressPercent", 7, 0), l = d(r, "isPlaying", 7, !1), y = d(r, "amplitude", 7, 0), h = d(r, "rippleIntensity", 7, 1), f = d(r, "ariaLabel", 7, "Play"), x = d(r, "borderRadius", 7, "50%"), u = d(r, "children", 7);
497
+ var s = {
498
+ get onclick() {
499
+ return c();
500
+ },
501
+ set onclick(H) {
502
+ c(H), v();
503
+ },
504
+ get disabled() {
505
+ return n();
506
+ },
507
+ set disabled(H = !1) {
508
+ n(H), v();
509
+ },
510
+ get loading() {
511
+ return a();
512
+ },
513
+ set loading(H = !1) {
514
+ a(H), v();
515
+ },
516
+ get visualization() {
517
+ return o();
518
+ },
519
+ set visualization(H = "none") {
520
+ o(H), v();
521
+ },
522
+ get progressPercent() {
523
+ return i();
524
+ },
525
+ set progressPercent(H = 0) {
526
+ i(H), v();
527
+ },
528
+ get isPlaying() {
529
+ return l();
530
+ },
531
+ set isPlaying(H = !1) {
532
+ l(H), v();
533
+ },
534
+ get amplitude() {
535
+ return y();
536
+ },
537
+ set amplitude(H = 0) {
538
+ y(H), v();
539
+ },
540
+ get rippleIntensity() {
541
+ return h();
542
+ },
543
+ set rippleIntensity(H = 1) {
544
+ h(H), v();
545
+ },
546
+ get ariaLabel() {
547
+ return f();
548
+ },
549
+ set ariaLabel(H = "Play") {
550
+ f(H), v();
551
+ },
552
+ get borderRadius() {
553
+ return x();
554
+ },
555
+ set borderRadius(H = "50%") {
556
+ x(H), v();
557
+ },
558
+ get children() {
559
+ return u();
560
+ },
561
+ set children(H) {
562
+ u(H), v();
563
+ }
564
+ }, k = Kr(), p = G(k);
565
+ {
566
+ var w = (H) => {
567
+ Je(H, {
568
+ get isPlaying() {
569
+ return l();
570
+ },
571
+ get amplitude() {
572
+ return y();
573
+ },
574
+ get intensity() {
575
+ return h();
576
+ }
577
+ });
578
+ };
579
+ J(p, (H) => {
580
+ o() === "ripple" && H(w);
581
+ });
582
+ }
583
+ var C = pe(p, 2);
584
+ let U;
585
+ C.__click = [Gr, c];
586
+ var X = G(C);
587
+ {
588
+ var F = (H) => {
589
+ Ve(H, {
590
+ get progress() {
591
+ return i();
592
+ }
593
+ });
594
+ };
595
+ J(X, (H) => {
596
+ o() === "ring" && H(F);
597
+ });
598
+ }
599
+ var te = pe(X, 2), V = G(te);
600
+ return Ae(V, u), D(te), D(C), D(k), M(
601
+ (H) => {
602
+ me(k, `border-radius: ${x() ?? ""}`), U = ie(C, 1, "play-button svelte-103okfy", null, U, H), C.disabled = n(), W(C, "aria-label", f()), W(C, "aria-busy", a()), me(C, `border-radius: ${x() ?? ""}`);
603
+ },
604
+ [() => ({ "has-ring-progress": o() === "ring" })]
605
+ ), z(g, k), ye(s);
606
+ }
607
+ He(["click"]);
608
+ ue(
609
+ De,
610
+ {
611
+ onclick: {},
612
+ disabled: {},
613
+ loading: {},
614
+ visualization: {},
615
+ progressPercent: {},
616
+ isPlaying: {},
617
+ amplitude: {},
618
+ rippleIntensity: {},
619
+ ariaLabel: {},
620
+ borderRadius: {},
621
+ children: {}
622
+ },
623
+ [],
624
+ [],
625
+ !0
626
+ );
627
+ function Ge(g, r) {
628
+ ge(r, !0);
629
+ let c = d(r, "onclick", 7), n = d(r, "disabled", 7, !1), a = d(r, "loading", 7, !1), o = d(r, "visualization", 7, "none"), i = d(r, "progressPercent", 7, 0), l = d(r, "isPlaying", 7, !1), y = d(r, "amplitude", 7, 0), h = d(r, "rippleIntensity", 7, 1), f = d(r, "ariaLabel", 7, "Play"), x = d(r, "children", 7);
630
+ var u = {
631
+ get onclick() {
632
+ return c();
633
+ },
634
+ set onclick(s) {
635
+ c(s), v();
636
+ },
637
+ get disabled() {
638
+ return n();
639
+ },
640
+ set disabled(s = !1) {
641
+ n(s), v();
642
+ },
643
+ get loading() {
644
+ return a();
645
+ },
646
+ set loading(s = !1) {
647
+ a(s), v();
648
+ },
649
+ get visualization() {
650
+ return o();
651
+ },
652
+ set visualization(s = "none") {
653
+ o(s), v();
654
+ },
655
+ get progressPercent() {
656
+ return i();
657
+ },
658
+ set progressPercent(s = 0) {
659
+ i(s), v();
660
+ },
661
+ get isPlaying() {
662
+ return l();
663
+ },
664
+ set isPlaying(s = !1) {
665
+ l(s), v();
666
+ },
667
+ get amplitude() {
668
+ return y();
669
+ },
670
+ set amplitude(s = 0) {
671
+ y(s), v();
672
+ },
673
+ get rippleIntensity() {
674
+ return h();
675
+ },
676
+ set rippleIntensity(s = 1) {
677
+ h(s), v();
678
+ },
679
+ get ariaLabel() {
680
+ return f();
681
+ },
682
+ set ariaLabel(s = "Play") {
683
+ f(s), v();
684
+ },
685
+ get children() {
686
+ return x();
687
+ },
688
+ set children(s) {
689
+ x(s), v();
690
+ }
691
+ };
692
+ return De(g, {
693
+ get onclick() {
694
+ return c();
695
+ },
696
+ get disabled() {
697
+ return n();
698
+ },
699
+ get loading() {
700
+ return a();
701
+ },
702
+ get visualization() {
703
+ return o();
704
+ },
705
+ get progressPercent() {
706
+ return i();
707
+ },
708
+ get isPlaying() {
709
+ return l();
710
+ },
711
+ get amplitude() {
712
+ return y();
713
+ },
714
+ get rippleIntensity() {
715
+ return h();
716
+ },
717
+ get ariaLabel() {
718
+ return f();
719
+ },
720
+ borderRadius: "50%",
721
+ children: (s, k) => {
722
+ var p = se(), w = re(p);
723
+ Ae(w, x), z(s, p);
724
+ },
725
+ $$slots: { default: !0 }
726
+ }), ye(u);
727
+ }
728
+ ue(
729
+ Ge,
730
+ {
731
+ onclick: {},
732
+ disabled: {},
733
+ loading: {},
734
+ visualization: {},
735
+ progressPercent: {},
736
+ isPlaying: {},
737
+ amplitude: {},
738
+ rippleIntensity: {},
739
+ ariaLabel: {},
740
+ children: {}
741
+ },
742
+ [],
743
+ [],
744
+ !0
745
+ );
746
+ function fr(g, r) {
747
+ ge(r, !0);
748
+ let c = d(r, "onclick", 7), n = d(r, "disabled", 7, !1), a = d(r, "loading", 7, !1), o = d(r, "visualization", 7, "none"), i = d(r, "progressPercent", 7, 0), l = d(r, "isPlaying", 7, !1), y = d(r, "amplitude", 7, 0), h = d(r, "rippleIntensity", 7, 1), f = d(r, "ariaLabel", 7, "Play"), x = d(r, "children", 7);
749
+ var u = {
750
+ get onclick() {
751
+ return c();
752
+ },
753
+ set onclick(s) {
754
+ c(s), v();
755
+ },
756
+ get disabled() {
757
+ return n();
758
+ },
759
+ set disabled(s = !1) {
760
+ n(s), v();
761
+ },
762
+ get loading() {
763
+ return a();
764
+ },
765
+ set loading(s = !1) {
766
+ a(s), v();
767
+ },
768
+ get visualization() {
769
+ return o();
770
+ },
771
+ set visualization(s = "none") {
772
+ o(s), v();
773
+ },
774
+ get progressPercent() {
775
+ return i();
776
+ },
777
+ set progressPercent(s = 0) {
778
+ i(s), v();
779
+ },
780
+ get isPlaying() {
781
+ return l();
782
+ },
783
+ set isPlaying(s = !1) {
784
+ l(s), v();
785
+ },
786
+ get amplitude() {
787
+ return y();
788
+ },
789
+ set amplitude(s = 0) {
790
+ y(s), v();
791
+ },
792
+ get rippleIntensity() {
793
+ return h();
794
+ },
795
+ set rippleIntensity(s = 1) {
796
+ h(s), v();
797
+ },
798
+ get ariaLabel() {
799
+ return f();
800
+ },
801
+ set ariaLabel(s = "Play") {
802
+ f(s), v();
803
+ },
804
+ get children() {
805
+ return x();
806
+ },
807
+ set children(s) {
808
+ x(s), v();
809
+ }
810
+ };
811
+ return De(g, {
812
+ get onclick() {
813
+ return c();
814
+ },
815
+ get disabled() {
816
+ return n();
817
+ },
818
+ get loading() {
819
+ return a();
820
+ },
821
+ get visualization() {
822
+ return o();
823
+ },
824
+ get progressPercent() {
825
+ return i();
826
+ },
827
+ get isPlaying() {
828
+ return l();
829
+ },
830
+ get amplitude() {
831
+ return y();
832
+ },
833
+ get rippleIntensity() {
834
+ return h();
835
+ },
836
+ get ariaLabel() {
837
+ return f();
838
+ },
839
+ borderRadius: "0",
840
+ children: (s, k) => {
841
+ var p = se(), w = re(p);
842
+ Ae(w, x), z(s, p);
843
+ },
844
+ $$slots: { default: !0 }
845
+ }), ye(u);
846
+ }
847
+ ue(
848
+ fr,
849
+ {
850
+ onclick: {},
851
+ disabled: {},
852
+ loading: {},
853
+ visualization: {},
854
+ progressPercent: {},
855
+ isPlaying: {},
856
+ amplitude: {},
857
+ rippleIntensity: {},
858
+ ariaLabel: {},
859
+ children: {}
860
+ },
861
+ [],
862
+ [],
863
+ !0
864
+ );
865
+ function cr(g, r) {
866
+ ge(r, !0);
867
+ let c = d(r, "onclick", 7), n = d(r, "disabled", 7, !1), a = d(r, "loading", 7, !1), o = d(r, "visualization", 7, "none"), i = d(r, "progressPercent", 7, 0), l = d(r, "isPlaying", 7, !1), y = d(r, "amplitude", 7, 0), h = d(r, "rippleIntensity", 7, 1), f = d(r, "ariaLabel", 7, "Play"), x = d(r, "children", 7);
868
+ var u = {
869
+ get onclick() {
870
+ return c();
871
+ },
872
+ set onclick(s) {
873
+ c(s), v();
874
+ },
875
+ get disabled() {
876
+ return n();
877
+ },
878
+ set disabled(s = !1) {
879
+ n(s), v();
880
+ },
881
+ get loading() {
882
+ return a();
883
+ },
884
+ set loading(s = !1) {
885
+ a(s), v();
886
+ },
887
+ get visualization() {
888
+ return o();
889
+ },
890
+ set visualization(s = "none") {
891
+ o(s), v();
892
+ },
893
+ get progressPercent() {
894
+ return i();
895
+ },
896
+ set progressPercent(s = 0) {
897
+ i(s), v();
898
+ },
899
+ get isPlaying() {
900
+ return l();
901
+ },
902
+ set isPlaying(s = !1) {
903
+ l(s), v();
904
+ },
905
+ get amplitude() {
906
+ return y();
907
+ },
908
+ set amplitude(s = 0) {
909
+ y(s), v();
910
+ },
911
+ get rippleIntensity() {
912
+ return h();
913
+ },
914
+ set rippleIntensity(s = 1) {
915
+ h(s), v();
916
+ },
917
+ get ariaLabel() {
918
+ return f();
919
+ },
920
+ set ariaLabel(s = "Play") {
921
+ f(s), v();
922
+ },
923
+ get children() {
924
+ return x();
925
+ },
926
+ set children(s) {
927
+ x(s), v();
928
+ }
929
+ };
930
+ return De(g, {
931
+ get onclick() {
932
+ return c();
933
+ },
934
+ get disabled() {
935
+ return n();
936
+ },
937
+ get loading() {
938
+ return a();
939
+ },
940
+ get visualization() {
941
+ return o();
942
+ },
943
+ get progressPercent() {
944
+ return i();
945
+ },
946
+ get isPlaying() {
947
+ return l();
948
+ },
949
+ get amplitude() {
950
+ return y();
951
+ },
952
+ get rippleIntensity() {
953
+ return h();
954
+ },
955
+ get ariaLabel() {
956
+ return f();
957
+ },
958
+ borderRadius: "var(--fortyfour-play-button-border-radius)",
959
+ children: (s, k) => {
960
+ var p = se(), w = re(p);
961
+ Ae(w, x), z(s, p);
962
+ },
963
+ $$slots: { default: !0 }
964
+ }), ye(u);
965
+ }
966
+ ue(
967
+ cr,
968
+ {
969
+ onclick: {},
970
+ disabled: {},
971
+ loading: {},
972
+ visualization: {},
973
+ progressPercent: {},
974
+ isPlaying: {},
975
+ amplitude: {},
976
+ rippleIntensity: {},
977
+ ariaLabel: {},
978
+ children: {}
979
+ },
980
+ [],
981
+ [],
982
+ !0
983
+ );
984
+ var Zr = K('<div class="shape-wrapper svelte-19ptej3"><!> <button part="button" class="play-button svelte-19ptej3"><div aria-hidden="true"><!></div> <span part="icon" class="icon svelte-19ptej3"><!></span></button></div>');
985
+ const Yr = {
986
+ hash: "svelte-19ptej3",
987
+ code: `.shape-wrapper.svelte-19ptej3 {position:relative;width:var(--fortyfour-play-button-size, 48px);height:var(--fortyfour-play-button-size, 48px);font-size:var(--fortyfour-play-button-size, 48px);}.play-button.svelte-19ptej3 {position:relative;width:100%;height:100%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--fortyfour-play-button-icon-color);padding:0;}.play-button.svelte-19ptej3:focus-visible {outline:var(--fortyfour-play-button-focus-width) solid var(--fortyfour-play-button-focus-color);outline-offset:var(--fortyfour-play-button-focus-offset);}.play-button.svelte-19ptej3:disabled {opacity:0.5;cursor:not-allowed;}.blob-background.svelte-19ptej3 {position:absolute;inset:0;background:var(--fortyfour-play-button-background-color);border:var(--fortyfour-play-button-border-width) solid
988
+ var(--fortyfour-play-button-border-color);overflow:hidden;}.blob-background.has-ring.svelte-19ptej3 {border:none;}.icon.svelte-19ptej3 {position:relative;z-index:1;width:1em;height:1em;display:flex;align-items:center;justify-content:center;}.icon.svelte-19ptej3 svg {width:100%;height:100%;fill:currentColor;}`
989
+ };
990
+ function dr(g, r) {
991
+ ge(r, !0), we(g, Yr);
992
+ let c = d(r, "onclick", 7), n = d(r, "disabled", 7, !1), a = d(r, "loading", 7, !1), o = d(r, "visualization", 7, "none"), i = d(r, "progressPercent", 7, 0), l = d(r, "isPlaying", 7, !1), y = d(r, "amplitude", 7, 0), h = d(r, "rippleIntensity", 7, 1), f = d(r, "ariaLabel", 7, "Play"), x = d(r, "animate", 7, !1), u = d(r, "speed", 7, 20), s = d(r, "children", 7);
993
+ function k(t, T) {
994
+ return Math.floor(t + Math.random() * (T - t));
995
+ }
996
+ function p() {
997
+ const T = (A) => 100 - A;
998
+ let _ = [];
999
+ for (let A = 0; A < 4; A++) {
1000
+ let N = k(25, T(25));
1001
+ _.push(N), _.push(T(N));
1002
+ }
1003
+ return `${_[0]}% ${_[1]}% ${_[2]}% ${_[3]}% / ${_[4]}% ${_[6]}% ${_[7]}% ${_[5]}%`;
1004
+ }
1005
+ const w = p(), C = [
1006
+ { borderRadius: w, offset: 0 },
1007
+ { borderRadius: p(), offset: 0.15 },
1008
+ { borderRadius: p(), offset: 0.3 },
1009
+ { borderRadius: p(), offset: 0.45 },
1010
+ { borderRadius: p(), offset: 0.6 },
1011
+ { borderRadius: p(), offset: 0.75 },
1012
+ { borderRadius: p(), offset: 0.9 },
1013
+ { borderRadius: w, offset: 1 }
1014
+ ], U = w;
1015
+ let X = q(null), F = null;
1016
+ const te = typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1017
+ de(() => (e(X) && x() && !te && (F = e(X).animate(C, {
1018
+ duration: u() * 1e3,
1019
+ iterations: 1 / 0,
1020
+ easing: "ease"
1021
+ })), () => {
1022
+ F && (F.cancel(), F = null);
1023
+ }));
1024
+ var V = {
1025
+ get onclick() {
1026
+ return c();
1027
+ },
1028
+ set onclick(t) {
1029
+ c(t), v();
1030
+ },
1031
+ get disabled() {
1032
+ return n();
1033
+ },
1034
+ set disabled(t = !1) {
1035
+ n(t), v();
1036
+ },
1037
+ get loading() {
1038
+ return a();
1039
+ },
1040
+ set loading(t = !1) {
1041
+ a(t), v();
1042
+ },
1043
+ get visualization() {
1044
+ return o();
1045
+ },
1046
+ set visualization(t = "none") {
1047
+ o(t), v();
1048
+ },
1049
+ get progressPercent() {
1050
+ return i();
1051
+ },
1052
+ set progressPercent(t = 0) {
1053
+ i(t), v();
1054
+ },
1055
+ get isPlaying() {
1056
+ return l();
1057
+ },
1058
+ set isPlaying(t = !1) {
1059
+ l(t), v();
1060
+ },
1061
+ get amplitude() {
1062
+ return y();
1063
+ },
1064
+ set amplitude(t = 0) {
1065
+ y(t), v();
1066
+ },
1067
+ get rippleIntensity() {
1068
+ return h();
1069
+ },
1070
+ set rippleIntensity(t = 1) {
1071
+ h(t), v();
1072
+ },
1073
+ get ariaLabel() {
1074
+ return f();
1075
+ },
1076
+ set ariaLabel(t = "Play") {
1077
+ f(t), v();
1078
+ },
1079
+ get animate() {
1080
+ return x();
1081
+ },
1082
+ set animate(t = !1) {
1083
+ x(t), v();
1084
+ },
1085
+ get speed() {
1086
+ return u();
1087
+ },
1088
+ set speed(t = 20) {
1089
+ u(t), v();
1090
+ },
1091
+ get children() {
32
1092
  return s();
33
1093
  },
34
- set recordingId(e) {
35
- s(e), P();
1094
+ set children(t) {
1095
+ s(t), v();
1096
+ }
1097
+ }, H = Zr();
1098
+ let be;
1099
+ var I = G(H);
1100
+ {
1101
+ var j = (t) => {
1102
+ Je(t, {
1103
+ get isPlaying() {
1104
+ return l();
1105
+ },
1106
+ get amplitude() {
1107
+ return y();
1108
+ },
1109
+ get intensity() {
1110
+ return h();
1111
+ }
1112
+ });
1113
+ };
1114
+ J(I, (t) => {
1115
+ o() === "ripple" && t(j);
1116
+ });
1117
+ }
1118
+ var B = pe(I, 2);
1119
+ B.__click = function(...t) {
1120
+ c()?.apply(this, t);
1121
+ };
1122
+ var ee = G(B);
1123
+ let b, L;
1124
+ var Q = G(ee);
1125
+ {
1126
+ var ve = (t) => {
1127
+ Ve(t, {
1128
+ get progress() {
1129
+ return i();
1130
+ }
1131
+ });
1132
+ };
1133
+ J(Q, (t) => {
1134
+ o() === "ring" && t(ve);
1135
+ });
1136
+ }
1137
+ D(ee), Pe(ee, (t) => m(X, t), () => e(X));
1138
+ var E = pe(ee, 2), R = G(E);
1139
+ return Ae(R, s), D(E), D(B), D(H), M(
1140
+ (t, T, _) => {
1141
+ be = me(H, "", be, t), B.disabled = n(), W(B, "aria-label", f()), W(B, "aria-busy", a()), b = ie(ee, 1, "blob-background svelte-19ptej3", null, b, T), L = me(ee, "", L, _);
1142
+ },
1143
+ [
1144
+ () => ({ "border-radius": U }),
1145
+ () => ({ "has-ring": o() === "ring" }),
1146
+ () => ({ "border-radius": U })
1147
+ ]
1148
+ ), z(g, H), ye(V);
1149
+ }
1150
+ He(["click"]);
1151
+ ue(
1152
+ dr,
1153
+ {
1154
+ onclick: {},
1155
+ disabled: {},
1156
+ loading: {},
1157
+ visualization: {},
1158
+ progressPercent: {},
1159
+ isPlaying: {},
1160
+ amplitude: {},
1161
+ rippleIntensity: {},
1162
+ ariaLabel: {},
1163
+ animate: {},
1164
+ speed: {},
1165
+ children: {}
1166
+ },
1167
+ [],
1168
+ [],
1169
+ !0
1170
+ );
1171
+ Er();
1172
+ var Vr = Le('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" aria-hidden="true"><path d="M187.2 100.9C174.8 94.1 159.8 94.4 147.6 101.6C135.4 108.8 128 121.9 128 136L128 504C128 518.1 135.5 531.2 147.6 538.4C159.7 545.6 174.8 545.9 187.2 539.1L523.2 355.1C536 348.1 544 334.6 544 320C544 305.4 536 291.9 523.2 284.9L187.2 100.9z" fill="currentColor"></path></svg>');
1173
+ function vr(g) {
1174
+ var r = Vr();
1175
+ z(g, r);
1176
+ }
1177
+ ue(vr, {}, [], [], !0);
1178
+ var Jr = Le('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" aria-hidden="true"><path d="M176 96C149.5 96 128 117.5 128 144L128 496C128 522.5 149.5 544 176 544L240 544C266.5 544 288 522.5 288 496L288 144C288 117.5 266.5 96 240 96L176 96zM400 96C373.5 96 352 117.5 352 144L352 496C352 522.5 373.5 544 400 544L464 544C490.5 544 512 522.5 512 496L512 144C512 117.5 490.5 96 464 96L400 96z" fill="currentColor"></path></svg>');
1179
+ function pr(g) {
1180
+ var r = Jr();
1181
+ z(g, r);
1182
+ }
1183
+ ue(pr, {}, [], [], !0);
1184
+ var Qr = Le(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" aria-hidden="true"><style>circle {
1185
+ animation: fade 1s ease-in-out infinite;
1186
+ }
1187
+ circle:nth-child(2) {
1188
+ animation-delay: 0.2s;
1189
+ }
1190
+ circle:nth-child(3) {
1191
+ animation-delay: 0.4s;
1192
+ }
1193
+ @keyframes fade {
1194
+ 0%,
1195
+ 100% {
1196
+ opacity: 0.2;
1197
+ }
1198
+ 50% {
1199
+ opacity: 1;
1200
+ }
1201
+ }
1202
+ @media (prefers-reduced-motion: reduce) {
1203
+ circle {
1204
+ animation: none;
1205
+ opacity: 0.6;
1206
+ }
1207
+ }</style><circle cx="160" cy="320" r="56"></circle><circle cx="320" cy="320" r="56"></circle><circle cx="480" cy="320" r="56"></circle></svg>`);
1208
+ function gr(g) {
1209
+ var r = Qr();
1210
+ z(g, r);
1211
+ }
1212
+ ue(gr, {}, [], [], !0);
1213
+ var $r = Le('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" aria-hidden="true"><path d="M320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64zM288 192C288 174.3 302.3 160 320 160C337.7 160 352 174.3 352 192L352 352C352 369.7 337.7 384 320 384C302.3 384 288 369.7 288 352L288 192zM320 480C302.3 480 288 465.7 288 448C288 430.3 302.3 416 320 416C337.7 416 352 430.3 352 448C352 465.7 337.7 480 320 480z"></path></svg>');
1214
+ function yr(g) {
1215
+ var r = $r();
1216
+ z(g, r);
1217
+ }
1218
+ ue(yr, {}, [], [], !0);
1219
+ var et = K('<div class="wrapper svelte-1a44wbi"><!></div>');
1220
+ const rt = {
1221
+ hash: "svelte-1a44wbi",
1222
+ code: `.wrapper.svelte-1a44wbi {display:contents;}:host {--fortyfour-play-button-size: 48px;--fortyfour-play-button-background-color: #3b82f6;--fortyfour-play-button-icon-color: #ffffff;--fortyfour-play-button-border-width: 2px;--fortyfour-play-button-border-color: #ffffff;--fortyfour-play-button-border-radius: 12px;--fortyfour-play-button-ring-width: var(--fortyfour-play-button-border-width);--fortyfour-play-button-ring-fill-color: #ffffff;--fortyfour-play-button-ring-track-color: transparent;--fortyfour-play-button-hover-scale: 1.04;--fortyfour-play-button-hover-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);--fortyfour-play-button-focus-color: var(--fortyfour-play-button-background-color);--fortyfour-play-button-focus-width: 2px;--fortyfour-play-button-focus-offset: 2px;display:inline-block;font-size:var(--fortyfour-play-button-size);}:host([hover="scale"]) {transition:transform 0.15s ease-out;}:host([hover="scale"]:hover:not([disabled])) {transform:scale(var(--fortyfour-play-button-hover-scale));}:host([hover="glow"]) {transition:filter 0.15s ease-out;}:host([hover="glow"]:hover:not([disabled])) {filter:drop-shadow(var(--fortyfour-play-button-hover-shadow));}:host([hover="lift"]) {transition:transform 0.15s ease-out,
1223
+ filter 0.15s ease-out;}:host([hover="lift"]:hover:not([disabled])) {transform:scale(var(--fortyfour-play-button-hover-scale));filter:drop-shadow(var(--fortyfour-play-button-hover-shadow));}
1224
+
1225
+ @media (prefers-reduced-motion: reduce) {:host([hover="scale"]),
1226
+ :host([hover="glow"]),
1227
+ :host([hover="lift"]) {transition:none;}
1228
+ }`
1229
+ };
1230
+ function tt(g, r) {
1231
+ ge(r, !0), we(g, rt);
1232
+ const c = (b) => {
1233
+ var L = se(), Q = re(L);
1234
+ {
1235
+ var ve = (R) => {
1236
+ var t = se(), T = re(t);
1237
+ qe(T, r, "icon-error", {}, (_) => {
1238
+ yr(_);
1239
+ }), z(R, t);
1240
+ }, E = (R) => {
1241
+ var t = se(), T = re(t);
1242
+ {
1243
+ var _ = (N) => {
1244
+ var Y = se(), P = re(Y);
1245
+ qe(P, r, "icon-loading", {}, (O) => {
1246
+ gr(O);
1247
+ }), z(N, Y);
1248
+ }, A = (N) => {
1249
+ var Y = se(), P = re(Y);
1250
+ {
1251
+ var O = (ae) => {
1252
+ var ce = se(), le = re(ce);
1253
+ qe(le, r, "icon-playing", {}, ($) => {
1254
+ pr($);
1255
+ }), z(ae, ce);
1256
+ }, oe = (ae) => {
1257
+ var ce = se(), le = re(ce);
1258
+ qe(le, r, "icon-paused", {}, ($) => {
1259
+ vr($);
1260
+ }), z(ae, ce);
1261
+ };
1262
+ J(
1263
+ P,
1264
+ (ae) => {
1265
+ e(U) ? ae(O) : ae(oe, !1);
1266
+ },
1267
+ !0
1268
+ );
1269
+ }
1270
+ z(N, Y);
1271
+ };
1272
+ J(
1273
+ T,
1274
+ (N) => {
1275
+ V() ? N(_) : N(A, !1);
1276
+ },
1277
+ !0
1278
+ );
1279
+ }
1280
+ z(R, t);
1281
+ };
1282
+ J(Q, (R) => {
1283
+ e(F) ? R(ve) : R(E, !1);
1284
+ });
1285
+ }
1286
+ z(b, L);
1287
+ }, n = r.$$host;
1288
+ let a = d(r, "for", 7, ""), o = d(r, "shape", 7, "circle"), i = d(r, "visualization", 7, "none"), l = d(r, "hover", 7, "none"), y = d(r, "rippleIntensity", 7, 1), h = d(r, "blobAnimate", 7, !1), f = d(r, "blobSpeed", 7, 20);
1289
+ const x = {
1290
+ circle: Ge,
1291
+ square: fr,
1292
+ "rounded-square": cr,
1293
+ blob: dr
1294
+ };
1295
+ let u = q(null), s = q("idle"), k = q(0), p = q(0), w = q(We([]));
1296
+ const C = S(() => x[o()] ?? Ge), U = S(() => e(s) === "playing"), X = S(() => e(s) === "loading"), F = S(() => e(s) === "error"), te = S(() => e(p) > 0 ? e(k) / e(p) : 0), V = Ye(() => e(X), 200), H = S(() => {
1297
+ if (!e(w).length || e(p) === 0)
1298
+ return 0;
1299
+ const b = Math.floor(e(k) / e(p) * e(w).length), L = 3, Q = Math.max(0, b - Math.floor(L / 2)), ve = Math.min(e(w).length, Q + L), E = e(w).slice(Q, ve), R = E.reduce((t, T) => t + T * T, 0);
1300
+ return Math.sqrt(R / E.length);
1301
+ }), be = S(() => ({
1302
+ onclick: I,
1303
+ disabled: !a() || e(F),
1304
+ loading: e(X),
1305
+ visualization: i(),
1306
+ progressPercent: e(te),
1307
+ isPlaying: e(U),
1308
+ amplitude: e(H),
1309
+ rippleIntensity: y(),
1310
+ ariaLabel: e(U) ? "Pause" : "Play",
1311
+ ...o() === "blob" ? { animate: h(), speed: f() } : {}
1312
+ }));
1313
+ de(() => {
1314
+ if (!a()) {
1315
+ console.warn("fortyfour-play-button: 'for' attribute is required");
1316
+ return;
1317
+ }
1318
+ const b = n.getRootNode();
1319
+ if (m(u, b.getElementById(a()), !0), !e(u)) {
1320
+ console.warn(`fortyfour-play-button: element with id "${a()}" not found`);
1321
+ return;
1322
+ }
1323
+ function L() {
1324
+ m(s, e(u).state, !0), m(k, e(u).currentTime, !0), m(p, e(u).duration, !0), m(w, e(u).metadata?.waveform ?? [], !0);
1325
+ }
1326
+ return L(), e(u).addEventListener("loading", L), e(u).addEventListener("loadedmetadata", L), e(u).addEventListener("play", L), e(u).addEventListener("pause", L), e(u).addEventListener("ended", L), e(u).addEventListener("error", L), e(u).addEventListener("timeupdate", L), () => {
1327
+ e(u).removeEventListener("loading", L), e(u).removeEventListener("loadedmetadata", L), e(u).removeEventListener("play", L), e(u).removeEventListener("pause", L), e(u).removeEventListener("ended", L), e(u).removeEventListener("error", L), e(u).removeEventListener("timeupdate", L);
1328
+ };
1329
+ });
1330
+ function I() {
1331
+ e(u)?.togglePlay();
1332
+ }
1333
+ Te(n, "data-playing", () => e(U)), Te(n, "data-loading", V), Te(n, "data-error", () => e(F));
1334
+ var j = {
1335
+ get for() {
1336
+ return a();
1337
+ },
1338
+ set for(b = "") {
1339
+ a(b), v();
1340
+ },
1341
+ get shape() {
1342
+ return o();
36
1343
  },
37
- get recording() {
38
- return r();
1344
+ set shape(b = "circle") {
1345
+ o(b), v();
39
1346
  },
40
- set recording(e) {
41
- r(e), P();
1347
+ get visualization() {
1348
+ return i();
42
1349
  },
43
- get audioRef() {
1350
+ set visualization(b = "none") {
1351
+ i(b), v();
1352
+ },
1353
+ get hover() {
1354
+ return l();
1355
+ },
1356
+ set hover(b = "none") {
1357
+ l(b), v();
1358
+ },
1359
+ get rippleIntensity() {
1360
+ return y();
1361
+ },
1362
+ set rippleIntensity(b = 1) {
1363
+ y(b), v();
1364
+ },
1365
+ get blobAnimate() {
1366
+ return h();
1367
+ },
1368
+ set blobAnimate(b = !1) {
1369
+ h(b), v();
1370
+ },
1371
+ get blobSpeed() {
1372
+ return f();
1373
+ },
1374
+ set blobSpeed(b = 20) {
1375
+ f(b), v();
1376
+ }
1377
+ }, B = et(), ee = G(B);
1378
+ return Rr(ee, () => e(C), (b, L) => {
1379
+ L(b, Ir(() => e(be), {
1380
+ children: (Q, ve) => {
1381
+ c(Q);
1382
+ },
1383
+ $$slots: { default: !0 }
1384
+ }));
1385
+ }), D(B), z(g, B), ye(j);
1386
+ }
1387
+ customElements.define("fortyfour-play-button", ue(
1388
+ tt,
1389
+ {
1390
+ for: { attribute: "for", reflect: !0 },
1391
+ shape: { attribute: "shape", reflect: !0 },
1392
+ visualization: { attribute: "visualization", reflect: !0 },
1393
+ hover: { attribute: "hover", reflect: !0 },
1394
+ rippleIntensity: { attribute: "ripple-intensity", reflect: !0 },
1395
+ blobAnimate: { attribute: "blob-animate", reflect: !0, type: "Boolean" },
1396
+ blobSpeed: { attribute: "blob-speed", reflect: !0 }
1397
+ },
1398
+ ["icon-error", "icon-loading", "icon-playing", "icon-paused"],
1399
+ [],
1400
+ !0
1401
+ ));
1402
+ function br(g, r) {
1403
+ if (!g.length || r <= 0)
1404
+ return [];
1405
+ const c = g.length / r, n = [];
1406
+ for (let a = 0; a < r; a++) {
1407
+ const o = Math.floor(a * c), i = Math.floor((a + 1) * c), l = g.slice(o, Math.max(o + 1, i)), y = l.reduce((f, x) => f + x * x, 0), h = Math.sqrt(y / l.length);
1408
+ n.push(h);
1409
+ }
1410
+ return n;
1411
+ }
1412
+ function Qe(g, r, c) {
1413
+ return function(a) {
1414
+ const o = g(), i = r(), l = c();
1415
+ if (!o || !l || i <= 0)
1416
+ return;
1417
+ const y = a.clientX - l.left, f = Math.max(0, Math.min(1, y / l.width)) * i;
1418
+ o.seek(f);
1419
+ };
1420
+ }
1421
+ function $e(g, r, c) {
1422
+ return function(a) {
1423
+ const o = g(), i = r(), l = c();
1424
+ if (!o || i <= 0)
1425
+ return;
1426
+ const y = i * 0.05;
1427
+ a.key === "ArrowRight" ? o.seek(Math.min(i, l + y)) : a.key === "ArrowLeft" && o.seek(Math.max(0, l - y));
1428
+ };
1429
+ }
1430
+ var ot = Le("<rect></rect>"), at = K('<div class="waveform svelte-kt0w9q" role="slider" tabindex="0" aria-valuemin="0" aria-label="Audio playback position"><svg width="100%" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" class="svelte-kt0w9q"><!></svg></div>');
1431
+ const nt = {
1432
+ hash: "svelte-kt0w9q",
1433
+ code: ":host {display:flex;flex:1;--waveform-progress-color: #3b82f6;--waveform-track-color: #e5e7eb;--waveform-focus-color: #3b82f6;--waveform-focus-width: 2px;--waveform-focus-offset: 2px;--waveform-focus-radius: 4px;}.waveform.svelte-kt0w9q {flex:1;height:100%;display:flex;align-items:center;cursor:pointer;border-radius:var(--waveform-focus-radius);}.waveform.svelte-kt0w9q:focus-visible {outline:var(--waveform-focus-width) solid var(--waveform-focus-color);outline-offset:var(--waveform-focus-offset);}svg.svelte-kt0w9q {display:block;}.bar.svelte-kt0w9q {transition:fill 0.15s;}.progress.svelte-kt0w9q {fill:var(--waveform-progress-color);}.track.svelte-kt0w9q {fill:var(--waveform-track-color);}"
1434
+ };
1435
+ function it(g, r) {
1436
+ ge(r, !0), we(g, nt);
1437
+ const c = r.$$host;
1438
+ let n = d(r, "for", 7, ""), a = d(r, "barWidth", 7, 3), o = d(r, "barGap", 7, 1), i = d(r, "barRadius", 7, 1), l = d(r, "minBarHeight", 7, 3), y = d(r, "height", 7, 56), h = q(We([])), f = q(0), x = q(0), u = q(null), s = q(0), k = q(!1), p = q(null);
1439
+ c.style.height = `${y()}px`, sr(() => {
1440
+ const b = new ResizeObserver((L) => {
1441
+ for (let Q of L)
1442
+ m(s, Q.contentRect.width || 0, !0), m(k, !0);
1443
+ });
1444
+ return e(p) && b.observe(e(p)), () => {
1445
+ b.disconnect();
1446
+ };
1447
+ }), de(() => {
1448
+ if (!n()) {
1449
+ console.warn("fortyfour-bar-waveform: 'for' attribute is required");
1450
+ return;
1451
+ }
1452
+ const b = c.getRootNode();
1453
+ if (m(u, b.getElementById(n()), !0), !e(u)) {
1454
+ console.warn(`fortyfour-bar-waveform: element with id "${n()}" not found`);
1455
+ return;
1456
+ }
1457
+ e(u).metadata?.waveform && m(h, e(u).metadata.waveform, !0), e(u).duration && m(x, e(u).duration, !0), e(u).currentTime && m(f, e(u).currentTime, !0);
1458
+ function L() {
1459
+ m(h, e(u).metadata?.waveform || [], !0), m(x, e(u).duration, !0);
1460
+ }
1461
+ function Q() {
1462
+ m(f, e(u).currentTime, !0);
1463
+ }
1464
+ return e(u).addEventListener("loadedmetadata", L), e(u).addEventListener("timeupdate", Q), () => {
1465
+ e(u).removeEventListener("loadedmetadata", L), e(u).removeEventListener("timeupdate", Q);
1466
+ };
1467
+ });
1468
+ const w = S(() => Math.max(1, Math.floor(e(s) / (a() + o())))), C = S(() => e(h).length > 0), U = S(() => e(C) ? br(e(h), e(w)) : Array(e(w)).fill(0)), X = S(() => e(x) > 0 ? e(f) / e(x) : 0), F = S(() => `${Me(e(f))} of ${Me(e(x))}`), te = S(() => e(U).map((b) => {
1469
+ const L = Math.max(l(), Math.round(b / 100 * (y() - l()) + l()));
1470
+ return L % 2 === 0 ? L + 1 : L;
1471
+ }));
1472
+ de(() => {
1473
+ e(C) ? c.removeAttribute("data-placeholder") : c.setAttribute("data-placeholder", "");
1474
+ });
1475
+ const V = Qe(() => e(u), () => e(x), () => c.getBoundingClientRect()), H = $e(() => e(u), () => e(x), () => e(f));
1476
+ var be = {
1477
+ get for() {
44
1478
  return n();
45
1479
  },
46
- set audioRef(e) {
47
- n(e), P();
1480
+ set for(b = "") {
1481
+ n(b), v();
1482
+ },
1483
+ get barWidth() {
1484
+ return a();
1485
+ },
1486
+ set barWidth(b = 3) {
1487
+ a(b), v();
1488
+ },
1489
+ get barGap() {
1490
+ return o();
1491
+ },
1492
+ set barGap(b = 1) {
1493
+ o(b), v();
1494
+ },
1495
+ get barRadius() {
1496
+ return i();
1497
+ },
1498
+ set barRadius(b = 1) {
1499
+ i(b), v();
1500
+ },
1501
+ get minBarHeight() {
1502
+ return l();
1503
+ },
1504
+ set minBarHeight(b = 3) {
1505
+ l(b), v();
1506
+ },
1507
+ get height() {
1508
+ return y();
1509
+ },
1510
+ set height(b = 56) {
1511
+ y(b), v();
48
1512
  }
49
- }, v = xe(), x = b(v), O = b(x);
1513
+ }, I = at();
1514
+ I.__click = V, I.__keydown = H;
1515
+ var j = G(I), B = G(j);
50
1516
  {
51
- let e = ce(() => `https://44hz.zuuu.us/recordings/${s()}/audio.mp3`);
52
- de(O, {
53
- get audioURL() {
54
- return f(e);
55
- },
56
- get waveform() {
57
- return r().waveform;
58
- }
1517
+ var ee = (b) => {
1518
+ var L = se(), Q = re(L);
1519
+ Be(Q, 17, () => e(te), Ne, (ve, E, R) => {
1520
+ const t = S(() => (R + 1) / e(te).length), T = S(() => e(t) <= e(X));
1521
+ var _ = ot();
1522
+ M(
1523
+ (A) => {
1524
+ ie(_, 0, ur(["bar", e(T) ? "progress" : "track"]), "svelte-kt0w9q"), W(_, "x", R * (a() + o())), W(_, "y", y() / 4 - e(E) / 2), W(_, "width", A), W(_, "height", e(E)), W(_, "rx", i());
1525
+ },
1526
+ [() => Math.max(1, a() - 1)]
1527
+ ), z(ve, _);
1528
+ }), z(b, L);
1529
+ };
1530
+ J(B, (b) => {
1531
+ e(k) && b(ee);
1532
+ });
1533
+ }
1534
+ return D(j), D(I), Pe(I, (b) => m(p, b), () => e(p)), M(() => {
1535
+ W(I, "aria-valuemax", e(x)), W(I, "aria-valuenow", e(f)), W(I, "aria-valuetext", e(F)), W(j, "height", y()), W(j, "viewBox", `0 0 ${e(s)} ${y() / 2}`);
1536
+ }), z(g, I), ye(be);
1537
+ }
1538
+ He(["click", "keydown"]);
1539
+ customElements.define("fortyfour-bar-waveform", ue(
1540
+ it,
1541
+ {
1542
+ for: { attribute: "for", reflect: !0 },
1543
+ barWidth: { attribute: "bar-width", reflect: !0, type: "Number" },
1544
+ barGap: { attribute: "bar-gap", reflect: !0, type: "Number" },
1545
+ barRadius: { attribute: "bar-radius", reflect: !0, type: "Number" },
1546
+ minBarHeight: { attribute: "min-bar-height", reflect: !0, type: "Number" },
1547
+ height: { attribute: "height", reflect: !0, type: "Number" }
1548
+ },
1549
+ [],
1550
+ [],
1551
+ !0
1552
+ ));
1553
+ var lt = Le("<path></path>"), st = Le("<path></path><!>", 1), ut = Le('<line class="line track svelte-r3200f" stroke-linecap="round"></line>'), ft = K('<div class="waveform svelte-r3200f" role="slider" tabindex="0" aria-valuemin="0" aria-label="Audio playback position"><svg width="100%" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" preserveAspectRatio="none" class="svelte-r3200f"><!></svg></div>');
1554
+ const ct = {
1555
+ hash: "svelte-r3200f",
1556
+ code: `:host {--fortyfour-line-waveform-track-color: #d1d5db;--fortyfour-line-waveform-progress-color: #3b82f6;--fortyfour-line-waveform-focus-color: #3b82f6;--fortyfour-line-waveform-focus-width: 2px;--fortyfour-line-waveform-focus-offset: 2px;--fortyfour-line-waveform-focus-radius: 4px;display:flex;flex:1;}
1557
+
1558
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-line-waveform-track-color: #374151;--fortyfour-line-waveform-progress-color: #60a5fa;--fortyfour-line-waveform-focus-color: #60a5fa;}
1559
+ }.waveform.svelte-r3200f {flex:1;height:100%;display:flex;align-items:center;cursor:pointer;border-radius:var(--fortyfour-line-waveform-focus-radius);}.waveform.svelte-r3200f:focus-visible {outline:var(--fortyfour-line-waveform-focus-width) solid
1560
+ var(--fortyfour-line-waveform-focus-color);outline-offset:var(--fortyfour-line-waveform-focus-offset);}svg.svelte-r3200f {display:block;}.line.svelte-r3200f {fill:none;stroke-linecap:round;stroke-linejoin:round;}.line.sharp.svelte-r3200f {stroke-linecap:square;stroke-linejoin:miter;}.track.svelte-r3200f {stroke:var(--fortyfour-line-waveform-track-color);}.progress.svelte-r3200f {stroke:var(--fortyfour-line-waveform-progress-color);}`
1561
+ };
1562
+ function dt(g, r) {
1563
+ ge(r, !0), we(g, ct);
1564
+ const c = r.$$host;
1565
+ let n = d(r, "for", 7, ""), a = d(r, "lineWidth", 7, 2), o = d(r, "height", 7, 56), i = d(r, "sharp", 7, !1), l = q(We([])), y = q(0), h = q(0), f = q(null), x = q(0), u = q(!1), s = q(null);
1566
+ c.style.height = `${o()}px`, sr(() => {
1567
+ const t = new ResizeObserver((T) => {
1568
+ for (let _ of T)
1569
+ m(x, _.contentRect.width || 0, !0), m(u, !0);
1570
+ });
1571
+ return e(s) && t.observe(e(s)), () => {
1572
+ t.disconnect();
1573
+ };
1574
+ }), de(() => {
1575
+ if (!n()) {
1576
+ console.warn("fortyfour-line-waveform: 'for' attribute is required");
1577
+ return;
1578
+ }
1579
+ const t = c.getRootNode();
1580
+ if (m(f, t.getElementById(n()), !0), !e(f)) {
1581
+ console.warn(`fortyfour-line-waveform: element with id "${n()}" not found`);
1582
+ return;
1583
+ }
1584
+ e(f).metadata?.waveform && m(l, e(f).metadata.waveform, !0), e(f).duration && m(h, e(f).duration, !0), e(f).currentTime && m(y, e(f).currentTime, !0);
1585
+ function T() {
1586
+ m(l, e(f).metadata?.waveform || [], !0), m(h, e(f).duration, !0);
1587
+ }
1588
+ function _() {
1589
+ m(y, e(f).currentTime, !0);
1590
+ }
1591
+ return e(f).addEventListener("loadedmetadata", T), e(f).addEventListener("timeupdate", _), () => {
1592
+ e(f).removeEventListener("loadedmetadata", T), e(f).removeEventListener("timeupdate", _);
1593
+ };
1594
+ });
1595
+ const k = 0.15, p = S(() => Math.max(2, Math.floor(e(x) * k))), w = S(() => e(l).length > 0), C = S(() => e(w) ? br(e(l), e(p)) : []), U = S(() => e(h) > 0 ? e(y) / e(h) : 0), X = S(() => `${Me(e(y))} of ${Me(e(h))}`), F = S(() => o() / 2), te = S(() => o() / 2 * 0.8), V = S(() => {
1596
+ if (!e(C).length || e(x) === 0)
1597
+ return [];
1598
+ const t = a() / 2, T = e(x) - t * 2;
1599
+ return e(C).map((_, A) => {
1600
+ const N = t + A / (e(C).length - 1) * T, Y = Math.max(0.05, _ / 100), P = A % 2 === 0 ? -1 : 1, O = e(F) + P * Y * e(te);
1601
+ return { x: N, y: O };
59
1602
  });
1603
+ });
1604
+ function H(t, T) {
1605
+ if (t.length === 0)
1606
+ return "";
1607
+ let _ = `M ${t[0].x} ${t[0].y}`;
1608
+ for (let A = 1; A < t.length; A++) {
1609
+ const N = t[A - 1], Y = t[A];
1610
+ if (T) {
1611
+ const P = N.x + (Y.x - N.x) / 3, O = N.y, oe = N.x + (Y.x - N.x) * 2 / 3, ae = Y.y;
1612
+ _ += ` C ${P} ${O}, ${oe} ${ae}, ${Y.x} ${Y.y}`;
1613
+ } else
1614
+ _ += ` L ${Y.x} ${Y.y}`;
1615
+ }
1616
+ return _;
60
1617
  }
61
- y(x);
62
- var U = h(x, 2);
1618
+ const be = S(() => H(e(V), !i())), I = S(() => {
1619
+ if (e(U) <= 0 || e(x) === 0)
1620
+ return 0;
1621
+ const t = a() / 2, T = e(x) - t * 2;
1622
+ return t + e(U) * T;
1623
+ }), j = S(() => {
1624
+ if (e(V).length === 0 || e(I) <= 0)
1625
+ return "";
1626
+ const t = [];
1627
+ let T = null;
1628
+ for (let A = 0; A < e(V).length; A++)
1629
+ if (e(V)[A].x <= e(I))
1630
+ t.push(e(V)[A]);
1631
+ else {
1632
+ T = e(V)[A];
1633
+ break;
1634
+ }
1635
+ if (t.length === 0)
1636
+ return "";
1637
+ const _ = t[t.length - 1];
1638
+ if (T && _.x < e(I)) {
1639
+ const A = (e(I) - _.x) / (T.x - _.x), N = _.y + A * (T.y - _.y);
1640
+ t.push({ x: e(I), y: N });
1641
+ }
1642
+ return H(t, !i());
1643
+ });
1644
+ de(() => {
1645
+ e(w) ? c.removeAttribute("data-placeholder") : c.setAttribute("data-placeholder", "");
1646
+ });
1647
+ const B = Qe(() => e(f), () => e(h), () => e(s).getBoundingClientRect()), ee = $e(() => e(f), () => e(h), () => e(y));
1648
+ var b = {
1649
+ get for() {
1650
+ return n();
1651
+ },
1652
+ set for(t = "") {
1653
+ n(t), v();
1654
+ },
1655
+ get lineWidth() {
1656
+ return a();
1657
+ },
1658
+ set lineWidth(t = 2) {
1659
+ a(t), v();
1660
+ },
1661
+ get height() {
1662
+ return o();
1663
+ },
1664
+ set height(t = 56) {
1665
+ o(t), v();
1666
+ },
1667
+ get sharp() {
1668
+ return i();
1669
+ },
1670
+ set sharp(t = !1) {
1671
+ i(t), v();
1672
+ }
1673
+ }, L = ft();
1674
+ L.__click = B, L.__keydown = ee;
1675
+ var Q = G(L), ve = G(Q);
63
1676
  {
64
- var B = (e) => {
65
- var o = ke(), L = b(o), D = h(b(L));
1677
+ var E = (t) => {
1678
+ var T = st(), _ = re(T);
1679
+ let A;
1680
+ var N = pe(_);
66
1681
  {
67
- var G = (l) => {
68
- var g = pe(), T = h(I(g));
69
- T.__click = [me, c];
70
- var J = b(T, !0);
71
- y(T), z(() => S(J, f(c) ? "Original" : "Translation")), i(l, g);
1682
+ var Y = (P) => {
1683
+ var O = lt();
1684
+ let oe;
1685
+ M(
1686
+ (ae) => {
1687
+ oe = ie(O, 0, "line progress svelte-r3200f", null, oe, ae), W(O, "d", e(j)), W(O, "stroke-width", a());
1688
+ },
1689
+ [() => ({ sharp: i() })]
1690
+ ), z(P, O);
72
1691
  };
73
- k(D, (l) => {
74
- r().translation && l(G);
1692
+ J(N, (P) => {
1693
+ e(j) && P(Y);
75
1694
  });
76
1695
  }
77
- y(L);
78
- var u = h(L, 2), H = b(u);
1696
+ M(
1697
+ (P) => {
1698
+ A = ie(_, 0, "line track svelte-r3200f", null, A, P), W(_, "d", e(be)), W(_, "stroke-width", a());
1699
+ },
1700
+ [() => ({ sharp: i() })]
1701
+ ), z(t, T);
1702
+ }, R = (t) => {
1703
+ var T = se(), _ = re(T);
1704
+ {
1705
+ var A = (N) => {
1706
+ var Y = ut();
1707
+ M(() => {
1708
+ W(Y, "x1", a() / 2), W(Y, "y1", o() / 2), W(Y, "x2", e(x) - a() / 2), W(Y, "y2", o() / 2), W(Y, "stroke-width", a());
1709
+ }), z(N, Y);
1710
+ };
1711
+ J(
1712
+ _,
1713
+ (N) => {
1714
+ e(u) && N(A);
1715
+ },
1716
+ !0
1717
+ );
1718
+ }
1719
+ z(t, T);
1720
+ };
1721
+ J(ve, (t) => {
1722
+ e(u) && e(be) ? t(E) : t(R, !1);
1723
+ });
1724
+ }
1725
+ return D(Q), D(L), Pe(L, (t) => m(s, t), () => e(s)), M(() => {
1726
+ W(L, "aria-valuemax", e(h)), W(L, "aria-valuenow", e(y)), W(L, "aria-valuetext", e(X)), W(Q, "height", o()), W(Q, "viewBox", `0 0 ${e(x)} ${o()}`);
1727
+ }), z(g, L), ye(b);
1728
+ }
1729
+ He(["click", "keydown"]);
1730
+ customElements.define("fortyfour-line-waveform", ue(
1731
+ dt,
1732
+ {
1733
+ for: { attribute: "for", reflect: !0 },
1734
+ lineWidth: { attribute: "line-width", reflect: !0, type: "Number" },
1735
+ height: { attribute: "height", reflect: !0, type: "Number" },
1736
+ sharp: { attribute: "sharp", reflect: !0, type: "Boolean" }
1737
+ },
1738
+ [],
1739
+ [],
1740
+ !0
1741
+ ));
1742
+ var vt = K('<div class="container svelte-16bcl3p" role="slider" tabindex="0" aria-valuemin="0" aria-label="Audio playback position"><div class="track svelte-16bcl3p"><div class="progress svelte-16bcl3p"></div></div></div>');
1743
+ const pt = {
1744
+ hash: "svelte-16bcl3p",
1745
+ code: `:host {--fortyfour-progress-bar-track-color: #e5e7eb;--fortyfour-progress-bar-progress-color: #3b82f6;--fortyfour-progress-bar-focus-color: #3b82f6;--fortyfour-progress-bar-focus-width: 2px;--fortyfour-progress-bar-focus-offset: 2px;display:flex;flex:1;}
1746
+
1747
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-progress-bar-track-color: #374151;--fortyfour-progress-bar-progress-color: #60a5fa;--fortyfour-progress-bar-focus-color: #60a5fa;}
1748
+ }.container.svelte-16bcl3p {flex:1;display:flex;align-items:center;cursor:pointer;border-radius:4px;}.container.svelte-16bcl3p:focus-visible {outline:var(--fortyfour-progress-bar-focus-width) solid
1749
+ var(--fortyfour-progress-bar-focus-color);outline-offset:var(--fortyfour-progress-bar-focus-offset);}.track.svelte-16bcl3p {width:100%;background:var(--fortyfour-progress-bar-track-color);overflow:hidden;}.progress.svelte-16bcl3p {height:100%;background:var(--fortyfour-progress-bar-progress-color);transition:width 0.1s linear;}`
1750
+ };
1751
+ function gt(g, r) {
1752
+ ge(r, !0), we(g, pt);
1753
+ const c = r.$$host;
1754
+ let n = d(r, "for", 7, ""), a = d(r, "barHeight", 7, 4), o = d(r, "barRadius", 7, 2), i = q(0), l = q(0), y = q(null), h = q(null);
1755
+ de(() => {
1756
+ if (!n()) {
1757
+ console.warn("fortyfour-progress-bar: 'for' attribute is required");
1758
+ return;
1759
+ }
1760
+ const F = c.getRootNode();
1761
+ if (m(y, F.getElementById(n()), !0), !e(y)) {
1762
+ console.warn(`fortyfour-progress-bar: element with id "${n()}" not found`);
1763
+ return;
1764
+ }
1765
+ e(y).duration && m(l, e(y).duration, !0), e(y).currentTime && m(i, e(y).currentTime, !0);
1766
+ function te() {
1767
+ m(l, e(y).duration, !0);
1768
+ }
1769
+ function V() {
1770
+ m(i, e(y).currentTime, !0);
1771
+ }
1772
+ return e(y).addEventListener("loadedmetadata", te), e(y).addEventListener("timeupdate", V), () => {
1773
+ e(y).removeEventListener("loadedmetadata", te), e(y).removeEventListener("timeupdate", V);
1774
+ };
1775
+ });
1776
+ const f = S(() => e(l) > 0 ? e(i) / e(l) * 100 : 0), x = S(() => `${Me(e(i))} of ${Me(e(l))}`), u = Qe(() => e(y), () => e(l), () => e(h)?.getBoundingClientRect()), s = $e(() => e(y), () => e(l), () => e(i));
1777
+ var k = {
1778
+ get for() {
1779
+ return n();
1780
+ },
1781
+ set for(F = "") {
1782
+ n(F), v();
1783
+ },
1784
+ get barHeight() {
1785
+ return a();
1786
+ },
1787
+ set barHeight(F = 4) {
1788
+ a(F), v();
1789
+ },
1790
+ get barRadius() {
1791
+ return o();
1792
+ },
1793
+ set barRadius(F = 2) {
1794
+ o(F), v();
1795
+ }
1796
+ }, p = vt();
1797
+ p.__click = u, p.__keydown = s;
1798
+ var w = G(p);
1799
+ let C;
1800
+ var U = G(w);
1801
+ let X;
1802
+ return D(w), Pe(w, (F) => m(h, F), () => e(h)), D(p), M(
1803
+ (F, te) => {
1804
+ W(p, "aria-valuemax", e(l)), W(p, "aria-valuenow", e(i)), W(p, "aria-valuetext", e(x)), C = me(w, "", C, F), X = me(U, "", X, te);
1805
+ },
1806
+ [
1807
+ () => ({
1808
+ height: `${a() ?? ""}px`,
1809
+ "border-radius": `${o() ?? ""}px`
1810
+ }),
1811
+ () => ({
1812
+ width: `${e(f) ?? ""}%`,
1813
+ "border-radius": `${o() ?? ""}px`
1814
+ })
1815
+ ]
1816
+ ), z(g, p), ye(k);
1817
+ }
1818
+ He(["click", "keydown"]);
1819
+ customElements.define("fortyfour-progress-bar", ue(
1820
+ gt,
1821
+ {
1822
+ for: { attribute: "for", reflect: !0 },
1823
+ barHeight: { attribute: "bar-height", reflect: !0, type: "Number" },
1824
+ barRadius: { attribute: "bar-radius", reflect: !0, type: "Number" }
1825
+ },
1826
+ [],
1827
+ [],
1828
+ !0
1829
+ ));
1830
+ var yt = K("<span> </span>"), bt = K('<div class="content svelte-1lixazt"><div class="text caption-text svelte-1lixazt"></div></div>'), ht = K("<span> </span>"), mt = K('<div class="text caption-text subtitle svelte-1lixazt"></div>'), wt = K('<div class="content subtitle-content svelte-1lixazt"><!></div>'), xt = K("<span> </span>"), zt = K('<div class="content svelte-1lixazt"><div class="text caption-text svelte-1lixazt"></div></div>'), kt = K('<div class="content svelte-1lixazt"><div class="text svelte-1lixazt"> </div></div>'), _t = K('<div class="placeholder-lines svelte-1lixazt"><span class="placeholder-line svelte-1lixazt"></span> <span class="placeholder-line short svelte-1lixazt"></span></div>'), Pt = K("<div><div><!></div></div>");
1831
+ const Lt = {
1832
+ hash: "svelte-1lixazt",
1833
+ code: `:host {--fortyfour-transcription-font-family: system-ui, sans-serif;--fortyfour-transcription-font-size: 14px;--fortyfour-transcription-color: #64748b;--fortyfour-transcription-active-color: #1e293b;--fortyfour-transcription-active-bg: #fef08a;--fortyfour-transcription-past-color: #1e293b;--fortyfour-transcription-placeholder-color: #e5e7eb;--fortyfour-transcription-fade-color: white;--fortyfour-transcription-scrollbar-thumb: #d1d5db;--fortyfour-transcription-scrollbar-thumb-hover: #9ca3af;--fortyfour-transcription-focus-color: #3b82f6;display:flex;font-family:var(--fortyfour-transcription-font-family);font-size:var(--fortyfour-transcription-font-size);}
1834
+
1835
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-transcription-color: #94a3b8;--fortyfour-transcription-active-color: #fef08a;--fortyfour-transcription-active-bg: #422006;--fortyfour-transcription-past-color: #e2e8f0;--fortyfour-transcription-placeholder-color: #374151;--fortyfour-transcription-scrollbar-thumb: #4b5563;--fortyfour-transcription-scrollbar-thumb-hover: #6b7280;--fortyfour-transcription-focus-color: #60a5fa;}
1836
+ }.wrapper.svelte-1lixazt {position:relative;width:100%;}.wrapper.scrollable.svelte-1lixazt::before,
1837
+ .wrapper.scrollable.svelte-1lixazt::after {content:"";position:absolute;left:0;right:0;height:24px;pointer-events:none;opacity:0;transition:opacity 0.15s ease;}.wrapper.scrollable.svelte-1lixazt::before {top:0;background:linear-gradient(to top, transparent, var(--fortyfour-transcription-fade-color));z-index:1;}.wrapper.scrollable.svelte-1lixazt::after {bottom:0;background:linear-gradient(to bottom, transparent, var(--fortyfour-transcription-fade-color));}.wrapper.can-scroll-up.svelte-1lixazt::before {opacity:1;}.wrapper.can-scroll-down.svelte-1lixazt::after {opacity:1;}.container.svelte-1lixazt {width:100%;}.container.scrollable.svelte-1lixazt {overflow-y:auto;scroll-behavior:smooth;padding-bottom:24px;scrollbar-width:thin;scrollbar-color:var(--fortyfour-transcription-scrollbar-thumb) transparent;}.container.scrollable.svelte-1lixazt::-webkit-scrollbar {width:6px;}.container.scrollable.svelte-1lixazt::-webkit-scrollbar-track {background:transparent;}.container.scrollable.svelte-1lixazt::-webkit-scrollbar-thumb {background-color:var(--fortyfour-transcription-scrollbar-thumb);border-radius:3px;}.container.scrollable.svelte-1lixazt::-webkit-scrollbar-thumb:hover {background-color:var(--fortyfour-transcription-scrollbar-thumb-hover);}.container.scrollable.svelte-1lixazt:focus-visible {outline:2px solid var(--fortyfour-transcription-focus-color);outline-offset:2px;}.content.svelte-1lixazt {width:100%;}.text.svelte-1lixazt {white-space:pre-wrap;word-wrap:break-word;}.caption-text.svelte-1lixazt {white-space:normal;color:var(--fortyfour-transcription-color);}.word.svelte-1lixazt {transition:color 0.15s ease,
1838
+ background-color 0.15s ease;border-radius:2px;padding:0 1px;margin:0 -1px;}.word.active[data-type="word"].svelte-1lixazt {color:var(--fortyfour-transcription-active-color);background-color:var(--fortyfour-transcription-active-bg);}.word.past[data-type="word"].svelte-1lixazt {color:var(--fortyfour-transcription-past-color);}.subtitle-content.svelte-1lixazt {min-height:2em;display:flex;align-items:center;justify-content:center;}.subtitle.svelte-1lixazt {text-align:center;}.placeholder-lines.svelte-1lixazt {display:flex;flex-direction:column;gap:0.5em;}.placeholder-line.svelte-1lixazt {display:block;height:1em;background-color:var(--fortyfour-transcription-placeholder-color);border-radius:4px;}.placeholder-line.short.svelte-1lixazt {width:60%;}`
1839
+ };
1840
+ function Et(g, r) {
1841
+ ge(r, !0), we(g, Lt);
1842
+ const c = r.$$host;
1843
+ let n = d(r, "for", 7, ""), a = d(r, "mode", 7, "static"), o = d(r, "maxHeight", 7, 0), i = q(null);
1844
+ const l = S(() => o() > 0);
1845
+ let y = q(!1), h = q(!1);
1846
+ function f() {
1847
+ if (!e(i) || !e(l)) {
1848
+ m(y, !1), m(h, !1);
1849
+ return;
1850
+ }
1851
+ const { scrollTop: E, scrollHeight: R, clientHeight: t } = e(i);
1852
+ m(y, E > 1), m(h, E + t < R - 1);
1853
+ }
1854
+ let x = q(null), u = q(null), s = q("none"), k = q(0);
1855
+ const p = Ye(() => e(x) === null, 200), w = S(() => e(x) !== null ? !1 : e(s) === "none" ? !0 : p()), C = S(() => e(u) !== null && e(u).length > 0), U = S(() => !e(C) || a() === "static" ? -1 : e(u).findIndex((E) => e(k) >= E.start && e(k) <= E.end));
1856
+ function X(E) {
1857
+ const R = [];
1858
+ let t = { words: [], start: 0, end: 0 };
1859
+ for (const T of E) {
1860
+ t.words.length === 0 && (t.start = T.start), t.words.push(T), t.end = T.end;
1861
+ const _ = T.text.trim();
1862
+ (_.endsWith(".") || _.endsWith("?") || _.endsWith("!")) && (R.push(t), t = { words: [], start: 0, end: 0 });
1863
+ }
1864
+ return t.words.length > 0 && R.push(t), R;
1865
+ }
1866
+ const F = S(() => e(C) ? X(e(u)) : []), te = S(() => a() !== "subtitle" || e(F).length === 0 ? null : e(F).find((E) => e(k) >= E.start && e(k) <= E.end) ?? null);
1867
+ function V(E) {
1868
+ return e(k) >= E.start && e(k) <= E.end;
1869
+ }
1870
+ function H(E) {
1871
+ return e(k) > E.end;
1872
+ }
1873
+ de(() => {
1874
+ if (!n()) {
1875
+ console.warn("fortyfour-transcription: 'for' attribute is required");
1876
+ return;
1877
+ }
1878
+ const R = c.getRootNode().getElementById(n());
1879
+ if (!R) {
1880
+ console.warn(`fortyfour-transcription: element with id "${n()}" not found`);
1881
+ return;
1882
+ }
1883
+ m(s, R.getAttribute("preload") || "none", !0);
1884
+ const t = R.metadata;
1885
+ t && (m(x, t.transcription ?? null, !0), m(u, t.words ?? null, !0)), R.currentTime && m(k, R.currentTime, !0);
1886
+ function T() {
1887
+ const A = R.metadata;
1888
+ m(x, A?.transcription ?? null, !0), m(u, A?.words ?? null, !0);
1889
+ }
1890
+ function _() {
1891
+ m(k, R.currentTime, !0);
1892
+ }
1893
+ return R.addEventListener("loadedmetadata", T), R.addEventListener("timeupdate", _), () => {
1894
+ R.removeEventListener("loadedmetadata", T), R.removeEventListener("timeupdate", _);
1895
+ };
1896
+ }), Te(c, "data-placeholder", () => e(w)), de(() => {
1897
+ if (!e(i) || !e(l))
1898
+ return;
1899
+ f(), e(i).addEventListener("scroll", f);
1900
+ const E = new ResizeObserver(f);
1901
+ return E.observe(e(i)), () => {
1902
+ e(i).removeEventListener("scroll", f), E.disconnect();
1903
+ };
1904
+ }), de(() => {
1905
+ if (!e(l) || a() !== "karaoke")
1906
+ return;
1907
+ if (e(k) < 0.1) {
1908
+ e(i)?.scrollTo({ top: 0, behavior: "smooth" });
1909
+ return;
1910
+ }
1911
+ if (e(U) < 0)
1912
+ return;
1913
+ const E = e(i)?.querySelector(".word.active");
1914
+ if (E) {
1915
+ const R = e(i).getBoundingClientRect(), t = E.getBoundingClientRect(), T = e(i).scrollTop + (t.top - R.top) - R.height / 2 + t.height / 2;
1916
+ e(i).scrollTo({ top: T, behavior: "smooth" });
1917
+ }
1918
+ });
1919
+ var be = {
1920
+ get for() {
1921
+ return n();
1922
+ },
1923
+ set for(E = "") {
1924
+ n(E), v();
1925
+ },
1926
+ get mode() {
1927
+ return a();
1928
+ },
1929
+ set mode(E = "static") {
1930
+ a(E), v();
1931
+ },
1932
+ get maxHeight() {
1933
+ return o();
1934
+ },
1935
+ set maxHeight(E = 0) {
1936
+ o(E), v();
1937
+ }
1938
+ }, I = Pt();
1939
+ let j;
1940
+ var B = G(I);
1941
+ let ee, b;
1942
+ var L = G(B);
1943
+ {
1944
+ var Q = (E) => {
1945
+ var R = bt(), t = G(R);
1946
+ Be(t, 21, () => e(u), Ne, (T, _, A) => {
1947
+ var N = yt();
1948
+ let Y;
1949
+ var P = G(N, !0);
1950
+ D(N), M(
1951
+ (O) => {
1952
+ Y = ie(N, 1, "word svelte-1lixazt", null, Y, O), W(N, "data-type", e(_).type), Ee(P, e(_).text);
1953
+ },
1954
+ [
1955
+ () => ({
1956
+ active: A === e(U),
1957
+ past: A < e(U)
1958
+ })
1959
+ ]
1960
+ ), z(T, N);
1961
+ }), D(t), D(R), Ce(1, R, () => Re, () => ({ duration: 400 })), z(E, R);
1962
+ }, ve = (E) => {
1963
+ var R = se(), t = re(R);
79
1964
  {
80
- var ee = (l) => {
81
- var g = V();
82
- z(() => S(g, r().translation)), i(l, g);
83
- }, te = (l) => {
84
- var g = N(), T = I(g);
1965
+ var T = (A) => {
1966
+ var N = wt(), Y = G(N);
1967
+ {
1968
+ var P = (O) => {
1969
+ var oe = mt();
1970
+ Be(oe, 21, () => e(te).words, Ne, (ae, ce) => {
1971
+ var le = ht();
1972
+ let $;
1973
+ var xe = G(le, !0);
1974
+ D(le), M(
1975
+ (ne) => {
1976
+ $ = ie(le, 1, "word svelte-1lixazt", null, $, ne), W(le, "data-type", e(ce).type), Ee(xe, e(ce).text);
1977
+ },
1978
+ [
1979
+ () => ({
1980
+ active: V(e(ce)),
1981
+ past: H(e(ce))
1982
+ })
1983
+ ]
1984
+ ), z(ae, le);
1985
+ }), D(oe), Ce(1, oe, () => Re, () => ({ duration: 200 })), z(O, oe);
1986
+ };
1987
+ J(Y, (O) => {
1988
+ e(te) && O(P);
1989
+ });
1990
+ }
1991
+ D(N), z(A, N);
1992
+ }, _ = (A) => {
1993
+ var N = se(), Y = re(N);
85
1994
  {
86
- var J = (j) => {
87
- var q = N(), ae = I(q);
1995
+ var P = (oe) => {
1996
+ var ae = zt(), ce = G(ae);
1997
+ Be(ce, 21, () => e(u), Ne, (le, $, xe) => {
1998
+ var ne = se(), fe = re(ne);
1999
+ {
2000
+ var ze = (ke) => {
2001
+ var _e = xt();
2002
+ let je;
2003
+ var Ue = G(_e, !0);
2004
+ D(_e), M(
2005
+ (mr) => {
2006
+ je = ie(_e, 1, "word svelte-1lixazt", null, je, mr), W(_e, "data-type", e($).type), Ee(Ue, e($).text);
2007
+ },
2008
+ [() => ({ active: xe === e(U) })]
2009
+ ), Ce(1, _e, () => Re, () => ({ duration: 150 })), z(ke, _e);
2010
+ };
2011
+ J(fe, (ke) => {
2012
+ e(k) >= e($).start && ke(ze);
2013
+ });
2014
+ }
2015
+ z(le, ne);
2016
+ }), D(ce), D(ae), Ce(1, ae, () => Re, () => ({ duration: 400 })), z(oe, ae);
2017
+ }, O = (oe) => {
2018
+ var ae = se(), ce = re(ae);
88
2019
  {
89
- var oe = (w) => {
90
- var A = he(), C = I(A), K = h(C);
91
- K.__click = [_e, p], z((se) => S(C, `${se ?? ""}... `), [() => r().transcription.slice(0, 200)]), i(w, A);
92
- }, ie = (w) => {
93
- var A = ye(), C = I(A), K = h(C);
94
- K.__click = [be, p], z(() => S(C, `${r().transcription ?? ""} `)), i(w, A);
2020
+ var le = (xe) => {
2021
+ var ne = kt(), fe = G(ne), ze = G(fe, !0);
2022
+ D(fe), D(ne), M(() => Ee(ze, e(x))), Ce(1, ne, () => Re, () => ({ duration: 400 })), z(xe, ne);
2023
+ }, $ = (xe) => {
2024
+ var ne = se(), fe = re(ne);
2025
+ {
2026
+ var ze = (ke) => {
2027
+ var _e = _t();
2028
+ let je;
2029
+ M((Ue) => je = me(_e, "", je, Ue), [
2030
+ () => ({ height: e(l) ? `${o()}px` : void 0 })
2031
+ ]), z(ke, _e);
2032
+ };
2033
+ J(
2034
+ fe,
2035
+ (ke) => {
2036
+ e(w) && ke(ze);
2037
+ },
2038
+ !0
2039
+ );
2040
+ }
2041
+ z(xe, ne);
95
2042
  };
96
- k(ae, (w) => {
97
- f(p) ? w(ie, !1) : w(oe);
98
- });
2043
+ J(
2044
+ ce,
2045
+ (xe) => {
2046
+ e(x) ? xe(le) : xe($, !1);
2047
+ },
2048
+ !0
2049
+ );
99
2050
  }
100
- i(j, q);
101
- }, re = (j) => {
102
- var q = V();
103
- z(() => S(q, r().transcription)), i(j, q);
2051
+ z(oe, ae);
104
2052
  };
105
- k(
106
- T,
107
- (j) => {
108
- r().transcription.length > 200 ? j(J) : j(re, !1);
2053
+ J(
2054
+ Y,
2055
+ (oe) => {
2056
+ a() === "progressive" && e(C) ? oe(P) : oe(O, !1);
109
2057
  },
110
2058
  !0
111
2059
  );
112
2060
  }
113
- i(l, g);
2061
+ z(A, N);
114
2062
  };
115
- k(H, (l) => {
116
- f(c) ? l(ee) : l(te, !1);
117
- });
2063
+ J(
2064
+ t,
2065
+ (A) => {
2066
+ a() === "subtitle" && e(C) ? A(T) : A(_, !1);
2067
+ },
2068
+ !0
2069
+ );
118
2070
  }
119
- y(u), y(o), i(e, o);
2071
+ z(E, R);
120
2072
  };
121
- k(U, (e) => {
122
- r().transcription && e(B);
2073
+ J(L, (E) => {
2074
+ a() === "karaoke" && e(C) ? E(Q) : E(ve, !1);
123
2075
  });
124
2076
  }
125
- return y(v), i(a, v), Z(F);
2077
+ return D(B), Pe(B, (E) => m(i, E), () => e(i)), D(I), M(
2078
+ (E, R, t) => {
2079
+ j = ie(I, 1, "wrapper svelte-1lixazt", null, j, E), ee = ie(B, 1, "container svelte-1lixazt", null, ee, R), b = me(B, "", b, t);
2080
+ },
2081
+ [
2082
+ () => ({
2083
+ scrollable: e(l),
2084
+ "can-scroll-up": e(y),
2085
+ "can-scroll-down": e(h)
2086
+ }),
2087
+ () => ({ scrollable: e(l) }),
2088
+ () => ({
2089
+ "max-height": e(l) ? `${o()}px` : void 0
2090
+ })
2091
+ ]
2092
+ ), z(g, I), ye(be);
126
2093
  }
127
- le(["click"]);
128
- W($, { recordingId: {}, recording: {}, audioRef: {} }, [], [], !0);
129
- var we = m("<p>Loading...</p>"), Ie = m("<p>Error loading recording.</p>"), ze = m('<div class="container svelte-1kcle3q" role="group" aria-label="44 audio player"><!> <audio></audio></div>');
130
- const Re = {
131
- hash: "svelte-1kcle3q",
132
- code: ":host {display:inline-block;font-size:inherit;font-family:system-ui;line-height:1.35;color:var(--44-color-1);}.container.svelte-1kcle3q {width:100%;border-radius:16px;background:var(--44-color-0);color:var(--44-color-1);}"
2094
+ customElements.define("fortyfour-transcription", ue(
2095
+ Et,
2096
+ {
2097
+ for: { attribute: "for", reflect: !0 },
2098
+ mode: { attribute: "mode", reflect: !0 },
2099
+ maxHeight: { attribute: "max-height", reflect: !0, type: "Number" }
2100
+ },
2101
+ [],
2102
+ [],
2103
+ !0
2104
+ ));
2105
+ var It = K('<div class="content svelte-z1j7sg"><div class="text svelte-z1j7sg"> </div></div>'), Ct = K('<div class="placeholder-lines svelte-z1j7sg"><span class="placeholder-line svelte-z1j7sg"></span> <span class="placeholder-line short svelte-z1j7sg"></span></div>'), Rt = K("<div><div><!></div></div>");
2106
+ const Tt = {
2107
+ hash: "svelte-z1j7sg",
2108
+ code: `:host {--fortyfour-translation-font-family: system-ui, sans-serif;--fortyfour-translation-font-size: 14px;--fortyfour-translation-placeholder-color: #e5e7eb;--fortyfour-translation-fade-color: white;--fortyfour-translation-scrollbar-thumb: #d1d5db;--fortyfour-translation-scrollbar-thumb-hover: #9ca3af;--fortyfour-translation-focus-color: #3b82f6;display:flex;font-family:var(--fortyfour-translation-font-family);font-size:var(--fortyfour-translation-font-size);}
2109
+
2110
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-translation-placeholder-color: #374151;--fortyfour-translation-scrollbar-thumb: #4b5563;--fortyfour-translation-scrollbar-thumb-hover: #6b7280;--fortyfour-translation-focus-color: #60a5fa;}
2111
+ }.wrapper.svelte-z1j7sg {position:relative;width:100%;}.wrapper.scrollable.svelte-z1j7sg::before,
2112
+ .wrapper.scrollable.svelte-z1j7sg::after {content:"";position:absolute;left:0;right:0;height:24px;pointer-events:none;opacity:0;transition:opacity 0.15s ease;}.wrapper.scrollable.svelte-z1j7sg::before {top:0;background:linear-gradient(to top, transparent, var(--fortyfour-translation-fade-color));z-index:1;}.wrapper.scrollable.svelte-z1j7sg::after {bottom:0;background:linear-gradient(to bottom, transparent, var(--fortyfour-translation-fade-color));}.wrapper.can-scroll-up.svelte-z1j7sg::before {opacity:1;}.wrapper.can-scroll-down.svelte-z1j7sg::after {opacity:1;}.container.svelte-z1j7sg {width:100%;}.container.scrollable.svelte-z1j7sg {overflow-y:auto;scroll-behavior:smooth;padding-bottom:24px;scrollbar-width:thin;scrollbar-color:var(--fortyfour-translation-scrollbar-thumb) transparent;}.container.scrollable.svelte-z1j7sg::-webkit-scrollbar {width:6px;}.container.scrollable.svelte-z1j7sg::-webkit-scrollbar-track {background:transparent;}.container.scrollable.svelte-z1j7sg::-webkit-scrollbar-thumb {background-color:var(--fortyfour-translation-scrollbar-thumb);border-radius:3px;}.container.scrollable.svelte-z1j7sg::-webkit-scrollbar-thumb:hover {background-color:var(--fortyfour-translation-scrollbar-thumb-hover);}.container.scrollable.svelte-z1j7sg:focus-visible {outline:2px solid var(--fortyfour-translation-focus-color);outline-offset:2px;}.content.svelte-z1j7sg {width:100%;}.text.svelte-z1j7sg {white-space:pre-wrap;word-wrap:break-word;}.placeholder-lines.svelte-z1j7sg {display:flex;flex-direction:column;gap:0.5em;}.placeholder-line.svelte-z1j7sg {display:block;height:1em;background-color:var(--fortyfour-translation-placeholder-color);border-radius:4px;}.placeholder-line.short.svelte-z1j7sg {width:60%;}`
133
2113
  };
134
- function Ee(a, t) {
135
- X(t, !0), Y(a, Re);
136
- let s = M(t, "recordingId", 7), r = M(t, "theme", 7);
137
- const c = r().split(",").map((e) => e.trim()).map((e, o) => `--44-color-${o}: ${e};`).join(" ");
138
- let p, E = R(!0), _ = R(null);
139
- ue(async () => {
140
- try {
141
- const e = await fetch(`https://44hz.zuuu.us/recordings/${s()}/player`);
142
- if (!e.ok)
143
- throw new Error("Failed to fetch data");
144
- const o = await e.json();
145
- o.status === "ready" && d(_, o, !0);
146
- } catch (e) {
147
- console.error(e);
148
- } finally {
149
- d(E, !1);
150
- }
151
- });
152
- var F = {
2114
+ function Mt(g, r) {
2115
+ ge(r, !0), we(g, Tt);
2116
+ const c = r.$$host;
2117
+ let n = d(r, "for", 7, ""), a = d(r, "maxHeight", 7, 0), o = q(null);
2118
+ const i = S(() => a() > 0);
2119
+ let l = q(!1), y = q(!1);
2120
+ function h() {
2121
+ if (!e(o) || !e(i)) {
2122
+ m(l, !1), m(y, !1);
2123
+ return;
2124
+ }
2125
+ const { scrollTop: I, scrollHeight: j, clientHeight: B } = e(o);
2126
+ m(l, I > 1), m(y, I + B < j - 1);
2127
+ }
2128
+ let f = q(null), x = q("none");
2129
+ function u(I) {
2130
+ if (!I)
2131
+ return I;
2132
+ const j = document.createElement("textarea");
2133
+ return j.innerHTML = I, j.value;
2134
+ }
2135
+ const s = S(() => u(e(f))), k = Ye(() => e(f) === null, 200), p = S(() => e(f) !== null ? !1 : e(x) === "none" ? !0 : k());
2136
+ de(() => {
2137
+ if (!n()) {
2138
+ console.warn("fortyfour-translation: 'for' attribute is required");
2139
+ return;
2140
+ }
2141
+ const j = c.getRootNode().getElementById(n());
2142
+ if (!j) {
2143
+ console.warn(`fortyfour-translation: element with id "${n()}" not found`);
2144
+ return;
2145
+ }
2146
+ m(x, j.getAttribute("preload") || "none", !0);
2147
+ const B = j.metadata;
2148
+ B && m(f, B.translation ?? null, !0);
2149
+ function ee() {
2150
+ const b = j.metadata;
2151
+ m(f, b?.translation ?? null, !0);
2152
+ }
2153
+ return j.addEventListener("loadedmetadata", ee), () => {
2154
+ j.removeEventListener("loadedmetadata", ee);
2155
+ };
2156
+ }), Te(c, "data-placeholder", () => e(p)), de(() => {
2157
+ if (!e(o) || !e(i))
2158
+ return;
2159
+ h(), e(o).addEventListener("scroll", h);
2160
+ const I = new ResizeObserver(h);
2161
+ return I.observe(e(o)), () => {
2162
+ e(o).removeEventListener("scroll", h), I.disconnect();
2163
+ };
2164
+ });
2165
+ var w = {
2166
+ get for() {
2167
+ return n();
2168
+ },
2169
+ set for(I = "") {
2170
+ n(I), v();
2171
+ },
2172
+ get maxHeight() {
2173
+ return a();
2174
+ },
2175
+ set maxHeight(I = 0) {
2176
+ a(I), v();
2177
+ }
2178
+ }, C = Rt();
2179
+ let U;
2180
+ var X = G(C);
2181
+ let F, te;
2182
+ var V = G(X);
2183
+ {
2184
+ var H = (I) => {
2185
+ var j = It(), B = G(j), ee = G(B, !0);
2186
+ D(B), D(j), M(() => Ee(ee, e(s))), Ce(1, j, () => Re, () => ({ duration: 400 })), z(I, j);
2187
+ }, be = (I) => {
2188
+ var j = se(), B = re(j);
2189
+ {
2190
+ var ee = (b) => {
2191
+ var L = Ct();
2192
+ let Q;
2193
+ M((ve) => Q = me(L, "", Q, ve), [
2194
+ () => ({ height: e(i) ? `${a()}px` : void 0 })
2195
+ ]), z(b, L);
2196
+ };
2197
+ J(
2198
+ B,
2199
+ (b) => {
2200
+ e(p) && b(ee);
2201
+ },
2202
+ !0
2203
+ );
2204
+ }
2205
+ z(I, j);
2206
+ };
2207
+ J(V, (I) => {
2208
+ e(s) ? I(H) : I(be, !1);
2209
+ });
2210
+ }
2211
+ return D(X), Pe(X, (I) => m(o, I), () => e(o)), D(C), M(
2212
+ (I, j, B) => {
2213
+ U = ie(C, 1, "wrapper svelte-z1j7sg", null, U, I), F = ie(X, 1, "container svelte-z1j7sg", null, F, j), te = me(X, "", te, B);
2214
+ },
2215
+ [
2216
+ () => ({
2217
+ scrollable: e(i),
2218
+ "can-scroll-up": e(l),
2219
+ "can-scroll-down": e(y)
2220
+ }),
2221
+ () => ({ scrollable: e(i) }),
2222
+ () => ({
2223
+ "max-height": e(i) ? `${a()}px` : void 0
2224
+ })
2225
+ ]
2226
+ ), z(g, C), ye(w);
2227
+ }
2228
+ customElements.define("fortyfour-translation", ue(
2229
+ Mt,
2230
+ {
2231
+ for: { attribute: "for", reflect: !0 },
2232
+ maxHeight: { attribute: "max-height", reflect: !0, type: "Number" }
2233
+ },
2234
+ [],
2235
+ [],
2236
+ !0
2237
+ ));
2238
+ var Ht = Le('<svg viewBox="0 0 359 254" aria-label="44" fill="currentColor"><path d="M92,300 C92.2666667,290.933333 92.8,280.533333 93.6,268.8 C93.8666667,262.666667 94,258.4 94,256 L6,256 L6,161.2 C7.33333333,159.333333 9.2,156.533333 11.6,152.8 C27.0666667,129.866667 39.3333333,110.733333 48.4,95.4 C57.4666667,80.0666667 65.2,63.8666667 71.6,46.8 L186,46.8 C128.4,122.533333 85.8666667,187.066667 58.4,240.4 L94,240.4 C94,240.133333 94,239.6 94,238.8 C93.4666667,228.666667 92.8,219.6 92,211.6 L185.2,72.4 C181.733333,91.0666667 180,127.333333 180,181.2 C180,235.066667 181.733333,274.666667 185.2,300 L92,300 Z" transform="translate(-6, -46)"></path><path d="M271,300 C271.266667,290.933333 271.8,280.533333 272.6,268.8 C272.866667,262.666667 273,258.4 273,256 L185,256 L185,161.2 C186.333333,159.333333 188.2,156.533333 190.6,152.8 C206.066667,129.866667 218.333333,110.733333 227.4,95.4 C236.466667,80.0666667 244.2,63.8666667 250.6,46.8 L365,46.8 C307.4,122.533333 264.866667,187.066667 237.4,240.4 L273,240.4 C273,240.133333 273,239.6 273,238.8 C272.466667,228.666667 271.8,219.6 271,211.6 L364.2,72.4 C360.733333,91.0666667 359,127.333333 359,181.2 C359,235.066667 360.733333,274.666667 364.2,300 L271,300 Z" transform="translate(-6, -46)"></path></svg>');
2239
+ function hr(g, r) {
2240
+ ge(r, !0);
2241
+ let c = d(r, "class", 7, ""), n = d(r, "height", 7, "1em"), a = d(r, "width", 7, "auto");
2242
+ var o = {
2243
+ get class() {
2244
+ return c();
2245
+ },
2246
+ set class(l = "") {
2247
+ c(l), v();
2248
+ },
2249
+ get height() {
2250
+ return n();
2251
+ },
2252
+ set height(l = "1em") {
2253
+ n(l), v();
2254
+ },
2255
+ get width() {
2256
+ return a();
2257
+ },
2258
+ set width(l = "auto") {
2259
+ a(l), v();
2260
+ }
2261
+ }, i = Ht();
2262
+ return M(() => {
2263
+ ie(i, 0, ur(c())), W(i, "height", n()), W(i, "width", a());
2264
+ }), z(g, i), ye(o);
2265
+ }
2266
+ ue(hr, { class: {}, height: {}, width: {} }, [], [], !0);
2267
+ var jt = K("<fortyfour-progress-bar></fortyfour-progress-bar>", 2), qt = K("<fortyfour-line-waveform></fortyfour-line-waveform>", 2), St = K("<fortyfour-bar-waveform></fortyfour-bar-waveform>", 2), At = (g, r) => m(r, !e(r)), Bt = K('<span class="label-separator svelte-cwarz9">•</span> <button class="translation-toggle svelte-cwarz9"> </button>', 1), Nt = K("<fortyfour-translation></fortyfour-translation>", 2), Wt = K("<fortyfour-transcription></fortyfour-transcription>", 2), Dt = K('<div class="transcription-box svelte-cwarz9"><div class="transcription-header svelte-cwarz9"><span class="transcription-label svelte-cwarz9">TRANSCRIPT</span> <!></div> <!></div>'), Ut = K('<a class="branding svelte-cwarz9" href="https://44.audio" target="_blank" rel="noopener noreferrer"><span class="branding-text svelte-cwarz9">powered by</span> <!></a>'), Ft = K('<fortyfour-recording></fortyfour-recording> <div><div class="player svelte-cwarz9"><fortyfour-play-button></fortyfour-play-button> <!> <div class="duration svelte-cwarz9"><fortyfour-duration><span slot="placeholder">0:00</span></fortyfour-duration> <span class="separator svelte-cwarz9">/</span> <fortyfour-duration><span slot="placeholder">0:00</span></fortyfour-duration></div></div> <!></div> <!>', 3);
2268
+ const Ot = {
2269
+ hash: "svelte-cwarz9",
2270
+ code: `:host {--fortyfour-player-font-family: system-ui, sans-serif;--fortyfour-player-font-size: 14px;--fortyfour-player-accent: #c4956a;--fortyfour-player-background: #faf8f5;--fortyfour-player-surface: #f0ede8;--fortyfour-player-text: #2c2620;--fortyfour-player-muted: #8c8279;--fortyfour-player-border: #d9d4cc;display:block;font-family:var(--fortyfour-player-font-family);font-size:var(--fortyfour-player-font-size);}
2271
+
2272
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-player-accent: #d4a574;--fortyfour-player-background: #1c1917;--fortyfour-player-surface: #262220;--fortyfour-player-text: #e7e0d5;--fortyfour-player-muted: #9c938a;--fortyfour-player-border: #3d3632;}
2273
+ }.container.svelte-cwarz9 {border:1px solid var(--fortyfour-player-border);border-radius:12px;background:var(--fortyfour-player-background);overflow:hidden;}.container.square.svelte-cwarz9 {border-radius:0;}.container.compact.svelte-cwarz9 .player:where(.svelte-cwarz9) {height:44px;padding:0.5rem 0.75rem;gap:0.75rem;}.container.compact.svelte-cwarz9 .transcription-box:where(.svelte-cwarz9) {padding:0.5rem 0.75rem;}.container.compact.svelte-cwarz9 fortyfour-play-button:where(.svelte-cwarz9) {--fortyfour-play-button-size: 40px;}.container.comfortable.svelte-cwarz9 .player:where(.svelte-cwarz9) {height:68px;padding:1rem 1.25rem;gap:1.25rem;}.container.comfortable.svelte-cwarz9 .transcription-box:where(.svelte-cwarz9) {padding:1rem 1.25rem;}.container.comfortable.svelte-cwarz9 fortyfour-play-button:where(.svelte-cwarz9) {--fortyfour-play-button-size: 56px;}.player.svelte-cwarz9 {display:flex;align-items:center;gap:1rem;height:56px;padding:0.75rem 1rem;}fortyfour-play-button.svelte-cwarz9 {--fortyfour-play-button-size: 48px;--fortyfour-play-button-background-color: var(--fortyfour-player-accent);--fortyfour-play-button-icon-color: var(--fortyfour-player-background);--fortyfour-play-button-border-width: 0;--fortyfour-play-button-focus-color: var(--fortyfour-player-accent);flex-shrink:0;}fortyfour-bar-waveform.svelte-cwarz9,
2274
+ fortyfour-line-waveform.svelte-cwarz9,
2275
+ fortyfour-progress-bar.svelte-cwarz9 {height:100%;flex:1;}fortyfour-bar-waveform.svelte-cwarz9 {--waveform-progress-color: var(--fortyfour-player-accent);--waveform-track-color: var(--fortyfour-player-border);--waveform-focus-color: var(--fortyfour-player-accent);}fortyfour-line-waveform.svelte-cwarz9 {--fortyfour-line-waveform-progress-color: var(--fortyfour-player-accent);--fortyfour-line-waveform-track-color: var(--fortyfour-player-border);--fortyfour-line-waveform-focus-color: var(--fortyfour-player-accent);}fortyfour-progress-bar.svelte-cwarz9 {--fortyfour-progress-bar-progress-color: var(--fortyfour-player-accent);--fortyfour-progress-bar-track-color: var(--fortyfour-player-border);--fortyfour-progress-bar-focus-color: var(--fortyfour-player-accent);}.duration.svelte-cwarz9 {display:flex;align-items:center;gap:0.25rem;flex-shrink:0;}.elapsed.svelte-cwarz9 {--fortyfour-duration-font-family: var(--fortyfour-player-font-family);--fortyfour-duration-font-size: 1em;--fortyfour-duration-color: var(--fortyfour-player-text);font-weight:500;}.separator.svelte-cwarz9 {font-size:1em;color:var(--fortyfour-player-muted);}.total.svelte-cwarz9 {--fortyfour-duration-font-family: var(--fortyfour-player-font-family);--fortyfour-duration-font-size: 1em;--fortyfour-duration-color: var(--fortyfour-player-muted);}.transcription-box.svelte-cwarz9 {background:var(--fortyfour-player-surface);padding:0.75rem 1rem;border-top:1px solid var(--fortyfour-player-border);}.transcription-header.svelte-cwarz9 {display:flex;align-items:center;gap:0.5em;margin-bottom:0.5rem;}.transcription-label.svelte-cwarz9 {font-size:0.7em;font-weight:600;letter-spacing:0.05em;color:var(--fortyfour-player-muted);}.label-separator.svelte-cwarz9 {font-size:0.7em;color:var(--fortyfour-player-muted);}.translation-toggle.svelte-cwarz9 {font-size:0.7em;font-weight:600;letter-spacing:0.05em;color:var(--fortyfour-player-accent);background:none;border:none;padding:0;cursor:pointer;}.translation-toggle.svelte-cwarz9:hover {text-decoration:underline;}.translation-toggle.svelte-cwarz9:focus-visible {outline:2px solid var(--fortyfour-player-accent);outline-offset:2px;border-radius:2px;}fortyfour-transcription.svelte-cwarz9,
2276
+ fortyfour-translation.svelte-cwarz9 {display:block;line-height:1.5;color:var(--fortyfour-player-text);--fortyfour-transcription-font-family: var(--fortyfour-player-font-family);--fortyfour-transcription-font-size: 1em;--fortyfour-translation-font-family: var(--fortyfour-player-font-family);--fortyfour-translation-font-size: 1em;--fortyfour-transcription-color: var(--fortyfour-player-muted);--fortyfour-transcription-active-color: var(--fortyfour-player-background);--fortyfour-transcription-active-bg: var(--fortyfour-player-accent);--fortyfour-transcription-past-color: var(--fortyfour-player-text);--fortyfour-transcription-fade-color: var(--fortyfour-player-surface);--fortyfour-transcription-placeholder-color: var(--fortyfour-player-border);--fortyfour-transcription-scrollbar-thumb: var(--fortyfour-player-border);--fortyfour-transcription-scrollbar-thumb-hover: var(--fortyfour-player-muted);--fortyfour-transcription-focus-color: var(--fortyfour-player-accent);--fortyfour-translation-fade-color: var(--fortyfour-player-surface);--fortyfour-translation-placeholder-color: var(--fortyfour-player-border);--fortyfour-translation-scrollbar-thumb: var(--fortyfour-player-border);--fortyfour-translation-scrollbar-thumb-hover: var(--fortyfour-player-muted);--fortyfour-translation-focus-color: var(--fortyfour-player-accent);}.branding.svelte-cwarz9 {display:flex;align-items:center;gap:0.3em;width:fit-content;margin-left:auto;margin-top:0.5rem;margin-right:1rem;text-decoration:none;color:var(--fortyfour-player-muted);border-radius:4px;white-space:nowrap;}.branding.svelte-cwarz9:focus-visible {outline:2px solid var(--fortyfour-player-accent);outline-offset:2px;}.branding-text.svelte-cwarz9 {font-size:0.7em;font-weight:400;letter-spacing:0.01em;}`
2277
+ };
2278
+ function Gt(g, r) {
2279
+ ge(r, !0), we(g, Ot);
2280
+ const c = r.$$host;
2281
+ let n = d(r, "recordingId", 7), a = d(r, "apiHost", 7, "api.44.audio"), o = d(r, "shape", 7, "rounded"), i = d(r, "preload", 7, "none"), l = d(r, "spacing", 7, "default"), y = d(r, "progress", 7, "bar-waveform"), h = d(r, "hideTranscript", 7, !1), f = d(r, "hideTranslation", 7, !1), x = d(r, "hideBranding", 7, !1);
2282
+ const u = `fortyfour-player-${crypto.randomUUID().slice(0, 8)}`;
2283
+ let s = q(null), k = q(!1), p = q(!1);
2284
+ const w = S(() => o() === "square"), C = S(() => e(w) ? "square" : "circle"), U = S(() => e(w) ? "0" : "2"), X = S(() => y() || "bar-waveform"), F = S(() => l() === "compact" ? 28 : l() === "comfortable" ? 48 : 40), te = S(() => l() === "compact" ? 4 : l() === "comfortable" ? 8 : 6);
2285
+ function V() {
2286
+ const P = e(s)?.state ?? "idle";
2287
+ c.setAttribute("data-state", P);
2288
+ }
2289
+ function H() {
2290
+ const P = e(s)?.metadata?.translation;
2291
+ m(k, P != null && P !== "", !0);
2292
+ }
2293
+ de(() => {
2294
+ e(s) && (V(), H());
2295
+ });
2296
+ var be = {
153
2297
  get recordingId() {
154
- return s();
2298
+ return n();
2299
+ },
2300
+ set recordingId(P) {
2301
+ n(P), v();
2302
+ },
2303
+ get apiHost() {
2304
+ return a();
2305
+ },
2306
+ set apiHost(P = "api.44.audio") {
2307
+ a(P), v();
2308
+ },
2309
+ get shape() {
2310
+ return o();
2311
+ },
2312
+ set shape(P = "rounded") {
2313
+ o(P), v();
2314
+ },
2315
+ get preload() {
2316
+ return i();
155
2317
  },
156
- set recordingId(e) {
157
- s(e), P();
2318
+ set preload(P = "none") {
2319
+ i(P), v();
158
2320
  },
159
- get theme() {
160
- return r();
2321
+ get spacing() {
2322
+ return l();
161
2323
  },
162
- set theme(e) {
163
- r(e), P();
2324
+ set spacing(P = "default") {
2325
+ l(P), v();
2326
+ },
2327
+ get progress() {
2328
+ return y();
2329
+ },
2330
+ set progress(P = "bar-waveform") {
2331
+ y(P), v();
2332
+ },
2333
+ get hideTranscript() {
2334
+ return h();
2335
+ },
2336
+ set hideTranscript(P = !1) {
2337
+ h(P), v();
2338
+ },
2339
+ get hideTranslation() {
2340
+ return f();
2341
+ },
2342
+ set hideTranslation(P = !1) {
2343
+ f(P), v();
2344
+ },
2345
+ get hideBranding() {
2346
+ return x();
2347
+ },
2348
+ set hideBranding(P = !1) {
2349
+ x(P), v();
164
2350
  }
165
- }, v = ze(), x = b(v);
2351
+ }, I = Ft(), j = re(I);
2352
+ M(() => Z(j, "id", u)), M(() => Z(j, "api-host", a())), M(() => Z(j, "recording-id", n())), M(() => Z(j, "preload", i())), Pe(j, (P) => m(s, P), () => e(s));
2353
+ var B = pe(j, 2);
2354
+ let ee;
2355
+ var b = G(B), L = G(b);
2356
+ M(() => Z(L, "for", u)), M(() => Z(L, "shape", e(C))), ie(L, 1, "svelte-cwarz9");
2357
+ var Q = pe(L, 2);
166
2358
  {
167
- var O = (e) => {
168
- var o = we();
169
- i(e, o);
170
- }, U = (e) => {
171
- var o = N(), L = I(o);
2359
+ var ve = (P) => {
2360
+ var O = jt();
2361
+ M(() => Z(O, "for", u)), M(() => Z(O, "bar-height", e(te))), M(() => Z(O, "bar-radius", e(U))), ie(O, 1, "svelte-cwarz9"), z(P, O);
2362
+ }, E = (P) => {
2363
+ var O = se(), oe = re(O);
172
2364
  {
173
- var D = (u) => {
174
- $(u, {
175
- get recordingId() {
176
- return s();
177
- },
178
- get recording() {
179
- return f(_);
180
- },
181
- get audioRef() {
182
- return p;
183
- }
184
- });
185
- }, G = (u) => {
186
- var H = Ie();
187
- i(u, H);
2365
+ var ae = (le) => {
2366
+ var $ = qt();
2367
+ M(() => Z($, "for", u)), Z($, "line-width", "2"), M(() => Z($, "height", e(F))), M(() => Z($, "sharp", e(w))), ie($, 1, "svelte-cwarz9"), z(le, $);
2368
+ }, ce = (le) => {
2369
+ var $ = St();
2370
+ M(() => Z($, "for", u)), Z($, "bar-width", "4"), Z($, "bar-gap", "2"), M(() => Z($, "bar-radius", e(U))), M(() => Z($, "height", e(F))), ie($, 1, "svelte-cwarz9"), z(le, $);
188
2371
  };
189
- k(
190
- L,
191
- (u) => {
192
- f(_) ? u(D) : u(G, !1);
2372
+ J(
2373
+ oe,
2374
+ (le) => {
2375
+ e(X) === "line-waveform" ? le(ae) : le(ce, !1);
193
2376
  },
194
2377
  !0
195
2378
  );
196
2379
  }
197
- i(e, o);
2380
+ z(P, O);
2381
+ };
2382
+ J(Q, (P) => {
2383
+ e(X) === "progress-bar" ? P(ve) : P(E, !1);
2384
+ });
2385
+ }
2386
+ var R = pe(Q, 2), t = G(R);
2387
+ ie(t, 1, "elapsed svelte-cwarz9"), M(() => Z(t, "for", u)), Z(t, "format", "elapsed");
2388
+ var T = pe(t, 4);
2389
+ ie(T, 1, "total svelte-cwarz9"), M(() => Z(T, "for", u)), Z(T, "format", "total"), D(R), D(b);
2390
+ var _ = pe(b, 2);
2391
+ {
2392
+ var A = (P) => {
2393
+ var O = Dt(), oe = G(O), ae = pe(G(oe), 2);
2394
+ {
2395
+ var ce = (ne) => {
2396
+ var fe = Bt(), ze = pe(re(fe), 2);
2397
+ ze.__click = [At, p];
2398
+ var ke = G(ze, !0);
2399
+ D(ze), M(() => {
2400
+ W(ze, "aria-pressed", e(p)), Ee(ke, e(p) ? "ORIGINAL" : "TRANSLATION");
2401
+ }), z(ne, fe);
2402
+ };
2403
+ J(ae, (ne) => {
2404
+ e(k) && !f() && ne(ce);
2405
+ });
2406
+ }
2407
+ D(oe);
2408
+ var le = pe(oe, 2);
2409
+ {
2410
+ var $ = (ne) => {
2411
+ var fe = Nt();
2412
+ M(() => Z(fe, "for", u)), Z(fe, "max-height", "96"), ie(fe, 1, "svelte-cwarz9"), z(ne, fe);
2413
+ }, xe = (ne) => {
2414
+ var fe = Wt();
2415
+ M(() => Z(fe, "for", u)), Z(fe, "mode", "karaoke"), Z(fe, "max-height", "96"), ie(fe, 1, "svelte-cwarz9"), z(ne, fe);
2416
+ };
2417
+ J(le, (ne) => {
2418
+ e(p) && !f() ? ne($) : ne(xe, !1);
2419
+ });
2420
+ }
2421
+ D(O), z(P, O);
2422
+ };
2423
+ J(_, (P) => {
2424
+ h() || P(A);
2425
+ });
2426
+ }
2427
+ D(B);
2428
+ var N = pe(B, 2);
2429
+ {
2430
+ var Y = (P) => {
2431
+ var O = Ut(), oe = pe(G(O), 2);
2432
+ hr(oe, { class: "branding-logo", height: "0.65em" }), D(O), z(P, O);
198
2433
  };
199
- k(x, (e) => {
200
- f(E) ? e(O) : e(U, !1);
2434
+ J(N, (P) => {
2435
+ x() || P(Y);
201
2436
  });
202
2437
  }
203
- var B = h(x, 2);
204
- return ve(B, (e) => p = e, () => p), y(v), z(() => {
205
- fe(v, c), ge(B, "src", `https://44hz.zuuu.us/recordings/${s() ?? ""}/audio.mp3`);
206
- }), i(a, v), Z(F);
2438
+ return M((P) => ee = ie(B, 1, "container svelte-cwarz9", null, ee, P), [
2439
+ () => ({
2440
+ square: e(w),
2441
+ compact: l() === "compact",
2442
+ comfortable: l() === "comfortable"
2443
+ })
2444
+ ]), he("loadedmetadata", j, () => {
2445
+ V(), H();
2446
+ }), he("play", j, V), he("pause", j, V), he("error", j, V), he("ended", j, V), z(g, I), ye(be);
2447
+ }
2448
+ He(["click"]);
2449
+ customElements.define("fortyfour-player", ue(
2450
+ Gt,
2451
+ {
2452
+ apiHost: { attribute: "api-host", reflect: !0 },
2453
+ recordingId: { attribute: "recording-id", reflect: !0 },
2454
+ shape: { attribute: "shape", reflect: !0 },
2455
+ preload: { attribute: "preload", reflect: !0 },
2456
+ spacing: { attribute: "spacing", reflect: !0 },
2457
+ progress: { attribute: "progress", reflect: !0 },
2458
+ hideTranscript: { attribute: "hide-transcript", reflect: !0, type: "Boolean" },
2459
+ hideTranslation: {
2460
+ attribute: "hide-translation",
2461
+ reflect: !0,
2462
+ type: "Boolean"
2463
+ },
2464
+ hideBranding: { attribute: "hide-branding", reflect: !0, type: "Boolean" }
2465
+ },
2466
+ [],
2467
+ [],
2468
+ !0
2469
+ ));
2470
+ var Kt = K("<fortyfour-recording></fortyfour-recording> <fortyfour-play-button></fortyfour-play-button>", 3);
2471
+ const Xt = {
2472
+ hash: "svelte-1i43bu9",
2473
+ code: `:host {--fortyfour-mini-player-accent: #c4956a;--fortyfour-mini-player-background: #faf8f5;display:inline-block;}
2474
+
2475
+ @media (prefers-color-scheme: dark) {:host {--fortyfour-mini-player-accent: #d4a574;--fortyfour-mini-player-background: #1c1917;}
2476
+ }fortyfour-play-button.svelte-1i43bu9 {--fortyfour-play-button-size: 48px;--fortyfour-play-button-background-color: var(--fortyfour-mini-player-background);--fortyfour-play-button-icon-color: var(--fortyfour-mini-player-accent);--fortyfour-play-button-border-width: 0;--fortyfour-play-button-ring-width: 3px;--fortyfour-play-button-ring-fill-color: var(--fortyfour-mini-player-accent);--fortyfour-play-button-ring-track-color: var(--fortyfour-mini-player-background);--fortyfour-play-button-focus-color: var(--fortyfour-mini-player-accent);}fortyfour-play-button.small.svelte-1i43bu9 {--fortyfour-play-button-size: 32px;--fortyfour-play-button-ring-width: 2px;}fortyfour-play-button.large.svelte-1i43bu9 {--fortyfour-play-button-size: 64px;--fortyfour-play-button-ring-width: 4px;}`
2477
+ };
2478
+ function Zt(g, r) {
2479
+ ge(r, !0), we(g, Xt);
2480
+ const c = r.$$host;
2481
+ let n = d(r, "recordingId", 7), a = d(r, "apiHost", 7, "api.44.audio"), o = d(r, "size", 7, "medium"), i = d(r, "preload", 7, "none");
2482
+ const l = `fortyfour-mini-player-${crypto.randomUUID().slice(0, 8)}`;
2483
+ let y = q(null);
2484
+ function h() {
2485
+ const p = e(y)?.state ?? "idle";
2486
+ c.setAttribute("data-state", p);
2487
+ }
2488
+ de(() => {
2489
+ e(y) && h();
2490
+ });
2491
+ var f = {
2492
+ get recordingId() {
2493
+ return n();
2494
+ },
2495
+ set recordingId(p) {
2496
+ n(p), v();
2497
+ },
2498
+ get apiHost() {
2499
+ return a();
2500
+ },
2501
+ set apiHost(p = "api.44.audio") {
2502
+ a(p), v();
2503
+ },
2504
+ get size() {
2505
+ return o();
2506
+ },
2507
+ set size(p = "medium") {
2508
+ o(p), v();
2509
+ },
2510
+ get preload() {
2511
+ return i();
2512
+ },
2513
+ set preload(p = "none") {
2514
+ i(p), v();
2515
+ }
2516
+ }, x = Kt(), u = re(x);
2517
+ M(() => Z(u, "id", l)), M(() => Z(u, "api-host", a())), M(() => Z(u, "recording-id", n())), M(() => Z(u, "preload", i())), Pe(u, (p) => m(y, p), () => e(y));
2518
+ var s = pe(u, 2);
2519
+ let k;
2520
+ return M(() => Z(s, "for", l)), Z(s, "shape", "circle"), Z(s, "visualization", "ring"), M((p) => k = ie(s, 1, "button svelte-1i43bu9", null, k, p), [
2521
+ () => ({ small: o() === "small", large: o() === "large" })
2522
+ ]), he("loadedmetadata", u, h), he("play", u, h), he("pause", u, h), he("error", u, h), he("ended", u, h), z(g, x), ye(f);
207
2523
  }
208
- customElements.define("fortyfour-audio-player", W(
209
- Ee,
2524
+ customElements.define("fortyfour-mini-player", ue(
2525
+ Zt,
210
2526
  {
211
- recordingId: { attribute: "recording-id" },
212
- theme: { attribute: "theme" }
2527
+ apiHost: { attribute: "api-host", reflect: !0 },
2528
+ recordingId: { attribute: "recording-id", reflect: !0 },
2529
+ size: { attribute: "size", reflect: !0 },
2530
+ preload: { attribute: "preload", reflect: !0 }
213
2531
  },
214
2532
  [],
215
2533
  [],