@vocalstack/player 0.1.0-alpha.54 → 0.1.0-alpha.56

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/index.js CHANGED
@@ -1,12 +1,12 @@
1
- var co = Object.defineProperty;
2
- var uo = (t, e, n) => e in t ? co(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
- var Me = (t, e, n) => uo(t, typeof e != "symbol" ? e + "" : e, n);
1
+ var uo = Object.defineProperty;
2
+ var ho = (t, e, n) => e in t ? uo(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var Me = (t, e, n) => ho(t, typeof e != "symbol" ? e + "" : e, n);
4
4
  import { jsx as i, jsxs as m, Fragment as xe } from "react/jsx-runtime";
5
- import { useState as j, useRef as w, useEffect as x, useLayoutEffect as tn, createContext as Bi, useMemo as ze, useContext as ho, useCallback as Je, Fragment as fo, forwardRef as Mo, useImperativeHandle as go } from "react";
6
- import { createPortal as mo } from "react-dom";
7
- import { VocalStackError as Hi, VocalStack as Wi } from "@vocalstack/js-sdk";
8
- const Fi = "https://vocalstack.com", po = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", yo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", No = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", To = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
9
- function vo({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
5
+ import { useState as z, useRef as w, useEffect as x, useLayoutEffect as tn, createContext as Hi, useMemo as ze, useContext as fo, useCallback as Je, Fragment as Mo, forwardRef as go, useImperativeHandle as mo } from "react";
6
+ import { createPortal as po } from "react-dom";
7
+ import { VocalStackError as Wi, VocalStack as Fi } from "@vocalstack/js-sdk";
8
+ const Zi = "https://vocalstack.com", yo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", No = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", To = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", vo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
9
+ function wo({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
10
10
  return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
11
11
  }
12
12
  const ee = {
@@ -53,9 +53,9 @@ const ee = {
53
53
  video: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"
54
54
  };
55
55
  function oe({ d: t, ...e }) {
56
- return /* @__PURE__ */ i(vo, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
56
+ return /* @__PURE__ */ i(wo, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
57
57
  }
58
- function wo({ size: t = 15 }) {
58
+ function ko({ size: t = 15 }) {
59
59
  return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
60
60
  }
61
61
  function xt({ size: t = 13 }) {
@@ -80,27 +80,27 @@ function Mt({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
80
80
  }
81
81
  );
82
82
  }
83
- function ko({ size: t = 12 }) {
83
+ function Lo({ size: t = 12 }) {
84
84
  return /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: [
85
85
  /* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
86
86
  /* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
87
87
  ] });
88
88
  }
89
- function Hn({ dark: t, height: e = 20, link: n = !0 }) {
90
- const r = /* @__PURE__ */ i("img", { src: t ? po : yo, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
91
- return n ? /* @__PURE__ */ i("a", { href: Fi, style: { display: "block" }, children: r }) : r;
89
+ function Fn({ dark: t, height: e = 20, link: n = !0 }) {
90
+ const r = /* @__PURE__ */ i("img", { src: t ? yo : No, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
91
+ return n ? /* @__PURE__ */ i("a", { href: Zi, style: { display: "block" }, children: r }) : r;
92
92
  }
93
93
  function Pr({ dark: t, size: e = 30 }) {
94
- return /* @__PURE__ */ i("img", { src: t ? No : To, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
94
+ return /* @__PURE__ */ i("img", { src: t ? To : vo, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
95
95
  }
96
- function Ti({ children: t, panel: e, inset: n, className: r = "", style: s }) {
96
+ function vi({ children: t, panel: e, inset: n, className: r = "", style: s }) {
97
97
  return /* @__PURE__ */ i("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
98
98
  }
99
99
  function Lt({ checked: t, onChange: e, label: n, disabled: r }) {
100
100
  return /* @__PURE__ */ i("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: r, onClick: () => e(!t), children: /* @__PURE__ */ i("span", { className: "vs-toggle__knob" }) });
101
101
  }
102
102
  function br({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
103
- const o = w(null), [l, c] = j(null), u = Math.max(0, n.findIndex((d) => d.value === t));
103
+ const o = w(null), [l, c] = z(null), u = Math.max(0, n.findIndex((d) => d.value === t));
104
104
  return tn(() => {
105
105
  const d = o.current;
106
106
  if (!d) return;
@@ -122,10 +122,10 @@ function br({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill
122
122
  ] }, d.value))
123
123
  ] });
124
124
  }
125
- function Lo({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
125
+ function jo({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
126
126
  return /* @__PURE__ */ i("button", { type: "button", className: `vs-icon-btn${r === "sm" ? " vs-icon-btn--sm" : ""}${s === "primary" ? " vs-icon-btn--primary" : ""}${o ? " vs-icon-btn--primary" : ""}${a ? "" : " vs-icon-btn--borderless"}`, onClick: e, "aria-label": n, title: l ?? n, children: t });
127
127
  }
128
- function Qn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
128
+ function Bn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
129
129
  if (u)
130
130
  return /* @__PURE__ */ i("button", { type: "button", className: "mutebtn vs-flagbtn", onClick: r, "aria-label": n ? e ? `${n} (${e})` : n : e || "Language", title: n ?? e, style: c, children: /* @__PURE__ */ i("span", { style: { fontSize: 20, lineHeight: 1, display: "flex" }, children: t }) });
131
131
  const d = a && !!e;
@@ -135,8 +135,8 @@ function Qn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
135
135
  /* @__PURE__ */ i(oe, { d: ee.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
136
136
  ] });
137
137
  }
138
- function jo({ value: t, label: e = "Copy", onCopied: n }) {
139
- const [r, s] = j(!1), a = async () => {
138
+ function zo({ value: t, label: e = "Copy", onCopied: n }) {
139
+ const [r, s] = z(!1), a = async () => {
140
140
  try {
141
141
  await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
142
142
  } catch {
@@ -160,7 +160,7 @@ function jo({ value: t, label: e = "Copy", onCopied: n }) {
160
160
  }
161
161
  );
162
162
  }
163
- function zo(t, e) {
163
+ function Io(t, e) {
164
164
  tn(() => {
165
165
  const n = t.current, r = window.visualViewport;
166
166
  if (!e || !n || !r) return;
@@ -178,14 +178,14 @@ function zo(t, e) {
178
178
  }, [t, e]);
179
179
  }
180
180
  function Or({ children: t, ms: e = 220 }) {
181
- const [n] = j(() => {
181
+ const [n] = z(() => {
182
182
  var r;
183
183
  return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, "(hover: hover) and (pointer: fine)").matches);
184
184
  });
185
- return n ? /* @__PURE__ */ i(Io, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
185
+ return n ? /* @__PURE__ */ i(bo, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
186
186
  }
187
- function Io({ children: t, ms: e }) {
188
- const n = w(null), r = w(null), [s, a] = j(null);
187
+ function bo({ children: t, ms: e }) {
188
+ const n = w(null), r = w(null), [s, a] = z(null);
189
189
  return tn(() => {
190
190
  const o = r.current, l = n.current;
191
191
  if (!o || !l) return;
@@ -211,7 +211,7 @@ function Io({ children: t, ms: e }) {
211
211
  }
212
212
  function nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a = "Done", children: o, drawer: l = !1, header: c, kind: u, sticky: d = !1 }) {
213
213
  const h = w(null);
214
- return zo(h, t), x(() => {
214
+ return Io(h, t), x(() => {
215
215
  if (!t) return;
216
216
  const M = (g) => {
217
217
  g.key === "Escape" && e();
@@ -228,29 +228,29 @@ function nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a
228
228
  /* @__PURE__ */ i("div", { className: "vs-sheet__body", children: o })
229
229
  ] }) }) : null;
230
230
  }
231
- Bi(0);
231
+ Hi(0);
232
232
  function xr({ children: t, style: e, className: n }) {
233
233
  return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
234
234
  }
235
- let Yn = null;
236
- function kd(t) {
237
- Yn = t;
235
+ let $n = null;
236
+ function Ld(t) {
237
+ $n = t;
238
238
  }
239
- function Zi(t) {
240
- Yn == null || Yn(t);
239
+ function Gi(t) {
240
+ $n == null || $n(t);
241
241
  }
242
- function Wn() {
242
+ function Zn() {
243
243
  try {
244
244
  return document.createElement("audio").canPlayType("audio/x-caf; codecs=opus") === "probably" ? "caf" : "ogg";
245
245
  } catch {
246
246
  return "ogg";
247
247
  }
248
248
  }
249
- function bo(t = {}) {
249
+ function Oo(t = {}) {
250
250
  const e = new URLSearchParams();
251
251
  return t.media ? e.set("media", t.media) : t.accessToken && e.set("access_token", t.accessToken), t.listenerToken && e.set("listenerToken", t.listenerToken), t.shareCode && e.set("shareCode", t.shareCode), e.toString();
252
252
  }
253
- async function Oo(t) {
253
+ async function xo(t) {
254
254
  try {
255
255
  const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
256
256
  if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
@@ -265,7 +265,7 @@ async function Oo(t) {
265
265
  return null;
266
266
  }
267
267
  }
268
- async function xo(t) {
268
+ async function Co(t) {
269
269
  try {
270
270
  const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
271
271
  return e.type === "opaqueredirect" || e.status >= 300 && e.status < 400;
@@ -273,42 +273,42 @@ async function xo(t) {
273
273
  return !1;
274
274
  }
275
275
  }
276
- function Co(t, e, n = {}) {
277
- const r = new URLSearchParams({ kind: "delivery", format: Wn() });
276
+ function So(t, e, n = {}) {
277
+ const r = new URLSearchParams({ kind: "delivery", format: Zn() });
278
278
  return n.media ? r.set("media", n.media) : n.accessToken && r.set("access_token", n.accessToken), n.listenerToken && r.set("listenerToken", n.listenerToken), n.shareCode && r.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
279
279
  }
280
- function vi(t, e, n = {}, r = "background") {
281
- const s = new URLSearchParams({ kind: r, format: Wn() });
280
+ function wi(t, e, n = {}, r = "background") {
281
+ const s = new URLSearchParams({ kind: r, format: Zn() });
282
282
  return n.media ? s.set("media", n.media) : n.accessToken && s.set("access_token", n.accessToken), n.listenerToken && s.set("listenerToken", n.listenerToken), n.shareCode && s.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
283
283
  }
284
- function Sn(t, e, n, r = {}) {
284
+ function An(t, e, n, r = {}) {
285
285
  const s = new URLSearchParams({ kind: n });
286
286
  return n === "delivery" && s.set("format", "mp3"), r.media ? s.set("media", r.media) : r.accessToken && s.set("access_token", r.accessToken), r.listenerToken && s.set("listenerToken", r.listenerToken), r.shareCode && s.set("shareCode", r.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
287
287
  }
288
- function So(t, e, n, r, s = {}) {
289
- return Do(t, e, n, r, "mp3", s);
288
+ function Do(t, e, n, r, s = {}) {
289
+ return Ao(t, e, n, r, "mp3", s);
290
290
  }
291
- function Do(t, e, n, r, s, a) {
291
+ function Ao(t, e, n, r, s, a) {
292
292
  const o = new URLSearchParams({ kind: "voice", lang: n, format: s });
293
293
  return r && o.set("voice", r), a.media ? o.set("media", a.media) : a.accessToken && o.set("access_token", a.accessToken), a.listenerToken && o.set("listenerToken", a.listenerToken), a.shareCode && o.set("shareCode", a.shareCode), `${t}/v1/recordings/${e}/audio?${o}`;
294
294
  }
295
- function Ao(t, e = !0) {
295
+ function Eo(t, e = !0) {
296
296
  const n = (t == null ? void 0 : t.code) ?? 0, r = n === 2 ? "the download failed" : n === 3 ? "this browser could not decode it" : n === 4 ? "the file is not available, or this browser cannot play it" : n === 1 ? "the load was stopped" : "something went wrong";
297
- return e && Gi(t), `The audio could not be played: ${r}.`;
297
+ return e && qi(t), `The audio could not be played: ${r}.`;
298
298
  }
299
- function Gi(t) {
299
+ function qi(t) {
300
300
  const e = (t == null ? void 0 : t.code) ?? 0;
301
- e !== 1 && Zi(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
301
+ e !== 1 && Gi(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
302
302
  }
303
- const Eo = 3e3;
304
- function _o(t, e, n) {
303
+ const _o = 3e3;
304
+ function Yo(t, e, n) {
305
305
  if (t !== 503) return null;
306
306
  const r = e == null || e.trim() === "" ? NaN : Number(e);
307
307
  if (Number.isFinite(r)) return Math.min(15e3, Math.max(1e3, r * 1e3));
308
308
  const s = n;
309
- return s && (s.retryable === !0 || s.code === "engine_unavailable") ? Eo : null;
309
+ return s && (s.retryable === !0 || s.code === "engine_unavailable") ? _o : null;
310
310
  }
311
- class Yo {
311
+ class Uo {
312
312
  constructor(e = {}) {
313
313
  Me(this, "entries", /* @__PURE__ */ new Map());
314
314
  Me(this, "wanted", []);
@@ -401,13 +401,13 @@ class Yo {
401
401
  }).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
402
402
  }
403
403
  }
404
- const qi = { video: !1 };
405
- function Ki(t) {
406
- if (!qi.video) return new Audio(t);
404
+ const Ki = { video: !1 };
405
+ function Ji(t) {
406
+ if (!Ki.video) return new Audio(t);
407
407
  const e = document.createElement("video");
408
408
  return e.playsInline = !0, t && (e.src = t), e;
409
409
  }
410
- class Ji extends Error {
410
+ class Xi extends Error {
411
411
  constructor() {
412
412
  super("The voice did not start in time."), this.name = "VoiceNotStarted";
413
413
  }
@@ -453,7 +453,7 @@ const rt = class rt {
453
453
  Me(this, "loading", null);
454
454
  Me(this, "readAhead", 0);
455
455
  Me(this, "readAheadS", 0);
456
- Me(this, "prefetch", new Yo());
456
+ Me(this, "prefetch", new Uo());
457
457
  Me(this, "warmed", /* @__PURE__ */ new Set());
458
458
  Me(this, "startingSince", /* @__PURE__ */ new Map());
459
459
  Me(this, "retries", /* @__PURE__ */ new Map());
@@ -789,7 +789,7 @@ const rt = class rt {
789
789
  const l = await fetch(n, { method: "GET" });
790
790
  s = l.ok, r = l.status === 202 || l.status === 503 || l.status === 429;
791
791
  const c = l.status === 503 ? await l.json().catch(() => null) : null;
792
- a = _o(l.status, l.headers.get("Retry-After"), c);
792
+ a = Yo(l.status, l.headers.get("Retry-After"), c);
793
793
  } catch {
794
794
  r = !0;
795
795
  }
@@ -810,7 +810,7 @@ const rt = class rt {
810
810
  }, a);
811
811
  return;
812
812
  }
813
- this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Ji()), this.onSentence(e);
813
+ this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Xi()), this.onSentence(e);
814
814
  return;
815
815
  }
816
816
  const o = (this.retries.get(e) ?? 0) + 1;
@@ -838,7 +838,7 @@ const rt = class rt {
838
838
  }
839
839
  element() {
840
840
  if (this.el) return this.el;
841
- const e = Ki();
841
+ const e = Ji();
842
842
  e.preload = "auto";
843
843
  const n = e;
844
844
  return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
@@ -892,14 +892,14 @@ const rt = class rt {
892
892
  };
893
893
  Me(rt, "WAIT_MS", 15e3), Me(rt, "START_WAIT_MS", 4e3), Me(rt, "COMING_MS", 12e4), Me(rt, "SKEW_LINES", 3), Me(rt, "RETRIES", 4), Me(rt, "RETRY_MS", 1200), Me(rt, "STARTING_MS", 3e5);
894
894
  let Cr = rt;
895
- function Xi(t, e) {
895
+ function ea(t, e) {
896
896
  return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
897
897
  }
898
- function Uo(t, e, n, r = {}, s) {
898
+ function $o(t, e, n, r = {}, s) {
899
899
  if (!t) return [];
900
900
  const a = s != null && s.length ? s : t.clips;
901
901
  if (!(a != null && a.length)) return [];
902
- const o = bo(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
902
+ const o = Oo(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
903
903
  return a.flatMap((u) => {
904
904
  var M, g;
905
905
  const d = (M = t.clipRev) == null ? void 0 : M[String(u)], h = Math.max(1, ((g = t.clipParts) == null ? void 0 : g[String(u)]) ?? 1);
@@ -908,7 +908,7 @@ function Uo(t, e, n, r = {}, s) {
908
908
  return {
909
909
  sentenceId: u,
910
910
  lang: t.lang,
911
- src: `${n}/v1/recordings/${e}/voice/${u}?lang=${encodeURIComponent(t.lang)}${c}&format=${Wn()}${y > 0 ? `&part=${y}` : ""}${d ? `&v=${encodeURIComponent(d)}` : ""}${l}`,
911
+ src: `${n}/v1/recordings/${e}/voice/${u}?lang=${encodeURIComponent(t.lang)}${c}&format=${Zn()}${y > 0 ? `&part=${y}` : ""}${d ? `&v=${encodeURIComponent(d)}` : ""}${l}`,
912
912
  durationS: h === 1 ? ((T = t.clipDur) == null ? void 0 : T[String(u)]) ?? 0 : 0,
913
913
  voice: t.voice ?? null,
914
914
  cloned: !1,
@@ -918,16 +918,16 @@ function Uo(t, e, n, r = {}, s) {
918
918
  });
919
919
  });
920
920
  }
921
- function ea(t, e) {
921
+ function ta(t, e) {
922
922
  const n = e.words;
923
923
  if (n && n.length === t.length && t.length > 0) {
924
924
  let r = 0;
925
925
  for (let s = 0; s < n.length && e.t >= n[s][0]; s++) r = s;
926
926
  return r;
927
927
  }
928
- return e.dur > 0 ? $o(t, e.t, e.dur) : null;
928
+ return e.dur > 0 ? Ro(t, e.t, e.dur) : null;
929
929
  }
930
- function $o(t, e, n) {
930
+ function Ro(t, e, n) {
931
931
  if (t.length <= 1 || !(n > 0)) return 0;
932
932
  const r = t.map((l) => l.t.length + 1.6), s = r.reduce((l, c) => l + c, 0);
933
933
  let a = 0;
@@ -945,7 +945,7 @@ function Ar(t, e) {
945
945
  return e;
946
946
  }
947
947
  }
948
- function ta(t, e) {
948
+ function na(t, e) {
949
949
  try {
950
950
  e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
951
951
  } catch {
@@ -953,42 +953,42 @@ function ta(t, e) {
953
953
  for (const n of Dr) n();
954
954
  }
955
955
  function Qr(t, e) {
956
- const [n, r] = j(() => Ar(t, e));
956
+ const [n, r] = z(() => Ar(t, e));
957
957
  return x(() => {
958
958
  const s = () => r(Ar(t, e));
959
959
  return Dr.add(s), window.addEventListener("storage", s), () => {
960
960
  Dr.delete(s), window.removeEventListener("storage", s);
961
961
  };
962
962
  }, [t]), [n, (s) => {
963
- r(s), ta(t, s);
963
+ r(s), na(t, s);
964
964
  }];
965
965
  }
966
- function wi(t) {
966
+ function ki(t) {
967
967
  const e = Ar(Sr, []);
968
- ta(Sr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
968
+ na(Sr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
969
969
  }
970
- function na() {
970
+ function ra() {
971
971
  const [t, e] = Qr(Sr, []), n = Array.isArray(t) ? t : [];
972
972
  return [n, (r) => {
973
973
  r && e([r, ...n.filter((s) => s !== r)].slice(0, 3));
974
974
  }];
975
975
  }
976
- function ra(t, e) {
976
+ function sa(t, e) {
977
977
  if (!t) return [];
978
978
  const n = new Set(t[e]);
979
979
  return t.languages.filter((r) => n.has(r.code)).map((r) => ({ code: r.code, label: r.name, native: r.native, flag: r.flag ?? "🌐", voice: !!r.voice }));
980
980
  }
981
- function Ro(t) {
981
+ function Po(t) {
982
982
  const [e, n] = Qr(`vs.pins.${t}`, null);
983
983
  return [Array.isArray(e) ? e : [], n];
984
984
  }
985
- const Po = 352;
986
- function Qo(t) {
985
+ const Qo = 352;
986
+ function Vo(t) {
987
987
  const [e, n] = Qr(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
988
- return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Po, n];
988
+ return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Qo, n];
989
989
  }
990
990
  function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: h }) {
991
- const [M, g] = j(""), [f, y] = j(!1), [T, N] = j(null);
991
+ const [M, g] = z(""), [f, y] = z(!1), [T, N] = z(null);
992
992
  x(() => {
993
993
  t && (g(""), y(!1), N(null));
994
994
  }, [t]);
@@ -1023,9 +1023,9 @@ function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1023
1023
  /* @__PURE__ */ i("div", { className: "vs-picker__native", children: E.native })
1024
1024
  ] }),
1025
1025
  /* @__PURE__ */ i("span", { className: "vs-picker__slot", children: k && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${E.label} from recent`, "aria-label": `Remove ${E.label} from recent`, onClick: (te) => {
1026
- te.stopPropagation(), wi(E.code);
1026
+ te.stopPropagation(), ki(E.code);
1027
1027
  }, onKeyDown: (te) => {
1028
- (te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), wi(E.code));
1028
+ (te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), ki(E.code));
1029
1029
  }, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16 }) }) }),
1030
1030
  /* @__PURE__ */ i("span", { className: `vs-picker__slot${C ? " vs-picker__slot--wide" : ""}`, title: E.voice ? "Voice available" : C ? "No voice speaks this language yet" : void 0, children: C ? T === E.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : E.voice && /* @__PURE__ */ i(oe, { d: ee.headphones, size: 16 }) }),
1031
1031
  /* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === E.code && (h === E.code ? /* @__PURE__ */ i(Mt, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: ee.check, size: 16, sw: 2.2 })) })
@@ -1068,12 +1068,12 @@ function Vr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1068
1068
  ] });
1069
1069
  return { search: I, list: W };
1070
1070
  }
1071
- function Vo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
1071
+ function Bo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
1072
1072
  const { search: o, list: l } = Vr({ ...a, open: t, onClose: e });
1073
1073
  return /* @__PURE__ */ i(nn, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
1074
1074
  }
1075
- function ki({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
1076
- const l = w(null), [c, u] = j(!1), [d, h] = j(!1), M = w(n);
1075
+ function Li({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
1076
+ const l = w(null), [c, u] = z(!1), [d, h] = z(!1), M = w(n);
1077
1077
  return M.current = n, x(() => {
1078
1078
  u(!1), h(!1);
1079
1079
  }, [t, e]), x(() => {
@@ -1123,7 +1123,7 @@ function ki({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
1123
1123
  c && /* @__PURE__ */ i("div", { className: `txyt__paused${r ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
1124
1124
  ] });
1125
1125
  }
1126
- const sa = [
1126
+ const ia = [
1127
1127
  { id: "youtube", name: "YouTube", color: "#ff3b30", hosts: /(^|\.)(youtube\.com|youtu\.be|youtube-nocookie\.com)$/, glyph: "M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z" },
1128
1128
  { id: "loom", name: "Loom", color: "#8f7bff", hosts: /(^|\.)loom\.com$/, glyph: "M21 11h-5.2l4.5-2.6-1-1.7-4.5 2.6 2.6-4.5-1.7-1-2.6 4.5V3h-2v5.3L8.5 3.8l-1.7 1 2.6 4.5-4.5-2.6-1 1.7L8.2 11H3v2h5.2l-4.5 2.6 1 1.7 4.5-2.6-2.6 4.5 1.7 1 2.6-4.5V21h2v-5.2l2.6 4.5 1.7-1-2.6-4.5 4.5 2.6 1-1.7-4.5-2.6H21v-2Zm-9 3.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8Z" },
1129
1129
  { id: "vimeo", name: "Vimeo", color: "#1ab7ea", hosts: /(^|\.)vimeo\.com$/, glyph: "M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z" },
@@ -1156,11 +1156,11 @@ const sa = [
1156
1156
  { id: "iheart", name: "iHeartRadio", color: "#c6002b", hosts: /(^|\.)iheart\.com$/, audioOnly: !0, glyph: "M12 21s-7.5-4.6-9.4-9.4C1.2 8 3.4 4 7.3 4c2 0 3.6 1.1 4.7 2.6C13.1 5.1 14.7 4 16.7 4c3.9 0 6.1 4 4.7 7.6C19.5 16.4 12 21 12 21Z" },
1157
1157
  { id: "audioboom", name: "Audioboom", color: "#1ea2e0", hosts: /(^|\.)audioboom\.com$/, audioOnly: !0, glyph: "M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm-4 6v6h2V9H8Zm3-2v10h2V7h-2Zm3 3v4h2v-4h-2Z" },
1158
1158
  { id: "cnn", name: "CNN", color: "#cc0000", hosts: /(^|\.)cnn\.com$/, glyph: "M2 7h20v10H2V7Zm3.5 2.2a2.8 2.8 0 1 0 0 5.6h1.4v-1.6H5.6a1.2 1.2 0 1 1 0-2.4h1.3V9.2H5.5Zm3 0v5.6h1.6v-3.3l2.4 3.3H14V9.2h-1.6v3.3L10 9.2H8.5Zm6.2 0v5.6h1.6v-3.3l2.4 3.3h1.5V9.2h-1.6v3.3l-2.4-3.3h-1.5Z" }
1159
- ], Bo = new Map(sa.map((t) => [t.id, t]));
1160
- function Ld(t) {
1161
- return t ? Bo.get(t) ?? null : null;
1159
+ ], Ho = new Map(ia.map((t) => [t.id, t]));
1160
+ function jd(t) {
1161
+ return t ? Ho.get(t) ?? null : null;
1162
1162
  }
1163
- function Ho(t) {
1163
+ function Wo(t) {
1164
1164
  const e = t == null ? void 0 : t.trim();
1165
1165
  if (!e) return null;
1166
1166
  try {
@@ -1170,8 +1170,8 @@ function Ho(t) {
1170
1170
  }
1171
1171
  }
1172
1172
  function Zt(t) {
1173
- const e = Ho(t);
1174
- return e ? sa.find((n) => n.hosts.test(e)) ?? null : null;
1173
+ const e = Wo(t);
1174
+ return e ? ia.find((n) => n.hosts.test(e)) ?? null : null;
1175
1175
  }
1176
1176
  function Ke(t) {
1177
1177
  try {
@@ -1181,12 +1181,12 @@ function Ke(t) {
1181
1181
  }
1182
1182
  }
1183
1183
  const Wt = (t) => Math.max(0, Math.floor(t));
1184
- function ia(t) {
1184
+ function aa(t) {
1185
1185
  var n;
1186
1186
  const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = Ke(t)) == null ? void 0 : n.pathname) ?? "");
1187
1187
  return e ? e[1].toLowerCase() : null;
1188
1188
  }
1189
- function Wo(t) {
1189
+ function Fo(t) {
1190
1190
  const e = Ke(t);
1191
1191
  if (!e) return null;
1192
1192
  const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
@@ -1194,14 +1194,14 @@ function Wo(t) {
1194
1194
  const s = n[r + 1];
1195
1195
  return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
1196
1196
  }
1197
- function Fo(t) {
1197
+ function Zo(t) {
1198
1198
  const e = Ke(t);
1199
1199
  if (!e) return null;
1200
1200
  if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
1201
1201
  const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
1202
1202
  return n ? n[1] : null;
1203
1203
  }
1204
- function Zo(t) {
1204
+ function Go(t) {
1205
1205
  const e = Ke(t);
1206
1206
  if (!e) return null;
1207
1207
  const n = e.pathname.split("/").filter(Boolean);
@@ -1211,40 +1211,40 @@ function Zo(t) {
1211
1211
  const s = n.indexOf("clip");
1212
1212
  return s >= 0 && n[s + 1] ? { clip: n[s + 1] } : n[0] ? { channel: n[0] } : null;
1213
1213
  }
1214
- const Go = (t) => {
1214
+ const qo = (t) => {
1215
1215
  const e = Wt(t);
1216
1216
  return `${Math.floor(e / 3600)}h${Math.floor(e % 3600 / 60)}m${e % 60}s`;
1217
1217
  };
1218
- function aa(t, e) {
1218
+ function oa(t, e) {
1219
1219
  var s, a, o, l, c, u, d, h, M, g;
1220
1220
  const n = Zt(t);
1221
1221
  if (!n) return null;
1222
1222
  const r = e.play ? 1 : 0;
1223
1223
  switch (n.id) {
1224
1224
  case "loom": {
1225
- const f = ia(t);
1225
+ const f = aa(t);
1226
1226
  if (!f) return null;
1227
1227
  const y = new URLSearchParams({ hide_owner: "true", hide_share: "true", hide_title: "true", hideEmbedTopBar: "true", hide_speed: "true", muted: "true", autoplay: e.play ? "true" : "false", t: String(Wt(e.t)) });
1228
1228
  return `https://www.loom.com/embed/${f}?${y}`;
1229
1229
  }
1230
1230
  case "vimeo": {
1231
- const f = Wo(t);
1231
+ const f = Fo(t);
1232
1232
  if (!f) return null;
1233
1233
  const y = new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0", title: "0", byline: "0", portrait: "0", dnt: "1" });
1234
1234
  return f.h && y.set("h", f.h), `https://player.vimeo.com/video/${f.id}?${y}#t=${Wt(e.t)}s`;
1235
1235
  }
1236
1236
  case "dailymotion": {
1237
- const f = Fo(t);
1237
+ const f = Zo(t);
1238
1238
  if (!f) return null;
1239
1239
  const y = new URLSearchParams({ autoplay: String(r), mute: "1", controls: "0", "queue-enable": "0", "sharing-enable": "0", "ui-start-screen-info": "0", start: String(Wt(e.t)), api: "postMessage" });
1240
1240
  return `https://www.dailymotion.com/embed/video/${f}?${y}`;
1241
1241
  }
1242
1242
  case "twitch": {
1243
- const f = Zo(t);
1243
+ const f = Go(t);
1244
1244
  if (!f || !e.host) return null;
1245
1245
  if (f.clip) return `https://clips.twitch.tv/embed?${new URLSearchParams({ clip: f.clip, parent: e.host, autoplay: String(!!e.play), muted: "true" })}`;
1246
1246
  const y = new URLSearchParams({ parent: e.host, autoplay: String(!!e.play), muted: "true" });
1247
- return f.video ? (y.set("video", `v${f.video}`), y.set("time", Go(e.t))) : f.channel && y.set("channel", f.channel), `https://player.twitch.tv/?${y}`;
1247
+ return f.video ? (y.set("video", `v${f.video}`), y.set("time", qo(e.t))) : f.channel && y.set("channel", f.channel), `https://player.twitch.tv/?${y}`;
1248
1248
  }
1249
1249
  case "facebook":
1250
1250
  return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false", show_captions: "false" })}`;
@@ -1300,10 +1300,10 @@ function aa(t, e) {
1300
1300
  return null;
1301
1301
  }
1302
1302
  }
1303
- function qo(t) {
1304
- return !!t && aa(t, { t: 0, play: !1, host: "localhost" }) != null;
1303
+ function Ko(t) {
1304
+ return !!t && oa(t, { t: 0, play: !1, host: "localhost" }) != null;
1305
1305
  }
1306
- function Ko(t, e) {
1306
+ function Jo(t, e) {
1307
1307
  const n = e == null ? void 0 : e.trim();
1308
1308
  if (!t || !n) return null;
1309
1309
  switch (t) {
@@ -1347,31 +1347,31 @@ function Ko(t, e) {
1347
1347
  return null;
1348
1348
  }
1349
1349
  }
1350
- function Jo(t) {
1351
- return !t || t.kind !== "url" ? null : Ko(t.site, t.embedId) ?? t.url ?? null;
1352
- }
1353
1350
  function Xo(t) {
1351
+ return !t || t.kind !== "url" ? null : Jo(t.site, t.embedId) ?? t.url ?? null;
1352
+ }
1353
+ function el(t) {
1354
1354
  const e = Ke(t);
1355
1355
  if (!e) return null;
1356
1356
  const n = /\/(?:medias|embed\/iframe|embed\/medias)\/([a-z0-9]+)/i.exec(e.pathname) ?? (/(^|\.)wi\.st$/i.test(e.hostname) ? /\/([a-z0-9]+)/i.exec(e.pathname) : null);
1357
1357
  return n ? n[1] : null;
1358
1358
  }
1359
- function el(t) {
1359
+ function tl(t) {
1360
1360
  var n;
1361
1361
  const e = /\/(?:watch\/)?([A-Za-z0-9_-]{16,})(?:\.html)?\/?$/.exec(((n = Ke(t)) == null ? void 0 : n.pathname) ?? "");
1362
1362
  return e ? e[1] : null;
1363
1363
  }
1364
- const tl = { dailymotion: /(^|\.)dailymotion\.com$/ };
1365
- function nl(t) {
1364
+ const nl = { dailymotion: /(^|\.)dailymotion\.com$/ };
1365
+ function rl(t) {
1366
1366
  const e = Zt(t);
1367
- return e ? tl[e.id] ?? null : null;
1367
+ return e ? nl[e.id] ?? null : null;
1368
1368
  }
1369
- function rl({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
1369
+ function sl({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
1370
1370
  const o = w(e);
1371
1371
  o.current = e;
1372
- const [l, c] = j(!1), u = typeof window < "u" ? window.location.hostname : "localhost", d = ze(() => aa(t, { t: o.current, play: n, host: u }), [t, n, r, u]), [h, M] = j(!1), g = w(!1);
1372
+ const [l, c] = z(!1), u = typeof window < "u" ? window.location.hostname : "localhost", d = ze(() => oa(t, { t: o.current, play: n, host: u }), [t, n, r, u]), [h, M] = z(!1), g = w(!1);
1373
1373
  return x(() => {
1374
- const f = nl(t);
1374
+ const f = rl(t);
1375
1375
  if (!f) return;
1376
1376
  g.current = !1, M(!1);
1377
1377
  const y = (N) => {
@@ -1407,9 +1407,9 @@ function rl({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
1407
1407
  l && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
1408
1408
  ] });
1409
1409
  }
1410
- let Dn = null;
1411
- function sl() {
1412
- return Dn || (Dn = new Promise((t) => {
1410
+ let En = null;
1411
+ function il() {
1412
+ return En || (En = new Promise((t) => {
1413
1413
  const e = window;
1414
1414
  if (e.FB) {
1415
1415
  t(e.FB);
@@ -1422,13 +1422,13 @@ function sl() {
1422
1422
  };
1423
1423
  const r = document.createElement("script");
1424
1424
  r.src = "https://connect.facebook.net/en_US/sdk.js", r.async = !0, r.crossOrigin = "anonymous", r.onerror = () => t(null), document.body.appendChild(r);
1425
- }), Dn);
1425
+ }), En);
1426
1426
  }
1427
- let il = 0;
1428
- function al({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
1427
+ let al = 0;
1428
+ function ol({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
1429
1429
  const a = w(null), o = w(null), l = w(e);
1430
1430
  l.current = e;
1431
- const [c, u] = j(!1), [d] = j(() => `vsp-fb-${++il}`);
1431
+ const [c, u] = z(!1), [d] = z(() => `vsp-fb-${++al}`);
1432
1432
  return x(() => {
1433
1433
  let h = !0;
1434
1434
  const M = a.current;
@@ -1447,7 +1447,7 @@ function al({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
1447
1447
  u(!0);
1448
1448
  }
1449
1449
  };
1450
- return sl().then((T) => {
1450
+ return il().then((T) => {
1451
1451
  !h || !T || (f = T, T.Event.subscribe("xfbml.ready", y), T.XFBML.parse(M));
1452
1452
  }), () => {
1453
1453
  h = !1, o.current = null, u(!1);
@@ -1487,19 +1487,19 @@ function al({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
1487
1487
  c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
1488
1488
  ] });
1489
1489
  }
1490
- let An = null;
1491
- function ol() {
1492
- return An || (An = new Promise((t) => {
1490
+ let _n = null;
1491
+ function ll() {
1492
+ return _n || (_n = new Promise((t) => {
1493
1493
  const e = document.createElement("script");
1494
1494
  e.src = "https://fast.wistia.net/assets/external/E-v1.js", e.async = !0, e.onload = () => t(), e.onerror = () => t(), document.head.appendChild(e);
1495
- }), An);
1495
+ }), _n);
1496
1496
  }
1497
- function ll({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
1497
+ function cl({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
1498
1498
  const a = w(null), o = w(e);
1499
1499
  o.current = e;
1500
1500
  const l = w(n);
1501
1501
  l.current = n;
1502
- const [c, u] = j(!1);
1502
+ const [c, u] = z(!1);
1503
1503
  x(() => {
1504
1504
  let h = !0;
1505
1505
  const M = window;
@@ -1515,7 +1515,7 @@ function ll({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
1515
1515
  u(!0);
1516
1516
  }
1517
1517
  }
1518
- }), ol(), () => {
1518
+ }), ll(), () => {
1519
1519
  h = !1, a.current = null, u(!1);
1520
1520
  };
1521
1521
  }, [t]), x(() => {
@@ -1550,9 +1550,9 @@ function ll({ id: t, t: e, playing: n, seekN: r, onToggle: s }) {
1550
1550
  c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
1551
1551
  ] });
1552
1552
  }
1553
- let En = null;
1554
- function cl() {
1555
- return En || (En = new Promise((t) => {
1553
+ let Yn = null;
1554
+ function ul() {
1555
+ return Yn || (Yn = new Promise((t) => {
1556
1556
  const e = window;
1557
1557
  if (e.VidyardV4) {
1558
1558
  t(e.VidyardV4.api);
@@ -1565,19 +1565,19 @@ function cl() {
1565
1565
  };
1566
1566
  s();
1567
1567
  }, n.onerror = () => t(null), document.head.appendChild(n);
1568
- }), En);
1568
+ }), Yn);
1569
1569
  }
1570
- function ul({ uuid: t, t: e, playing: n, seekN: r, onToggle: s }) {
1570
+ function dl({ uuid: t, t: e, playing: n, seekN: r, onToggle: s }) {
1571
1571
  const a = w(null), o = w(null), l = w(e);
1572
1572
  l.current = e;
1573
1573
  const c = w(n);
1574
1574
  c.current = n;
1575
- const [u, d] = j(!1);
1575
+ const [u, d] = z(!1);
1576
1576
  return x(() => {
1577
1577
  let h = !0;
1578
1578
  const M = a.current;
1579
1579
  if (M)
1580
- return M.innerHTML = "", cl().then((g) => {
1580
+ return M.innerHTML = "", ul().then((g) => {
1581
1581
  if (!(!h || !g))
1582
1582
  return g.renderPlayer({ uuid: t, container: M, type: "inline", autoplay: 0, muted: 1, controls: 0 }).then((f) => {
1583
1583
  if (h) {
@@ -1623,7 +1623,7 @@ function ul({ uuid: t, t: e, playing: n, seekN: r, onToggle: s }) {
1623
1623
  u && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
1624
1624
  ] });
1625
1625
  }
1626
- async function dl(t) {
1626
+ async function hl(t) {
1627
1627
  try {
1628
1628
  const e = await fetch(`https://www.loom.com/api/campaigns/sessions/${t}/raw-url`, { method: "POST" });
1629
1629
  if (!e.ok || e.status === 204) return null;
@@ -1633,17 +1633,17 @@ async function dl(t) {
1633
1633
  return null;
1634
1634
  }
1635
1635
  }
1636
- function hl(t) {
1636
+ function fl(t) {
1637
1637
  const e = t.includes("?") ? t.slice(t.indexOf("?") + 1) : "";
1638
1638
  return (n, r) => {
1639
1639
  e && !r.includes("Signature=") && n.open("GET", r + (r.includes("?") ? "&" : "?") + e, !0);
1640
1640
  };
1641
1641
  }
1642
- function fl(t) {
1642
+ function Ml(t) {
1643
1643
  return (e, n) => {
1644
1644
  let r = !0, s = null;
1645
1645
  return (async () => {
1646
- const a = await dl(t);
1646
+ const a = await hl(t);
1647
1647
  if (!r) return;
1648
1648
  if (!a) {
1649
1649
  n();
@@ -1656,7 +1656,7 @@ function fl(t) {
1656
1656
  n();
1657
1657
  return;
1658
1658
  }
1659
- const c = new l({ xhrSetup: hl(a), capLevelToPlayerSize: !0, startLevel: 0, maxBufferLength: 20 });
1659
+ const c = new l({ xhrSetup: fl(a), capLevelToPlayerSize: !0, startLevel: 0, maxBufferLength: 20 });
1660
1660
  c.on(l.Events.ERROR, (u, d) => {
1661
1661
  d.fatal && (c.destroy(), n());
1662
1662
  }), c.loadSource(a), c.attachMedia(e), s = () => c.destroy();
@@ -1666,8 +1666,8 @@ function fl(t) {
1666
1666
  };
1667
1667
  }
1668
1668
  const cn = /* @__PURE__ */ new Map();
1669
- function Ml(t) {
1670
- const [e, n] = j(() => t ? cn.get(t) ?? null : null);
1669
+ function gl(t) {
1670
+ const [e, n] = z(() => t ? cn.get(t) ?? null : null);
1671
1671
  return x(() => {
1672
1672
  if (!t) {
1673
1673
  n(null);
@@ -1688,11 +1688,11 @@ function Ml(t) {
1688
1688
  };
1689
1689
  }, [t]), e;
1690
1690
  }
1691
- const gl = /^[0-9a-f]{16,}$/i, Li = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1692
- function ml(t) {
1691
+ const ml = /^[0-9a-f]{16,}$/i, ji = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1692
+ function pl(t) {
1693
1693
  const e = (r) => {
1694
1694
  const s = r == null ? void 0 : r.trim();
1695
- return s && s !== t.id && !Li.test(s) && !gl.test(s) ? s : null;
1695
+ return s && s !== t.id && !ji.test(s) && !ml.test(s) ? s : null;
1696
1696
  }, n = (() => {
1697
1697
  if (!t.url) return null;
1698
1698
  try {
@@ -1701,39 +1701,39 @@ function ml(t) {
1701
1701
  return null;
1702
1702
  }
1703
1703
  })();
1704
- return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (Li.test(t.id) ? "VocalStack" : t.id);
1704
+ return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (ji.test(t.id) ? "VocalStack" : t.id);
1705
1705
  }
1706
- const pl = 0.3;
1707
- function ji(t, e) {
1708
- t.muted = e.muted, Math.abs(t.currentTime - e.t) > pl && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
1706
+ const yl = 0.3;
1707
+ function zi(t, e) {
1708
+ t.muted = e.muted, Math.abs(t.currentTime - e.t) > yl && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
1709
1709
  }) : t.paused || t.pause();
1710
1710
  }
1711
- const Vn = "Remove background sound", yl = "Takes out everything that isn't speech: music, ambience and noise.";
1712
- function Nl(t) {
1711
+ const Hn = "Remove background sound", Nl = "Takes out everything that isn't speech: music, ambience and noise.";
1712
+ function Tl(t) {
1713
1713
  const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = String(e % 60).padStart(2, "0");
1714
1714
  return n ? `${n}:${String(r).padStart(2, "0")}:${s}` : `${r}:${s}`;
1715
1715
  }
1716
- function Tl(t, e, n = "transcription", r = 0) {
1717
- return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${Nl(r)}` : "Separating the speech from the background…" : yl;
1716
+ function vl(t, e, n = "transcription", r = 0) {
1717
+ return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${Tl(r)}` : "Separating the speech from the background…" : Nl;
1718
1718
  }
1719
- function vl(t, e) {
1719
+ function wl(t, e) {
1720
1720
  return { bed: e && !t, speech: !e && t };
1721
1721
  }
1722
- function wl(t) {
1722
+ function kl(t) {
1723
1723
  const e = t.get("bg");
1724
1724
  return e === "off" || e === "remove";
1725
1725
  }
1726
- function kl(t, e) {
1726
+ function Ll(t, e) {
1727
1727
  e ? t.searchParams.set("bg", "remove") : t.searchParams.delete("bg");
1728
1728
  }
1729
- function Ll(t, e) {
1729
+ function jl(t, e) {
1730
1730
  var r, s;
1731
1731
  if (t !== 503) return null;
1732
1732
  const n = (s = (r = e == null ? void 0 : e.data) == null ? void 0 : r.details) == null ? void 0 : s.retryAfterS;
1733
1733
  return typeof n == "number" && n > 0 ? Math.max(2, n) : 3;
1734
1734
  }
1735
- const jl = 0.05;
1736
- function zl(t) {
1735
+ const zl = 0.05;
1736
+ function Il(t) {
1737
1737
  var r, s;
1738
1738
  const e = (s = (r = t == null ? void 0 : t.data) == null ? void 0 : r.details) == null ? void 0 : s.parts, n = [];
1739
1739
  if (Array.isArray(e))
@@ -1745,8 +1745,8 @@ function zl(t) {
1745
1745
  }
1746
1746
  return { untilS: n.length ? n[n.length - 1].endS : 0, parts: n };
1747
1747
  }
1748
- function Il(t, e) {
1749
- if (!t.length || e < 0 || e >= t[t.length - 1].endS - jl) return -1;
1748
+ function bl(t, e) {
1749
+ if (!t.length || e < 0 || e >= t[t.length - 1].endS - zl) return -1;
1750
1750
  let n = 0, r = t.length - 1;
1751
1751
  for (; n < r; ) {
1752
1752
  const s = n + r + 1 >> 1;
@@ -1754,23 +1754,23 @@ function Il(t, e) {
1754
1754
  }
1755
1755
  return n;
1756
1756
  }
1757
- function bl(t, e, n, r) {
1757
+ function Ol(t, e, n, r) {
1758
1758
  const s = t[e].startS, a = n[r] === s ? r : n[1 - r] === s ? 1 - r : r, o = [];
1759
1759
  n[a] !== s && o.push([a, e]);
1760
1760
  const l = 1 - a;
1761
1761
  return e + 1 < t.length && n[l] !== t[e + 1].startS && o.push([l, e + 1]), { play: a, load: o };
1762
1762
  }
1763
- async function Ol(t) {
1763
+ async function xl(t) {
1764
1764
  const e = await fetch(t, { redirect: "manual", credentials: "omit" });
1765
1765
  if (e.type === "opaqueredirect" || e.status >= 300 && e.status < 400 || e.ok) return { ready: !0 };
1766
1766
  const n = await e.json().catch(() => null);
1767
- return { ready: !1, retryS: Ll(e.status, n), ...zl(n) };
1767
+ return { ready: !1, retryS: jl(e.status, n), ...Il(n) };
1768
1768
  }
1769
1769
  function Tr(t) {
1770
1770
  t && (t.pause(), t.removeAttribute("src"), t.load());
1771
1771
  }
1772
- function oa(t, e) {
1773
- const [n, r] = j("off"), [s, a] = j([]), [o, l] = j(!1), c = w(null), u = w([null, null]), d = w([NaN, NaN]), h = w(0);
1772
+ function la(t, e) {
1773
+ const [n, r] = z("off"), [s, a] = z([]), [o, l] = z(!1), c = w(null), u = w([null, null]), d = w([NaN, NaN]), h = w(0);
1774
1774
  return x(() => {
1775
1775
  if (a([]), l(!1), !t) {
1776
1776
  r("off");
@@ -1779,7 +1779,7 @@ function oa(t, e) {
1779
1779
  let M = !1, g;
1780
1780
  r("making");
1781
1781
  const f = () => {
1782
- Ol(t).then((y) => {
1782
+ xl(t).then((y) => {
1783
1783
  if (!M) {
1784
1784
  if (y.ready) {
1785
1785
  const T = new Audio();
@@ -1808,34 +1808,34 @@ function oa(t, e) {
1808
1808
  for (const N of u.current) N && !N.paused && N.pause();
1809
1809
  };
1810
1810
  if (n === "ready" && c.current) {
1811
- M(), ji(c.current, e), l(!0);
1811
+ M(), zi(c.current, e), l(!0);
1812
1812
  return;
1813
1813
  }
1814
- const g = n === "making" ? Il(s, e.t) : -1;
1814
+ const g = n === "making" ? bl(s, e.t) : -1;
1815
1815
  if (g < 0) {
1816
1816
  M(), l(!1);
1817
1817
  return;
1818
1818
  }
1819
- const f = bl(s, g, d.current, h.current);
1819
+ const f = Ol(s, g, d.current, h.current);
1820
1820
  for (const [N, p] of f.load) {
1821
1821
  let b = u.current[N];
1822
1822
  b || (b = new Audio(), b.preload = "auto", u.current[N] = b), b.pause(), b.src = s[p].url, d.current[N] = s[p].startS;
1823
1823
  }
1824
1824
  h.current = f.play;
1825
1825
  const y = u.current[f.play], T = u.current[1 - f.play];
1826
- T && !T.paused && T.pause(), ji(y, { ...e, t: e.t - s[g].startS }), l(!e.playing || y.readyState >= 3);
1826
+ T && !T.paused && T.pause(), zi(y, { ...e, t: e.t - s[g].startS }), l(!e.playing || y.readyState >= 3);
1827
1827
  }, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
1828
1828
  }
1829
- function xl(t, e) {
1830
- return oa(t, e).state;
1829
+ function Cl(t, e) {
1830
+ return la(t, e).state;
1831
1831
  }
1832
- const Cl = 0.5, Sl = 3;
1832
+ const Sl = 0.5, Dl = 3;
1833
1833
  function Br(t, e) {
1834
1834
  let n = -1;
1835
1835
  for (let r = 0; r < t.length && t[r].start <= e + 0.02; r++) n = r;
1836
1836
  return n;
1837
1837
  }
1838
- function Dl(t, e, n) {
1838
+ function Al(t, e, n) {
1839
1839
  const r = Br(t, n);
1840
1840
  if (r < 0) return { kind: "none" };
1841
1841
  const s = t[r];
@@ -1853,14 +1853,14 @@ function Dl(t, e, n) {
1853
1853
  }
1854
1854
  return { kind: "done", sid: s.sid };
1855
1855
  }
1856
- function Al(t, e, n) {
1856
+ function El(t, e, n) {
1857
1857
  if (n == null) return !1;
1858
1858
  const r = Br(t, e);
1859
1859
  if (r < 0) return !1;
1860
1860
  const s = t[r];
1861
1861
  return e >= s.end ? s.sid === n : r > 0 && t[r - 1].sid === n && e - s.start < 1.5;
1862
1862
  }
1863
- function El(t, e, n, r = Sl) {
1863
+ function _l(t, e, n, r = Dl) {
1864
1864
  const s = Math.max(0, Br(t, n)), a = [];
1865
1865
  for (let o = s; o < t.length && o <= s + r; o++) {
1866
1866
  const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
@@ -1868,12 +1868,12 @@ function El(t, e, n, r = Sl) {
1868
1868
  }
1869
1869
  return a;
1870
1870
  }
1871
- function _l(t) {
1871
+ function Yl(t) {
1872
1872
  const e = ze(() => {
1873
1873
  const c = /* @__PURE__ */ new Map();
1874
1874
  for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
1875
1875
  return c;
1876
- }, [t.clips]), n = w(/* @__PURE__ */ new Map()), r = w(null), [s, a] = j({ missing: null, sid: null }), o = (c) => {
1876
+ }, [t.clips]), n = w(/* @__PURE__ */ new Map()), r = w(null), [s, a] = z({ missing: null, sid: null }), o = (c) => {
1877
1877
  let u = n.current.get(c);
1878
1878
  return u || (u = new Audio(), u.preload = "auto", u.src = c, n.current.set(c, u)), u;
1879
1879
  }, l = () => {
@@ -1889,9 +1889,9 @@ function _l(t) {
1889
1889
  l(), a((f) => f.missing == null && f.sid == null ? f : { missing: null, sid: null });
1890
1890
  return;
1891
1891
  }
1892
- const c = Dl(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
1892
+ const c = Al(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
1893
1893
  a((f) => f.missing === u && f.sid === d ? f : { missing: u, sid: d });
1894
- const h = new Set(El(t.lines, e, t.t));
1894
+ const h = new Set(_l(t.lines, e, t.t));
1895
1895
  for (const f of h) o(f);
1896
1896
  const M = r.current;
1897
1897
  M && h.add(M.src);
@@ -1901,12 +1901,12 @@ function _l(t) {
1901
1901
  return;
1902
1902
  }
1903
1903
  if (c.kind !== "play") {
1904
- if (M && !M.el.paused && !M.el.ended && Al(t.lines, t.t, M.sid)) return;
1904
+ if (M && !M.el.paused && !M.el.ended && El(t.lines, t.t, M.sid)) return;
1905
1905
  M && M.el.pause(), r.current = null;
1906
1906
  return;
1907
1907
  }
1908
1908
  if (M && M.src === c.src) {
1909
- if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > Cl)
1909
+ if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > Sl)
1910
1910
  try {
1911
1911
  M.el.currentTime = c.offset;
1912
1912
  } catch {
@@ -1926,8 +1926,8 @@ function _l(t) {
1926
1926
  });
1927
1927
  }, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
1928
1928
  }
1929
- const zi = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1930
- function Yl(t, e) {
1929
+ const Ii = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1930
+ function Ul(t, e) {
1931
1931
  var n, r;
1932
1932
  if (t === "play") {
1933
1933
  e.playing || e.toggle();
@@ -1943,31 +1943,31 @@ function Yl(t, e) {
1943
1943
  }
1944
1944
  (r = e.prev) == null || r.call(e);
1945
1945
  }
1946
- function Ul(t, e) {
1947
- for (const n of zi)
1946
+ function $l(t, e) {
1947
+ for (const n of Ii)
1948
1948
  try {
1949
1949
  t.setActionHandler(n, () => {
1950
1950
  const r = e();
1951
- r && Yl(n, r);
1951
+ r && Ul(n, r);
1952
1952
  });
1953
1953
  } catch {
1954
1954
  }
1955
1955
  return () => {
1956
- for (const n of zi)
1956
+ for (const n of Ii)
1957
1957
  try {
1958
1958
  t.setActionHandler(n, null);
1959
1959
  } catch {
1960
1960
  }
1961
1961
  };
1962
1962
  }
1963
- function $l(t, e) {
1963
+ function Rl(t, e) {
1964
1964
  const n = w(t);
1965
1965
  n.current = t;
1966
1966
  const r = !!t;
1967
1967
  x(() => {
1968
1968
  const a = typeof navigator < "u" ? navigator.mediaSession : void 0;
1969
1969
  if (!(!a || !r))
1970
- return Ul(a, () => n.current);
1970
+ return $l(a, () => n.current);
1971
1971
  }, [r]);
1972
1972
  const s = !!(t != null && t.playing);
1973
1973
  x(() => {
@@ -1999,7 +1999,7 @@ function en() {
1999
1999
  spans: []
2000
2000
  };
2001
2001
  }
2002
- function Rl(t, e) {
2002
+ function Pl(t, e) {
2003
2003
  for (const r of t.spans) {
2004
2004
  const s = r.mediaEnd ?? 1 / 0;
2005
2005
  if (e < s || r.mediaEnd == null) return r.wallStart + Math.max(0, e - r.mediaStart);
@@ -2072,11 +2072,11 @@ function vr(t, e) {
2072
2072
  ])
2073
2073
  ), n;
2074
2074
  }
2075
- function Ii(t, e) {
2075
+ function bi(t, e) {
2076
2076
  const n = e ?? {};
2077
2077
  return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
2078
2078
  }
2079
- function Pl(t, e) {
2079
+ function Ql(t, e) {
2080
2080
  const n = e.tail;
2081
2081
  if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
2082
2082
  let r = !1;
@@ -2093,7 +2093,7 @@ function Pl(t, e) {
2093
2093
  }
2094
2094
  return r;
2095
2095
  }
2096
- function Ql(t, e) {
2096
+ function Vl(t, e) {
2097
2097
  var n;
2098
2098
  switch (delete t.numbers, e.type) {
2099
2099
  case "transcript.committed": {
@@ -2113,7 +2113,7 @@ function Ql(t, e) {
2113
2113
  confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
2114
2114
  latencyS: r.latencyS,
2115
2115
  language: r.language,
2116
- translations: Ii(s == null ? void 0 : s.translations, r.translations),
2116
+ translations: bi(s == null ? void 0 : s.translations, r.translations),
2117
2117
  scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
2118
2118
  scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
2119
2119
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
@@ -2134,7 +2134,7 @@ function Ql(t, e) {
2134
2134
  }
2135
2135
  case "transcript.amended": {
2136
2136
  const r = t.segments.get(e.seq);
2137
- if (r && r.corrected && Pl(r.words, e)) {
2137
+ if (r && r.corrected && Ql(r.words, e)) {
2138
2138
  r.text = e.text, r.words = hn(e.seq, e.tail.words);
2139
2139
  break;
2140
2140
  }
@@ -2182,7 +2182,7 @@ function Ql(t, e) {
2182
2182
  seqs: r.seqs,
2183
2183
  speaker: r.speaker,
2184
2184
  start: r.start,
2185
- wallStart: Rl(t, r.start),
2185
+ wallStart: Pl(t, r.start),
2186
2186
  text: a ? s.text : r.text,
2187
2187
  status: r.status === "open" ? "open" : "closed",
2188
2188
  settled: !!r.settled,
@@ -2191,7 +2191,7 @@ function Ql(t, e) {
2191
2191
  suppressed: !!r.suppressed,
2192
2192
  unclear: !!r.unclear,
2193
2193
  language: r.language,
2194
- translations: a ? s.translations : Ii(s == null ? void 0 : s.translations, r.translations),
2194
+ translations: a ? s.translations : bi(s == null ? void 0 : s.translations, r.translations),
2195
2195
  provisional: !!r.provisional,
2196
2196
  translationLatencyS: r.translationLatencyS
2197
2197
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
@@ -2234,7 +2234,7 @@ function Ql(t, e) {
2234
2234
  }
2235
2235
  return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
2236
2236
  }
2237
- function Vl(t) {
2237
+ function Bl(t) {
2238
2238
  const e = [], n = [...t.sentences.values()].sort((r, s) => r.start - s.start || (r.sentenceId ?? 0) - (s.sentenceId ?? 0));
2239
2239
  for (const r of n) {
2240
2240
  const s = r.seqs.map((l) => t.segments.get(l)).filter(Boolean), a = s.length === r.seqs.length || !r.text ? s.flatMap((l) => l.words) : [], o = s[s.length - 1];
@@ -2247,16 +2247,16 @@ function Vl(t) {
2247
2247
  catchup: s.some((l) => l.catchup),
2248
2248
  suppressed: r.suppressed || s.length > 0 && s.every((l) => l.suppressed),
2249
2249
  unclear: r.unclear || s.length > 0 && s.every((l) => l.unclear),
2250
- confidence: Bl(s),
2250
+ confidence: Hl(s),
2251
2251
  latencyS: o == null ? void 0 : o.latencyS,
2252
2252
  settled: r.settled || s.length > 0 && s.every((l) => l.settled),
2253
- translations: Object.keys(r.translations).length ? r.translations : Hl(s),
2253
+ translations: Object.keys(r.translations).length ? r.translations : Wl(s),
2254
2254
  speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
2255
2255
  });
2256
2256
  }
2257
2257
  return e.sort((r, s) => r.start - s.start), e;
2258
2258
  }
2259
- function Bl(t) {
2259
+ function Hl(t) {
2260
2260
  let e = 0, n = 0;
2261
2261
  for (const r of t) {
2262
2262
  if (r.confidence == null) continue;
@@ -2265,20 +2265,20 @@ function Bl(t) {
2265
2265
  }
2266
2266
  return n ? e / n : void 0;
2267
2267
  }
2268
- function Hl(t) {
2268
+ function Wl(t) {
2269
2269
  const e = {};
2270
2270
  for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
2271
2271
  return e;
2272
2272
  }
2273
- const Wl = 0.85, Fl = 0.75;
2274
- function Zl(t) {
2275
- return t == null ? "" : t < Fl ? "low" : t < Wl ? "mid" : "";
2276
- }
2277
- const _n = ["a", "b", "c", "d", "e", "f", "g", "h"];
2273
+ const Fl = 0.85, Zl = 0.75;
2278
2274
  function Gl(t) {
2279
- return _n[(t % _n.length + _n.length) % _n.length];
2275
+ return t == null ? "" : t < Zl ? "low" : t < Fl ? "mid" : "";
2280
2276
  }
2277
+ const Un = ["a", "b", "c", "d", "e", "f", "g", "h"];
2281
2278
  function ql(t) {
2279
+ return Un[(t % Un.length + Un.length) % Un.length];
2280
+ }
2281
+ function Kl(t) {
2282
2282
  if (t.numbers) return t.numbers;
2283
2283
  const e = /* @__PURE__ */ new Map(), n = (a, o) => {
2284
2284
  if (a < 0) return;
@@ -2292,28 +2292,28 @@ function ql(t) {
2292
2292
  const r = [...e].sort((a, o) => a[1] - o[1] || a[0] - o[0]).map(([a]) => a), s = [...new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)].map(Number))].filter((a) => a >= 0 && !e.has(a)).sort((a, o) => a - o);
2293
2293
  return t.numbers = new Map([...r, ...s].map((a, o) => [a, o + 1])), t.numbers;
2294
2294
  }
2295
- function Bn(t, e) {
2295
+ function Wn(t, e) {
2296
2296
  if (e < 0) return 0;
2297
- const n = ql(t);
2297
+ const n = Kl(t);
2298
2298
  return n.get(e) ?? n.size + 1 + e;
2299
2299
  }
2300
- const Kl = /^\s*speaker\s+\d+\s*$/i;
2301
- function bi(t) {
2302
- return t && t.trim() && !Kl.test(t) ? t : void 0;
2300
+ const Jl = /^\s*speaker\s+\d+\s*$/i;
2301
+ function Oi(t) {
2302
+ return t && t.trim() && !Jl.test(t) ? t : void 0;
2303
2303
  }
2304
- function la(t, e) {
2304
+ function ca(t, e) {
2305
2305
  var n;
2306
- return bi(t.speakers[e]) ?? bi((n = t.speakerIds[e]) == null ? void 0 : n.name);
2306
+ return Oi(t.speakers[e]) ?? Oi((n = t.speakerIds[e]) == null ? void 0 : n.name);
2307
2307
  }
2308
2308
  function Hr(t, e) {
2309
- return e < 0 ? "" : la(t, e) ?? `Speaker ${Bn(t, e)}`;
2309
+ return e < 0 ? "" : ca(t, e) ?? `Speaker ${Wn(t, e)}`;
2310
2310
  }
2311
- function ca(t, e) {
2311
+ function ua(t, e) {
2312
2312
  if (e < 0) return "?";
2313
- const n = la(t, e);
2314
- return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Bn(t, e)}`).toUpperCase() : `S${Bn(t, e)}`;
2313
+ const n = ca(t, e);
2314
+ return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Wn(t, e)}`).toUpperCase() : `S${Wn(t, e)}`;
2315
2315
  }
2316
- function Jl(t) {
2316
+ function Xl(t) {
2317
2317
  if (t) {
2318
2318
  if (t.startsWith("#"))
2319
2319
  return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
@@ -2322,10 +2322,10 @@ function Jl(t) {
2322
2322
  }
2323
2323
  }
2324
2324
  function Wr(t, e) {
2325
- const n = t.speakerIds[e], r = Jl(n == null ? void 0 : n.color);
2326
- return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: Gl(Bn(t, e) - 1), hasVoice: !!n };
2325
+ const n = t.speakerIds[e], r = Xl(n == null ? void 0 : n.color);
2326
+ return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: ql(Wn(t, e) - 1), hasVoice: !!n };
2327
2327
  }
2328
- function Xl(t, e, n, r = !1) {
2328
+ function ec(t, e, n, r = !1) {
2329
2329
  const s = n ? n.speakerLabels ?? "auto" : null, a = (r ? s : null) ?? t.labels ?? s ?? "on";
2330
2330
  if (a !== "auto") return a === "on";
2331
2331
  const o = /* @__PURE__ */ new Set();
@@ -2333,7 +2333,7 @@ function Xl(t, e, n, r = !1) {
2333
2333
  return !0;
2334
2334
  return !1;
2335
2335
  }
2336
- const ec = /* @__PURE__ */ new Set([
2336
+ const tc = /* @__PURE__ */ new Set([
2337
2337
  "invalid_audio",
2338
2338
  "invalid_options",
2339
2339
  "invalid_token",
@@ -2358,14 +2358,14 @@ const ec = /* @__PURE__ */ new Set([
2358
2358
  "invalid_request",
2359
2359
  "aborted",
2360
2360
  "unauthorized"
2361
- ]), ua = {
2361
+ ]), da = {
2362
2362
  internal: "Something went wrong on our side. Please try again.",
2363
2363
  unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
2364
2364
  engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
2365
2365
  engine_lost: "The transcription engine stopped. Please try again.",
2366
2366
  capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
2367
2367
  timeout: "That took too long. Please try again."
2368
- }, Er = ua.internal, wr = "Can't reach VocalStack. Check your connection.", Oi = {
2368
+ }, Er = da.internal, wr = "Can't reach VocalStack. Check your connection.", xi = {
2369
2369
  NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
2370
2370
  NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
2371
2371
  AbortError: "It was cancelled."
@@ -2374,35 +2374,35 @@ function Ct(t) {
2374
2374
  const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, r = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, s = e == null ? void 0 : e.details;
2375
2375
  if (n || r && r >= 400) {
2376
2376
  const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
2377
- return n && ec.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: wr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : wr, code: n, status: r, details: s, ...o } : { message: n && ua[n] || Er, code: n, status: r, details: s, ...o };
2377
+ return n && tc.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: wr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : wr, code: n, status: r, details: s, ...o } : { message: n && da[n] || Er, code: n, status: r, details: s, ...o };
2378
2378
  }
2379
2379
  const a = (e == null ? void 0 : e.name) ?? "";
2380
- return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Zi(t instanceof Error ? t : new Error(String(t))), { message: wr }) : Oi[a] ? { message: Oi[a] } : t instanceof Error && a === "Error" && !(t instanceof Hi) ? { message: t.message } : { message: Er };
2380
+ return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Gi(t instanceof Error ? t : new Error(String(t))), { message: wr }) : xi[a] ? { message: xi[a] } : t instanceof Error && a === "Error" && !(t instanceof Wi) ? { message: t.message } : { message: Er };
2381
2381
  }
2382
- const da = "https://api.vocalstack.com", Fr = Bi(null);
2382
+ const ha = "https://api.vocalstack.com", Fr = Hi(null);
2383
2383
  function Gt() {
2384
- const t = ho(Fr);
2384
+ const t = fo(Fr);
2385
2385
  if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
2386
2386
  return t;
2387
2387
  }
2388
- function tc(t) {
2389
- return t.value ? /* @__PURE__ */ i(Fr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(nc, { ...t });
2388
+ function nc(t) {
2389
+ return t.value ? /* @__PURE__ */ i(Fr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(rc, { ...t });
2390
2390
  }
2391
- function nc({ children: t, ...e }) {
2392
- const n = ha(e);
2391
+ function rc({ children: t, ...e }) {
2392
+ const n = fa(e);
2393
2393
  return /* @__PURE__ */ i(Fr.Provider, { value: n, children: t });
2394
2394
  }
2395
- const rc = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
2396
- function sc(t) {
2397
- return rc.test(t);
2395
+ const sc = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
2396
+ function ic(t) {
2397
+ return sc.test(t);
2398
2398
  }
2399
- function ha(t) {
2400
- const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || sc(t.id)), s = (t.baseUrl ?? da).replace(/\/$/, ""), a = w(t.token);
2399
+ function fa(t) {
2400
+ const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || ic(t.id)), s = (t.baseUrl ?? ha).replace(/\/$/, ""), a = w(t.token);
2401
2401
  a.current = t.token;
2402
2402
  const o = !!t.token, l = ze(() => async () => {
2403
2403
  const M = a.current;
2404
2404
  return (typeof M == "function" ? await M() : M) || void 0;
2405
- }, []), [c, u] = j(() => {
2405
+ }, []), [c, u] = z(() => {
2406
2406
  const M = t.token, g = typeof M == "function" ? M() : M;
2407
2407
  return typeof g == "string" && g ? g : null;
2408
2408
  });
@@ -2415,7 +2415,7 @@ function ha(t) {
2415
2415
  M = !1;
2416
2416
  };
2417
2417
  }, [r, l]);
2418
- const d = t.client ?? null, h = ze(() => d ?? new Wi({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
2418
+ const d = t.client ?? null, h = ze(() => d ?? new Fi({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
2419
2419
  return ze(() => {
2420
2420
  if (e) return { client: h, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
2421
2421
  if (n) return { client: h, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
@@ -2423,10 +2423,10 @@ function ha(t) {
2423
2423
  return { client: h, origin: s, owner: r, shareCode: M, listen: null, bearer: l, cred: r ? { accessToken: c ?? void 0 } : { shareCode: M }, readAs: M ? { shareCode: M } : {} };
2424
2424
  }, [h, s, r, t.id, l, e, n, c]);
2425
2425
  }
2426
- function ic(t, e) {
2426
+ function ac(t, e) {
2427
2427
  return e ? { ...t, cred: { ...t.cred, media: e } } : t;
2428
2428
  }
2429
- async function ac(t, e) {
2429
+ async function oc(t, e) {
2430
2430
  if (t.listen) {
2431
2431
  const r = await t.client.recordings.get(t.listen.recordingId, t.readAs), s = r;
2432
2432
  return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: s.name ?? s.title ?? "", recording: r, job: s.job ?? (s.source ? { source: s.source } : null), allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
@@ -2451,11 +2451,11 @@ async function ac(t, e) {
2451
2451
  sharedBy: n.sharedBy ?? null
2452
2452
  };
2453
2453
  }
2454
- function oc(t, e) {
2455
- const [n, r] = j(null), [s, a] = j(!1), [o, l] = j(null), [c, u] = j(0);
2454
+ function lc(t, e) {
2455
+ const [n, r] = z(null), [s, a] = z(!1), [o, l] = z(null), [c, u] = z(0);
2456
2456
  return x(() => {
2457
2457
  let d = !0;
2458
- return ac(t, e).then((h) => {
2458
+ return oc(t, e).then((h) => {
2459
2459
  d && (r(h), a(!1), l(null));
2460
2460
  }).catch((h) => {
2461
2461
  if (!d) return;
@@ -2466,8 +2466,8 @@ function oc(t, e) {
2466
2466
  };
2467
2467
  }, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
2468
2468
  }
2469
- function lc(t, e) {
2470
- const [n, r] = j(null);
2469
+ function cc(t, e) {
2470
+ const [n, r] = z(null);
2471
2471
  return x(() => {
2472
2472
  if (!t.owner || !e) {
2473
2473
  r(null);
@@ -2487,7 +2487,7 @@ function lc(t, e) {
2487
2487
  };
2488
2488
  }, [t, e]), n;
2489
2489
  }
2490
- async function xi(t, e, n = {}) {
2490
+ async function Ci(t, e, n = {}) {
2491
2491
  const r = new URLSearchParams();
2492
2492
  for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
2493
2493
  t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
@@ -2500,8 +2500,8 @@ async function xi(t, e, n = {}) {
2500
2500
  return fetch(`${t.origin}${e}${a ? `${e.includes("?") ? "&" : "?"}${a}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
2501
2501
  }
2502
2502
  const kr = /* @__PURE__ */ new Map();
2503
- function fa() {
2504
- const t = Gt(), [e, n] = j(kr.get(t.origin) ?? null);
2503
+ function Ma() {
2504
+ const t = Gt(), [e, n] = z(kr.get(t.origin) ?? null);
2505
2505
  return x(() => {
2506
2506
  kr.has(t.origin) || t.client.languages.list().then((r) => {
2507
2507
  kr.set(t.origin, r), n(r);
@@ -2509,8 +2509,8 @@ function fa() {
2509
2509
  });
2510
2510
  }, [t]), e;
2511
2511
  }
2512
- function Ma(t, e) {
2513
- const [n, r] = j(null), [s, a] = j(null), [o, l] = j(0);
2512
+ function ga(t, e) {
2513
+ const [n, r] = z(null), [s, a] = z(null), [o, l] = z(0);
2514
2514
  return x(() => {
2515
2515
  let c = !0;
2516
2516
  return t().then((u) => c && r(u)).catch((u) => c && a(Ct(u))), () => {
@@ -2518,11 +2518,11 @@ function Ma(t, e) {
2518
2518
  };
2519
2519
  }, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
2520
2520
  }
2521
- const cc = (t) => new Promise((e) => setTimeout(e, t)), uc = 2500, dc = 72;
2522
- function hc(t, e) {
2521
+ const uc = (t) => new Promise((e) => setTimeout(e, t)), dc = 2500, hc = 72;
2522
+ function fc(t, e) {
2523
2523
  const n = Gt(), r = w(n);
2524
2524
  r.current = n;
2525
- const [s, a] = j(en), o = w(en()), l = w(null), c = w(e.lang ?? null), [u, d] = j(!1), [h, M] = j(null), [g, f] = j(!1), y = Je(() => {
2525
+ const [s, a] = z(en), o = w(en()), l = w(null), c = w(e.lang ?? null), [u, d] = z(!1), [h, M] = z(null), [g, f] = z(!1), y = Je(() => {
2526
2526
  const E = o.current;
2527
2527
  a({ ...E });
2528
2528
  }, []), T = w(e);
@@ -2553,7 +2553,7 @@ function hc(t, e) {
2553
2553
  if (le.type === "snapshot")
2554
2554
  o.current = vr(le.snapshot, le.reason === "gap" ? o.current : en()), y(), te();
2555
2555
  else if (le.type === "frame") {
2556
- Ql(o.current, le.frame);
2556
+ Vl(o.current, le.frame);
2557
2557
  const Te = le.frame;
2558
2558
  Te.type === "recording.state" && (C = o.current.state, (L = (J = T.current).onState) == null || L.call(J, Te.state, Te.reason)), (ne = (ie = T.current).onFrame) == null || ne.call(ie, Te), y();
2559
2559
  } else le.type === "closed" && d(!1);
@@ -2588,14 +2588,14 @@ function hc(t, e) {
2588
2588
  }
2589
2589
  const X = o.current.state;
2590
2590
  if (!E || X === "ended" || X === "finalized" || X === "processing") return;
2591
- k += 1, await cc(Math.min(15e3, 1e3 * 2 ** Math.min(k, 4)));
2591
+ k += 1, await uc(Math.min(15e3, 1e3 * 2 ** Math.min(k, 4)));
2592
2592
  }
2593
2593
  })(), () => {
2594
2594
  var J;
2595
2595
  E = !1, (J = l.current) == null || J.close(), l.current = null, d(!1);
2596
2596
  };
2597
2597
  }, [t, n, e.voice]);
2598
- const [N, p] = j(!1), [b, S] = j(null), A = w(0), [P, O] = j(null), V = Je((E) => {
2598
+ const [N, p] = z(!1), [b, S] = z(null), A = w(0), [P, O] = z(null), V = Je((E) => {
2599
2599
  var te;
2600
2600
  if (c.current = E, (te = l.current) == null || te.setLanguage(E), !t) return;
2601
2601
  const k = r.current.client, Y = ++A.current;
@@ -2604,9 +2604,9 @@ function hc(t, e) {
2604
2604
  Y === A.current && (o.current = vr(L, o.current), O(E), y(), L.translationPending && J > 0 && window.setTimeout(() => {
2605
2605
  Y === A.current && C(J - 1).catch(() => {
2606
2606
  });
2607
- }, uc));
2607
+ }, dc));
2608
2608
  });
2609
- C(dc).catch(() => {
2609
+ C(hc).catch(() => {
2610
2610
  Y === A.current && E && S(E);
2611
2611
  }).finally(() => {
2612
2612
  Y === A.current && p(!1);
@@ -2622,7 +2622,7 @@ function hc(t, e) {
2622
2622
  }, [y]), W = Je(() => M(null), []);
2623
2623
  return { model: s, connected: u, error: h, notFound: g, clearError: W, setLanguage: V, mergeTranslations: I, translating: N, translateFailed: b, shownLang: P };
2624
2624
  }
2625
- const Ci = {
2625
+ const Si = {
2626
2626
  English: { vcFor: "Voice for", vcMute: "Mute", vcUnmute: "Unmute", vcMuted: "MUTED", vcShared: "Also used by", vcUsedBy: "Used by", vcUnknownSpk: "Unknown", vcUse: "Use this voice", vcGetting: "Downloading…", vcSample: "Here’s how it sounds.", vcPreview: "PREVIEW", vcMale: "Male", vcFemale: "Female", vcSynth: "SYNTHETIC", origAudio: "ORIGINAL AUDIO", vcCloned: "VOICES", vcBadge: "CLONED", vcNone: "TEXT ONLY", vcNoVoice: "No voice for ", vcSheet: "VOICE", vcNeutral: "SYNTHETIC VOICE", vcWarm: "SYNTHETIC VOICE", searchPlaceholder: "Search this broadcast", noise: "Audio unclear", newLines: "new", live: "LIVE", ended: "ENDED", waiting: "WAITING", corrected: "CORRECTED", hostLine: "Hosted by Marcus Reed · 4 speakers", langLabel: "LANGUAGE", langCount: "100+ languages", read: "Read", listen: "Listen", watch: "Watch", waitTitle: "The broadcast hasn’t started yet", waitBody: "The transcript appears here as soon as the host starts speaking.", english: "ENGLISH", playing: "Playing the live audio", ready: "Tap to start audio", readyNote: "Set your volume first", voiceMeta: "ORIGINAL AUDIO", voice: "Voice", sheetTitle: "APP LANGUAGE", done: "Done", search: "Search 100+ languages", sheetNote: "Follow along in your language.", moreLangs: "more", confTitle: "Some words weren't heard clearly", confBody: "The transcript marks words the model is unsure about with a dashed underline. The words keep their colour, so only the underline tells you where to look.", confMid: "Slightly unsure — probably right", confHigh: "Low confidence — may be wrong", settings: "BROADCAST", setOrig: "Show original language", setTheme: "Appearance", light: "Light", dark: "Dark", setConf: "Show uncertain words", setConfHint1: "Colours words the model is unsure about — ", setConfMid: "amber", setConfSep: " or ", setConfLow: "red", setConfHint2: "", behindLive: "TRANSLATION LATENCY", behindNote: "How far the translation trails the speaker right now.", shareLabel: "LIVE TRANSLATION LINK", copy: "Copy", copied: "Copied" },
2627
2627
  Spanish: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Activar", vcMuted: "SILENCIADO", vcShared: "También la usa", vcUsedBy: "La usa", vcUnknownSpk: "Desconocido", vcUse: "Usar esta voz", vcGetting: "Descargando…", vcSample: "Así suena esta voz.", vcPreview: "MUESTRA", vcMale: "Hombre", vcFemale: "Mujer", vcSynth: "SINTÉTICA", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCES", vcBadge: "CLONADA", vcNone: "SOLO TEXTO", vcNoVoice: "Sin voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Buscar en esta emisión", noise: "Audio poco claro", newLines: "nuevas", live: "EN VIVO", ended: "FINALIZADA", waiting: "EN ESPERA", corrected: "CORREGIDO", hostLine: "Presenta Marcus Reed · 4 hablantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Leer", listen: "Escuchar", watch: "Ver", waitTitle: "La emisión aún no ha comenzado", waitBody: "La transcripción aparecerá aquí en cuanto el anfitrión empiece a hablar.", english: "INGLÉS", playing: "Reproduciendo la traducción al español", ready: "Toca para iniciar el audio", readyNote: "Ajusta el volumen primero", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DE LA APP", done: "Listo", search: "Buscar entre 100+ idiomas", sheetNote: "Sigue la emisión en tu idioma.", moreLangs: "más", confTitle: "Algunas palabras no se oyeron bien", confBody: "La transcripción marca las palabras dudosas con un subrayado discontinuo. Las palabras conservan su color, así que solo el subrayado te indica dónde mirar.", confMid: "Poca duda: probablemente correcta", confHigh: "Baja confianza: puede estar mal", settings: "EMISIÓN", setOrig: "Mostrar idioma original", setTheme: "Apariencia", light: "Claro", dark: "Oscuro", setConf: "Mostrar palabras dudosas", setConfHint1: "Colorea las palabras dudosas: ", setConfMid: "ámbar", setConfSep: " o ", setConfLow: "rojo", setConfHint2: "", behindLive: "LATENCIA DE TRADUCCIÓN", behindNote: "Cuánto se retrasa la traducción respecto a quien habla.", shareLabel: "ENLACE PARA SEGUIR", copy: "Copiar", copied: "Copiado" },
2628
2628
  French: { vcFor: "Voix de", vcMute: "Couper", vcUnmute: "Réactiver", vcMuted: "COUPÉ", vcShared: "Aussi utilisée par", vcUsedBy: "Utilisée par", vcUnknownSpk: "Inconnu", vcUse: "Utiliser cette voix", vcGetting: "Téléchargement…", vcSample: "Voici le rendu.", vcPreview: "APERÇU", vcMale: "Homme", vcFemale: "Femme", vcSynth: "SYNTHÉTIQUE", origAudio: "AUDIO ORIGINAL", vcCloned: "VOIX", vcBadge: "CLONÉE", vcNone: "TEXTE SEUL", vcNoVoice: "Aucune voix pour ", vcSheet: "VOIX", vcNeutral: "VOIX SYNTHÉTIQUE", vcWarm: "VOIX SYNTHÉTIQUE", searchPlaceholder: "Rechercher dans la diffusion", noise: "Audio peu clair", newLines: "nouvelles", live: "EN DIRECT", ended: "TERMINÉ", waiting: "EN ATTENTE", corrected: "CORRIGÉ", hostLine: "Animé par Marcus Reed · 4 intervenants", langLabel: "LANGUE", langCount: "100+ langues", read: "Lire", listen: "Écouter", watch: "Regarder", waitTitle: "La diffusion n’a pas encore commencé", waitBody: "La transcription s’affichera ici dès que l’animateur prendra la parole.", english: "ANGLAIS", playing: "Lecture de la traduction française", ready: "Touchez pour lancer l'audio", readyNote: "Réglez le volume d'abord", voiceMeta: "VOIX NEUTRE", voice: "Voix", sheetTitle: "LANGUE DE L'APP", done: "Terminé", search: "Rechercher parmi 100+ langues", sheetNote: "Suivez la diffusion dans votre langue.", moreLangs: "autres", confTitle: "Certains mots n'ont pas été bien entendus", confBody: "La transcription marque les mots incertains d'un soulignement en pointillés. Les mots gardent leur couleur : seul le soulignement attire l'attention.", confMid: "Léger doute — probablement juste", confHigh: "Faible confiance — peut être faux", settings: "DIFFUSION", setOrig: "Afficher la langue d'origine", setTheme: "Apparence", light: "Clair", dark: "Sombre", setConf: "Afficher les mots incertains", setConfHint1: "Colore les mots incertains — ", setConfMid: "ambre", setConfSep: " ou ", setConfLow: "rouge", setConfHint2: "", behindLive: "LATENCE DE TRADUCTION", behindNote: "De combien la traduction suit le locuteur en ce moment.", shareLabel: "LIEN DE SUIVI", copy: "Copier", copied: "Copié" },
@@ -2630,13 +2630,13 @@ const Ci = {
2630
2630
  Romanian: { vcFor: "Vocea pentru", vcMute: "Oprește", vcUnmute: "Pornește", vcMuted: "OPRIT", vcShared: "Folosită și de", vcUsedBy: "Folosită de", vcUnknownSpk: "Necunoscut", vcUse: "Folosește această voce", vcGetting: "Se descarcă…", vcSample: "Așa sună această voce.", vcPreview: "MOSTRĂ", vcMale: "Bărbat", vcFemale: "Femeie", vcSynth: "SINTETICĂ", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCI", vcBadge: "CLONATĂ", vcNone: "DOAR TEXT", vcNoVoice: "Nicio voce pentru ", vcSheet: "VOCE", vcNeutral: "VOCE SINTETICĂ", vcWarm: "VOCE SINTETICĂ", searchPlaceholder: "Caută în transmisiune", noise: "Sunet neclar", newLines: "noi", live: "ÎN DIRECT", ended: "ÎNCHEIAT", waiting: "ÎN AȘTEPTARE", corrected: "CORECTAT", hostLine: "Prezentat de Marcus Reed · 4 vorbitori", langLabel: "LIMBĂ", langCount: "100+ de limbi", read: "Citește", listen: "Ascultă", watch: "Vizionează", waitTitle: "Transmisiunea nu a început încă", waitBody: "Transcrierea va apărea aici imediat ce gazda începe să vorbească.", english: "ENGLEZĂ", playing: "Se redă traducerea în română", ready: "Atinge pentru a porni audio", readyNote: "Reglează întâi volumul", voiceMeta: "VOCE NEUTRĂ", voice: "Voce", sheetTitle: "LIMBA APLICAȚIEI", done: "Gata", search: "Caută printre 100+ de limbi", sheetNote: "Urmărește transmisiunea în limba ta.", moreLangs: "în plus", confTitle: "Unele cuvinte nu s-au auzit clar", confBody: "Transcrierea marchează cuvintele incerte cu o subliniere întreruptă. Cuvintele își păstrează culoarea, doar sublinierea îți arată unde să te uiți.", confMid: "Ușoară nesiguranță — probabil corect", confHigh: "Încredere scăzută — poate fi greșit", settings: "TRANSMISIUNE", setOrig: "Arată limba originală", setTheme: "Aspect", light: "Luminos", dark: "Întunecat", setConf: "Arată cuvintele incerte", setConfHint1: "Colorează cuvintele incerte — ", setConfMid: "galben", setConfSep: " sau ", setConfLow: "roșu", setConfHint2: "", behindLive: "LATENȚA TRADUCERII", behindNote: "Cu cât urmează traducerea vorbitorul în acest moment.", shareLabel: "LINK DE URMĂRIRE", copy: "Copiază", copied: "Copiat" },
2631
2631
  Portuguese: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Ativar", vcMuted: "SILENCIADO", vcShared: "Também usada por", vcUsedBy: "Usada por", vcUnknownSpk: "Desconhecido", vcUse: "Usar esta voz", vcGetting: "Baixando…", vcSample: "É assim que soa.", vcPreview: "AMOSTRA", vcMale: "Homem", vcFemale: "Mulher", vcSynth: "SINTÉTICA", origAudio: "ÁUDIO ORIGINAL", vcCloned: "VOZES", vcBadge: "CLONADA", vcNone: "SÓ TEXTO", vcNoVoice: "Sem voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Pesquisar nesta transmissão", noise: "Áudio pouco claro", newLines: "novas", live: "AO VIVO", ended: "ENCERRADA", waiting: "AGUARDANDO", corrected: "CORRIGIDO", hostLine: "Apresentado por Marcus Reed · 4 falantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Ler", listen: "Ouvir", watch: "Assistir", waitTitle: "A transmissão ainda não começou", waitBody: "A transcrição aparece aqui assim que o apresentador começar a falar.", english: "INGLÊS", playing: "Reproduzindo a tradução em português", ready: "Toque para iniciar o áudio", readyNote: "Ajuste o volume primeiro", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DO APP", done: "Concluído", search: "Pesquisar entre 100+ idiomas", sheetNote: "Acompanhe a transmissão no seu idioma.", moreLangs: "mais", confTitle: "Algumas palavras não foram bem ouvidas", confBody: "A transcrição marca as palavras duvidosas com um sublinhado tracejado. As palavras mantêm a sua cor, por isso só o sublinhado indica onde olhar.", confMid: "Pouca dúvida — provavelmente certa", confHigh: "Baixa confiança — pode estar errada", settings: "TRANSMISSÃO", setOrig: "Mostrar idioma original", setTheme: "Aparência", light: "Claro", dark: "Escuro", setConf: "Mostrar palavras duvidosas", setConfHint1: "Colore as palavras duvidosas: ", setConfMid: "âmbar", setConfSep: " ou ", setConfLow: "vermelho", setConfHint2: "", behindLive: "LATÊNCIA DE TRADUÇÃO", behindNote: "Quanto a tradução está atrás de quem fala agora.", shareLabel: "LINK PARA ACOMPANHAR", copy: "Copiar", copied: "Copiado" }
2632
2632
  };
2633
- function ga(t) {
2634
- return t && Ci[t] || Ci.English;
2633
+ function ma(t) {
2634
+ return t && Si[t] || Si.English;
2635
2635
  }
2636
- async function ma(t) {
2636
+ async function pa(t) {
2637
2637
  var s, a, o, l, c;
2638
2638
  const e = await t.json().catch(() => null), n = ((s = e == null ? void 0 : e.error) == null ? void 0 : s.code) ?? (e == null ? void 0 : e.code), r = ((a = e == null ? void 0 : e.error) == null ? void 0 : a.message) ?? (e == null ? void 0 : e.message);
2639
- return new Hi(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Er, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
2639
+ return new Wi(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Er, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
2640
2640
  }
2641
2641
  function Lr(t) {
2642
2642
  switch (t) {
@@ -2654,14 +2654,14 @@ function Lr(t) {
2654
2654
  return "queued";
2655
2655
  }
2656
2656
  }
2657
- function fc(t) {
2657
+ function Mc(t) {
2658
2658
  return t ? t.progress ? { state: t.state, processedS: t.progress.processedS, totalS: t.progress.totalS ?? null, segmentsDone: t.progress.segmentsDone, segmentsTotal: t.progress.segmentsTotal ?? null, pct: t.progress.pct, error: t.error ?? null } : t.state ? { state: t.state, processedS: 0, totalS: null, segmentsDone: 0, segmentsTotal: null, pct: 0, error: t.error ?? null } : null : null;
2659
2659
  }
2660
- const Mc = (t, e) => {
2660
+ const gc = (t, e) => {
2661
2661
  const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
2662
2662
  return `${n} / ${r} SEGMENTS`;
2663
2663
  };
2664
- function gc(t, e) {
2664
+ function mc(t, e) {
2665
2665
  var s;
2666
2666
  const n = ((s = t == null ? void 0 : t.source) == null ? void 0 : s.durationS) ?? (e == null ? void 0 : e.totalS) ?? null, r = t == null ? void 0 : t.crop;
2667
2667
  if (r && (r.startS != null || r.endS != null)) {
@@ -2680,20 +2680,20 @@ function Zr(t) {
2680
2680
  const e = document.createElement("a");
2681
2681
  e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
2682
2682
  }
2683
- async function mc(t) {
2683
+ async function pc(t) {
2684
2684
  const e = await fetch(t, { redirect: "manual" });
2685
- if (e.type !== "opaqueredirect" && !e.ok) throw await ma(e);
2685
+ if (e.type !== "opaqueredirect" && !e.ok) throw await pa(e);
2686
2686
  Zr(t);
2687
2687
  }
2688
- async function pc(t, e, n, r = {}) {
2688
+ async function yc(t, e, n, r = {}) {
2689
2689
  var M, g;
2690
2690
  const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
2691
- if (!s.ok) throw await ma(s);
2691
+ if (!s.ok) throw await pa(s);
2692
2692
  const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (M = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : M[1], c = (g = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : g[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), h = document.createElement("a");
2693
2693
  h.href = d, h.download = u, h.style.display = "none", document.body.appendChild(h), h.click(), h.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
2694
2694
  }
2695
- async function yc(t, e) {
2696
- const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((h) => h.lang === r), l = (d) => Xi(d, s);
2695
+ async function Nc(t, e) {
2696
+ const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((h) => h.lang === r), l = (d) => ea(d, s);
2697
2697
  let c = l(await o());
2698
2698
  (!c || c.state === "clips" || c.state === "failed") && await e.request();
2699
2699
  const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
@@ -2702,25 +2702,25 @@ async function yc(t, e) {
2702
2702
  if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
2703
2703
  await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
2704
2704
  }
2705
- Zr(So(t.origin, n, r, c.voiceKey, a));
2705
+ Zr(Do(t.origin, n, r, c.voiceKey, a));
2706
2706
  }
2707
- const pa = (t) => {
2707
+ const ya = (t) => {
2708
2708
  var e;
2709
2709
  return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
2710
- }, Nc = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Si = 0.3, Tc = 1.5;
2711
- function ya(t, e, n) {
2710
+ }, Tc = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Di = 0.3, vc = 1.5;
2711
+ function Na(t, e, n) {
2712
2712
  var s;
2713
2713
  const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
2714
2714
  return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
2715
2715
  }
2716
- function vc(t, e, n) {
2716
+ function wc(t, e, n) {
2717
2717
  var c, u;
2718
2718
  const r = t[e];
2719
2719
  if (!r) return !1;
2720
- const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - Si, a = t[e + 1], o = ya(r, a, r.start + 4) + Tc, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - Si) : o;
2720
+ const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - Di, a = t[e + 1], o = Na(r, a, r.start + 4) + vc, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - Di) : o;
2721
2721
  return n >= s && n < Math.max(l, s + 0.5);
2722
2722
  }
2723
- function wc(t, e, n) {
2723
+ function kc(t, e, n) {
2724
2724
  const r = Math.max(0, n - e), s = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), a = s.reduce((l, c) => l + c, 0) || 1;
2725
2725
  let o = e;
2726
2726
  return t.map((l, c) => {
@@ -2735,7 +2735,7 @@ function jr(t) {
2735
2735
  bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
2736
2736
  };
2737
2737
  }
2738
- function kc(t, e, n = 0) {
2738
+ function Lc(t, e, n = 0) {
2739
2739
  const r = w(() => {
2740
2740
  });
2741
2741
  x(() => {
@@ -2798,13 +2798,13 @@ function kc(t, e, n = 0) {
2798
2798
  };
2799
2799
  }, []);
2800
2800
  }
2801
- function Lc({ thumbRef: t }) {
2801
+ function jc({ thumbRef: t }) {
2802
2802
  return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
2803
2803
  }
2804
- function jc({ error: t, onClose: e }) {
2804
+ function zc({ error: t, onClose: e }) {
2805
2805
  const n = w(e);
2806
2806
  n.current = e;
2807
- const [r, s] = j(!1), [a, o] = j(!1), l = w();
2807
+ const [r, s] = z(!1), [a, o] = z(!1), l = w();
2808
2808
  if (x(() => {
2809
2809
  o(!1), s(!1), window.clearTimeout(l.current);
2810
2810
  }, [t]), x(() => () => window.clearTimeout(l.current), []), x(() => {
@@ -2834,10 +2834,10 @@ Request id: ${t.requestId}` : t.message;
2834
2834
  /* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 14 }) })
2835
2835
  ] });
2836
2836
  }
2837
- function Na({ color: t }) {
2837
+ function Ta({ color: t }) {
2838
2838
  return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: ee.voiceClone, size: 13, sw: 1.7, stroke: t }) });
2839
2839
  }
2840
- function jd({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
2840
+ function zd({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
2841
2841
  return /* @__PURE__ */ m("div", { className: "vs-tt", children: [
2842
2842
  /* @__PURE__ */ m("div", { className: "vs-tt__r1", children: [
2843
2843
  /* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
@@ -2854,8 +2854,8 @@ function jd({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
2854
2854
  ] })
2855
2855
  ] });
2856
2856
  }
2857
- function zc({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
2858
- const h = w(null), M = w(!1), [g, f] = j(null), y = Math.max(1, e), T = g ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && g == null ? `width ${d}ms linear, left ${d}ms linear` : "none", b = (A) => {
2857
+ function Ic({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
2858
+ const h = w(null), M = w(!1), [g, f] = z(null), y = Math.max(1, e), T = g ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && g == null ? `width ${d}ms linear, left ${d}ms linear` : "none", b = (A) => {
2859
2859
  var I;
2860
2860
  const P = (I = h.current) == null ? void 0 : I.getBoundingClientRect();
2861
2861
  if (!P) return;
@@ -2898,7 +2898,7 @@ function zc({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
2898
2898
  ] })
2899
2899
  ] });
2900
2900
  }
2901
- function Ic(t, e, n) {
2901
+ function bc(t, e, n) {
2902
2902
  const r = new Set(t.seqs ?? t.words.map((l) => l.seq)), s = (e ?? []).filter((l) => !l.revertedAt && l.seq != null && r.has(l.seq) && (l.kind === "word" || l.kind === "line")), a = s.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
2903
2903
  return {
2904
2904
  script: a ? 0 : t.words.filter((l) => l.script && !o(l)).length,
@@ -2906,7 +2906,7 @@ function Ic(t, e, n) {
2906
2906
  manualCount: a ? 0 : s.filter((l) => l.kind === "word").length
2907
2907
  };
2908
2908
  }
2909
- function bc({ f: t, desk: e, onOpen: n }) {
2909
+ function Oc({ f: t, desk: e, onOpen: n }) {
2910
2910
  const r = (s, a, o) => /* @__PURE__ */ m("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
2911
2911
  l.stopPropagation(), n == null || n();
2912
2912
  }, children: [
@@ -2919,8 +2919,8 @@ function bc({ f: t, desk: e, onOpen: n }) {
2919
2919
  t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
2920
2920
  ] });
2921
2921
  }
2922
- function Oc({ onOpen: t, alone: e }) {
2923
- const [n, r] = j(!1);
2922
+ function xc({ onOpen: t, alone: e }) {
2923
+ const [n, r] = z(!1);
2924
2924
  return /* @__PURE__ */ m("span", { role: "button", title: "Fix this line", className: `badge badge--pen${n ? " is-over" : ""}`, style: { marginLeft: e ? "auto" : 0 }, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), onClick: (s) => {
2925
2925
  s.stopPropagation(), t();
2926
2926
  }, children: [
@@ -2928,8 +2928,8 @@ function Oc({ onOpen: t, alone: e }) {
2928
2928
  n && "FIX"
2929
2929
  ] });
2930
2930
  }
2931
- function xc(t, e, n, r) {
2932
- const s = Gt(), [a, o] = j([]), [l, c] = j(0), u = w(/* @__PURE__ */ new Set()), d = w(!1), h = ze(() => new Map(n.filter((g) => g.sentenceId != null).map((g) => [g.sentenceId, g])), [n]);
2931
+ function Cc(t, e, n, r) {
2932
+ const s = Gt(), [a, o] = z([]), [l, c] = z(0), u = w(/* @__PURE__ */ new Set()), d = w(!1), h = ze(() => new Map(n.filter((g) => g.sentenceId != null).map((g) => [g.sentenceId, g])), [n]);
2933
2933
  x(() => {
2934
2934
  u.current = /* @__PURE__ */ new Set();
2935
2935
  }, [t, e]);
@@ -2955,13 +2955,13 @@ function xc(t, e, n, r) {
2955
2955
  }
2956
2956
  }, [t, e, a, l, h, r]), M;
2957
2957
  }
2958
- function Cc(t) {
2958
+ function Sc(t) {
2959
2959
  return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
2960
2960
  }
2961
2961
  function un(t, e) {
2962
2962
  return t.cloned ? { rank: 0, head: e.vcSheet } : t.gender === "male" ? { rank: 1, head: e.vcMale.toUpperCase() } : t.gender === "female" ? { rank: 2, head: e.vcFemale.toUpperCase() } : { rank: 3, head: e.vcSynth };
2963
2963
  }
2964
- function Sc(t, e) {
2964
+ function Dc(t, e) {
2965
2965
  const n = t.slice().sort((s, a) => un(s, e).rank - un(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
2966
2966
  for (const s of n) {
2967
2967
  const a = un(s, e).head;
@@ -2972,7 +2972,7 @@ function Sc(t, e) {
2972
2972
  return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
2973
2973
  });
2974
2974
  }
2975
- function Dc(t, e, n) {
2975
+ function Ac(t, e, n) {
2976
2976
  const r = /* @__PURE__ */ new Set();
2977
2977
  let s = !1;
2978
2978
  for (const o of t)
@@ -2983,7 +2983,7 @@ function Dc(t, e, n) {
2983
2983
  return {
2984
2984
  key: o,
2985
2985
  name: Hr(e, o),
2986
- initial: ca(e, o),
2986
+ initial: ua(e, o),
2987
2987
  lane: l.lane,
2988
2988
  sex: e.speakerSex[o] ?? null,
2989
2989
  voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
@@ -2994,11 +2994,11 @@ function Dc(t, e, n) {
2994
2994
  });
2995
2995
  return s && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
2996
2996
  }
2997
- function Di(t) {
2997
+ function Ai(t) {
2998
2998
  const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
2999
2999
  return e ? `cast:${e}` : "";
3000
3000
  }
3001
- function Ai(t) {
3001
+ function Ei(t) {
3002
3002
  if (!t || !t.startsWith("cast:")) return null;
3003
3003
  const e = /* @__PURE__ */ new Map();
3004
3004
  for (const n of t.slice(5).split(";")) {
@@ -3009,7 +3009,7 @@ function Ai(t) {
3009
3009
  }
3010
3010
  return e.size ? e : null;
3011
3011
  }
3012
- function Ei(t, e, n = !0) {
3012
+ function _i(t, e, n = !0) {
3013
3013
  const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
3014
3014
  for (const o of t) {
3015
3015
  const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
@@ -3022,7 +3022,7 @@ function Ei(t, e, n = !0) {
3022
3022
  }
3023
3023
  return a;
3024
3024
  }
3025
- function Ac({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: a, warn: o, sexOf: l, t: c }) {
3025
+ function Ec({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: a, warn: o, sexOf: l, t: c }) {
3026
3026
  const u = t.find((d) => d.key === e) ?? t[0] ?? null;
3027
3027
  return u ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((d) => {
3028
3028
  const h = d.key === u.key, M = d.key >= 0 ? (o == null ? void 0 : o(d)) ?? null : null, g = d.key >= 0 && !M && !!(s != null && s(d)), f = d.key >= 0 && !M && !g && r(d), y = d.key >= 0 && !M && !g && !f && !d.hasVoice && !!(a != null && a(d));
@@ -3044,7 +3044,7 @@ function Ac({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
3044
3044
  }
3045
3045
  ),
3046
3046
  /* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: h ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
3047
- d.hasVoice && !M && /* @__PURE__ */ i(Na, { color: d.fg ?? (h ? "var(--ink-62)" : "var(--ink-45)") }),
3047
+ d.hasVoice && !M && /* @__PURE__ */ i(Ta, { color: d.fg ?? (h ? "var(--ink-62)" : "var(--ink-45)") }),
3048
3048
  M && /* @__PURE__ */ i("span", { title: M, "aria-label": M, style: { flex: "none", width: 15, height: 15, marginRight: -2, borderRadius: "50%", background: "#c27c00", color: "#fff", font: "900 10.5px/1 system-ui, sans-serif", display: "flex", alignItems: "center", justifyContent: "center" }, children: "!" }),
3049
3049
  y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: h ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: ee.micOff, size: 13, sw: 1.7 }) }),
3050
3050
  (f || g) && /* @__PURE__ */ i("span", { title: g ? "Cloning this voice…" : "No voice clone yet", "aria-label": g ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: g ? /* @__PURE__ */ i(Mt, { size: 10, color: "var(--brand)", track: "var(--fill-10)", sw: 1.6 }) : /* @__PURE__ */ i("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--brand)" } }) })
@@ -3054,8 +3054,8 @@ function Ac({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
3054
3054
  );
3055
3055
  }) }) : null;
3056
3056
  }
3057
- function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: h = null, problem: M, noClone: g = null, t: f }) {
3058
- const y = ze(() => Sc(e, f), [e, f]), [T, N] = j({});
3057
+ function _c({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: h = null, problem: M, noClone: g = null, t: f }) {
3058
+ const y = ze(() => Dc(e, f), [e, f]), [T, N] = z({});
3059
3059
  x(() => {
3060
3060
  N({});
3061
3061
  }, [d, h]);
@@ -3068,7 +3068,7 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
3068
3068
  M && /* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
3069
3069
  /* @__PURE__ */ i(oe, { d: ee.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
3070
3070
  /* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: M }),
3071
- /* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(jo, { value: M, label: "Copy this error" }) })
3071
+ /* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(zo, { value: M, label: "Copy this error" }) })
3072
3072
  ] }),
3073
3073
  t,
3074
3074
  g && /* @__PURE__ */ m(xe, { children: [
@@ -3084,8 +3084,8 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
3084
3084
  ] })
3085
3085
  ] }),
3086
3086
  y.map(({ v: A, headOn: P, head: O, headCount: V, rule: I }, W) => {
3087
- const E = Cc(A), k = a === A.id, Y = b(O), C = (u == null ? void 0 : u(A)) ?? null;
3088
- return /* @__PURE__ */ m(fo, { children: [
3087
+ const E = Sc(A), k = a === A.id, Y = b(O), C = (u == null ? void 0 : u(A)) ?? null;
3088
+ return /* @__PURE__ */ m(Mo, { children: [
3089
3089
  P && O === f.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: W === 0 && !g ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: O }) }),
3090
3090
  P && O !== f.vcSheet && /* @__PURE__ */ m(
3091
3091
  "button",
@@ -3115,8 +3115,8 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
3115
3115
  style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: Y ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: Y ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === A.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: Y ? 1 : 0, maxHeight: Y ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
3116
3116
  children: [
3117
3117
  /* @__PURE__ */ i("span", { title: k ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: k ? "transparent" : A.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: k ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === A.id ? /* @__PURE__ */ m("span", { className: "vcplay", children: [
3118
- /* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(_c, { height: 13, width: 2.5 }) }),
3119
- /* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(wo, { size: 11 }) })
3118
+ /* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(Yc, { height: 13, width: 2.5 }) }),
3119
+ /* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(ko, { size: 11 }) })
3120
3120
  ] }) : /* @__PURE__ */ i(oe, { d: A.cloned ? ee.voiceClone : A.gender === "female" ? ee.venus : A.gender === "male" ? ee.mars : ee.mic, size: 15, sw: 1.6, style: { color: A.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
3121
3121
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
3122
3122
  /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: A.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: A.name }) }),
@@ -3144,7 +3144,7 @@ function Ec({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
3144
3144
  S && /* @__PURE__ */ i("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ i("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => r && c(r), children: /* @__PURE__ */ i("span", { children: f.vcUse }) }) })
3145
3145
  ] });
3146
3146
  }
3147
- function _c({ height: t, width: e = 2 }) {
3147
+ function Yc({ height: t, width: e = 2 }) {
3148
3148
  const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
3149
3149
  return /* @__PURE__ */ m("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
3150
3150
  /* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
@@ -3152,16 +3152,16 @@ function _c({ height: t, width: e = 2 }) {
3152
3152
  /* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
3153
3153
  ] });
3154
3154
  }
3155
- const Yc = /* @__PURE__ */ m("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
3155
+ const Uc = /* @__PURE__ */ m("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
3156
3156
  /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
3157
3157
  /* @__PURE__ */ i(oe, { d: ee.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
3158
3158
  ] });
3159
3159
  function Yr(t, e) {
3160
3160
  const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
3161
- return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Yc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
3161
+ return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Uc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
3162
3162
  }
3163
- function Uc(t, e, n = 0, r) {
3164
- const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Gt(), { data: c } = Ma(async () => {
3163
+ function $c(t, e, n = 0, r) {
3164
+ const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Gt(), { data: c } = ga(async () => {
3165
3165
  if (!t || !e) return null;
3166
3166
  try {
3167
3167
  return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
@@ -3171,25 +3171,25 @@ function Uc(t, e, n = 0, r) {
3171
3171
  }, [t, e, n, s, a, o]);
3172
3172
  return c;
3173
3173
  }
3174
- function $c(t) {
3174
+ function Rc(t) {
3175
3175
  return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
3176
3176
  }
3177
- function Rc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
3178
- const o = Gt(), { data: l, reload: c } = Ma(async () => {
3177
+ function Pc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
3178
+ const o = Gt(), { data: l, reload: c } = ga(async () => {
3179
3179
  if (!t || !e) return null;
3180
3180
  const J = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
3181
3181
  return { recordingId: t, lang: e, rows: J.filter((L) => L.lang === e) };
3182
3182
  }, [t, e, o, n]), u = ze(
3183
3183
  () => l && l.lang === e && l.recordingId === t ? l.rows : [],
3184
3184
  [l, e, t]
3185
- ), d = ze(() => Xi(u, s), [u, s]), h = d ? d.voiceKey || null : s, [M, g] = j(null), [f, y] = j(null), T = w(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${h ?? ""}`, p = Je(async (J, L) => {
3185
+ ), d = ze(() => ea(u, s), [u, s]), h = d ? d.voiceKey || null : s, [M, g] = z(null), [f, y] = z(null), T = w(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${h ?? ""}`, p = Je(async (J, L) => {
3186
3186
  if (!t || !e || !n) return;
3187
- const ie = L != null && L.size ? null : Ai(J), ne = L != null && L.size ? L : ie, G = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, X = `${t}|${e}|${G ? JSON.stringify(G) : J ?? ""}`;
3187
+ const ie = L != null && L.size ? null : Ei(J), ne = L != null && L.size ? L : ie, G = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, X = `${t}|${e}|${G ? JSON.stringify(G) : J ?? ""}`;
3188
3188
  if (T.current.has(X)) return;
3189
3189
  T.current.add(X), g(X), y(null);
3190
3190
  const me = { langs: [e] };
3191
3191
  G ? me.voiceBySpeaker = G : J && (me.voice = J);
3192
- const le = await xi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: me }).catch(() => null);
3192
+ const le = await Ci(o, `/v1/recordings/${t}/voice`, { method: "POST", body: me }).catch(() => null);
3193
3193
  if (g((Te) => Te === X ? null : Te), !(le != null && le.ok)) {
3194
3194
  T.current.delete(X);
3195
3195
  const Te = le ? await le.json().catch(() => null) : null;
@@ -3201,14 +3201,14 @@ function Rc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
3201
3201
  const J = `${t ?? ""}|${e ?? ""}|`;
3202
3202
  for (const L of [...T.current]) L.startsWith(J) && T.current.delete(L);
3203
3203
  y(null);
3204
- }, [t, e]), S = !!d && (d.state === "queued" || d.state === "running") || M === N, A = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : f, P = (a == null ? void 0 : a.join(",")) ?? "", [O, V] = j(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), W = ze(() => n && P ? P.split(",").map(Number).filter((J) => !I.has(J)) : [], [n, P, I]), E = w(null);
3204
+ }, [t, e]), S = !!d && (d.state === "queued" || d.state === "running") || M === N, A = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : f, P = (a == null ? void 0 : a.join(",")) ?? "", [O, V] = z(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), W = ze(() => n && P ? P.split(",").map(Number).filter((J) => !I.has(J)) : [], [n, P, I]), E = w(null);
3205
3205
  x(() => {
3206
3206
  if (!n || !t || !e || !W.length) return;
3207
3207
  const J = O ?? W[0], L = W.find((me) => me >= J) ?? W[0], ie = `${t}|${e}|${h ?? ""}`, ne = E.current;
3208
3208
  if (ne && ne.key === ie && Math.abs(ne.near - L) < 12 && Date.now() - ne.at < 6e4) return;
3209
3209
  E.current = { key: ie, near: L, at: Date.now() };
3210
- const G = Ai(h), X = { langs: [e], near: L };
3211
- G && G.size ? X.voiceBySpeaker = Object.fromEntries([...G].map(([me, le]) => [String(me), le])) : h && (X.voice = h), xi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: X }).then((me) => {
3210
+ const G = Ei(h), X = { langs: [e], near: L };
3211
+ G && G.size ? X.voiceBySpeaker = Object.fromEntries([...G].map(([me, le]) => [String(me), le])) : h && (X.voice = h), Ci(o, `/v1/recordings/${t}/voice`, { method: "POST", body: X }).then((me) => {
3212
3212
  me.ok || (E.current = null);
3213
3213
  }).catch(() => {
3214
3214
  E.current = null;
@@ -3226,13 +3226,13 @@ function Rc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
3226
3226
  const C = ze(() => {
3227
3227
  if (!t) return [];
3228
3228
  const J = P ? P.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, L = d ?? (J != null && J.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
3229
- return Uo(L, t, o.origin, r, J);
3229
+ return $o(L, t, o.origin, r, J);
3230
3230
  }, [d, t, o, r, P, e, s, n, I]), te = ze(() => new Set(W), [W]);
3231
3231
  return { listed: l, rows: u, track: d, renderVoiceId: h, rendering: S, failed: A, clips: C, requestRender: p, forget: b, reload: c, setNear: V, missing: W.length, coming: te };
3232
3232
  }
3233
- const Pc = { share: ee.share, delay: ee.tabGauge, video: ee.video, source: ee.tabSources, script: ee.tabScript, fix: ee.tabFix, ending: ee.tabEnding, summary: ee.tabSummary, export: ee.tabExport, settings: ee.tabSettings, sources: ee.tabSources, recs: ee.mic };
3234
- function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
3235
- const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = j(null), d = w(null), [h, M] = j(0);
3233
+ const Qc = { share: ee.share, delay: ee.tabGauge, video: ee.video, source: ee.tabSources, script: ee.tabScript, fix: ee.tabFix, ending: ee.tabEnding, summary: ee.tabSummary, export: ee.tabExport, settings: ee.tabSettings, sources: ee.tabSources, recs: ee.mic };
3234
+ function va({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
3235
+ const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = z(null), d = w(null), [h, M] = z(0);
3236
3236
  x(() => {
3237
3237
  d.current && M(d.current.offsetWidth);
3238
3238
  }, [c == null ? void 0 : c.k]);
@@ -3249,7 +3249,7 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
3249
3249
  let y = null;
3250
3250
  if (c) {
3251
3251
  const T = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, N = h || 80, p = Math.max(T.l + 8, Math.min(T.r - N - 8, c.x - N / 2));
3252
- y = mo(
3252
+ y = po(
3253
3253
  /* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ m("div", { ref: d, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: p, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
3254
3254
  /* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
3255
3255
  /* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(N - 19, c.x - p - 5.5))) } })
@@ -3259,7 +3259,7 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
3259
3259
  }
3260
3260
  return /* @__PURE__ */ m("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": a ? "" : void 0, "data-tab-n": a ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: f, children: [
3261
3261
  t.map((T) => {
3262
- const N = e === T.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", S = T.icon ?? Pc[T.key], A = () => {
3262
+ const N = e === T.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", S = T.icon ?? Qc[T.key], A = () => {
3263
3263
  f(), n(s && N ? "none" : T.key);
3264
3264
  };
3265
3265
  return s ? /* @__PURE__ */ m("button", { type: "button", role: "tab", "aria-selected": N, title: T.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: b }, onClick: A, children: [
@@ -3273,9 +3273,9 @@ function Ta({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
3273
3273
  y
3274
3274
  ] });
3275
3275
  }
3276
- const Qc = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", Vc = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
3277
- function Bc({ audio: t, video: e, formats: n, onExport: r }) {
3278
- const [s, a] = j(null), [o, l] = j(null), c = w(void 0), u = w(!0);
3276
+ const Vc = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", Bc = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
3277
+ function Hc({ audio: t, video: e, formats: n, onExport: r }) {
3278
+ const [s, a] = z(null), [o, l] = z(null), c = w(void 0), u = w(!0);
3279
3279
  x(() => (u.current = !0, () => {
3280
3280
  u.current = !1, window.clearTimeout(c.current);
3281
3281
  }), []);
@@ -3303,11 +3303,11 @@ function Bc({ audio: t, video: e, formats: n, onExport: r }) {
3303
3303
  /* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
3304
3304
  /* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
3305
3305
  ] }),
3306
- /* @__PURE__ */ i(oe, { d: s === f ? ee.check : Qc, size: 17, sw: 1.6, style: { flex: "none", color: s === f ? "var(--brand)" : "var(--ink-62)" } })
3306
+ /* @__PURE__ */ i(oe, { d: s === f ? ee.check : Vc, size: 17, sw: 1.6, style: { flex: "none", color: s === f ? "var(--brand)" : "var(--ink-62)" } })
3307
3307
  ] })
3308
3308
  ] });
3309
3309
  return /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
3310
- t && g("audio", t, Vc, "DOWNLOAD AUDIO"),
3310
+ t && g("audio", t, Bc, "DOWNLOAD AUDIO"),
3311
3311
  e && g("video", e, ee.video, "DOWNLOAD VIDEO"),
3312
3312
  n !== !1 && /* @__PURE__ */ m(xe, { children: [
3313
3313
  /* @__PURE__ */ i(xr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
@@ -3332,8 +3332,8 @@ function Gr(t, e, n) {
3332
3332
  }
3333
3333
  r();
3334
3334
  }
3335
- function Hc(t, e, n) {
3336
- const [r, s] = j(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
3335
+ function Wc(t, e, n) {
3336
+ const [r, s] = z(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
3337
3337
  ${t.summary}` : ""}`, l = Gt();
3338
3338
  return x(() => {
3339
3339
  if (!e || !n || !a) return;
@@ -3349,13 +3349,13 @@ ${t.summary}` : ""}`, l = Gt();
3349
3349
  };
3350
3350
  }, [o, l]), !n || !a ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
3351
3351
  }
3352
- function Wc(t) {
3352
+ function Fc(t) {
3353
3353
  return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
3354
3354
  } } : { state: "unavailable", retry: () => {
3355
3355
  } };
3356
3356
  }
3357
- function Fc({ s: t }) {
3358
- const [e, n] = j(!1), r = w(void 0);
3357
+ function Zc({ s: t }) {
3358
+ const [e, n] = z(!1), r = w(void 0);
3359
3359
  x(() => () => window.clearTimeout(r.current), []);
3360
3360
  const s = t.title ?? "", a = t.summary ?? "", o = () => {
3361
3361
  var c;
@@ -3371,7 +3371,7 @@ ${a}`).catch(() => {
3371
3371
  /* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
3372
3372
  /* @__PURE__ */ i(xr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
3373
3373
  t.state === "ready" && /* @__PURE__ */ m("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
3374
- /* @__PURE__ */ i(oe, { d: e ? ee.check : qc, size: 13, sw: 1.6 }),
3374
+ /* @__PURE__ */ i(oe, { d: e ? ee.check : Kc, size: 13, sw: 1.6 }),
3375
3375
  e ? "Copied" : "Copy"
3376
3376
  ] })
3377
3377
  ] }),
@@ -3384,15 +3384,15 @@ ${a}`).catch(() => {
3384
3384
  ] })
3385
3385
  ] });
3386
3386
  }
3387
- function Zc({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, children: o, picture: l }) {
3387
+ function Gc({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, children: o, picture: l }) {
3388
3388
  return /* @__PURE__ */ m("div", { className: "livevid", style: { ...r != null ? { borderRadius: r } : null, ...s }, children: [
3389
3389
  /* @__PURE__ */ i(oe, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: a ? 34 : 30, sw: 1.2 }),
3390
- l ?? /* @__PURE__ */ i("iframe", { src: Nc(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
3390
+ l ?? /* @__PURE__ */ i("iframe", { src: Tc(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
3391
3391
  n && /* @__PURE__ */ i("span", { className: "livevid__t", style: a ? { bottom: 10, right: 10 } : void 0, children: n }),
3392
3392
  o
3393
3393
  ] });
3394
3394
  }
3395
- function Gc(t = !0, e) {
3395
+ function qc(t = !0, e) {
3396
3396
  const n = w(null), r = e ?? n;
3397
3397
  return x(() => {
3398
3398
  const s = r.current;
@@ -3413,9 +3413,9 @@ function Gc(t = !0, e) {
3413
3413
  };
3414
3414
  }, [t]), r;
3415
3415
  }
3416
- const qc = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
3417
- function Kc(t, e) {
3418
- const [n, r] = Ro(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
3416
+ const Kc = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
3417
+ function Jc(t, e) {
3418
+ const [n, r] = Po(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
3419
3419
  let l = n;
3420
3420
  [...e.autoPin ?? []].reverse().forEach((p) => {
3421
3421
  s.includes(p) && !l.includes(p) && !l.includes(`!${p}`) && (l = [p, ...l]);
@@ -3453,8 +3453,8 @@ function Kc(t, e) {
3453
3453
  };
3454
3454
  return { id: t, tabbed: a && h.length > 1, cur: M, seq: d, pinnable: o, tabKeys: h, stripTabs: e.tabs.filter((p) => h.includes(p.key)), panel: N, pin: f, unpin: y };
3455
3455
  }
3456
- function Jc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
3457
- return Xc(t), /* @__PURE__ */ m(xe, { children: [
3456
+ function Xc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
3457
+ return eu(t), /* @__PURE__ */ m(xe, { children: [
3458
3458
  e.map((o) => {
3459
3459
  const l = t.panel(o);
3460
3460
  if (!l.show) return null;
@@ -3464,13 +3464,13 @@ function Jc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
3464
3464
  l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d: ee.pin, size: 12, sw: 2 }) })
3465
3465
  ] }, o) : null;
3466
3466
  }),
3467
- t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Ta, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
3467
+ t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(va, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
3468
3468
  o !== "none" && (s ?? (() => {
3469
3469
  }))(o);
3470
3470
  }, fold: !1 }) })
3471
3471
  ] });
3472
3472
  }
3473
- function Xc(t) {
3473
+ function eu(t) {
3474
3474
  const e = w(t);
3475
3475
  e.current = t;
3476
3476
  const n = t.id;
@@ -3571,9 +3571,9 @@ function Xc(t) {
3571
3571
  };
3572
3572
  }, [n]);
3573
3573
  }
3574
- function eu({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
3575
- const [o, l] = Qo(t), c = w(null), u = w(null);
3576
- tu(u), x(() => {
3574
+ function tu({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
3575
+ const [o, l] = Vo(t), c = w(null), u = w(null);
3576
+ nu(u), x(() => {
3577
3577
  document.documentElement.style.setProperty("--colw", `${o}px`);
3578
3578
  }, [o]);
3579
3579
  const d = (M) => {
@@ -3597,7 +3597,7 @@ function eu({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
3597
3597
  /* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...h }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
3598
3598
  ] });
3599
3599
  }
3600
- function tu(t) {
3600
+ function nu(t) {
3601
3601
  x(() => {
3602
3602
  const e = t.current;
3603
3603
  if (!e) return;
@@ -3625,12 +3625,12 @@ function tu(t) {
3625
3625
  };
3626
3626
  }, [t]);
3627
3627
  }
3628
- function nu(t) {
3628
+ function ru(t) {
3629
3629
  return /\bwas not captured\b/i.test(t ?? "");
3630
3630
  }
3631
- const ru = 1500, su = 3e5;
3632
- function iu(t) {
3633
- const e = Gt(), [n, r] = j(null), [s, a] = j(null), [o, l] = j(null), [c, u] = j(null), d = w(null), h = w(null), M = w(null), g = w(0), f = Je(() => {
3631
+ const su = 1500, iu = 3e5;
3632
+ function au(t) {
3633
+ const e = Gt(), [n, r] = z(null), [s, a] = z(null), [o, l] = z(null), [c, u] = z(null), d = w(null), h = w(null), M = w(null), g = w(0), f = Je(() => {
3634
3634
  M.current && (clearTimeout(M.current), M.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), h.current && (URL.revokeObjectURL(h.current), h.current = null);
3635
3635
  }, []), y = Je(() => {
3636
3636
  g.current += 1, f(), a(null), l(null);
@@ -3645,7 +3645,7 @@ function iu(t) {
3645
3645
  const b = g.current;
3646
3646
  if (f(), r(p.id), a(null), l(null), u(null), !t) return;
3647
3647
  let S = p.previewUrl ? `${e.origin}${p.previewUrl}` : `${e.origin}/v1/voices/preview?voice=${encodeURIComponent(p.id)}&lang=${encodeURIComponent(t)}`;
3648
- Wn() === "caf" && (S += `${S.includes("?") ? "&" : "?"}format=caf`);
3648
+ Zn() === "caf" && (S += `${S.includes("?") ? "&" : "?"}format=caf`);
3649
3649
  const A = Date.now();
3650
3650
  e.shareCode && S.includes("recording=") && (S += `&shareCode=${encodeURIComponent(e.shareCode)}`);
3651
3651
  const P = async () => {
@@ -3661,13 +3661,13 @@ function iu(t) {
3661
3661
  }
3662
3662
  if (g.current !== b) return;
3663
3663
  if (O.status === 202 || O.status === 503) {
3664
- if (Date.now() - A > su) {
3664
+ if (Date.now() - A > iu) {
3665
3665
  l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
3666
3666
  return;
3667
3667
  }
3668
3668
  l(p.id), M.current = setTimeout(() => {
3669
3669
  P();
3670
- }, ru);
3670
+ }, su);
3671
3671
  return;
3672
3672
  }
3673
3673
  if (!O.ok) {
@@ -3692,16 +3692,16 @@ function iu(t) {
3692
3692
  }, [t, f, e]);
3693
3693
  return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: T };
3694
3694
  }
3695
- const Ur = 0.05, va = (t, e) => {
3695
+ const Ur = 0.05, wa = (t, e) => {
3696
3696
  let n = 0;
3697
3697
  for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
3698
3698
  return n;
3699
3699
  };
3700
- function au(t, e, n, r) {
3701
- const s = Math.max(0, e), a = r > 0 && s >= r - Ur, o = t.length && t[0].start <= s + 1e-6 ? va(t, s) : -1;
3700
+ function ou(t, e, n, r) {
3701
+ const s = Math.max(0, e), a = r > 0 && s >= r - Ur, o = t.length && t[0].start <= s + 1e-6 ? wa(t, s) : -1;
3702
3702
  return o < 0 ? { t: s, playing: n && !a, sentenceId: null, offset: 0, ended: a } : { t: s, playing: n && !a, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: a };
3703
3703
  }
3704
- function Un(t, e, n) {
3704
+ function Rn(t, e, n) {
3705
3705
  var l;
3706
3706
  const r = Math.max(0, n);
3707
3707
  if (t.ended) return { t: r, playing: !1, index: Math.max(0, e.length - 1) };
@@ -3713,19 +3713,19 @@ function Un(t, e, n) {
3713
3713
  }
3714
3714
  a = Math.max(0, Math.min(r, a));
3715
3715
  const o = r > 0 && a >= r - Ur && s < 0;
3716
- return { t: a, playing: t.playing && !o, index: s >= 0 ? s : va(e, a) };
3716
+ return { t: a, playing: t.playing && !o, index: s >= 0 ? s : wa(e, a) };
3717
3717
  }
3718
- function ou(t) {
3718
+ function lu(t) {
3719
3719
  return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
3720
3720
  }
3721
- const _i = "Preparing the voice…";
3722
- function lu(t) {
3721
+ const Yi = "Preparing the voice…";
3722
+ function cu(t) {
3723
3723
  if (!t.lang) return null;
3724
3724
  const e = t.langName;
3725
3725
  return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
3726
3726
  }
3727
- function wa(t, e) {
3728
- const [n, r] = j(null), [s, a] = j(!1);
3727
+ function ka(t, e) {
3728
+ const [n, r] = z(null), [s, a] = z(!1);
3729
3729
  return x(() => {
3730
3730
  if (!t) {
3731
3731
  r(null), a(!1);
@@ -3737,9 +3737,9 @@ function wa(t, e) {
3737
3737
  return () => clearTimeout(l);
3738
3738
  }, [t, e]), [s, n];
3739
3739
  }
3740
- const cu = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
3741
- function uu({ state: t, line: e, onRetry: n, onOriginal: r }) {
3742
- const [s, a] = j(() => Date.now());
3740
+ const uu = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
3741
+ function du({ state: t, line: e, onRetry: n, onOriginal: r }) {
3742
+ const [s, a] = z(() => Date.now());
3743
3743
  x(() => {
3744
3744
  if (t.since == null) return;
3745
3745
  const d = setInterval(() => a(Date.now()), 1e3);
@@ -3771,7 +3771,7 @@ function uu({ state: t, line: e, onRetry: n, onOriginal: r }) {
3771
3771
  /* @__PURE__ */ m("div", { className: "pwait__head", children: [
3772
3772
  l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d: ee.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
3773
3773
  /* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
3774
- !l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: cu(o) })
3774
+ !l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: uu(o) })
3775
3775
  ] }),
3776
3776
  /* @__PURE__ */ i("div", { className: "pwait__note", children: u }),
3777
3777
  !l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
@@ -3784,16 +3784,16 @@ function uu({ state: t, line: e, onRetry: n, onOriginal: r }) {
3784
3784
  }
3785
3785
  );
3786
3786
  }
3787
- function ka(t, e, n) {
3787
+ function La(t, e, n) {
3788
3788
  var c;
3789
3789
  const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
3790
3790
  if (!s && r.words.length) return r.words;
3791
- const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = ya(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
3792
- return wc(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
3791
+ const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Na(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
3792
+ return kc(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
3793
3793
  }
3794
- function Yi(t, e, n) {
3794
+ function Ui(t, e, n) {
3795
3795
  if (!t.engaged || e !== t.idx || !n.length) return null;
3796
- if (!t.wordSync) return t.clipPos ? ea(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
3796
+ if (!t.wordSync) return t.clipPos ? ta(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
3797
3797
  const r = t.t;
3798
3798
  let s = -1;
3799
3799
  for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
@@ -3811,8 +3811,8 @@ function Ft(t, e, n) {
3811
3811
  const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
3812
3812
  return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
3813
3813
  }
3814
- function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: h, waiting: M = !1 }) {
3815
- const g = w(null), [f, y] = j(!1);
3814
+ function hu({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: h, waiting: M = !1 }) {
3815
+ const g = w(null), [f, y] = z(!1);
3816
3816
  x(() => {
3817
3817
  if (!M) {
3818
3818
  y(!1);
@@ -3821,7 +3821,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3821
3821
  const Z = setTimeout(() => y(!0), 300);
3822
3822
  return () => clearTimeout(Z);
3823
3823
  }, [M]);
3824
- const T = r && !f, N = w(!1), [p, b] = j(!1), S = (Z, Ne = []) => {
3824
+ const T = r && !f, N = w(!1), [p, b] = z(!1), S = (Z, Ne = []) => {
3825
3825
  var q, Le;
3826
3826
  if (!(N.current && (Z === "pauseVideo" || Z === "seekTo" || Z === "setPlaybackRate")))
3827
3827
  try {
@@ -3846,7 +3846,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3846
3846
  C.current = n;
3847
3847
  const te = w(h);
3848
3848
  te.current = h;
3849
- const J = w(null), L = w(null), [ie, ne] = j(!0), [G, X] = j(!1), me = () => {
3849
+ const J = w(null), L = w(null), [ie, ne] = z(!0), [G, X] = z(!1), me = () => {
3850
3850
  S("unloadModule", ["captions"]), S("unloadModule", ["cc"]);
3851
3851
  }, le = w([]), Te = () => {
3852
3852
  me(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((Z) => window.setTimeout(me, Z));
@@ -3871,7 +3871,7 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3871
3871
  $e.current = c;
3872
3872
  const De = w(u);
3873
3873
  De.current = u;
3874
- const B = w(!1), [F, _] = j(!1), D = (Z) => {
3874
+ const B = w(!1), [F, _] = z(!1), D = (Z) => {
3875
3875
  const Ne = Se.current;
3876
3876
  return !!Ne && (Z < Ne.start - 1 || Z > Ne.end + 5);
3877
3877
  }, H = () => {
@@ -3939,22 +3939,22 @@ function du({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3939
3939
  ] })
3940
3940
  ] });
3941
3941
  }
3942
- const hu = /* @__PURE__ */ m(xe, { children: [
3942
+ const fu = /* @__PURE__ */ m(xe, { children: [
3943
3943
  /* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
3944
3944
  /* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
3945
- ] }), fu = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
3946
- function Mu({ player: t, size: e }) {
3945
+ ] }), Mu = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
3946
+ function gu({ player: t, size: e }) {
3947
3947
  const n = t.muted ? "Unmute" : "Mute";
3948
3948
  return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(oe, { d: t.muted ? ee.volumeOff : ee.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
3949
3949
  }
3950
- function gu() {
3951
- const [t, e] = j(""), n = w(null), r = Je((s) => {
3950
+ function mu() {
3951
+ const [t, e] = z(""), n = w(null), r = Je((s) => {
3952
3952
  clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
3953
3953
  }, []);
3954
3954
  return x(() => () => clearTimeout(n.current), []), [t, r];
3955
3955
  }
3956
- const mu = 0.2, pu = 140, yu = 320;
3957
- function Nu(t, e) {
3956
+ const pu = 0.2, yu = 140, Nu = 320;
3957
+ function Tu(t, e) {
3958
3958
  const n = w(t);
3959
3959
  n.current = t;
3960
3960
  const r = w(0), s = w(1), a = Je((o, l) => {
@@ -3968,21 +3968,21 @@ function Nu(t, e) {
3968
3968
  d();
3969
3969
  }, []);
3970
3970
  x(() => {
3971
- a(e ? mu : 1, e ? pu : yu);
3971
+ a(e ? pu : 1, e ? yu : Nu);
3972
3972
  }, [e, a]), x(() => () => {
3973
3973
  cancelAnimationFrame(r.current), s.current = 1;
3974
3974
  for (const o of n.current) o.setVolume(1);
3975
3975
  }, []);
3976
3976
  }
3977
- function Tu(t, e, n, r) {
3977
+ function vu(t, e, n, r) {
3978
3978
  var De;
3979
- const s = w(null), a = w(!1), o = w(!1), [l, c] = j(null), [u, d] = j(!0), h = w(!0), M = w(!1), [g, f] = j(0), y = w(0);
3979
+ const s = w(null), a = w(!1), o = w(!1), [l, c] = z(null), [u, d] = z(!0), h = w(!0), M = w(!1), [g, f] = z(0), y = w(0);
3980
3980
  y.current = g;
3981
3981
  const T = w({ t: 0, at: 0 }), N = w(n);
3982
3982
  N.current = n;
3983
3983
  const p = w(r);
3984
3984
  p.current = r;
3985
- const [b, S] = j(!1), A = w(!1), P = (B) => {
3985
+ const [b, S] = z(!1), A = w(!1), P = (B) => {
3986
3986
  A.current = B, S(B);
3987
3987
  }, O = (B, F) => {
3988
3988
  var _;
@@ -4021,7 +4021,7 @@ function Tu(t, e, n, r) {
4021
4021
  let B = 0;
4022
4022
  for (let F = 0; F < t.length; F++) t[F].start <= g + 0.05 && (B = F);
4023
4023
  return B;
4024
- }, [t, g]), [te, J] = j(0), L = (B) => {
4024
+ }, [t, g]), [te, J] = z(0), L = (B) => {
4025
4025
  const F = Math.max(0, p.current != null ? Math.min(B, Math.max(0, p.current - 0.5)) : B);
4026
4026
  O("seekTo", [F + N.current, !0]), T.current = { t: F, at: performance.now() }, f(F), J((_) => _ + 1);
4027
4027
  }, ie = w(!1), ne = w(void 0), G = (B) => {
@@ -4117,13 +4117,13 @@ function Tu(t, e, n, r) {
4117
4117
  setVolume: (B) => O("setVolume", [Math.round(B * 100)])
4118
4118
  }, lead: E, setVideoSound: ve };
4119
4119
  }
4120
- function vu(t, e, n, r, s = 0, a = null) {
4120
+ function wu(t, e, n, r, s = 0, a = null) {
4121
4121
  var _;
4122
- const o = w(null), [l, c] = j(!1), [u, d] = j(0), [h, M] = j(!1), g = w(h);
4122
+ const o = w(null), [l, c] = z(!1), [u, d] = z(0), [h, M] = z(!1), g = w(h);
4123
4123
  g.current = h;
4124
- const f = w(!1), [y, T] = j(null), [N, p] = j(!1), b = w(s);
4124
+ const f = w(!1), [y, T] = z(null), [N, p] = z(!1), b = w(s);
4125
4125
  b.current = s;
4126
- const S = w(null), [A, P] = j(0);
4126
+ const S = w(null), [A, P] = z(0);
4127
4127
  x(() => {
4128
4128
  p(!1);
4129
4129
  const D = S.current;
@@ -4131,16 +4131,16 @@ function vu(t, e, n, r, s = 0, a = null) {
4131
4131
  c(!1), o.current = null;
4132
4132
  return;
4133
4133
  }
4134
- const H = Ki(t), ce = b.current;
4134
+ const H = Ji(t), ce = b.current;
4135
4135
  return H.preload = "metadata", H.muted = g.current || f.current, H.onplay = () => c(!0), H.onpause = () => c(!1), H.onended = () => c(!1), H.onloadedmetadata = () => {
4136
4136
  p(!0), H.currentTime = ((D == null ? void 0 : D.t) ?? 0) + ce, D != null && D.playing && H.play().catch((Z) => {
4137
4137
  D.asked && (Z == null ? void 0 : Z.name) === "NotAllowedError" || T(Ct(Z));
4138
4138
  });
4139
4139
  }, H.onerror = () => {
4140
4140
  c(!1);
4141
- const Z = H.error, Ne = Ao(Z, !1);
4142
- Oo(t).then((q) => {
4143
- nu(q == null ? void 0 : q.message) || Gi(Z), o.current === H && (T({ message: (q == null ? void 0 : q.message) ?? Ne }), q != null && q.permanent || (o.current = null));
4141
+ const Z = H.error, Ne = Eo(Z, !1);
4142
+ xo(t).then((q) => {
4143
+ ru(q == null ? void 0 : q.message) || qi(Z), o.current === H && (T({ message: (q == null ? void 0 : q.message) ?? Ne }), q != null && q.permanent || (o.current = null));
4144
4144
  });
4145
4145
  }, o.current = H, () => {
4146
4146
  S.current = { t: Math.max(0, H.currentTime - ce), playing: !H.paused && !H.ended }, H.pause(), H.onplay = H.onpause = H.onended = H.onloadedmetadata = H.onerror = null, o.current = null;
@@ -4154,7 +4154,7 @@ function vu(t, e, n, r, s = 0, a = null) {
4154
4154
  E.current = V;
4155
4155
  const k = w(a);
4156
4156
  k.current = a;
4157
- const [Y, C] = j(!1), te = w(!1), J = (D) => {
4157
+ const [Y, C] = z(!1), te = w(!1), J = (D) => {
4158
4158
  te.current = D, C(D);
4159
4159
  };
4160
4160
  x(() => {
@@ -4191,7 +4191,7 @@ function vu(t, e, n, r, s = 0, a = null) {
4191
4191
  let D = 0;
4192
4192
  for (let H = 0; H < n.length; H++) n[H].start <= u + 0.05 && (D = H);
4193
4193
  return D;
4194
- }, [n, u]), [ie, ne] = j(0), G = (D) => {
4194
+ }, [n, u]), [ie, ne] = z(0), G = (D) => {
4195
4195
  const H = k.current != null ? Math.min(D, Math.max(0, k.current - 0.5)) : D, ce = o.current;
4196
4196
  d(H), ce && (ce.currentTime = H + b.current), ne((Z) => Z + 1);
4197
4197
  }, X = (D) => {
@@ -4220,7 +4220,7 @@ function vu(t, e, n, r, s = 0, a = null) {
4220
4220
  const H = n[Math.max(0, Math.min(n.length - 1, D))];
4221
4221
  H && G(H.start);
4222
4222
  }, Te = (D) => G(Math.max(0, Math.min(1, D)) * I), je = (D) => {
4223
- const H = Un(D, n, I);
4223
+ const H = Rn(D, n, I);
4224
4224
  G(H.t);
4225
4225
  const ce = o.current;
4226
4226
  if (ce) {
@@ -4309,14 +4309,14 @@ function vu(t, e, n, r, s = 0, a = null) {
4309
4309
  }
4310
4310
  };
4311
4311
  }
4312
- function wu(t, e, n, r, s, a, o = !1, l) {
4312
+ function ku(t, e, n, r, s, a, o = !1, l) {
4313
4313
  const c = w(/* @__PURE__ */ new Set());
4314
4314
  c.current = l ?? c.current;
4315
- const u = w(null), [d, h] = j(!1), [M, g] = j(0), [f, y] = j(0), [T, N] = j(!1), p = w(T);
4315
+ const u = w(null), [d, h] = z(!1), [M, g] = z(0), [f, y] = z(0), [T, N] = z(!1), p = w(T);
4316
4316
  p.current = T;
4317
- const [b, S] = j(null), [A, P] = j(null), [O, V] = j(null), [I, W] = j(null), E = w(I);
4317
+ const [b, S] = z(null), [A, P] = z(null), [O, V] = z(null), [I, W] = z(null), E = w(I);
4318
4318
  E.current = I;
4319
- const [k, Y] = j(null), [C, te] = j(null), [J, L] = j(null), [ie, ne] = j(!1), G = w(e);
4319
+ const [k, Y] = z(null), [C, te] = z(null), [J, L] = z(null), [ie, ne] = z(!1), G = w(e);
4320
4320
  G.current = e;
4321
4321
  const X = w(o), me = w([]);
4322
4322
  X.current = o, u.current && (u.current.flow = o);
@@ -4330,7 +4330,7 @@ function wu(t, e, n, r, s, a, o = !1, l) {
4330
4330
  const K = G.current.findIndex((se) => se.sentenceId === $);
4331
4331
  K >= 0 && g(K);
4332
4332
  }, U.onError = ($) => {
4333
- h(U.playing), S($ instanceof Ji ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
4333
+ h(U.playing), S($ instanceof Xi ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
4334
4334
  }, U.gapBefore = ($, K) => {
4335
4335
  if (!X.current) return 0;
4336
4336
  const se = G.current, he = se.find((Oe) => Oe.sentenceId === $), be = se.find((Oe) => Oe.sentenceId === K);
@@ -4351,10 +4351,10 @@ function wu(t, e, n, r, s, a, o = !1, l) {
4351
4351
  const se = G.current.find((he) => he.sentenceId === $);
4352
4352
  return !se || !K.has(se.speaker);
4353
4353
  };
4354
- }, []), we = w(null), ve = w(null), Ee = w(null), [$e, De] = j(!1), B = w(() => {
4354
+ }, []), we = w(null), ve = w(null), Ee = w(null), [$e, De] = z(!1), B = w(() => {
4355
4355
  }), F = (U) => {
4356
4356
  if (Ee.current = U, De(!!(U != null && U.playing)), !U) return;
4357
- const $ = Un(U, G.current, Ie).index;
4357
+ const $ = Rn(U, G.current, Ie).index;
4358
4358
  g($), Ae.current = $;
4359
4359
  }, _ = () => {
4360
4360
  Ee.current && F(null);
@@ -4423,7 +4423,7 @@ function wu(t, e, n, r, s, a, o = !1, l) {
4423
4423
  return { from: K, span: Math.max(0, se - K) };
4424
4424
  }, fe = Q(q), de = Math.max(0, Math.min(fe.span, Ft(e[q], fe.from, fe.from + 4) - fe.from)), ae = I ? I.t : o ? C != null && ie ? fe.from + Math.min(fe.span, C) : C != null ? J != null ? Math.min(fe.from, J + C) : fe.from + Math.min(fe.span, de + C) : k && k.dur > 0 ? fe.from + Math.min(de, k.t / k.dur * de) : fe.from : k && k.dur > 0 ? fe.from + Math.min(fe.span, k.t / k.dur * fe.span) : fe.from;
4425
4425
  x(() => {
4426
- ve.current = Ee.current ?? au(e, ae, d, Ie);
4426
+ ve.current = Ee.current ?? ou(e, ae, d, Ie);
4427
4427
  });
4428
4428
  const ge = {
4429
4429
  playing: d || $e,
@@ -4547,10 +4547,10 @@ function wu(t, e, n, r, s, a, o = !1, l) {
4547
4547
  te((K == null ? void 0 : K.s) ?? null), ne(!!(K != null && K.silent)), h(!!((ye = u.current) != null && ye.playing));
4548
4548
  }
4549
4549
  return ge.joinAt = o ? (U) => {
4550
- _(), Ye(Un({ t: U, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, Ie).index);
4550
+ _(), Ye(Rn({ t: U, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, Ie).index);
4551
4551
  } : void 0, B.current = (U) => {
4552
4552
  var K;
4553
- const $ = Un(U, e, Ie);
4553
+ const $ = Rn(U, e, Ie);
4554
4554
  if (X.current) {
4555
4555
  g($.index), Ae.current = $.index, $.playing && Ye($.index);
4556
4556
  return;
@@ -4558,22 +4558,22 @@ function wu(t, e, n, r, s, a, o = !1, l) {
4558
4558
  (K = ge.seekFrac) == null || K.call(ge, $.t / Ie), $.playing && ue(Ae.current);
4559
4559
  }, ge;
4560
4560
  }
4561
- const ku = () => {
4562
- }, Lu = "The language this recording is read aloud in.", ju = { title: "READ IN", note: "The transcript and its voice switch to this language." };
4563
- function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: h, hearOriginal: M = !1, timed: g = !1, stockVoices: f = !1, stickyPicker: y = !1, pickerBusy: T = null, voiceSheet: N, forcedVoice: p = null }) {
4561
+ const Lu = () => {
4562
+ }, ju = "The language this recording is read aloud in.", zu = { title: "READ IN", note: "The transcript and its voice switch to this language." };
4563
+ function Iu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: h, hearOriginal: M = !1, timed: g = !1, stockVoices: f = !1, stickyPicker: y = !1, pickerBusy: T = null, voiceSheet: N, forcedVoice: p = null }) {
4564
4564
  var yn, pt, Nn, ln;
4565
- const { onAddVoice: b, onPickVoice: S, onSelectSpeaker: A, noCloneFor: P, castNoClone: O, castShort: V, castBuilding: I, castWarn: W, badge: E, titleNode: k } = N ?? {}, Y = !!N, C = !!(N != null && N.pendingClones), [te, J] = na(), [L, ie] = j(null), [ne, G] = j(!1), [X, me] = j(!1), [le, Te] = j(!1), [je, Se] = j(!1), we = u ?? l, ve = u === null, Ee = u != null || L != null, De = ((R) => !!R && !!(o != null && o.voice.includes(R)))(ve ? l : we) ? ve ? l : we : "en", B = iu(De), F = (N == null ? void 0 : N.cloneOn) ?? !0, [_, D] = j(0), H = w(F);
4565
+ const { onAddVoice: b, onPickVoice: S, onSelectSpeaker: A, noCloneFor: P, castNoClone: O, castShort: V, castBuilding: I, castWarn: W, badge: E, titleNode: k } = N ?? {}, Y = !!N, C = !!(N != null && N.pendingClones), [te, J] = ra(), [L, ie] = z(null), [ne, G] = z(!1), [X, me] = z(!1), [le, Te] = z(!1), [je, Se] = z(!1), we = u ?? l, ve = u === null, Ee = u != null || L != null, De = ((R) => !!R && !!(o != null && o.voice.includes(R)))(ve ? l : we) ? ve ? l : we : "en", B = au(De), F = (N == null ? void 0 : N.cloneOn) ?? !0, [_, D] = z(0), H = w(F);
4566
4566
  x(() => {
4567
4567
  H.current !== F && (H.current = F, D((R) => R + 1));
4568
4568
  }, [F]);
4569
- const ce = Uc(De, Ee || s || X, $c(e) * 1e3 + _, { id: t ?? null, shareCode: a.shareCode ?? null }), Z = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((R) => Y || !R.cloned || R.speaker != null), [ce, Y]), Ne = Z.length > 1, q = Yr(o, we), Le = ga(), Ie = ze(() => ra(o, "translation"), [o]), [Fe, Ae] = j(null), [ue] = j(() => /* @__PURE__ */ new Set()), [_e, Ve] = j({}), Q = ze(() => Dc(n, e, Le.vcUnknownSpk), [n, e, Le]), fe = Ne && Q.filter((R) => R.key >= 0).length > 1, de = Fe != null && Q.some((R) => R.key === Fe) ? Fe : ((yn = Q[0]) == null ? void 0 : yn.key) ?? null, ae = ze(() => {
4570
- const R = Ei(Q, Z, F);
4569
+ const ce = $c(De, Ee || s || X, Rc(e) * 1e3 + _, { id: t ?? null, shareCode: a.shareCode ?? null }), Z = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((R) => Y || !R.cloned || R.speaker != null), [ce, Y]), Ne = Z.length > 1, q = Yr(o, we), Le = ma(), Ie = ze(() => sa(o, "translation"), [o]), [Fe, Ae] = z(null), [ue] = z(() => /* @__PURE__ */ new Set()), [_e, Ve] = z({}), Q = ze(() => Ac(n, e, Le.vcUnknownSpk), [n, e, Le]), fe = Ne && Q.filter((R) => R.key >= 0).length > 1, de = Fe != null && Q.some((R) => R.key === Fe) ? Fe : ((yn = Q[0]) == null ? void 0 : yn.key) ?? null, ae = ze(() => {
4570
+ const R = _i(Q, Z, F);
4571
4571
  for (const [Ce, Qe] of Object.entries(_e[De ?? ""] ?? {})) R.set(Number(Ce), Qe);
4572
4572
  return R;
4573
- }, [Q, Z, _e, De, F]), ge = fe && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => f && !ge ? Ei(Q, Z, !1) : null, [f, ge, Q, Z]), U = ze(() => ge ? Di(ae) || null : Ye && Di(Ye) || null, [ge, ae, Ye]), $ = ge ? ae : Ye, K = Z.some((R) => R.cloned && R.consent !== "pending"), se = !!we && !!(o != null && o.voice.includes(we)), he = se && !M, be = ze(
4573
+ }, [Q, Z, _e, De, F]), ge = fe && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => f && !ge ? _i(Q, Z, !1) : null, [f, ge, Q, Z]), U = ze(() => ge ? Ai(ae) || null : Ye && Ai(Ye) || null, [ge, ae, Ye]), $ = ge ? ae : Ye, K = Z.some((R) => R.cloned && R.consent !== "pending"), se = !!we && !!(o != null && o.voice.includes(we)), he = se && !M, be = ze(
4574
4574
  () => n.filter((R) => !R.suppressed && !R.unclear).map((R) => R.sentenceId).filter((R) => R != null),
4575
4575
  [n]
4576
- ), ye = Rc({ recordingId: t, lang: we, ended: s, cred: a, pickedVoice: p || (U ?? L), sentenceIds: s && he ? be : void 0 }), ke = Z.find((R) => R.id === L) ?? Z.find((R) => {
4576
+ ), ye = Pc({ recordingId: t, lang: we, ended: s, cred: a, pickedVoice: p || (U ?? L), sentenceIds: s && he ? be : void 0 }), ke = Z.find((R) => R.id === L) ?? Z.find((R) => {
4577
4577
  var Ce;
4578
4578
  return R.id === ((Ce = ye.track) == null ? void 0 : Ce.voice);
4579
4579
  }) ?? Z.find((R) => R.default) ?? Z[0] ?? null, Oe = (ke == null ? void 0 : ke.id) ?? null;
@@ -4582,7 +4582,7 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4582
4582
  const R = setInterval(ye.reload, 4e3);
4583
4583
  return () => clearInterval(R);
4584
4584
  }, [ye.rendering, ye.reload]);
4585
- const He = `${t ?? ""}|${we ?? ""}|${p || (U ?? L ?? ((pt = ye.track) == null ? void 0 : pt.voiceKey) ?? "default")}`, Pe = wu(ye.clips, n, r, He, ue, (Nn = ye.track) == null ? void 0 : Nn.wordTimes, g, ye.coming);
4585
+ const He = `${t ?? ""}|${we ?? ""}|${p || (U ?? L ?? ((pt = ye.track) == null ? void 0 : pt.voiceKey) ?? "default")}`, Pe = ku(ye.clips, n, r, He, ue, (Nn = ye.track) == null ? void 0 : Nn.wordTimes, g, ye.coming);
4586
4586
  x(() => {
4587
4587
  var Ce;
4588
4588
  const R = (Ce = n[Pe.idx]) == null ? void 0 : Ce.sentenceId;
@@ -4636,7 +4636,7 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4636
4636
  return;
4637
4637
  }
4638
4638
  ie(R);
4639
- }, v = ve ? { ...Yr(o, null), flag: /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : q, Fn = c ? h ? /* @__PURE__ */ i("span", { className: "barchip", style: ct ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Qn, { flag: v.flag, code: v.code, bordered: !1, onClick: rn, flagOnly: !0, label: v.label }) }) : /* @__PURE__ */ i(Qn, { flag: v.flag, code: v.code, bordered: !1, onClick: it, flagOnly: !0, label: v.label }) : null, Ut = ee.voiceClone, $t = Ee && (!!ye.track || ht), Rt = at ? "var(--conf-low)" : $t || h && ot ? "var(--brand)" : "var(--ink-55)", qt = ou({ on: Ee, want: je, relang: st, playing: Pe.playing, preparing: !!Pe.preparing, starting: Pe.starting }), [mn] = wa(qt === "line", 400), qe = qt === "asked" || qt === "line" && mn, lt = ht || qe, sn = qt === "asked" ? _i : Pe.preparing ? `Speaking this line in ${(ke == null ? void 0 : ke.name) ?? "this voice"}…` : ht ? `Preparing this recording in ${(ke == null ? void 0 : ke.name) ?? "this voice"} — it will play as soon as it is ready` : at ? `This voice could not be prepared: ${at}` : se ? Ne ? "Choose a voice" : ke ? ke.name : Le.vcNoVoice + q.label : `${Le.vcNoVoice}${q.label}`, vt = /* @__PURE__ */ i(Vo, { open: ne, onClose: Be, keepOpen: (!!h || y) && !le, value: ve ? null : we, onSelect: Mn, languages: Ie, title: (h == null ? void 0 : h.title) ?? "SPOKEN LANGUAGE", note: (h == null ? void 0 : h.note) ?? Lu, searchPlaceholder: Le.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te, requireVoice: le, sticky: y, busy: T }), mt = ze(() => Z.filter((R) => R.cloned && !R.auto), [Z]), Kt = (R) => R.voiceId ? mt.find((Ce) => Ce.id === `clone:${R.voiceId}`) ?? null : null, ft = ze(() => Q.filter((R) => R.key >= 0), [Q]), an = ze(() => {
4639
+ }, v = ve ? { ...Yr(o, null), flag: /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : q, Gn = c ? h ? /* @__PURE__ */ i("span", { className: "barchip", style: ct ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Bn, { flag: v.flag, code: v.code, bordered: !1, onClick: rn, flagOnly: !0, label: v.label }) }) : /* @__PURE__ */ i(Bn, { flag: v.flag, code: v.code, bordered: !1, onClick: it, flagOnly: !0, label: v.label }) : null, Ut = ee.voiceClone, $t = Ee && (!!ye.track || ht), Rt = at ? "var(--conf-low)" : $t || h && ot ? "var(--brand)" : "var(--ink-55)", qt = lu({ on: Ee, want: je, relang: st, playing: Pe.playing, preparing: !!Pe.preparing, starting: Pe.starting }), [mn] = ka(qt === "line", 400), qe = qt === "asked" || qt === "line" && mn, lt = ht || qe, sn = qt === "asked" ? Yi : Pe.preparing ? `Speaking this line in ${(ke == null ? void 0 : ke.name) ?? "this voice"}…` : ht ? `Preparing this recording in ${(ke == null ? void 0 : ke.name) ?? "this voice"} — it will play as soon as it is ready` : at ? `This voice could not be prepared: ${at}` : se ? Ne ? "Choose a voice" : ke ? ke.name : Le.vcNoVoice + q.label : `${Le.vcNoVoice}${q.label}`, vt = /* @__PURE__ */ i(Bo, { open: ne, onClose: Be, keepOpen: (!!h || y) && !le, value: ve ? null : we, onSelect: Mn, languages: Ie, title: (h == null ? void 0 : h.title) ?? "SPOKEN LANGUAGE", note: (h == null ? void 0 : h.note) ?? ju, searchPlaceholder: Le.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te, requireVoice: le, sticky: y, busy: T }), mt = ze(() => Z.filter((R) => R.cloned && !R.auto), [Z]), Kt = (R) => R.voiceId ? mt.find((Ce) => Ce.id === `clone:${R.voiceId}`) ?? null : null, ft = ze(() => Q.filter((R) => R.key >= 0), [Q]), an = ze(() => {
4640
4640
  const R = Z.filter((Qe) => !Qe.cloned);
4641
4641
  if (!fe) return [...R, ...s && ft.length === 1 ? mt.filter((Qe) => Qe.id === `clone:${ft[0].voiceId}`) : []];
4642
4642
  const Ce = [];
@@ -4654,11 +4654,11 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4654
4654
  lt && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } }),
4655
4655
  tt.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: tt.join(" · "), children: "!" }) : !!Qt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Qt} speaker${Qt === 1 ? "" : "s"} can get a cloned voice`, children: Qt })
4656
4656
  ] }), Dt = /* @__PURE__ */ i(nn, { open: X, onClose: Xe, title: Le.vcSheet, titleNode: k, doneLabel: Le.done, children: /* @__PURE__ */ i(
4657
- Ec,
4657
+ _c,
4658
4658
  {
4659
4659
  t: Le,
4660
4660
  cast: fe && /* @__PURE__ */ i(
4661
- Ac,
4661
+ Ec,
4662
4662
  {
4663
4663
  t: Le,
4664
4664
  roster: Q,
@@ -4701,26 +4701,26 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4701
4701
  },
4702
4702
  onUse: gn
4703
4703
  }
4704
- ) }), Zn = h ? null : /* @__PURE__ */ m(xe, { children: [
4704
+ ) }), qn = h ? null : /* @__PURE__ */ m(xe, { children: [
4705
4705
  vt,
4706
4706
  Dt
4707
- ] }), Gn = h && (ne || X) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? vt : Dt }) : null, At = Ge ? at ? `This voice could not be prepared: ${at}` : qe && (je || Pe.playing) ? _i : null : null, qn = Tt;
4707
+ ] }), Kn = h && (ne || X) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? vt : Dt }) : null, At = Ge ? at ? `This voice could not be prepared: ${at}` : qe && (je || Pe.playing) ? Yi : null : null, Jn = Tt;
4708
4708
  return {
4709
4709
  barChip: { flag: v.flag, code: v.code, label: v.label, onClick: h || y ? rn : it, active: !!((h || y) && ct), can: c },
4710
4710
  sheetsOpen: ne || X,
4711
4711
  on: Ge,
4712
4712
  player: gt,
4713
- chip: Fn,
4713
+ chip: Gn,
4714
4714
  voiceBtn: pn,
4715
4715
  voiceWaiting: lt,
4716
- sheets: Zn,
4717
- sidePanel: Gn,
4716
+ sheets: qn,
4717
+ sidePanel: Kn,
4718
4718
  voicesMine: ot,
4719
4719
  toggleVoices: re,
4720
4720
  cloningOn: F,
4721
4721
  playTitle: At,
4722
4722
  noVoice: Tt,
4723
- noVoiceNote: qn,
4723
+ noVoiceNote: Jn,
4724
4724
  relang: st,
4725
4725
  sampling: B.sampleId != null,
4726
4726
  error: B.error,
@@ -4756,12 +4756,12 @@ function zu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4756
4756
  langList: { value: ve ? null : we, onSelect: Mn, languages: Ie, searchPlaceholder: Le.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te }
4757
4757
  };
4758
4758
  }
4759
- function Iu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: h = !0, tail: M, tailFg: g, running: f, desk: y, feedRef: T, listener: N, showLabels: p, find: b, findOpen: S, lang: A, warm: P, onVisible: O, wordHl: V = !0 }) {
4759
+ function bu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: h = !0, tail: M, tailFg: g, running: f, desk: y, feedRef: T, listener: N, showLabels: p, find: b, findOpen: S, lang: A, warm: P, onVisible: O, wordHl: V = !0 }) {
4760
4760
  const { playing: I, engaged: W, t: E, idx: k, seekN: Y, wordSync: C, clipPos: te } = n;
4761
- Gc(!0, T);
4761
+ qc(!0, T);
4762
4762
  const J = w(null);
4763
- kc(T, J);
4764
- const [L, ie] = j(null), ne = (b ?? "").trim().toLowerCase(), [G, X] = j(0), me = w(0), le = w(null), Te = w(k), je = (F) => {
4763
+ Lc(T, J);
4764
+ const [L, ie] = z(null), ne = (b ?? "").trim().toLowerCase(), [G, X] = z(0), me = w(0), le = w(null), Te = w(k), je = (F) => {
4765
4765
  var _;
4766
4766
  return ((_ = T.current) == null ? void 0 : _.querySelector(`[data-tx-row="${F}"]`)) ?? null;
4767
4767
  }, Se = w("");
@@ -4838,27 +4838,27 @@ function Iu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4838
4838
  "Now playing"
4839
4839
  ] }) });
4840
4840
  return /* @__PURE__ */ m("div", { ref: T, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${S && !f ? " is-find" : ""}`, children: [
4841
- /* @__PURE__ */ i(Lc, { thumbRef: J }),
4841
+ /* @__PURE__ */ i(jc, { thumbRef: J }),
4842
4842
  I && G === -1 && B("up"),
4843
4843
  e.map((F, _) => {
4844
4844
  var fe;
4845
4845
  const D = I && _ === k, H = W && _ === k, ce = !!u && u === F.id, Z = ne && !F.text.toLowerCase().includes(ne) && !(A && ((fe = F.translations[A]) != null && fe.toLowerCase().includes(ne))) ? 0.22 : !W || _ <= k || ce ? 1 : 0.38, Ne = N ? () => n.playRow(_) : c && l ? () => {
4846
4846
  I && !D && n.seekRow(_), l(F);
4847
- } : I && D ? void 0 : () => n.playRow(_), q = N ? null : Ic(F, s, r), Le = !!q && (q.script > 0 || q.manual), Ie = y && !!a && L === F.id && !!q && !Le, Fe = Hr(t, F.speaker), Ae = Wr(t, F.speaker), ue = Ae.lane, _e = A && F.translations[A] && F.language !== A ? F.translations[A] : null, Ve = ka(e, _, A), Q = H && !C && te ? ea(Ve.map((de) => ({ t: de.text, sp: " " })), te) : null;
4847
+ } : I && D ? void 0 : () => n.playRow(_), q = N ? null : bc(F, s, r), Le = !!q && (q.script > 0 || q.manual), Ie = y && !!a && L === F.id && !!q && !Le, Fe = Hr(t, F.speaker), Ae = Wr(t, F.speaker), ue = Ae.lane, _e = A && F.translations[A] && F.language !== A ? F.translations[A] : null, Ve = La(e, _, A), Q = H && !C && te ? ta(Ve.map((de) => ({ t: de.text, sp: " " })), te) : null;
4848
4848
  return /* @__PURE__ */ m("div", { "data-tx-row": _, "data-sentence": F.sentenceId, className: `txline${P ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: Z }, onClick: Ne, onMouseEnter: y && a ? () => ie(F.id) : void 0, onMouseLeave: y && a ? () => ie(null) : void 0, children: [
4849
4849
  /* @__PURE__ */ m("div", { className: "txline__meta", children: [
4850
4850
  /* @__PURE__ */ i("span", { className: "txline__at", children: Ot(F.start) }),
4851
4851
  p && F.speaker >= 0 && /* @__PURE__ */ m(xe, { children: [
4852
- /* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: ca(t, F.speaker) }),
4852
+ /* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: ua(t, F.speaker) }),
4853
4853
  /* @__PURE__ */ i("span", { className: `txline__who lane-${ue}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
4854
- Ae.hasVoice && /* @__PURE__ */ i(Na, { color: Ae.fg ?? `var(--lane-${ue})` })
4854
+ Ae.hasVoice && /* @__PURE__ */ i(Ta, { color: Ae.fg ?? `var(--lane-${ue})` })
4855
4855
  ] }),
4856
4856
  D && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: ee.headphones, size: y ? 15 : 14, sw: 1.6, stroke: p && F.speaker >= 0 ? Ae.fg ?? `var(--lane-${ue})` : "var(--ink-45)" }) }),
4857
- q && h && /* @__PURE__ */ i(bc, { f: q, desk: y, onOpen: a ? () => a(F, !0) : void 0 }),
4858
- Ie && /* @__PURE__ */ i(Oc, { alone: !0, onOpen: () => a == null ? void 0 : a(F, !1) })
4857
+ q && h && /* @__PURE__ */ i(Oc, { f: q, desk: y, onOpen: a ? () => a(F, !0) : void 0 }),
4858
+ Ie && /* @__PURE__ */ i(xc, { alone: !0, onOpen: () => a == null ? void 0 : a(F, !1) })
4859
4859
  ] }),
4860
4860
  /* @__PURE__ */ i("div", { className: "txline__text", children: Ve.map((de, ae) => {
4861
- const ge = `${de.seq}:${de.idx}`, Ye = Zl(de.prob), U = H && V, $ = U && (C ? E >= de.start && (E < de.end || ae === Ve.length - 1 || E < Ve[ae + 1].start) : ae === Q), K = U && !$ && (C ? de.start > E : Q != null && ae > Q), se = !_e && !N && (!!(r != null && r.has(ge)) || !!de.script), he = !_e && !N && d && !!Ye && !se, be = he ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ye = se ? "var(--brand)" : K ? "var(--ink-40)" : be ?? "var(--ink-96)";
4861
+ const ge = `${de.seq}:${de.idx}`, Ye = Gl(de.prob), U = H && V, $ = U && (C ? E >= de.start && (E < de.end || ae === Ve.length - 1 || E < Ve[ae + 1].start) : ae === Q), K = U && !$ && (C ? de.start > E : Q != null && ae > Q), se = !_e && !N && (!!(r != null && r.has(ge)) || !!de.script), he = !_e && !N && d && !!Ye && !se, be = he ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ye = se ? "var(--brand)" : K ? "var(--ink-40)" : be ?? "var(--ink-96)";
4862
4862
  return /* @__PURE__ */ m("span", { children: [
4863
4863
  /* @__PURE__ */ i(
4864
4864
  "span",
@@ -4894,7 +4894,7 @@ function Iu({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4894
4894
  I && G === 1 && B("down")
4895
4895
  ] });
4896
4896
  }
4897
- function bu({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
4897
+ function Ou({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
4898
4898
  return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ m("div", { children: [
4899
4899
  /* @__PURE__ */ i(oe, { d: ee.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
4900
4900
  /* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
@@ -4908,12 +4908,12 @@ function bu({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, fl
4908
4908
  e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 15, sw: 1.7 }) })
4909
4909
  ] }) });
4910
4910
  }
4911
- function Ou(t, e, n, r, s) {
4911
+ function xu(t, e, n, r, s) {
4912
4912
  const a = w(n);
4913
4913
  a.current = n;
4914
4914
  const o = w(r);
4915
4915
  o.current = r;
4916
- const [l, c] = j(0), u = r.trim().toLowerCase();
4916
+ const [l, c] = z(0), u = r.trim().toLowerCase();
4917
4917
  return x(() => {
4918
4918
  c(u ? e.filter((d) => d.text.toLowerCase().includes(u)).length : 0);
4919
4919
  }, [e, u]), x(() => {
@@ -4938,7 +4938,7 @@ function Ou(t, e, n, r, s) {
4938
4938
  }, []), l;
4939
4939
  }
4940
4940
  const fn = { formatBits: 0, perBlock: [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], blocks: [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49] };
4941
- function La(t) {
4941
+ function ja(t) {
4942
4942
  let e = (16 * t + 128) * t + 64;
4943
4943
  if (t >= 2) {
4944
4944
  const n = Math.floor(t / 7) + 2;
@@ -4946,14 +4946,14 @@ function La(t) {
4946
4946
  }
4947
4947
  return e;
4948
4948
  }
4949
- const Ui = (t) => Math.floor(La(t) / 8) - fn.perBlock[t] * fn.blocks[t];
4949
+ const $i = (t) => Math.floor(ja(t) / 8) - fn.perBlock[t] * fn.blocks[t];
4950
4950
  function $r(t, e) {
4951
4951
  let n = 0;
4952
4952
  for (let r = 7; r >= 0; r--)
4953
4953
  n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
4954
4954
  return n;
4955
4955
  }
4956
- function xu(t) {
4956
+ function Cu(t) {
4957
4957
  const e = new Array(t).fill(0);
4958
4958
  e[t - 1] = 1;
4959
4959
  let n = 1;
@@ -4963,7 +4963,7 @@ function xu(t) {
4963
4963
  }
4964
4964
  return e;
4965
4965
  }
4966
- function Cu(t, e) {
4966
+ function Su(t, e) {
4967
4967
  const n = new Array(e.length).fill(0);
4968
4968
  for (const r of t) {
4969
4969
  const s = r ^ n.shift();
@@ -4973,19 +4973,19 @@ function Cu(t, e) {
4973
4973
  }
4974
4974
  return n;
4975
4975
  }
4976
- function Su(t) {
4976
+ function Du(t) {
4977
4977
  if (t === 1) return [];
4978
4978
  const e = Math.floor(t / 7) + 2, n = t * 4 + 17, r = t === 32 ? 26 : Math.ceil((t * 4 + 4) / (e * 2 - 2)) * 2, s = [6];
4979
4979
  for (let a = n - 7; s.length < e; a -= r) s.splice(1, 0, a);
4980
4980
  return s;
4981
4981
  }
4982
- function Du(t) {
4982
+ function Au(t) {
4983
4983
  const e = Array.from(new TextEncoder().encode(t));
4984
4984
  let n = 1;
4985
- for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Ui(n) * 8); n++)
4985
+ for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= $i(n) * 8); n++)
4986
4986
  ;
4987
4987
  if (n > 40) throw new Error("Text too long for a QR code");
4988
- const r = n * 4 + 17, s = Ui(n) * 8, a = [], o = (k, Y) => {
4988
+ const r = n * 4 + 17, s = $i(n) * 8, a = [], o = (k, Y) => {
4989
4989
  for (let C = Y - 1; C >= 0; C--) a.push(k >>> C & 1);
4990
4990
  };
4991
4991
  o(4, 4), o(e.length, n <= 9 ? 8 : 16);
@@ -4994,11 +4994,11 @@ function Du(t) {
4994
4994
  for (let k = 236; a.length < s; k ^= 253) o(k, 8);
4995
4995
  const l = [];
4996
4996
  for (let k = 0; k < a.length; k += 8) l.push(a.slice(k, k + 8).reduce((Y, C) => Y << 1 | C, 0));
4997
- const c = fn.blocks[n], u = fn.perBlock[n], d = Math.floor(La(n) / 8), h = c - d % c, M = Math.floor(d / c), g = [], f = xu(u);
4997
+ const c = fn.blocks[n], u = fn.perBlock[n], d = Math.floor(ja(n) / 8), h = c - d % c, M = Math.floor(d / c), g = [], f = Cu(u);
4998
4998
  for (let k = 0, Y = 0; k < c; k++) {
4999
4999
  const C = l.slice(Y, Y + M - u + (k < h ? 0 : 1));
5000
5000
  Y += C.length;
5001
- const te = Cu(C, f);
5001
+ const te = Su(C, f);
5002
5002
  k < h && C.push(0), g.push(C.concat(te));
5003
5003
  }
5004
5004
  const y = [];
@@ -5017,7 +5017,7 @@ function Du(t) {
5017
5017
  }
5018
5018
  };
5019
5019
  b(3, 3), b(r - 4, 3), b(3, r - 4);
5020
- const S = Su(n);
5020
+ const S = Du(n);
5021
5021
  for (let k = 0; k < S.length; k++) for (let Y = 0; Y < S.length; Y++)
5022
5022
  if (!(k === 0 && Y === 0 || k === 0 && Y === S.length - 1 || k === S.length - 1 && Y === 0))
5023
5023
  for (let C = -2; C <= 2; C++) for (let te = -2; te <= 2; te++) p(S[k] + te, S[Y] + C, Math.max(Math.abs(te), Math.abs(C)) !== 1);
@@ -5104,27 +5104,27 @@ function Du(t) {
5104
5104
  }
5105
5105
  return V(W), A(W), T;
5106
5106
  }
5107
- function Au(t) {
5108
- const e = Du(t), n = e.length, r = 2;
5107
+ function Eu(t) {
5108
+ const e = Au(t), n = e.length, r = 2;
5109
5109
  let s = "";
5110
5110
  for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
5111
5111
  const a = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-r} ${-r} ${n + r * 2} ${n + r * 2}" shape-rendering="crispEdges"><rect x="${-r}" y="${-r}" width="${n + r * 2}" height="${n + r * 2}" fill="#fff"/><path fill="#111" d="${s}"/></svg>`;
5112
5112
  return `data:image/svg+xml,${encodeURIComponent(a)}`;
5113
5113
  }
5114
- const ja = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", Eu = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
5114
+ const za = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", _u = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
5115
5115
  function zr() {
5116
5116
  const t = document;
5117
5117
  return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
5118
5118
  }
5119
5119
  let qr = null;
5120
- function $i(t) {
5120
+ function Ri(t) {
5121
5121
  qr = t;
5122
5122
  }
5123
- function Ri() {
5123
+ function Pi() {
5124
5124
  const t = document;
5125
5125
  return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
5126
5126
  }
5127
- function _u() {
5127
+ function Yu() {
5128
5128
  var e;
5129
5129
  if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
5130
5130
  const t = qr ?? document.documentElement;
@@ -5132,9 +5132,9 @@ function _u() {
5132
5132
  }
5133
5133
  function dn(t) {
5134
5134
  var e;
5135
- typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) || $n(t);
5135
+ typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) || Pn(t);
5136
5136
  }
5137
- function $n(t) {
5137
+ function Pn(t) {
5138
5138
  var s, a, o, l;
5139
5139
  if (typeof document > "u") return;
5140
5140
  const e = document, n = qr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
@@ -5145,8 +5145,8 @@ function $n(t) {
5145
5145
  } catch {
5146
5146
  }
5147
5147
  }
5148
- function Yu(t) {
5149
- const [e, n] = j(() => {
5148
+ function Uu(t) {
5149
+ const [e, n] = z(() => {
5150
5150
  var r;
5151
5151
  return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
5152
5152
  });
@@ -5158,8 +5158,8 @@ function Yu(t) {
5158
5158
  return s(), r.addEventListener("change", s), () => r.removeEventListener("change", s);
5159
5159
  }, [t]), e;
5160
5160
  }
5161
- function Rn({ pos: t, interactive: e, axis: n = "x" }) {
5162
- const [r, s] = j(null), a = (c) => {
5161
+ function Qn({ pos: t, interactive: e, axis: n = "x" }) {
5162
+ const [r, s] = z(null), a = (c) => {
5163
5163
  const u = c.currentTarget.getBoundingClientRect(), d = n === "y" ? (c.clientY - u.top) / Math.max(1, u.height) : (c.clientX - u.left) / Math.max(1, u.width);
5164
5164
  return Math.min(1, Math.max(0, d));
5165
5165
  }, o = (c) => {
@@ -5197,8 +5197,8 @@ function Rn({ pos: t, interactive: e, axis: n = "x" }) {
5197
5197
  /* @__PURE__ */ i("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
5198
5198
  ] });
5199
5199
  }
5200
- function zd({ pos: t }) {
5201
- const [e, n] = j(null), r = (l) => {
5200
+ function Id({ pos: t }) {
5201
+ const [e, n] = z(null), r = (l) => {
5202
5202
  const c = l.currentTarget.getBoundingClientRect();
5203
5203
  return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
5204
5204
  }, s = (l) => {
@@ -5238,7 +5238,7 @@ function zd({ pos: t }) {
5238
5238
  ] })
5239
5239
  ] });
5240
5240
  }
5241
- function Pn({ t, mini: e }) {
5241
+ function Vn({ t, mini: e }) {
5242
5242
  return /* @__PURE__ */ m("div", { className: "gfull__transport", children: [
5243
5243
  /* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Previous line", title: "Previous line", style: { opacity: t.prevOn ? 1 : 0.3 }, onClick: t.onPrev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) }),
5244
5244
  /* @__PURE__ */ i(
@@ -5251,7 +5251,7 @@ function Pn({ t, mini: e }) {
5251
5251
  disabled: !t.playable,
5252
5252
  style: { background: t.playable ? t.playing ? "rgba(238,240,248,.92)" : "var(--brand)" : "rgba(5,6,21,.42)", color: t.playable ? t.playing ? "#131326" : "var(--brand-ink)" : "rgba(234,236,250,.5)", cursor: t.playable ? "pointer" : "default" },
5253
5253
  onClick: t.onPlay,
5254
- children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(ko, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(xt, { size: e ? 15 : 19 })
5254
+ children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(Lo, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(xt, { size: e ? 15 : 19 })
5255
5255
  }
5256
5256
  ),
5257
5257
  /* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
@@ -5259,7 +5259,7 @@ function Pn({ t, mini: e }) {
5259
5259
  }
5260
5260
  function Rr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
5261
5261
  return /* @__PURE__ */ m("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
5262
- /* @__PURE__ */ i("a", { href: Fi, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Pr, { dark: !0, size: 22 }) : /* @__PURE__ */ i(Hn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
5262
+ /* @__PURE__ */ i("a", { href: Zi, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Pr, { dark: !0, size: 22 }) : /* @__PURE__ */ i(Fn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
5263
5263
  t && /* @__PURE__ */ m("span", { className: "gfull__live", children: [
5264
5264
  /* @__PURE__ */ i("i", {}),
5265
5265
  "LIVE"
@@ -5267,35 +5267,35 @@ function Rr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
5267
5267
  r != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${r}%` })
5268
5268
  ] });
5269
5269
  }
5270
- function za({ v: t, size: e }) {
5270
+ function Ia({ v: t, size: e }) {
5271
5271
  return /* @__PURE__ */ m("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", "aria-busy": t.busy || void 0, title: t.busy ? "Preparing the voice…" : t.title, disabled: !t.on, style: { position: "relative", opacity: t.on || t.busy ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: [
5272
5272
  /* @__PURE__ */ i(oe, { d: ee.headphones, size: e, sw: 1.6 }),
5273
5273
  t.busy && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } })
5274
5274
  ] });
5275
5275
  }
5276
- function Uu({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, copied: o }) {
5276
+ function $u({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, copied: o }) {
5277
5277
  return /* @__PURE__ */ m("div", { className: "gmini", "data-theme": "dark", children: [
5278
5278
  /* @__PURE__ */ i("div", { className: "gmini__shade", "aria-hidden": "true" }),
5279
5279
  /* @__PURE__ */ i("div", { className: "gmini__top", children: /* @__PURE__ */ i(Rr, { live: t.live, mini: !0 }) }),
5280
5280
  /* @__PURE__ */ m("div", { className: "gmini__foot", children: [
5281
- /* @__PURE__ */ i("div", { className: "gmini__row", children: /* @__PURE__ */ i(Rn, { pos: t, interactive: !0 }) }),
5281
+ /* @__PURE__ */ i("div", { className: "gmini__row", children: /* @__PURE__ */ i(Qn, { pos: t, interactive: !0 }) }),
5282
5282
  /* @__PURE__ */ m("div", { className: "gmini__row gmini__row--ctl", children: [
5283
- /* @__PURE__ */ i(Pn, { t: e, mini: !0 }),
5283
+ /* @__PURE__ */ i(Vn, { t: e, mini: !0 }),
5284
5284
  /* @__PURE__ */ i("span", { style: { flex: 1 } }),
5285
5285
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
5286
- /* @__PURE__ */ i(za, { v: r, size: 14 }),
5286
+ /* @__PURE__ */ i(Ia, { v: r, size: 14 }),
5287
5287
  s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
5288
5288
  l.stopPropagation(), s();
5289
5289
  }, children: /* @__PURE__ */ i(oe, { d: ee.share, size: 13, sw: 1.8 }) }),
5290
- /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: ja, size: 14, sw: 1.8 }) })
5290
+ /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: za, size: 14, sw: 1.8 }) })
5291
5291
  ] })
5292
5292
  ] }),
5293
5293
  o
5294
5294
  ] });
5295
5295
  }
5296
- const $u = { color: "rgba(255,255,255,.4)" };
5297
- function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: h, ad: M, chip: g, transport: f, picker: y, sheet: T, voices: N, voicesBtn: p, sheetOpen: b, onShare: S, onSettings: A, paused: P, copied: O, onTouch: V, onClose: I }) {
5298
- const [W, E] = j(() => !!zr());
5296
+ const Ru = { color: "rgba(255,255,255,.4)" };
5297
+ function ba({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: h, ad: M, chip: g, transport: f, picker: y, sheet: T, voices: N, voicesBtn: p, sheetOpen: b, onShare: S, onSettings: A, paused: P, copied: O, onTouch: V, onClose: I }) {
5298
+ const [W, E] = z(() => !!zr());
5299
5299
  x(() => {
5300
5300
  const Q = () => E(!!zr());
5301
5301
  return document.addEventListener("fullscreenchange", Q), document.addEventListener("webkitfullscreenchange", Q), () => {
@@ -5306,8 +5306,8 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5306
5306
  k.current = I;
5307
5307
  const Y = w(f.playable ? f.onPlay : void 0);
5308
5308
  Y.current = f.playable ? f.onPlay : void 0;
5309
- const [C, te] = j(!1), [J, L] = j(0), ie = w(!1);
5310
- x(() => () => $n(!1), []), x(() => {
5309
+ const [C, te] = z(!1), [J, L] = z(0), ie = w(!1);
5310
+ x(() => () => Pn(!1), []), x(() => {
5311
5311
  if (!n) return;
5312
5312
  const Q = [document.documentElement, document.body], fe = Q.map((ge) => ge.style.background);
5313
5313
  Q.forEach((ge) => {
@@ -5320,7 +5320,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5320
5320
  }), de && ae && (de.content = ae);
5321
5321
  };
5322
5322
  }, []);
5323
- const ne = ze(() => n && _u(), [n]), [G, X] = j(ne);
5323
+ const ne = ze(() => n && Yu(), [n]), [G, X] = z(ne);
5324
5324
  x(() => {
5325
5325
  if (!n) return;
5326
5326
  const Q = [document.documentElement, document.body], fe = Q.map((ge) => [ge.style.overflow, ge.style.overscrollBehavior]);
@@ -5343,7 +5343,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5343
5343
  me.current = b, x(() => {
5344
5344
  const Q = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), fe = (ae) => {
5345
5345
  var ge;
5346
- ae.key === "Escape" && !me.current && k.current && (ae.stopPropagation(), k.current()), ae.key === " " && !me.current && !Q(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (ge = Y.current) == null || ge.call(Y)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !me.current && !Q(ae.target) && Ri() && (ae.preventDefault(), ae.repeat || $n(!zr()));
5346
+ ae.key === "Escape" && !me.current && k.current && (ae.stopPropagation(), k.current()), ae.key === " " && !me.current && !Q(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (ge = Y.current) == null || ge.call(Y)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !me.current && !Q(ae.target) && Pi() && (ae.preventDefault(), ae.repeat || Pn(!zr()));
5347
5347
  }, de = (ae) => {
5348
5348
  ae.key === " " && !me.current && !Q(ae.target) && ae.preventDefault();
5349
5349
  };
@@ -5351,7 +5351,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5351
5351
  window.removeEventListener("keydown", fe, !0), window.removeEventListener("keyup", de, !0);
5352
5352
  };
5353
5353
  }, []);
5354
- const le = Yu("(orientation: landscape) and (max-height: 540px)"), Te = w(null), [je, Se] = j(null);
5354
+ const le = Uu("(orientation: landscape) and (max-height: 540px)"), Te = w(null), [je, Se] = z(null);
5355
5355
  tn(() => {
5356
5356
  const Q = Te.current;
5357
5357
  if (!Q || (Se(Q.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
@@ -5382,9 +5382,9 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5382
5382
  const U = (he) => Math.round((he.getBoundingClientRect().top - Q.getBoundingClientRect().top + Q.scrollTop) / ae), $ = Math.max(1, Math.round(Q.clientHeight / ae)), K = fe ? de.length ? Math.floor(U(de[de.length - 1]) / $) * $ * ae : 0 : Ye, se = Math.max(0, Math.min(Ye, K));
5383
5383
  Math.abs(se - Q.scrollTop) > 1 && (Q.scrollTop = se);
5384
5384
  }, [D, F]);
5385
- const [H, ce] = j(!0), [Z, Ne] = j(!1), q = w(void 0);
5385
+ const [H, ce] = z(!0), [Z, Ne] = z(!1), q = w(void 0);
5386
5386
  x(() => () => window.clearTimeout(q.current), []);
5387
- const Le = P != null && P.share ? P.share.url(H && P.share.at >= 1 ? Math.floor(P.share.at) : null) : "", Ie = ze(() => ve && Le && !f.playing ? Au(Le) : "", [ve, Le, f.playing]), Fe = () => {
5387
+ const Le = P != null && P.share ? P.share.url(H && P.share.at >= 1 ? Math.floor(P.share.at) : null) : "", Ie = ze(() => ve && Le && !f.playing ? Eu(Le) : "", [ve, Le, f.playing]), Fe = () => {
5388
5388
  var Q;
5389
5389
  (Q = navigator.clipboard) == null || Q.writeText(Le).then(() => {
5390
5390
  Ne(!0), window.clearTimeout(q.current), q.current = window.setTimeout(() => Ne(!1), 1800);
@@ -5412,9 +5412,9 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5412
5412
  ] })
5413
5413
  ] })
5414
5414
  ] }), ue = (Q, fe, de, ae, ge, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: Q, "aria-label": Q, onClick: ae, children: /* @__PURE__ */ i(oe, { d: fe, size: (ve ? 20 : Ee ? 15 : 18) + Ye, sw: de, style: ge }) }), _e = /* @__PURE__ */ m("div", { className: "gfull__acts", children: [
5415
- p && /* @__PURE__ */ i(za, { v: p, size: ve ? 20 : Ee ? 15 : 18 }),
5415
+ p && /* @__PURE__ */ i(Ia, { v: p, size: ve ? 20 : Ee ? 15 : 18 }),
5416
5416
  S && ue("Share", ee.share, 1.6, S),
5417
- Ri() && !e && ue(W ? "Exit full screen" : "Full screen", W ? Eu : ja, 1.7, () => $n(!W)),
5417
+ Pi() && !e && ue(W ? "Exit full screen" : "Full screen", W ? _u : za, 1.7, () => Pn(!W)),
5418
5418
  I && ue("Close player", ee.close, 1.7, I)
5419
5419
  ] }), Ve = (d || h || A) && /* @__PURE__ */ m("div", { className: "gfull__top", children: [
5420
5420
  d && ue(d.muted ? "Unmute" : "Mute", d.muted ? ee.volumeOff : ee.volume, 1.6, d.onToggle),
@@ -5479,7 +5479,7 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5479
5479
  ] }),
5480
5480
  " "
5481
5481
  ] }),
5482
- l.words.map((Q, fe) => /* @__PURE__ */ m("span", { "data-said": Q.dim ? void 0 : "", "data-at": l.cursor != null && fe <= l.cursor ? "" : void 0, style: Q.dim ? $u : void 0, children: [
5482
+ l.words.map((Q, fe) => /* @__PURE__ */ m("span", { "data-said": Q.dim ? void 0 : "", "data-at": l.cursor != null && fe <= l.cursor ? "" : void 0, style: Q.dim ? Ru : void 0, children: [
5483
5483
  Q.t,
5484
5484
  Q.sp
5485
5485
  ] }, fe))
@@ -5487,22 +5487,22 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5487
5487
  ] }) }),
5488
5488
  /* @__PURE__ */ i("div", { className: `gfull__prog${ve ? "" : " gfull__prog--two"}`, children: ve ? /* @__PURE__ */ m(xe, { children: [
5489
5489
  /* @__PURE__ */ i(Rr, { live: o.live, desk: !0, pct: u }),
5490
- /* @__PURE__ */ i(Pn, { t: f }),
5491
- /* @__PURE__ */ i(Rn, { pos: o, interactive: !0 }),
5490
+ /* @__PURE__ */ i(Vn, { t: f }),
5491
+ /* @__PURE__ */ i(Qn, { pos: o, interactive: !0 }),
5492
5492
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
5493
5493
  _e
5494
5494
  ] }) : Ee ? /* @__PURE__ */ m("div", { className: "gfull__row", children: [
5495
- /* @__PURE__ */ i(Pn, { t: f, mini: !0 }),
5496
- /* @__PURE__ */ i(Rn, { pos: o, interactive: !0 }),
5495
+ /* @__PURE__ */ i(Vn, { t: f, mini: !0 }),
5496
+ /* @__PURE__ */ i(Qn, { pos: o, interactive: !0 }),
5497
5497
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
5498
5498
  _e
5499
5499
  ] }) : /* @__PURE__ */ m(xe, { children: [
5500
5500
  /* @__PURE__ */ m("div", { className: "gfull__row", children: [
5501
5501
  /* @__PURE__ */ i(Rr, { live: o.live, pct: u, mark: !0 }),
5502
- /* @__PURE__ */ i(Rn, { pos: o, interactive: !0 })
5502
+ /* @__PURE__ */ i(Qn, { pos: o, interactive: !0 })
5503
5503
  ] }),
5504
5504
  /* @__PURE__ */ m("div", { className: "gfull__row", children: [
5505
- /* @__PURE__ */ i(Pn, { t: f }),
5505
+ /* @__PURE__ */ i(Vn, { t: f }),
5506
5506
  /* @__PURE__ */ i("span", { style: { flex: 1 } }),
5507
5507
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: g }),
5508
5508
  _e
@@ -5516,31 +5516,31 @@ function Ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5516
5516
  }
5517
5517
  );
5518
5518
  }
5519
- function Ru({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o, onOptions: l, optionsActive: c }) {
5519
+ function Pu({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o, onOptions: l, optionsActive: c }) {
5520
5520
  return /* @__PURE__ */ m("div", { className: "ghead", children: [
5521
5521
  e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 19, sw: 1.7 }) }),
5522
5522
  r && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(Pr, { dark: t, size: 30 }) }),
5523
- /* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(Hn, { dark: t, height: 22 }) }) : /* @__PURE__ */ m("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
5523
+ /* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(Fn, { dark: t, height: 22 }) }) : /* @__PURE__ */ m("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
5524
5524
  /* @__PURE__ */ m("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
5525
5525
  /* @__PURE__ */ i("span", { className: "ghead__name", children: s }),
5526
5526
  a
5527
5527
  ] }),
5528
5528
  o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
5529
5529
  ] }) }),
5530
- /* @__PURE__ */ i(Lo, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
5530
+ /* @__PURE__ */ i(jo, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ m("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
5531
5531
  /* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
5532
5532
  /* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
5533
5533
  /* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
5534
5534
  ] }) })
5535
5535
  ] });
5536
5536
  }
5537
- const Pu = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", Qu = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: ee.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? Pu : ee.headphones, size: 19, sw: 1.5 }) }], Kr = "https://app.vocalstack.com", Vu = "/connect/transcribe";
5538
- function Bu() {
5537
+ const Qu = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", Vu = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: ee.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? Qu : ee.headphones, size: 19, sw: 1.5 }) }], Kr = "https://app.vocalstack.com", Bu = "/connect/transcribe";
5538
+ function Hu() {
5539
5539
  const t = new Uint8Array(24);
5540
5540
  return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
5541
5541
  }
5542
- function ba(t, e, n) {
5543
- const r = new URL(t ?? Kr), s = Bu(), a = new URL(Vu, r);
5542
+ function Oa(t, e, n) {
5543
+ const r = new URL(t ?? Kr), s = Hu(), a = new URL(Bu, r);
5544
5544
  e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", s);
5545
5545
  const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
5546
5546
  return d ? new Promise((h, M) => {
@@ -5580,45 +5580,45 @@ function ba(t, e, n) {
5580
5580
  }, 500);
5581
5581
  }) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
5582
5582
  }
5583
- async function Hu(t, e, n) {
5584
- const r = await ba(t, { url: e }, n);
5583
+ async function Wu(t, e, n) {
5584
+ const r = await Oa(t, { url: e }, n);
5585
5585
  return r === "connected" ? null : r;
5586
5586
  }
5587
- const Oa = "vsp.connected";
5588
- function Wu(t) {
5587
+ const xa = "vsp.connected";
5588
+ function Fu(t) {
5589
5589
  try {
5590
- return localStorage.getItem(Oa) === new URL(t ?? Kr).origin;
5590
+ return localStorage.getItem(xa) === new URL(t ?? Kr).origin;
5591
5591
  } catch {
5592
5592
  return !1;
5593
5593
  }
5594
5594
  }
5595
- function Fu(t) {
5595
+ function Zu(t) {
5596
5596
  try {
5597
- localStorage.setItem(Oa, new URL(t ?? Kr).origin);
5597
+ localStorage.setItem(xa, new URL(t ?? Kr).origin);
5598
5598
  } catch {
5599
5599
  }
5600
5600
  }
5601
- const Zu = {
5601
+ const Gu = {
5602
5602
  "signing-in": "Sign in to VocalStack in the window that opened…",
5603
5603
  consent: "Confirm in the VocalStack window…",
5604
5604
  looking: "Looking for your transcription of this video…",
5605
5605
  confirm: "Confirm in the VocalStack window…",
5606
5606
  checking: "Checking the link…",
5607
5607
  starting: "Starting the transcription…"
5608
- }, Gu = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5609
- function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5610
- const [s, a] = j(""), [o, l] = j(!1), [c, u] = j(null), [d, h] = j(null);
5608
+ }, qu = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5609
+ function Ku({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5610
+ const [s, a] = z(""), [o, l] = z(!1), [c, u] = z(null), [d, h] = z(null);
5611
5611
  x(() => {
5612
5612
  const y = (T) => {
5613
5613
  T.key === "Escape" && r();
5614
5614
  };
5615
5615
  return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
5616
5616
  }, [r]);
5617
- const M = s.trim(), g = Gu.test(M), f = async () => {
5617
+ const M = s.trim(), g = qu.test(M), f = async () => {
5618
5618
  if (!(!g || o)) {
5619
5619
  l(!0), u(null);
5620
5620
  try {
5621
- const y = await Hu(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, h);
5621
+ const y = await Wu(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, h);
5622
5622
  y && e(y);
5623
5623
  } catch (y) {
5624
5624
  u(y instanceof Error ? y.message : "Something went wrong. Please try again.");
@@ -5631,7 +5631,7 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5631
5631
  y.stopPropagation(), y.target === y.currentTarget && r();
5632
5632
  }, children: /* @__PURE__ */ m("div", { className: "vsp-end__card", children: [
5633
5633
  /* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: r, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16, sw: 1.8 }) }),
5634
- /* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(Hn, { dark: !0, link: !1, height: 16 }) }),
5634
+ /* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(Fn, { dark: !0, link: !1, height: 16 }) }),
5635
5635
  /* @__PURE__ */ i("div", { className: "vsp-end__title", children: t.title ?? "Transcribe and translate any video" }),
5636
5636
  /* @__PURE__ */ i("div", { className: "vsp-end__note", children: t.note ?? "Paste a link from YouTube, Vimeo or any page with a video. It plays right here with subtitles and spoken translations." }),
5637
5637
  /* @__PURE__ */ m("form", { className: "vsp-end__row", onSubmit: (y) => {
@@ -5642,7 +5642,7 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5642
5642
  }, "aria-label": "Video link" }),
5643
5643
  /* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !g || o, children: o ? /* @__PURE__ */ i(Mt, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
5644
5644
  ] }),
5645
- o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: Zu[d ?? "checking"] }),
5645
+ o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: Gu[d ?? "checking"] }),
5646
5646
  c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
5647
5647
  /* @__PURE__ */ m("div", { className: "vsp-end__foot", children: [
5648
5648
  /* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
@@ -5653,17 +5653,17 @@ function qu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5653
5653
  ] })
5654
5654
  ] }) });
5655
5655
  }
5656
- function xa(t) {
5657
- const [e, n] = j(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
5656
+ function Ca(t) {
5657
+ const [e, n] = z(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
5658
5658
  return x(() => {
5659
5659
  if (t != null) return;
5660
5660
  const r = () => n(window.innerWidth >= 880);
5661
5661
  return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
5662
5662
  }, [t]), t ?? e;
5663
5663
  }
5664
- const Ku = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
5665
- function Ju(t, e) {
5666
- const n = fa(), [r, s] = na(), [a, o] = j(null), [l, c] = j("main"), u = Yr(n, t.lang), d = ze(() => ra(n, "translation"), [n]), h = (O) => {
5664
+ const Ju = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
5665
+ function Xu(t, e) {
5666
+ const n = Ma(), [r, s] = ra(), [a, o] = z(null), [l, c] = z("main"), u = Yr(n, t.lang), d = ze(() => sa(n, "translation"), [n]), h = (O) => {
5667
5667
  e({ lang: O }), s(O);
5668
5668
  }, M = Vr({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: h, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), g = () => {
5669
5669
  o(null), c("main");
@@ -5691,7 +5691,7 @@ function Ju(t, e) {
5691
5691
  ] }) : l === "audio" ? /* @__PURE__ */ m("div", { style: p, children: [
5692
5692
  b("Translate audio", t.lang ? "Hear the translation read aloud instead of the original speech" : "Pick a language to hear the translation read aloud", /* @__PURE__ */ i(Lt, { checked: t.translateAudio && !!t.lang, onChange: (O) => e({ translateAudio: O }), label: "Translate audio", disabled: !t.lang })),
5693
5693
  b("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(br, { value: t.voices, onChange: (O) => e({ voices: O }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
5694
- b(Vn, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Lt, { checked: t.removeBackground, onChange: (O) => e({ removeBackground: O }), label: Vn }))
5694
+ b(Hn, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Lt, { checked: t.removeBackground, onChange: (O) => e({ removeBackground: O }), label: Hn }))
5695
5695
  ] }) : /* @__PURE__ */ m("div", { style: p, children: [
5696
5696
  /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
5697
5697
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
@@ -5730,7 +5730,7 @@ function Ju(t, e) {
5730
5730
  }
5731
5731
  };
5732
5732
  }
5733
- function Pi(t) {
5733
+ function Qi(t) {
5734
5734
  const e = t.trim();
5735
5735
  if (!e) return null;
5736
5736
  try {
@@ -5744,7 +5744,7 @@ const kt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
5744
5744
  /* @__PURE__ */ i("path", { d: "M6.5 2.75h7.25l4.75 4.75v12.25a1.5 1.5 0 0 1-1.5 1.5H6.5a1.5 1.5 0 0 1-1.5-1.5V4.25a1.5 1.5 0 0 1 1.5-1.5Z", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
5745
5745
  /* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
5746
5746
  /* @__PURE__ */ i("text", { x: "11.75", y: "17.4", textAnchor: "middle", fontSize: t.length > 3 ? 4.4 : 5.2, fontWeight: "800", fill: "currentColor", fontFamily: "inherit", letterSpacing: ".2", children: t })
5747
- ] }), Qi = [
5747
+ ] }), Vi = [
5748
5748
  { name: "YouTube", tint: "#ff3b30", glyph: kt("M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z", "evenodd") },
5749
5749
  { name: "MP3", tint: "#f78472", glyph: Ht("MP3") },
5750
5750
  { name: "Vimeo", tint: "#1ab7ea", glyph: kt("M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z") },
@@ -5790,20 +5790,20 @@ const kt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
5790
5790
  /* @__PURE__ */ i("circle", { cx: "8", cy: "12", r: "1.6", fill: "currentColor", stroke: "none" }),
5791
5791
  /* @__PURE__ */ i("path", { d: "M11.5 10h6M11.5 14h4" })
5792
5792
  ] }) }
5793
- ], Xu = 14, ed = 4;
5794
- function td(t) {
5795
- const e = Qi.length, n = [];
5796
- for (let r = 0; r < 11; r++) n.push(Qi[(r + t * 7) % e]);
5793
+ ], ed = 14, td = 4;
5794
+ function nd(t) {
5795
+ const e = Vi.length, n = [];
5796
+ for (let r = 0; r < 11; r++) n.push(Vi[(r + t * 7) % e]);
5797
5797
  return n;
5798
5798
  }
5799
- function nd({ t }) {
5799
+ function rd({ t }) {
5800
5800
  return /* @__PURE__ */ m("span", { className: "vsp-prov__tile", style: { "--tint": t.tint }, children: [
5801
5801
  /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: "100%", height: "100%", "aria-hidden": "true", children: t.glyph }),
5802
5802
  /* @__PURE__ */ i("span", { className: "vsp-prov__name", children: t.name })
5803
5803
  ] });
5804
5804
  }
5805
- function rd() {
5806
- const t = w(null), [e, n] = j(!0), [r, s] = j(() => typeof document > "u" || !document.hidden);
5805
+ function sd() {
5806
+ const t = w(null), [e, n] = z(!0), [r, s] = z(() => typeof document > "u" || !document.hidden);
5807
5807
  return x(() => {
5808
5808
  const a = () => s(!document.hidden);
5809
5809
  document.addEventListener("visibilitychange", a);
@@ -5812,19 +5812,19 @@ function rd() {
5812
5812
  return o && typeof IntersectionObserver < "u" && (l = new IntersectionObserver(([c]) => n(c.isIntersecting)), l.observe(o)), () => {
5813
5813
  document.removeEventListener("visibilitychange", a), l == null || l.disconnect();
5814
5814
  };
5815
- }, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length: Xu }, (a, o) => {
5816
- const l = td(o);
5817
- return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: ed }, (c, u) => l.map((d, h) => /* @__PURE__ */ i(nd, { t: d }, `${u}-${h}`))) }, o);
5815
+ }, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length: ed }, (a, o) => {
5816
+ const l = nd(o);
5817
+ return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: td }, (c, u) => l.map((d, h) => /* @__PURE__ */ i(rd, { t: d }, `${u}-${h}`))) }, o);
5818
5818
  }) }) });
5819
5819
  }
5820
- const Ca = {
5820
+ const Sa = {
5821
5821
  "signing-in": "Sign in to VocalStack in the window that opened…",
5822
5822
  consent: "Confirm in the VocalStack window…",
5823
5823
  looking: "Looking for your transcription of this video…",
5824
5824
  confirm: "Confirm in the VocalStack window…",
5825
5825
  checking: "Checking the link…",
5826
5826
  starting: "Starting the transcription…"
5827
- }, sd = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5827
+ }, id = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5828
5828
  function Ir(t) {
5829
5829
  try {
5830
5830
  return new URL(t).hostname.replace(/^www\./, "");
@@ -5832,39 +5832,39 @@ function Ir(t) {
5832
5832
  return t;
5833
5833
  }
5834
5834
  }
5835
- function id(t, e) {
5836
- const [n, r] = j(!1), [s, a] = j(null), [o, l] = j(null), [c, u] = j(() => Wu(t)), d = Je((g) => {
5835
+ function ad(t, e) {
5836
+ const [n, r] = z(!1), [s, a] = z(null), [o, l] = z(null), [c, u] = z(() => Fu(t)), d = Je((g) => {
5837
5837
  if (n) return;
5838
5838
  r(!0), l(null);
5839
5839
  let f;
5840
5840
  try {
5841
- f = ba(t, g, a);
5841
+ f = Oa(t, g, a);
5842
5842
  } catch (y) {
5843
5843
  f = Promise.reject(y);
5844
5844
  }
5845
5845
  f.then((y) => {
5846
- y && (Fu(t), u(!0), y !== "connected" && e(y));
5846
+ y && (Zu(t), u(!0), y !== "connected" && e(y));
5847
5847
  }).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
5848
5848
  r(!1), a(null);
5849
5849
  });
5850
5850
  }, [t, n, e]), h = Je(() => d({ connect: !0 }), [d]), M = Je((g, f) => d({ url: g, ask: f }), [d]);
5851
5851
  return { busy: n, status: s, err: o, connected: c, connect: h, start: M };
5852
5852
  }
5853
- function ad(t) {
5853
+ function od(t) {
5854
5854
  return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
5855
5855
  }
5856
- function od({ poster: t, src: e }) {
5856
+ function ld({ poster: t, src: e }) {
5857
5857
  var s;
5858
- const n = e && ((s = Zt(e)) == null ? void 0 : s.id) === "youtube" ? pa(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
5859
- return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && ad(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ m(xe, { children: [
5858
+ const n = e && ((s = Zt(e)) == null ? void 0 : s.id) === "youtube" ? ya(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
5859
+ return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && od(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ m(xe, { children: [
5860
5860
  /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
5861
- /* @__PURE__ */ i(rd, {})
5861
+ /* @__PURE__ */ i(sd, {})
5862
5862
  ] });
5863
5863
  }
5864
- const ld = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
5864
+ const cd = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
5865
5865
  } };
5866
5866
  function Jr({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
5867
- const l = Ju(t.prefs, t.set), c = xa(), u = w(null), [d, h] = j(!1);
5867
+ const l = Xu(t.prefs, t.set), c = Ca(), u = w(null), [d, h] = z(!1);
5868
5868
  tn(() => {
5869
5869
  var T;
5870
5870
  const g = (T = u.current) == null ? void 0 : T.parentElement;
@@ -5878,34 +5878,34 @@ function Jr({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
5878
5878
  }, onNext: () => {
5879
5879
  }, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
5880
5880
  return /* @__PURE__ */ m("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
5881
- /* @__PURE__ */ i(Ia, { page: s, picture: /* @__PURE__ */ i(od, { poster: e, src: n }), title: r, desk: c, pos: ld, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: M, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Gr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
5881
+ /* @__PURE__ */ i(ba, { page: s, picture: /* @__PURE__ */ i(ld, { poster: e, src: n }), title: r, desk: c, pos: cd, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: M, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Gr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
5882
5882
  } }),
5883
5883
  !l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
5884
5884
  ] });
5885
5885
  }
5886
- function Sa({ connect: t, onClick: e, label: n }) {
5886
+ function Da({ connect: t, onClick: e, label: n }) {
5887
5887
  return /* @__PURE__ */ m(xe, { children: [
5888
5888
  /* @__PURE__ */ m("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
5889
5889
  t.busy ? /* @__PURE__ */ i(Mt, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: ee.link, size: 18, sw: 1.8 }),
5890
5890
  /* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
5891
5891
  ] }),
5892
- t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Ca[t.status ?? "checking"] }),
5892
+ t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Sa[t.status ?? "checking"] }),
5893
5893
  t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
5894
5894
  ] });
5895
5895
  }
5896
- function cd({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
5896
+ function ud({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
5897
5897
  const l = () => r.start(e, n);
5898
5898
  return /* @__PURE__ */ m(Jr, { idle: t, poster: a, src: e, title: Ir(e), page: s, onAct: l, children: [
5899
- /* @__PURE__ */ i(Sa, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
5899
+ /* @__PURE__ */ i(Da, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
5900
5900
  !r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Ir(e)} with subtitles and spoken translations.` : `Connect to play ${Ir(e)} with subtitles and spoken translations.` }),
5901
5901
  o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
5902
5902
  ] });
5903
5903
  }
5904
- function ud({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare: a }) {
5905
- const [o, l] = j(""), [c, u] = j(!1), [d, h] = j(null), M = w(null), g = w(null), f = o.trim(), y = (O) => sd.test(O) || !!Pi(O), T = y(f), N = e.busy || c, p = async (O) => {
5904
+ function dd({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare: a }) {
5905
+ const [o, l] = z(""), [c, u] = z(!1), [d, h] = z(null), M = w(null), g = w(null), f = o.trim(), y = (O) => id.test(O) || !!Qi(O), T = y(f), N = e.busy || c, p = async (O) => {
5906
5906
  const V = /^https?:\/\//i.test(O) ? O : `https://${O}`;
5907
5907
  h(null);
5908
- const I = Pi(V);
5908
+ const I = Qi(V);
5909
5909
  if (I && a) {
5910
5910
  u(!0);
5911
5911
  const W = await a(I).catch(() => !1);
@@ -5924,7 +5924,7 @@ function ud({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare
5924
5924
  }, A = (O) => {
5925
5925
  const V = O.trim();
5926
5926
  !y(V) || N || V === g.current || (g.current = V, p(V));
5927
- }, P = e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Ca[e.status ?? "checking"] }) : c ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: "Opening the shared transcript…" }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: e.connected ? "Paste a VocalStack share link, or a YouTube, Vimeo, mp3 or any video link to play it here with subtitles and spoken translations." : "Paste a VocalStack share link to watch it here, or connect to transcribe any video link." });
5927
+ }, P = e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Sa[e.status ?? "checking"] }) : c ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: "Opening the shared transcript…" }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: e.connected ? "Paste a VocalStack share link, or a YouTube, Vimeo, mp3 or any video link to play it here with subtitles and spoken translations." : "Paste a VocalStack share link to watch it here, or connect to transcribe any video link." });
5928
5928
  return /* @__PURE__ */ m(Jr, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: S, children: [
5929
5929
  /* @__PURE__ */ i("form", { className: "vsp-idle__form", onSubmit: (O) => {
5930
5930
  O.preventDefault(), b();
@@ -5937,11 +5937,11 @@ function ud({ idle: t, connect: e, page: n, poster: r = null, onPick: s, onShare
5937
5937
  N && /* @__PURE__ */ i(Mt, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
5938
5938
  ] }) }),
5939
5939
  P,
5940
- !e.connected && !N && /* @__PURE__ */ i(Sa, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
5940
+ !e.connected && !N && /* @__PURE__ */ i(Da, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
5941
5941
  (d || e.err) && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: d ?? e.err })
5942
5942
  ] });
5943
5943
  }
5944
- function dd({ idle: t, message: e, onRetry: n, page: r }) {
5944
+ function hd({ idle: t, message: e, onRetry: n, page: r }) {
5945
5945
  return /* @__PURE__ */ m(Jr, { idle: t, poster: null, src: null, title: "VocalStack", page: r, onAct: n, children: [
5946
5946
  /* @__PURE__ */ m("div", { className: "vsp-idle__err", role: "alert", children: [
5947
5947
  /* @__PURE__ */ i(oe, { d: ee.warn, size: 16, sw: 1.8 }),
@@ -5953,8 +5953,8 @@ function dd({ idle: t, message: e, onRetry: n, page: r }) {
5953
5953
  ] })
5954
5954
  ] });
5955
5955
  }
5956
- function hd(t, e, n) {
5957
- const [r, s] = j(t && e ? void 0 : null);
5956
+ function fd(t, e, n) {
5957
+ const [r, s] = z(t && e ? void 0 : null);
5958
5958
  return x(() => {
5959
5959
  if (!t) {
5960
5960
  s(null);
@@ -5966,7 +5966,7 @@ function hd(t, e, n) {
5966
5966
  }
5967
5967
  let a = !0;
5968
5968
  s(void 0);
5969
- const o = new Wi({ baseUrl: (n ?? da).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
5969
+ const o = new Fi({ baseUrl: (n ?? ha).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
5970
5970
  if (!l) {
5971
5971
  s(null);
5972
5972
  return;
@@ -5980,24 +5980,24 @@ function hd(t, e, n) {
5980
5980
  };
5981
5981
  }, [t, e, n]), r;
5982
5982
  }
5983
- const fd = 100, Vi = (t) => t == null ? null : t ? "on" : "off";
5984
- function Md(t) {
5983
+ const Md = 100, Bi = (t) => t == null ? null : t ? "on" : "off";
5984
+ function gd(t) {
5985
5985
  const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (a) => a === "on" || a === "off" ? a : null, s = Number(e == null ? void 0 : e.get("t"));
5986
5986
  return {
5987
5987
  lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
5988
- labels: r(e == null ? void 0 : e.get("labels")) ?? Vi(n.speakerLabels),
5989
- words: r(e == null ? void 0 : e.get("words")) ?? Vi(n.wordHighlight),
5988
+ labels: r(e == null ? void 0 : e.get("labels")) ?? Bi(n.speakerLabels),
5989
+ words: r(e == null ? void 0 : e.get("words")) ?? Bi(n.wordHighlight),
5990
5990
  cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
5991
5991
  translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
5992
5992
  clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
5993
- removeBackground: e && e.get("bg") ? wl(e) : n.removeBackground ?? !1,
5993
+ removeBackground: e && e.get("bg") ? kl(e) : n.removeBackground ?? !1,
5994
5994
  startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
5995
5995
  };
5996
5996
  }
5997
- const Id = Mo(function(e, n) {
5997
+ const bd = go(function(e, n) {
5998
5998
  var J;
5999
5999
  const r = w(null);
6000
- go(n, () => ({
6000
+ mo(n, () => ({
6001
6001
  seek: (L) => {
6002
6002
  var ie;
6003
6003
  return (ie = r.current) == null ? void 0 : ie.seek(L);
@@ -6019,21 +6019,21 @@ const Id = Mo(function(e, n) {
6019
6019
  return (L = r.current) == null ? void 0 : L.toggle();
6020
6020
  }
6021
6021
  }), []);
6022
- const [s, a] = j({ id: e.id ?? "", token: e.token });
6022
+ const [s, a] = z({ id: e.id ?? "", token: e.token });
6023
6023
  x(() => {
6024
6024
  a({ id: e.id ?? "", token: e.token });
6025
6025
  }, [e.id, e.token, e.src]);
6026
- const o = hd(e.src ?? null, e.token ?? null, e.baseUrl ?? null);
6026
+ const o = fd(e.src ?? null, e.token ?? null, e.baseUrl ?? null);
6027
6027
  x(() => {
6028
6028
  o != null && o.id && a({ id: o.id, token: e.token });
6029
6029
  }, [o == null ? void 0 : o.id]);
6030
- const [l, c] = j(null), [u, d] = j(() => ({ ...Ku, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, L]) => L !== void 0)) })), [h, M] = j({}), g = { prefs: u, set: (L) => {
6030
+ const [l, c] = z(null), [u, d] = z(() => ({ ...Ju, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, L]) => L !== void 0)) })), [h, M] = z({}), g = { prefs: u, set: (L) => {
6031
6031
  d((ie) => ({ ...ie, ...L })), M((ie) => ({ ...ie, ...L }));
6032
6032
  }, shareUrl: (J = e.shareUrl) == null ? void 0 : J.call(e, null) }, { muted: f, ...y } = h;
6033
6033
  x(() => {
6034
6034
  c(null);
6035
6035
  }, [e.id, e.src]);
6036
- const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), p = !s.id && !e.src && !l, b = ha({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: S, gone: A, error: P, reload: O } = oc(b, s.id), V = lc(b, (S == null ? void 0 : S.recording.id) ?? null), I = ze(() => ic(b, V), [b, V]);
6036
+ const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), p = !s.id && !e.src && !l, b = fa({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: S, gone: A, error: P, reload: O } = lc(b, s.id), V = cc(b, (S == null ? void 0 : S.recording.id) ?? null), I = ze(() => ac(b, V), [b, V]);
6037
6037
  x(() => {
6038
6038
  var L;
6039
6039
  S && ((L = e.onSource) == null || L.call(e, S));
@@ -6041,29 +6041,29 @@ const Id = Mo(function(e, n) {
6041
6041
  var L;
6042
6042
  P && ((L = e.onError) == null || L.call(e, P));
6043
6043
  }, [P]);
6044
- const W = xa(e.desk), E = (e.layout ?? "embed") === "embed", k = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), Y = Je((L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }), []), C = id(k, Y), te = w(null);
6045
- return x(() => ($i(E ? te.current : null), () => $i(null)), [E]), /* @__PURE__ */ i(tc, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${E ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: p ? /* @__PURE__ */ i(ud, { idle: g, connect: C, page: !E, poster: e.poster ?? null, onPick: c, onShare: async (L) => {
6044
+ const W = Ca(e.desk), E = (e.layout ?? "embed") === "embed", k = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), Y = Je((L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }), []), C = ad(k, Y), te = w(null);
6045
+ return x(() => (Ri(E ? te.current : null), () => Ri(null)), [E]), /* @__PURE__ */ i(nc, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${E ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: p ? /* @__PURE__ */ i(dd, { idle: g, connect: C, page: !E, poster: e.poster ?? null, onPick: c, onShare: async (L) => {
6046
6046
  try {
6047
6047
  return await b.client.shareLinks.open(L), a({ id: L, token: null }), !0;
6048
6048
  } catch {
6049
6049
  return !1;
6050
6050
  }
6051
- } }) : N ? /* @__PURE__ */ i(cd, { idle: g, src: T, ask: !l, connect: C, page: !E, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? P && !S ? /* @__PURE__ */ i(dd, { idle: g, message: P.message, onRetry: O, page: !E }) : /* @__PURE__ */ i(gd, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: f === !0, handle: r, id: s.id, api: I, shared: S, gone: A, loadError: P, reread: O, desk: W, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
6051
+ } }) : N ? /* @__PURE__ */ i(ud, { idle: g, src: T, ask: !l, connect: C, page: !E, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? P && !S ? /* @__PURE__ */ i(hd, { idle: g, message: P.message, onRetry: O, page: !E }) : /* @__PURE__ */ i(md, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: f === !0, handle: r, id: s.id, api: I, shared: S, gone: A, loadError: P, reread: O, desk: W, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
6052
6052
  });
6053
- function gd(t) {
6054
- var xs, Cs, Ss, Ds, As, Es, _s, Ys, Us, $s, Rs, Ps, Qs, Vs, Bs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs, ei, ti, ni, ri, si, ii, ai, oi, li, ci, ui, di, hi, fi, Mi, gi, mi, pi, yi, Ni;
6055
- const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => Md(t), []), u = (t.mode ?? "video") === "video", [d, h] = j(t.loadError);
6053
+ function md(t) {
6054
+ var Cs, Ss, Ds, As, Es, _s, Ys, Us, $s, Rs, Ps, Qs, Vs, Bs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs, ei, ti, ni, ri, si, ii, ai, oi, li, ci, ui, di, hi, fi, Mi, gi, mi, pi, yi, Ni, Ti;
6055
+ const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => gd(t), []), u = (t.mode ?? "video") === "video", [d, h] = z(t.loadError);
6056
6056
  x(() => {
6057
6057
  t.loadError && h(t.loadError);
6058
6058
  }, [t.loadError]);
6059
- const [M, g] = j("none"), [f, y] = j(!1), [T, N] = j(""), [p, b] = gu(), [S, A] = j(null), [P, O] = j(u ? "listen" : "read"), [V, I] = j(!1), W = w(null), E = w(/* @__PURE__ */ new Map()), [k, Y] = j("main"), C = (z) => {
6059
+ const [M, g] = z("none"), [f, y] = z(!1), [T, N] = z(""), [p, b] = mu(), [S, A] = z(null), [P, O] = z(u ? "listen" : "read"), [V, I] = z(!1), W = w(null), E = w(/* @__PURE__ */ new Map()), [k, Y] = z("main"), C = (j) => {
6060
6060
  const pe = document.querySelector(".vs-sheet--settings"), Re = pe == null ? void 0 : pe.parentElement;
6061
- pe && Re && k === "main" && z !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(pe.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), Y(z);
6061
+ pe && Re && k === "main" && j !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(pe.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), Y(j);
6062
6062
  };
6063
6063
  x(() => {
6064
6064
  V || C("main");
6065
6065
  }, [V]);
6066
- const [te, J] = j(u), L = (n == null ? void 0 : n.recording) ?? null, ie = (L == null ? void 0 : L.id) ?? null, [ne, G] = j(l.lang), X = typeof ne == "string" ? ne : null, [me, le] = j(l.labels), [Te, je] = j(l.words), [Se, we] = j(l.cc), [ve, Ee] = j(l.translateAudio), [$e, De] = j(l.clonedVoices), [B, F] = j(l.removeBackground), _ = t.settings;
6066
+ const [te, J] = z(u), L = (n == null ? void 0 : n.recording) ?? null, ie = (L == null ? void 0 : L.id) ?? null, [ne, G] = z(l.lang), X = typeof ne == "string" ? ne : null, [me, le] = z(l.labels), [Te, je] = z(l.words), [Se, we] = z(l.cc), [ve, Ee] = z(l.translateAudio), [$e, De] = z(l.clonedVoices), [B, F] = z(l.removeBackground), _ = t.settings;
6067
6067
  x(() => {
6068
6068
  (_ == null ? void 0 : _.lang) !== void 0 && G(_.lang);
6069
6069
  }, [_ == null ? void 0 : _.lang]), x(() => {
@@ -6082,21 +6082,21 @@ function gd(t) {
6082
6082
  const D = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} }, H = u && !ve;
6083
6083
  x(() => {
6084
6084
  if (!t.syncUrl) return;
6085
- const z = new URL(window.location.href);
6086
- X ? z.searchParams.set("lang", X) : z.searchParams.delete("lang"), me ? z.searchParams.set("labels", me) : z.searchParams.delete("labels"), Te ? z.searchParams.set("words", Te) : z.searchParams.delete("words"), Se ? z.searchParams.delete("cc") : z.searchParams.set("cc", "off"), ve ? z.searchParams.delete("audio") : z.searchParams.set("audio", "original"), $e ? z.searchParams.delete("voices") : z.searchParams.set("voices", "stock"), kl(z, B), z.href !== window.location.href && window.history.replaceState(window.history.state, "", z);
6085
+ const j = new URL(window.location.href);
6086
+ X ? j.searchParams.set("lang", X) : j.searchParams.delete("lang"), me ? j.searchParams.set("labels", me) : j.searchParams.delete("labels"), Te ? j.searchParams.set("words", Te) : j.searchParams.delete("words"), Se ? j.searchParams.delete("cc") : j.searchParams.set("cc", "off"), ve ? j.searchParams.delete("audio") : j.searchParams.set("audio", "original"), $e ? j.searchParams.delete("voices") : j.searchParams.set("voices", "stock"), Ll(j, B), j.href !== window.location.href && window.history.replaceState(window.history.state, "", j);
6087
6087
  }, [X, me, Te, Se, ve, $e, B]), x(() => {
6088
6088
  n && !n.allowTranslate && X && G(null);
6089
6089
  }, [n, X]);
6090
- const { model: ce, error: Z, clearError: Ne, setLanguage: q, mergeTranslations: Le, translating: Ie, translateFailed: Fe, shownLang: Ae } = hc(ie, {
6090
+ const { model: ce, error: Z, clearError: Ne, setLanguage: q, mergeTranslations: Le, translating: Ie, translateFailed: Fe, shownLang: Ae } = fc(ie, {
6091
6091
  lang: null,
6092
- onFrame: (z) => {
6093
- z.type === "job.progress" && A({ state: z.state, processedS: z.processedS ?? 0, totalS: z.totalS ?? null, segmentsDone: z.segmentsDone ?? 0, segmentsTotal: z.segmentsTotal ?? null, pct: z.pct ?? 0, error: z.error ?? null });
6092
+ onFrame: (j) => {
6093
+ j.type === "job.progress" && A({ state: j.state, processedS: j.processedS ?? 0, totalS: j.totalS ?? null, segmentsDone: j.segmentsDone ?? 0, segmentsTotal: j.segmentsTotal ?? null, pct: j.pct ?? 0, error: j.error ?? null });
6094
6094
  }
6095
- }), ue = ze(() => Vl(ce).filter((z) => !z.suppressed), [ce]), _e = fc((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(Lr((_e == null ? void 0 : _e.state) ?? ((xs = n == null ? void 0 : n.job) == null ? void 0 : xs.state))), Q = Ve ? _e : S ?? _e, fe = !!S && !["done", "failed", "stopped"].includes(Lr(S.state)), de = w(0);
6095
+ }), ue = ze(() => Bl(ce).filter((j) => !j.suppressed), [ce]), _e = Mc((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(Lr((_e == null ? void 0 : _e.state) ?? ((Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.state))), Q = Ve ? _e : S ?? _e, fe = !!S && !["done", "failed", "stopped"].includes(Lr(S.state)), de = w(0);
6096
6096
  x(() => {
6097
6097
  !Ve || !fe || Date.now() - de.current < 1e4 || (de.current = Date.now(), t.reread());
6098
6098
  }, [Ve, fe, S == null ? void 0 : S.state, S == null ? void 0 : S.processedS, o]);
6099
- const ae = Lr((Q == null ? void 0 : Q.state) ?? ((Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.state) ?? (e.listen ? (L == null ? void 0 : L.state) === "finalized" ? "done" : L != null && L.state ? "transcribing" : void 0 : void 0)), ge = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (ge || ae === "cropping") && ue.length === 0), U = ge ? (Q == null ? void 0 : Q.pct) ?? 0 : 100, $ = gc(n == null ? void 0 : n.job, Q) ?? (L == null ? void 0 : L.mediaDurationS) ?? null, K = ((Ss = ce.segments.values().next().value) == null ? void 0 : Ss.language) ?? (L == null ? void 0 : L.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", he = ((Es = (As = (Ds = n == null ? void 0 : n.job) == null ? void 0 : Ds.source) == null ? void 0 : As.name) == null ? void 0 : Es.trim()) || null, be = n ? ((_s = n.name) == null ? void 0 : _s.trim()) || he : null, ye = !!((Ys = n == null ? void 0 : n.job) != null && Ys.hasAudio), ke = (Us = n == null ? void 0 : n.job) == null ? void 0 : Us.source, Oe = !ye && !!ke && (ke.kind !== "url" || ke.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && ye ? Co(e.origin, ie, e.cred) : null, Pe = !!ke && (ke.kind !== "url" || ke.bytes != null), ht = md(He && Pe ? He : null), at = He && (!Pe || ht === "yes") ? He : He && ht === "unknown" ? null : ie && (n != null && n.allowDownload) && (Oe || ye && Pe) ? Sn(e.origin, ie, "source", e.cred) : null, Tt = ue[ue.length - 1], Ge = Tt ? (($s = Tt.words[Tt.words.length - 1]) == null ? void 0 : $s.end) ?? Tt.start : 0, st = u && ge ? Math.max(Ge, (Q == null ? void 0 : Q.processedS) ?? 0) : null, gt = vu(at, (ye || Oe) && !!(n != null && n.allowDownload), ue, $, Oe ? ((Ps = (Rs = n == null ? void 0 : n.job) == null ? void 0 : Rs.crop) == null ? void 0 : Ps.startS) ?? 0 : 0, st), it = Jo((Qs = n == null ? void 0 : n.job) == null ? void 0 : Qs.source), Be = it && ((Vs = Zt(it)) == null ? void 0 : Vs.id) === "youtube" ? pa(it) : null, Mn = Ml(Be), Yt = Tu(ue, $, ((Hs = (Bs = n == null ? void 0 : n.job) == null ? void 0 : Bs.crop) == null ? void 0 : Hs.startS) ?? 0, st), Xe = !!Be, ct = Xe ? Yt.player : gt, ot = fa(), rn = w(null), re = zu({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: ue, lenS: $, ended: !!ie && !ge, cred: e.cred, langs: ot, srcLang: K, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: G, side: s && !te ? ju : void 0, hearOriginal: H, timed: !!Be, stockVoices: u && !$e, stickyPicker: u, pickerBusy: rn.current }), gn = w(null);
6099
+ const ae = Lr((Q == null ? void 0 : Q.state) ?? ((Ss = n == null ? void 0 : n.job) == null ? void 0 : Ss.state) ?? (e.listen ? (L == null ? void 0 : L.state) === "finalized" ? "done" : L != null && L.state ? "transcribing" : void 0 : void 0)), ge = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (ge || ae === "cropping") && ue.length === 0), U = ge ? (Q == null ? void 0 : Q.pct) ?? 0 : 100, $ = mc(n == null ? void 0 : n.job, Q) ?? (L == null ? void 0 : L.mediaDurationS) ?? null, K = ((Ds = ce.segments.values().next().value) == null ? void 0 : Ds.language) ?? (L == null ? void 0 : L.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", he = ((_s = (Es = (As = n == null ? void 0 : n.job) == null ? void 0 : As.source) == null ? void 0 : Es.name) == null ? void 0 : _s.trim()) || null, be = n ? ((Ys = n.name) == null ? void 0 : Ys.trim()) || he : null, ye = !!((Us = n == null ? void 0 : n.job) != null && Us.hasAudio), ke = ($s = n == null ? void 0 : n.job) == null ? void 0 : $s.source, Oe = !ye && !!ke && (ke.kind !== "url" || ke.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && ye ? So(e.origin, ie, e.cred) : null, Pe = !!ke && (ke.kind !== "url" || ke.bytes != null), ht = pd(He && Pe ? He : null), at = He && (!Pe || ht === "yes") ? He : He && ht === "unknown" ? null : ie && (n != null && n.allowDownload) && (Oe || ye && Pe) ? An(e.origin, ie, "source", e.cred) : null, Tt = ue[ue.length - 1], Ge = Tt ? ((Rs = Tt.words[Tt.words.length - 1]) == null ? void 0 : Rs.end) ?? Tt.start : 0, st = u && ge ? Math.max(Ge, (Q == null ? void 0 : Q.processedS) ?? 0) : null, gt = wu(at, (ye || Oe) && !!(n != null && n.allowDownload), ue, $, Oe ? ((Qs = (Ps = n == null ? void 0 : n.job) == null ? void 0 : Ps.crop) == null ? void 0 : Qs.startS) ?? 0 : 0, st), it = Xo((Vs = n == null ? void 0 : n.job) == null ? void 0 : Vs.source), Be = it && ((Bs = Zt(it)) == null ? void 0 : Bs.id) === "youtube" ? ya(it) : null, Mn = gl(Be), Yt = vu(ue, $, ((Ws = (Hs = n == null ? void 0 : n.job) == null ? void 0 : Hs.crop) == null ? void 0 : Ws.startS) ?? 0, st), Xe = !!Be, ct = Xe ? Yt.player : gt, ot = Ma(), rn = w(null), re = Iu({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: ue, lenS: $, ended: !!ie && !ge, cred: e.cred, langs: ot, srcLang: K, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: G, side: s && !te ? zu : void 0, hearOriginal: H, timed: !!Be, stockVoices: u && !$e, stickyPicker: u, pickerBusy: rn.current }), gn = w(null);
6100
6100
  x(() => {
6101
6101
  !ie || gn.current === X || (gn.current = X, q(X));
6102
6102
  }, [X, ie]);
@@ -6108,65 +6108,65 @@ function gd(t) {
6108
6108
  }
6109
6109
  (re.on ? ct : re.player).pause();
6110
6110
  }, [re.on, Xe]);
6111
- const Fn = ze(() => ue.filter((z) => z.sentenceId != null).map((z, pe, Re) => {
6111
+ const Gn = ze(() => ue.filter((j) => j.sentenceId != null).map((j, pe, Re) => {
6112
6112
  var We;
6113
- return { sid: z.sentenceId, start: z.start, end: ((We = Re[pe + 1]) == null ? void 0 : We.start) ?? Ft(z, z.start, z.start + 4) };
6114
- }), [ue]), Ut = _l({ on: Xe && re.on, lines: Fn, clips: re.clips, t: v.t, playing: v.playing, muted: v.muted }), $t = !!X && (Ie || re.relang || re.on && Ut.missing != null);
6113
+ return { sid: j.sentenceId, start: j.start, end: ((We = Re[pe + 1]) == null ? void 0 : We.start) ?? Ft(j, j.start, j.start + 4) };
6114
+ }), [ue]), Ut = Yl({ on: Xe && re.on, lines: Gn, clips: re.clips, t: v.t, playing: v.playing, muted: v.muted }), $t = !!X && (Ie || re.relang || re.on && Ut.missing != null);
6115
6115
  rn.current = $t ? X : null, x(() => {
6116
6116
  Xe && re.on && Ut.sid != null && re.setNear(Ut.sid);
6117
- }, [Ut.sid, Xe, re.on]), Nu([ct, re.player], re.sampling);
6117
+ }, [Ut.sid, Xe, re.on]), Tu([ct, re.player], re.sampling);
6118
6118
  const Rt = w(null);
6119
6119
  x(() => {
6120
6120
  ge && !v.playing && Rt.current && (Rt.current.scrollTop = Rt.current.scrollHeight);
6121
6121
  }, [ge, ue.length]);
6122
- const qt = Ou(Rt, ue, f, T, y), mn = /* @__PURE__ */ i(bu, { open: f, q: T, onQ: N, onClose: () => y(!1), hits: qt, desk: s, inline: s }), qe = ml({ name: n == null ? void 0 : n.name, sourceName: (Fs = (Ws = n == null ? void 0 : n.job) == null ? void 0 : Ws.source) == null ? void 0 : Fs.name, ytTitle: Mn, url: ((Gs = (Zs = n == null ? void 0 : n.job) == null ? void 0 : Zs.source) == null ? void 0 : Gs.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), lt = !!(n != null && n.allowDownload), sn = !!(n != null && n.allowExport), vt = re.readLang, mt = vt ? ((qs = ot == null ? void 0 : ot.languages.find((z) => z.code === vt)) == null ? void 0 : qs.name) ?? vt.toUpperCase() : null, Kt = async () => {
6122
+ const qt = xu(Rt, ue, f, T, y), mn = /* @__PURE__ */ i(Ou, { open: f, q: T, onQ: N, onClose: () => y(!1), hits: qt, desk: s, inline: s }), qe = pl({ name: n == null ? void 0 : n.name, sourceName: (Zs = (Fs = n == null ? void 0 : n.job) == null ? void 0 : Fs.source) == null ? void 0 : Zs.name, ytTitle: Mn, url: ((qs = (Gs = n == null ? void 0 : n.job) == null ? void 0 : Gs.source) == null ? void 0 : qs.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), lt = !!(n != null && n.allowDownload), sn = !!(n != null && n.allowExport), vt = re.readLang, mt = vt ? ((Ks = ot == null ? void 0 : ot.languages.find((j) => j.code === vt)) == null ? void 0 : Ks.name) ?? vt.toUpperCase() : null, Kt = async () => {
6123
6123
  if (ie)
6124
6124
  try {
6125
6125
  if (vt && re.canSpeak) {
6126
- b(`Preparing ${qe} in ${mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await yc(e, { recordingId: ie, lang: vt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), b(`Downloading ${qe} in ${mt}.`);
6126
+ b(`Preparing ${qe} in ${mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Nc(e, { recordingId: ie, lang: vt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), b(`Downloading ${qe} in ${mt}.`);
6127
6127
  return;
6128
6128
  }
6129
6129
  if (ye) {
6130
- b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await mc(Sn(e.origin, ie, "delivery", e.cred)), b(`Downloading ${qe}.`);
6130
+ b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await pc(An(e.origin, ie, "delivery", e.cred)), b(`Downloading ${qe}.`);
6131
6131
  return;
6132
6132
  }
6133
- Zr(Sn(e.origin, ie, "source", e.cred)), b(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
6134
- } catch (z) {
6135
- throw h(Ct(z)), z;
6133
+ Zr(An(e.origin, ie, "source", e.cred)), b(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
6134
+ } catch (j) {
6135
+ throw h(Ct(j)), j;
6136
6136
  }
6137
- }, ft = (z) => {
6137
+ }, ft = (j) => {
6138
6138
  if (!ie) return;
6139
- const pe = _r.find((We) => We.key === z).name, Re = mt ? ` in ${mt}` : "";
6140
- return pc(e, ie, z, { lang: vt }).then(() => b(ge ? `${pe} exported${Re} for the first ${ue.length} segments — the rest is still transcribing.` : `${pe} exported${Re}.`)).catch((We) => {
6139
+ const pe = _r.find((We) => We.key === j).name, Re = mt ? ` in ${mt}` : "";
6140
+ return yc(e, ie, j, { lang: vt }).then(() => b(ge ? `${pe} exported${Re} for the first ${ue.length} segments — the rest is still transcribing.` : `${pe} exported${Re}.`)).catch((We) => {
6141
6141
  throw h(Ct(We)), We;
6142
6142
  });
6143
- }, an = ge ? "MORE TO COME…" : "END OF TRANSCRIPT", ut = ge ? "var(--brand)" : "var(--ink-28)", on = Mc(Q, ue.length), St = v.has && (!re.relang || !!Be), Ze = w(v);
6143
+ }, an = ge ? "MORE TO COME…" : "END OF TRANSCRIPT", ut = ge ? "var(--brand)" : "var(--ink-28)", on = gc(Q, ue.length), St = v.has && (!re.relang || !!Be), Ze = w(v);
6144
6144
  Ze.current = v;
6145
6145
  const Pt = `${X ?? ""}|${re.on ? "voice" : "source"}`, jt = w({ key: Pt, idx: 0, t: 0, playing: !1, until: 0 });
6146
6146
  x(() => {
6147
- const z = jt.current;
6148
- if (z.key !== Pt && (z.key = Pt, z.until = Date.now() + 15e3), !Xe) {
6149
- if (!z.until) {
6150
- z.idx = v.idx, z.t = v.t, z.playing = v.playing;
6147
+ const j = jt.current;
6148
+ if (j.key !== Pt && (j.key = Pt, j.until = Date.now() + 15e3), !Xe) {
6149
+ if (!j.until) {
6150
+ j.idx = v.idx, j.t = v.t, j.playing = v.playing;
6151
6151
  return;
6152
6152
  }
6153
- if (Date.now() > z.until) {
6154
- z.until = 0;
6153
+ if (Date.now() > j.until) {
6154
+ j.until = 0;
6155
6155
  return;
6156
6156
  }
6157
- !v.has || re.relang || (z.until = 0, Math.abs(v.t - z.t) > 0.5 && (v.seekFrac && v.dur > 0 ? v.seekFrac(z.t / v.dur) : v.seekRow(z.idx)), z.playing && !v.playing && P === "listen" && (tt.current = !0, v.toggle()));
6157
+ !v.has || re.relang || (j.until = 0, Math.abs(v.t - j.t) > 0.5 && (v.seekFrac && v.dur > 0 ? v.seekFrac(j.t / v.dur) : v.seekRow(j.idx)), j.playing && !v.playing && P === "listen" && (tt.current = !0, v.toggle()));
6158
6158
  }
6159
6159
  });
6160
6160
  const Qt = w(!1), tt = w(!1);
6161
- u && (qi.video = !0);
6162
- const [pn, Dt] = j(!1), [Zn, Gn] = j(!1);
6161
+ u && (Ki.video = !0);
6162
+ const [pn, Dt] = z(!1), [qn, Kn] = z(!1);
6163
6163
  x(() => {
6164
6164
  if (!u || Qt.current || !St || !te || Ye || t.autoplay === !1) return;
6165
6165
  Qt.current = !0;
6166
- const z = (We) => {
6167
- Ze.current.playing || tt.current || (Ze.current.toggle(), We > 0 && setTimeout(() => z(We - 1), 1500));
6166
+ const j = (We) => {
6167
+ Ze.current.playing || tt.current || (Ze.current.toggle(), We > 0 && setTimeout(() => j(We - 1), 1500));
6168
6168
  }, pe = () => {
6169
- Ze.current.muted || Ze.current.toggleMute(), Dt(!0), z(3);
6169
+ Ze.current.muted || Ze.current.toggleMute(), Dt(!0), j(3);
6170
6170
  }, Re = Ze.current;
6171
6171
  if (!Re.autoplay || t.startMuted) {
6172
6172
  pe();
@@ -6176,7 +6176,7 @@ function gd(t) {
6176
6176
  We === !1 ? Dt(!0) : We == null && !tt.current && pe();
6177
6177
  });
6178
6178
  }, [u, St, te, Ye]);
6179
- const At = w(!1), qn = () => {
6179
+ const At = w(!1), Jn = () => {
6180
6180
  pn && (Dt(!1), At.current = !0, setTimeout(() => {
6181
6181
  At.current = !1;
6182
6182
  }, 500), Ze.current.muted && Ze.current.toggleMute());
@@ -6192,125 +6192,125 @@ function gd(t) {
6192
6192
  return;
6193
6193
  }
6194
6194
  tt.current = !0, Ze.current.toggle();
6195
- }, Nn = (z) => /* @__PURE__ */ i(Mu, { player: v, size: z }), ln = !!ie && !ge, [R, Ce] = j(!1);
6195
+ }, Nn = (j) => /* @__PURE__ */ i(gu, { player: v, size: j }), ln = !!ie && !ge, [R, Ce] = z(!1);
6196
6196
  x(() => {
6197
6197
  if (!Ie) {
6198
6198
  Ce(!1);
6199
6199
  return;
6200
6200
  }
6201
- const z = setTimeout(() => Ce(!0), 180);
6202
- return () => clearTimeout(z);
6201
+ const j = setTimeout(() => Ce(!0), 180);
6202
+ return () => clearTimeout(j);
6203
6203
  }, [Ie]);
6204
- const Qe = R ? Ae : X, Et = xc(ie, X, ue, Le), Vt = Hc(Wc(L), ie, re.readLang), Da = lt || sn, Aa = (((Js = (Ks = n == null ? void 0 : n.job) == null ? void 0 : Ks.crop) == null ? void 0 : Js.startS) ?? 0) + bt(v, ue), zt = P === "listen", Bt = zt && (!!Be || u), Ea = (z) => {
6205
- ct.pause(), re.player.pause(), O(z), z === "read" && te && (dn(!1), J(!1));
6204
+ const Qe = R ? Ae : X, Et = Cc(ie, X, ue, Le), Vt = Wc(Fc(L), ie, re.readLang), Aa = lt || sn, Ea = (((Xs = (Js = n == null ? void 0 : n.job) == null ? void 0 : Js.crop) == null ? void 0 : Xs.startS) ?? 0) + bt(v, ue), zt = P === "listen", Bt = zt && (!!Be || u), _a = (j) => {
6205
+ ct.pause(), re.player.pause(), O(j), j === "read" && te && (dn(!1), J(!1));
6206
6206
  };
6207
6207
  x(() => {
6208
6208
  zt || (ct.playing && ct.pause(), re.player.playing && re.player.pause());
6209
6209
  }, [zt, ct.playing, re.player.playing]);
6210
- const Ue = re.barChip, Jt = ga(Ue.label), Xr = /* @__PURE__ */ i(br, { value: P, onChange: Ea, bordered: !1, options: Qu(Jt, !!Be) }), Xt = [...ln ? [{ key: "summary", label: "Summary" }] : [], ...Da ? [{ key: "export", label: "Export" }] : []], es = (z) => /* @__PURE__ */ m(xe, { children: [
6211
- z === "summary" && ln && /* @__PURE__ */ i(Fc, { s: Vt }),
6212
- z === "export" && /* @__PURE__ */ i(Bc, { audio: lt ? { name: qe, meta: vt && re.canSpeak || ye ? `MP3${$ ? ` · ${Ot($)}` : ""}` : "ORIGINAL AUDIO", onClick: Kt } : null, formats: sn, onExport: ft })
6213
- ] }), _a = (z) => /* @__PURE__ */ i(zc, { index: v.idx, total: Math.max(1, ue.length), frac: v.dur > 0 ? Math.min(1, v.t / v.dur) : 0, glideMs: v.wordSync ? 0 : 220, atLabel: Ot(v.t), durLabel: Ot(v.dur), stepLabel: z ? `${v.idx + 1} / ${ue.length}` : "", onSeek: re.relang ? ku : v.seekRow, onSeekFrac: re.relang ? void 0 : v.seekFrac, onScrubStart: v.hold, onScrubEnd: v.release }), ts = {
6210
+ const Ue = re.barChip, Jt = ma(Ue.label), Xr = /* @__PURE__ */ i(br, { value: P, onChange: _a, bordered: !1, options: Vu(Jt, !!Be) }), Xt = [...ln ? [{ key: "summary", label: "Summary" }] : [], ...Aa ? [{ key: "export", label: "Export" }] : []], es = (j) => /* @__PURE__ */ m(xe, { children: [
6211
+ j === "summary" && ln && /* @__PURE__ */ i(Zc, { s: Vt }),
6212
+ j === "export" && /* @__PURE__ */ i(Hc, { audio: lt ? { name: qe, meta: vt && re.canSpeak || ye ? `MP3${$ ? ` · ${Ot($)}` : ""}` : "ORIGINAL AUDIO", onClick: Kt } : null, formats: sn, onExport: ft })
6213
+ ] }), Ya = (j) => /* @__PURE__ */ i(Ic, { index: v.idx, total: Math.max(1, ue.length), frac: v.dur > 0 ? Math.min(1, v.t / v.dur) : 0, glideMs: v.wordSync ? 0 : 220, atLabel: Ot(v.t), durLabel: Ot(v.dur), stepLabel: j ? `${v.idx + 1} / ${ue.length}` : "", onSeek: re.relang ? Lu : v.seekRow, onSeekFrac: re.relang ? void 0 : v.seekFrac, onScrubStart: v.hold, onScrubEnd: v.release }), ts = {
6214
6214
  live: !1,
6215
6215
  atEdge: !1,
6216
6216
  edgeFrac: null,
6217
6217
  readyFrac: st != null && v.dur > 0 ? Math.min(1, st / v.dur) : null,
6218
6218
  pct: v.dur > 0 ? Math.min(100, Math.round(v.t / v.dur * 1e3) / 10) : 0,
6219
6219
  atLabel: Ot(v.t),
6220
- labelAt: (z) => Ot(z * v.dur),
6220
+ labelAt: (j) => Ot(j * v.dur),
6221
6221
  endLabel: Ot(v.dur),
6222
- onSeek: (z) => {
6222
+ onSeek: (j) => {
6223
6223
  var pe;
6224
- re.relang || (pe = v.seekFrac) == null || pe.call(v, z);
6224
+ re.relang || (pe = v.seekFrac) == null || pe.call(v, j);
6225
6225
  }
6226
- }, [Ya, Ua] = wa(re.on && !!v.preparing && v.playing, 1500), Kn = re.on && ((Xs = v.error) == null ? void 0 : Xs.code) === "voice_not_started", Jn = re.canSpeak && !re.error && !Kn, Tn = X ? ((ei = ot == null ? void 0 : ot.languages.find((z) => z.code === X)) == null ? void 0 : ei.name) ?? Ue.label : "", nt = te ? lu({ lang: X, langName: Tn, translating: Ie && !!X, translateFailed: Fe, voiceFailed: Kn, relang: re.relang, starting: re.on ? v.starting : null, slowLine: Ya, lineSince: Ua }) : null, Xn = !!Be && !!nt && (nt.kind === "translating" || nt.kind === "voice" && re.relang), ns = !Xn || !nt ? null : nt.kind === "translating" ? `Translating into ${Tn || "the new language"}…` : `Preparing the ${Tn || "translated"} voice…`, yt = !Xn && ((nt == null ? void 0 : nt.kind) === "voice" || (nt == null ? void 0 : nt.kind) === "starting"), rs = Vr({ ...re.langList, keepOpen: !0, open: k === "lang", onClose: () => C("main") }), ss = vl(B, re.on), $a = u && ss.bed && lt && ie && (!ge || at) ? vi(e.origin, ie, e.cred) : null, is = xl($a, { t: bt(v, ue), playing: v.playing && !yt && !(v.timed && v.preparing), muted: v.muted }), Ra = u && ss.speech && lt && ie && (!ge || at) ? vi(e.origin, ie, e.cred, "speech") : null, er = oa(Ra, { t: bt(v, ue), playing: !re.on && v.playing, muted: v.muted }), tr = !re.on && er.on;
6226
+ }, [Ua, $a] = ka(re.on && !!v.preparing && v.playing, 1500), Xn = re.on && ((ei = v.error) == null ? void 0 : ei.code) === "voice_not_started", er = re.canSpeak && !re.error && !Xn, Tn = X ? ((ti = ot == null ? void 0 : ot.languages.find((j) => j.code === X)) == null ? void 0 : ti.name) ?? Ue.label : "", nt = te ? cu({ lang: X, langName: Tn, translating: Ie && !!X, translateFailed: Fe, voiceFailed: Xn, relang: re.relang, starting: re.on ? v.starting : null, slowLine: Ua, lineSince: $a }) : null, tr = !!Be && !!nt && (nt.kind === "translating" || nt.kind === "voice" && re.relang), ns = !tr || !nt ? null : nt.kind === "translating" ? `Translating into ${Tn || "the new language"}…` : `Preparing the ${Tn || "translated"} voice…`, yt = !tr && ((nt == null ? void 0 : nt.kind) === "voice" || (nt == null ? void 0 : nt.kind) === "starting"), rs = Vr({ ...re.langList, keepOpen: !0, open: k === "lang", onClose: () => C("main") }), ss = wl(B, re.on), Ra = u && ss.bed && lt && ie && (!ge || at) ? wi(e.origin, ie, e.cred) : null, is = Cl(Ra, { t: bt(v, ue), playing: v.playing && !yt && !(v.timed && v.preparing), muted: v.muted }), Pa = u && ss.speech && lt && ie && (!ge || at) ? wi(e.origin, ie, e.cred, "speech") : null, nr = la(Pa, { t: bt(v, ue), playing: !re.on && v.playing, muted: v.muted }), rr = !re.on && nr.on;
6227
6227
  x(() => {
6228
- var z;
6229
- Yt.setVideoSound(!(Xe && (re.on || tr))), (z = gt.silence) == null || z.call(gt, !Xe && tr);
6230
- }, [Xe, re.on, tr, at]);
6231
- const nr = lt ? re.on ? is : er.state : "unavailable", rr = ve && Jn && !!X, Pa = rr ? [`Translated${re.hasClone ? $e ? ", cloned voices" : ", synthetic voices" : ""}`, !B && lt && is !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : B && nr !== "unavailable" ? "Original speech, background removed" : "Original sound", Qa = () => {
6228
+ var j;
6229
+ Yt.setVideoSound(!(Xe && (re.on || rr))), (j = gt.silence) == null || j.call(gt, !Xe && rr);
6230
+ }, [Xe, re.on, rr, at]);
6231
+ const sr = lt ? re.on ? is : nr.state : "unavailable", ir = ve && er && !!X, Qa = ir ? [`Translated${re.hasClone ? $e ? ", cloned voices" : ", synthetic voices" : ""}`, !B && lt && is !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : B && sr !== "unavailable" ? "Original speech, background removed" : "Original sound", Va = () => {
6232
6232
  if ((nt == null ? void 0 : nt.kind) === "translateFailed") {
6233
6233
  q(X);
6234
6234
  return;
6235
6235
  }
6236
6236
  tt.current = !0, v.toggle();
6237
- }, Va = () => {
6238
- const z = v.idx;
6239
- v.pause(), G(null), tt.current = !0, ct.playRow(z);
6237
+ }, Ba = () => {
6238
+ const j = v.idx;
6239
+ v.pause(), G(null), tt.current = !0, ct.playRow(j);
6240
6240
  }, as = { prevOn: v.idx > 0, nextOn: v.idx < ue.length - 1, onPrev: v.prev, onNext: v.next, playing: v.playing, playable: St, playTitle: re.playTitle ?? (v.playing ? "Pause" : "Play"), onPlay: () => {
6241
6241
  tt.current = !0, v.toggle();
6242
6242
  }, busy: re.relang && !Be || yt };
6243
- $l(St && zt ? { playing: v.playing, toggle: () => {
6243
+ Rl(St && zt ? { playing: v.playing, toggle: () => {
6244
6244
  tt.current = !0, v.toggle();
6245
6245
  }, next: v.next, prev: v.prev } : null, be);
6246
- const sr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, ir = (z, pe) => !Ue.can || !D.language ? null : u ? /* @__PURE__ */ m("button", { type: "button", className: "gfull__btn", title: $t ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": $t || void 0, onClick: () => {
6246
+ const ar = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, or = (j, pe) => !Ue.can || !D.language ? null : u ? /* @__PURE__ */ m("button", { type: "button", className: "gfull__btn", title: $t ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": $t || void 0, onClick: () => {
6247
6247
  I(!1), Ue.onClick();
6248
6248
  }, style: { position: "relative" }, children: [
6249
6249
  /* @__PURE__ */ i("span", { style: { fontSize: pe === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
6250
6250
  $t && /* @__PURE__ */ i("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ i(Mt, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
6251
- ] }) : /* @__PURE__ */ i(Qn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: pe, onClick: Ue.onClick, style: z }), os = { on: !1, title: "Voices", onClick: () => {
6252
- }, busy: re.voiceWaiting || yt }, [Ba, Ha] = j(!1);
6251
+ ] }) : /* @__PURE__ */ i(Bn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: pe, onClick: Ue.onClick, style: j }), os = { on: !1, title: "Voices", onClick: () => {
6252
+ }, busy: re.voiceWaiting || yt }, [Ha, Wa] = z(!1);
6253
6253
  x(() => {
6254
- v.t > 0.3 && Ha(!0);
6254
+ v.t > 0.3 && Wa(!0);
6255
6255
  }, [v.t]);
6256
- const Wa = !Be && u && ie && (n != null && n.allowDownload) && !ge && ((ti = n == null ? void 0 : n.job) == null ? void 0 : ti.hasVideo) !== !1 && ((ri = (ni = n == null ? void 0 : n.job) == null ? void 0 : ni.source) == null ? void 0 : ri.kind) !== "url" ? /* @__PURE__ */ i(ki, { src: Sn(e.origin, ie, "video", e.cred), t: bt(v, ue), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ie) : null, dt = !Be && u && it && qo(it) ? it : null, vn = dt ? ia(dt) : null, ls = ze(() => vn ? fl(vn) : void 0, [vn]), ar = dt && ((si = Zt(dt)) == null ? void 0 : si.id) === "facebook" ? dt : null, or = dt && ((ii = Zt(dt)) == null ? void 0 : ii.id) === "wistia" ? Xo(dt) : null, lr = dt && ((ai = Zt(dt)) == null ? void 0 : ai.id) === "vidyard" ? el(dt) : null, Fa = lr ? /* @__PURE__ */ i(ul, { uuid: lr, t: bt(v, ue) + (((li = (oi = n == null ? void 0 : n.job) == null ? void 0 : oi.crop) == null ? void 0 : li.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, lr) : or ? /* @__PURE__ */ i(ll, { id: or, t: bt(v, ue) + (((ui = (ci = n == null ? void 0 : n.job) == null ? void 0 : ci.crop) == null ? void 0 : ui.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, or) : ar ? /* @__PURE__ */ i(al, { url: ar, t: bt(v, ue) + (((hi = (di = n == null ? void 0 : n.job) == null ? void 0 : di.crop) == null ? void 0 : hi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ar) : ls ? /* @__PURE__ */ i(ki, { setup: ls, seekOver: 1, t: bt(v, ue) + (((Mi = (fi = n == null ? void 0 : n.job) == null ? void 0 : fi.crop) == null ? void 0 : Mi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, vn) : dt ? /* @__PURE__ */ i(rl, { url: dt, t: bt(v, ue) + (((mi = (gi = n == null ? void 0 : n.job) == null ? void 0 : gi.crop) == null ? void 0 : mi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, title: qe, onToggle: v.has ? pt : void 0 }) : null, Za = v.has ? /* @__PURE__ */ m("div", { className: "txyt vsp-follow", children: [
6256
+ const Fa = !Be && u && ie && (n != null && n.allowDownload) && !ge && ((ni = n == null ? void 0 : n.job) == null ? void 0 : ni.hasVideo) !== !1 && ((si = (ri = n == null ? void 0 : n.job) == null ? void 0 : ri.source) == null ? void 0 : si.kind) !== "url" ? /* @__PURE__ */ i(Li, { src: An(e.origin, ie, "video", e.cred), t: bt(v, ue), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ie) : null, dt = !Be && u && it && Ko(it) ? it : null, vn = dt ? aa(dt) : null, ls = ze(() => vn ? Ml(vn) : void 0, [vn]), lr = dt && ((ii = Zt(dt)) == null ? void 0 : ii.id) === "facebook" ? dt : null, cr = dt && ((ai = Zt(dt)) == null ? void 0 : ai.id) === "wistia" ? el(dt) : null, ur = dt && ((oi = Zt(dt)) == null ? void 0 : oi.id) === "vidyard" ? tl(dt) : null, Za = ur ? /* @__PURE__ */ i(dl, { uuid: ur, t: bt(v, ue) + (((ci = (li = n == null ? void 0 : n.job) == null ? void 0 : li.crop) == null ? void 0 : ci.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, ur) : cr ? /* @__PURE__ */ i(cl, { id: cr, t: bt(v, ue) + (((di = (ui = n == null ? void 0 : n.job) == null ? void 0 : ui.crop) == null ? void 0 : di.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, cr) : lr ? /* @__PURE__ */ i(ol, { url: lr, t: bt(v, ue) + (((fi = (hi = n == null ? void 0 : n.job) == null ? void 0 : hi.crop) == null ? void 0 : fi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, lr) : ls ? /* @__PURE__ */ i(Li, { setup: ls, seekOver: 1, t: bt(v, ue) + (((gi = (Mi = n == null ? void 0 : n.job) == null ? void 0 : Mi.crop) == null ? void 0 : gi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, onToggle: v.has ? pt : void 0 }, vn) : dt ? /* @__PURE__ */ i(sl, { url: dt, t: bt(v, ue) + (((pi = (mi = n == null ? void 0 : n.job) == null ? void 0 : mi.crop) == null ? void 0 : pi.startS) ?? 0), playing: v.playing && !yt, seekN: v.seekN, title: qe, onToggle: v.has ? pt : void 0 }) : null, Ga = v.has ? /* @__PURE__ */ m("div", { className: "txyt vsp-follow", children: [
6257
6257
  /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: pt, style: { cursor: "pointer" } }),
6258
6258
  /* @__PURE__ */ i("div", { className: `txyt__paused${v.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) }) })
6259
- ] }) : null, cr = ((yi = (pi = n == null ? void 0 : n.job) == null ? void 0 : pi.source) == null ? void 0 : yi.thumbnailUrl) ?? null, Ga = cr && /^https:\/\//.test(cr) ? /* @__PURE__ */ i("div", { className: "vsp-thumbpic", "aria-hidden": "true", style: { backgroundImage: `url(${JSON.stringify(cr)})` } }) : null, cs = Be ? /* @__PURE__ */ m(xe, { children: [
6260
- /* @__PURE__ */ i(du, { ytId: Be, title: qe, t: Aa, playing: v.playing && !yt, waiting: re.on && !!v.timed && !!v.preparing, seekN: v.seekN, onTime: (z) => {
6259
+ ] }) : null, dr = ((Ni = (yi = n == null ? void 0 : n.job) == null ? void 0 : yi.source) == null ? void 0 : Ni.thumbnailUrl) ?? null, qa = dr && /^https:\/\//.test(dr) ? /* @__PURE__ */ i("div", { className: "vsp-thumbpic", "aria-hidden": "true", style: { backgroundImage: `url(${JSON.stringify(dr)})` } }) : null, cs = Be ? /* @__PURE__ */ m(xe, { children: [
6260
+ /* @__PURE__ */ i(hu, { ytId: Be, title: qe, t: Ea, playing: v.playing && !yt, waiting: re.on && !!v.timed && !!v.preparing, seekN: v.seekN, onTime: (j) => {
6261
6261
  var pe, Re, We;
6262
- return (We = v.videoAt) == null ? void 0 : We.call(v, z - (((Re = (pe = n == null ? void 0 : n.job) == null ? void 0 : pe.crop) == null ? void 0 : Re.startS) ?? 0));
6263
- }, onToggle: v.has ? pt : void 0, onAd: Gn, lead: Xe ? Yt.lead : void 0 }),
6264
- /* @__PURE__ */ m("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: Ba ? 0 : 1 }, children: [
6262
+ return (We = v.videoAt) == null ? void 0 : We.call(v, j - (((Re = (pe = n == null ? void 0 : n.job) == null ? void 0 : pe.crop) == null ? void 0 : Re.startS) ?? 0));
6263
+ }, onToggle: v.has ? pt : void 0, onAd: Kn, lead: Xe ? Yt.lead : void 0 }),
6264
+ /* @__PURE__ */ m("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: Ha ? 0 : 1 }, children: [
6265
6265
  /* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
6266
6266
  /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(xt, { size: 44 }) })
6267
6267
  ] })
6268
6268
  ] }) : u ? /* @__PURE__ */ m(xe, { children: [
6269
6269
  /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
6270
+ qa,
6270
6271
  Ga,
6271
6272
  Za,
6272
- Fa,
6273
- Wa
6274
- ] }) : null, us = Bt && Be && !te ? /* @__PURE__ */ i(Zc, { ytId: Be, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: cs, children: /* @__PURE__ */ i(Uu, { pos: ts, transport: as, chip: ir({ ...sr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: os, onFull: () => {
6273
+ Fa
6274
+ ] }) : null, us = Bt && Be && !te ? /* @__PURE__ */ i(Gc, { ytId: Be, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: cs, children: /* @__PURE__ */ i($u, { pos: ts, transport: as, chip: or({ ...ar, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: os, onFull: () => {
6275
6275
  dn(!0), J(!0);
6276
- }, copied: null }) }) : null, et = v.wordSync ? vc(ue, v.idx, v.t) ? ue[v.idx] : void 0 : ue[v.idx];
6277
- for (const z of ue) for (const [pe, Re] of Object.entries(z.translations)) Re && E.current.set(`${z.sentenceId ?? z.start}|${pe}`, Re);
6278
- const ds = (z, pe) => z.translations[pe] || E.current.get(`${z.sentenceId ?? z.start}|${pe}`) || null, ur = (z, pe) => !z || !pe || z.language === pe || !!ds(z, pe), It = ur(et, X) ? X : ur(et, W.current) ? W.current : X;
6279
- et && ur(et, It) && (W.current = It);
6280
- const hs = et && It && et.language !== It ? ds(et, It) : null, qa = et && hs && It && !et.translations[It] ? Object.assign([...ue], { [v.idx]: { ...et, translations: { ...et.translations, [It]: hs } } }) : ue, wn = et ? ka(qa, v.idx, It) : [], kn = Te ? Te === "on" : !u || re.on || !Qe || Qe === K, fs = kn ? Yi(v, v.idx, wn) : null, Ms = wn.map((z, pe) => ({ t: z.text, sp: pe < wn.length - 1 ? " " : "", dim: fs != null && pe > fs })), Ln = me ? me === "on" : u ? !1 : Xl(ce, ue, L == null ? void 0 : L.settings), gs = { lang: X, subtitles: Se, speakerLabels: Ln, wordHighlight: kn, translateAudio: ve, voices: $e ? "cloned" : "synthetic", removeBackground: B }, Ka = JSON.stringify(gs), jn = w(t.onSettingsChange);
6276
+ }, copied: null }) }) : null, et = v.wordSync ? wc(ue, v.idx, v.t) ? ue[v.idx] : void 0 : ue[v.idx];
6277
+ for (const j of ue) for (const [pe, Re] of Object.entries(j.translations)) Re && E.current.set(`${j.sentenceId ?? j.start}|${pe}`, Re);
6278
+ const ds = (j, pe) => j.translations[pe] || E.current.get(`${j.sentenceId ?? j.start}|${pe}`) || null, hr = (j, pe) => !j || !pe || j.language === pe || !!ds(j, pe), It = hr(et, X) ? X : hr(et, W.current) ? W.current : X;
6279
+ et && hr(et, It) && (W.current = It);
6280
+ const hs = et && It && et.language !== It ? ds(et, It) : null, Ka = et && hs && It && !et.translations[It] ? Object.assign([...ue], { [v.idx]: { ...et, translations: { ...et.translations, [It]: hs } } }) : ue, wn = et ? La(Ka, v.idx, It) : [], kn = Te ? Te === "on" : !u || re.on || !Qe || Qe === K, fs = kn ? Ui(v, v.idx, wn) : null, Ms = wn.map((j, pe) => ({ t: j.text, sp: pe < wn.length - 1 ? " " : "", dim: fs != null && pe > fs })), Ln = me ? me === "on" : u ? !1 : ec(ce, ue, L == null ? void 0 : L.settings), gs = { lang: X, subtitles: Se, speakerLabels: Ln, wordHighlight: kn, translateAudio: ve, voices: $e ? "cloned" : "synthetic", removeBackground: B }, Ja = JSON.stringify(gs), jn = w(t.onSettingsChange);
6281
6281
  jn.current = t.onSettingsChange, x(() => {
6282
- var z;
6283
- (z = jn.current) == null || z.call(jn, gs);
6284
- }, [Ka]);
6285
- const zn = et && et.speaker >= 0 && Ln ? Wr(ce, et.speaker) : null, [Ja, ms] = j(!1), [dr, ps] = j(null), [Xa, ys] = j(null), hr = w(void 0);
6286
- x(() => () => window.clearTimeout(hr.current), []);
6287
- const fr = w(void 0);
6288
- x(() => () => window.clearTimeout(fr.current), []);
6289
- const Ns = (z) => {
6290
- if (t.shareUrl) return t.shareUrl(z);
6282
+ var j;
6283
+ (j = jn.current) == null || j.call(jn, gs);
6284
+ }, [Ja]);
6285
+ const zn = et && et.speaker >= 0 && Ln ? Wr(ce, et.speaker) : null, [Xa, ms] = z(!1), [fr, ps] = z(null), [eo, ys] = z(null), Mr = w(void 0);
6286
+ x(() => () => window.clearTimeout(Mr.current), []);
6287
+ const gr = w(void 0);
6288
+ x(() => () => window.clearTimeout(gr.current), []);
6289
+ const Ns = (j) => {
6290
+ if (t.shareUrl) return t.shareUrl(j);
6291
6291
  const pe = new URL(window.location.href);
6292
- return z != null && z > 0 ? pe.searchParams.set("t", String(z)) : pe.searchParams.delete("t"), pe.href;
6293
- }, In = w(l.startAt), Mr = (z) => {
6292
+ return j != null && j > 0 ? pe.searchParams.set("t", String(j)) : pe.searchParams.delete("t"), pe.href;
6293
+ }, In = w(l.startAt), mr = (j) => {
6294
6294
  if (v.seekFrac && v.dur > 0) {
6295
- v.seekFrac(Math.min(1, z / v.dur));
6295
+ v.seekFrac(Math.min(1, j / v.dur));
6296
6296
  return;
6297
6297
  }
6298
6298
  let pe = 0;
6299
- for (let Re = 0; Re < ue.length; Re++) ue[Re].start <= z && (pe = Re);
6299
+ for (let Re = 0; Re < ue.length; Re++) ue[Re].start <= j && (pe = Re);
6300
6300
  v.seekRow(pe);
6301
6301
  }, Ts = w(!1);
6302
6302
  x(() => {
6303
- const z = In.current;
6304
- z == null || Ts.current || !v.has || ue.length === 0 || (Ts.current = !0, Mr(z));
6303
+ const j = In.current;
6304
+ j == null || Ts.current || !v.has || ue.length === 0 || (Ts.current = !0, mr(j));
6305
6305
  }, [v.has, ue.length]), x(() => {
6306
- const z = In.current;
6307
- z == null || !v.playing || (In.current = null, Math.abs(v.t - z) > 2 && Mr(z));
6306
+ const j = In.current;
6307
+ j == null || !v.playing || (In.current = null, Math.abs(v.t - j) > 2 && mr(j));
6308
6308
  }, [v.playing]);
6309
- const eo = (z) => {
6310
- tt.current = !0, In.current = null, Mr(Math.max(0, z));
6309
+ const to = (j) => {
6310
+ tt.current = !0, In.current = null, mr(Math.max(0, j));
6311
6311
  };
6312
6312
  t.handle.current = {
6313
- seek: (z) => eo(z),
6313
+ seek: (j) => to(j),
6314
6314
  play: () => {
6315
6315
  tt.current = !0, zt && !Ze.current.playing && Ze.current.toggle();
6316
6316
  },
@@ -6330,24 +6330,24 @@ function gd(t) {
6330
6330
  vs.current = t.onPlayback;
6331
6331
  const ws = w(X);
6332
6332
  ws.current = X, x(() => {
6333
- let z = "";
6333
+ let j = "";
6334
6334
  const pe = () => {
6335
6335
  const We = vs.current;
6336
6336
  if (!We) return;
6337
- const wt = Ze.current, Nt = { t: wt.t, dur: wt.dur, playing: wt.playing, idx: wt.idx, seekN: wt.seekN, lang: ws.current, muted: wt.muted }, Cn = `${Nt.t.toFixed(2)}|${Nt.dur}|${Nt.playing}|${Nt.idx}|${Nt.seekN}|${Nt.lang}|${Nt.muted}`;
6338
- Cn !== z && (z = Cn, We(Nt));
6337
+ const wt = Ze.current, Nt = { t: wt.t, dur: wt.dur, playing: wt.playing, idx: wt.idx, seekN: wt.seekN, lang: ws.current, muted: wt.muted }, Dn = `${Nt.t.toFixed(2)}|${Nt.dur}|${Nt.playing}|${Nt.idx}|${Nt.seekN}|${Nt.lang}|${Nt.muted}`;
6338
+ Dn !== j && (j = Dn, We(Nt));
6339
6339
  };
6340
6340
  pe();
6341
- const Re = window.setInterval(pe, fd);
6341
+ const Re = window.setInterval(pe, Md);
6342
6342
  return () => window.clearInterval(Re);
6343
6343
  }, []);
6344
- const to = () => t.onShare ? t.onShare() : Gr(Ns(null), qe, () => {
6345
- window.clearTimeout(fr.current), ms(!0), fr.current = window.setTimeout(() => ms(!1), 2200);
6346
- }), ks = (z, pe, Re) => {
6347
- const We = _r.find((Cn) => Cn.key === z), wt = dr === z, Nt = Xa === z;
6348
- return /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", "aria-busy": wt || void 0, style: dr && !wt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
6349
- dr || (ps(z), Promise.resolve().then(() => ft(z)).then(() => {
6350
- ys(z), window.clearTimeout(hr.current), hr.current = window.setTimeout(() => ys(null), 1600);
6344
+ const no = () => t.onShare ? t.onShare() : Gr(Ns(null), qe, () => {
6345
+ window.clearTimeout(gr.current), ms(!0), gr.current = window.setTimeout(() => ms(!1), 2200);
6346
+ }), ks = (j, pe, Re) => {
6347
+ const We = _r.find((Dn) => Dn.key === j), wt = fr === j, Nt = eo === j;
6348
+ return /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", "aria-busy": wt || void 0, style: fr && !wt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
6349
+ fr || (ps(j), Promise.resolve().then(() => ft(j)).then(() => {
6350
+ ys(j), window.clearTimeout(Mr.current), Mr.current = window.setTimeout(() => ys(null), 1600);
6351
6351
  }).catch(() => {
6352
6352
  }).finally(() => ps(null)));
6353
6353
  }, children: [
@@ -6358,13 +6358,13 @@ function gd(t) {
6358
6358
  ] }),
6359
6359
  /* @__PURE__ */ i(oe, { d: Nt ? ee.check : ee.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: Nt ? "var(--brand)" : "var(--ink-62)" } })
6360
6360
  ] });
6361
- }, no = /* @__PURE__ */ m("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
6361
+ }, ro = /* @__PURE__ */ m("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
6362
6362
  " ",
6363
6363
  /* @__PURE__ */ m("button", { type: "button", onClick: () => C("main"), "aria-label": "Back", style: { position: "absolute", left: -6, top: "50%", transform: "translateY(-50%)", display: "inline-flex", alignItems: "center", gap: 2, padding: "4px 6px 4px 0", border: 0, background: "none", color: "var(--ink-96)", fontFamily: "var(--vs-font-sans)", fontSize: 15, fontWeight: 600, letterSpacing: 0, lineHeight: 1, whiteSpace: "nowrap", cursor: "pointer" }, children: [
6364
6364
  /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 18, sw: 1.8 }),
6365
6365
  "Back"
6366
6366
  ] })
6367
- ] }), bn = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), ro = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[k], On = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, gr = u ? /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: ro, titleNode: k === "main" ? void 0 : no, doneLabel: Jt.done, kind: k === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(Or, { children: k === "lang" ? /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column" }, children: [
6367
+ ] }), bn = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), so = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[k], On = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, pr = u ? /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: so, titleNode: k === "main" ? void 0 : ro, doneLabel: Jt.done, kind: k === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(Or, { children: k === "lang" ? /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column" }, children: [
6368
6368
  /* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: rs.search }),
6369
6369
  rs.list
6370
6370
  ] }) : k === "subs" ? /* @__PURE__ */ m("div", { style: On, children: [
@@ -6380,36 +6380,36 @@ function gd(t) {
6380
6380
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Show speaker labels" }),
6381
6381
  /* @__PURE__ */ i("div", { className: "srow__s", children: "Who is speaking, before each line" })
6382
6382
  ] }),
6383
- /* @__PURE__ */ i(Lt, { checked: Ln, onChange: (z) => le(z ? "on" : "off"), label: "Show speaker labels" })
6383
+ /* @__PURE__ */ i(Lt, { checked: Ln, onChange: (j) => le(j ? "on" : "off"), label: "Show speaker labels" })
6384
6384
  ] }),
6385
6385
  /* @__PURE__ */ m("div", { className: "srow", children: [
6386
6386
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
6387
6387
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Highlight words" }),
6388
6388
  /* @__PURE__ */ i("div", { className: "srow__s", children: "Follow each word as it is spoken" })
6389
6389
  ] }),
6390
- /* @__PURE__ */ i(Lt, { checked: kn, onChange: (z) => je(z ? "on" : "off"), label: "Highlight words" })
6390
+ /* @__PURE__ */ i(Lt, { checked: kn, onChange: (j) => je(j ? "on" : "off"), label: "Highlight words" })
6391
6391
  ] })
6392
6392
  ] }) : k === "audio" ? /* @__PURE__ */ m("div", { style: On, children: [
6393
6393
  /* @__PURE__ */ m("div", { className: "srow", children: [
6394
6394
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
6395
6395
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Translate audio" }),
6396
- /* @__PURE__ */ i("div", { className: "srow__s", children: X ? Jn ? "Hear the translation read aloud instead of the original speech" : re.canSpeak ? "Not available right now" : "Not available in this language" : "Pick a language to hear the translation read aloud" })
6396
+ /* @__PURE__ */ i("div", { className: "srow__s", children: X ? er ? "Hear the translation read aloud instead of the original speech" : re.canSpeak ? "Not available right now" : "Not available in this language" : "Pick a language to hear the translation read aloud" })
6397
6397
  ] }),
6398
- /* @__PURE__ */ i(Lt, { checked: rr, onChange: Ee, label: "Translate audio", disabled: !Jn || !X })
6398
+ /* @__PURE__ */ i(Lt, { checked: ir, onChange: Ee, label: "Translate audio", disabled: !er || !X })
6399
6399
  ] }),
6400
- rr && re.hasClone && /* @__PURE__ */ m("div", { className: "srow", children: [
6400
+ ir && re.hasClone && /* @__PURE__ */ m("div", { className: "srow", children: [
6401
6401
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
6402
6402
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Voices" }),
6403
6403
  /* @__PURE__ */ i("div", { className: "srow__s", children: $e ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
6404
6404
  ] }),
6405
- /* @__PURE__ */ i(br, { value: $e ? "clone" : "stock", onChange: (z) => De(z === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
6405
+ /* @__PURE__ */ i(br, { value: $e ? "clone" : "stock", onChange: (j) => De(j === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
6406
6406
  ] }),
6407
6407
  /* @__PURE__ */ m("div", { className: "srow", children: [
6408
6408
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
6409
- /* @__PURE__ */ i("div", { className: "srow__t", children: Vn }),
6410
- /* @__PURE__ */ i("div", { className: "srow__s", children: Tl(B, nr, "video", re.on ? 0 : er.untilS) })
6409
+ /* @__PURE__ */ i("div", { className: "srow__t", children: Hn }),
6410
+ /* @__PURE__ */ i("div", { className: "srow__s", children: vl(B, sr, "video", re.on ? 0 : nr.untilS) })
6411
6411
  ] }),
6412
- /* @__PURE__ */ i(Lt, { checked: B && lt, onChange: F, label: Vn, disabled: !lt || nr === "unavailable" && !B })
6412
+ /* @__PURE__ */ i(Lt, { checked: B && lt, onChange: F, label: Hn, disabled: !lt || sr === "unavailable" && !B })
6413
6413
  ] })
6414
6414
  ] }) : k === "export" ? /* @__PURE__ */ m("div", { style: On, children: [
6415
6415
  ks("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
@@ -6433,7 +6433,7 @@ function gd(t) {
6433
6433
  D.audio && /* @__PURE__ */ m("div", { className: "srow srow--tap", role: "button", onClick: () => C("audio"), children: [
6434
6434
  /* @__PURE__ */ m("div", { style: { flex: 1, minWidth: 0 }, children: [
6435
6435
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
6436
- /* @__PURE__ */ i("div", { className: "srow__s", children: Pa })
6436
+ /* @__PURE__ */ i("div", { className: "srow__s", children: Qa })
6437
6437
  ] }),
6438
6438
  bn
6439
6439
  ] }, "audio"),
@@ -6447,7 +6447,7 @@ function gd(t) {
6447
6447
  ] }),
6448
6448
  bn
6449
6449
  ] }, "export")
6450
- ].filter(Boolean).flatMap((z, pe) => pe ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${pe}`), z] : [z]) }) }) }) : /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: Jt.settings, doneLabel: Jt.done, drawer: s, children: /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
6450
+ ].filter(Boolean).flatMap((j, pe) => pe ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${pe}`), j] : [j]) }) }) }) : /* @__PURE__ */ i(nn, { open: V, onClose: () => I(!1), title: Jt.settings, doneLabel: Jt.done, drawer: s, children: /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
6451
6451
  Ue.can && /* @__PURE__ */ m(xe, { children: [
6452
6452
  /* @__PURE__ */ m("div", { className: "srow srow--tap", onClick: () => {
6453
6453
  I(!1), Ue.onClick();
@@ -6464,7 +6464,7 @@ function gd(t) {
6464
6464
  ] }),
6465
6465
  t.settingsExtra
6466
6466
  ] }) }), _t = te && Bt && (!!Be || u) && /* @__PURE__ */ i(
6467
- Ia,
6467
+ ba,
6468
6468
  {
6469
6469
  page: (t.layout ?? "embed") === "page",
6470
6470
  picture: cs,
@@ -6472,26 +6472,26 @@ function gd(t) {
6472
6472
  desk: s,
6473
6473
  pos: ts,
6474
6474
  mute: { muted: v.muted, onToggle: yn },
6475
- cc: D.subtitles ? { on: Se, onToggle: () => we((z) => !z) } : void 0,
6475
+ cc: D.subtitles ? { on: Se, onToggle: () => we((j) => !j) } : void 0,
6476
6476
  noFull: !D.fullscreen,
6477
- ad: Zn,
6478
- wait: nt && !Xn ? /* @__PURE__ */ i(uu, { state: nt, line: yt ? Ms.map((z) => z.t + z.sp).join("") : null, onRetry: Qa, onOriginal: Va }) : v.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
6477
+ ad: qn,
6478
+ wait: nt && !tr ? /* @__PURE__ */ i(du, { state: nt, line: yt ? Ms.map((j) => j.t + j.sp).join("") : null, onRetry: Va, onOriginal: Ba }) : v.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
6479
6479
  pct: ge ? Math.round(U) : null,
6480
- sub: Se && et ? { who: zn ? Hr(ce, et.speaker) : null, color: zn ? zn.fg ?? `var(--lane-${zn.lane})` : "#fff", words: Ms, cursor: Yi(v, v.idx, wn) } : null,
6481
- chip: ir(s ? sr : { ...sr, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
6480
+ sub: Se && et ? { who: zn ? Hr(ce, et.speaker) : null, color: zn ? zn.fg ?? `var(--lane-${zn.lane})` : "#fff", words: Ms, cursor: Ui(v, v.idx, wn) } : null,
6481
+ chip: or(s ? ar : { ...ar, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
6482
6482
  transport: as,
6483
6483
  picker: re.sheets,
6484
- sheet: u ? gr : null,
6484
+ sheet: u ? pr : null,
6485
6485
  voices: null,
6486
6486
  voicesBtn: u ? null : os,
6487
6487
  sheetOpen: re.sheetsOpen || V,
6488
- onShare: u && D.share ? to : void 0,
6488
+ onShare: u && D.share ? no : void 0,
6489
6489
  onSettings: u && D.settings ? () => {
6490
- re.closePicker(), I((z) => !z);
6490
+ re.closePicker(), I((j) => !j);
6491
6491
  } : void 0,
6492
6492
  compact: !!t.compact,
6493
6493
  paused: { title: qe, summary: Vt.state === "ready" ? Vt.summary ?? null : null, share: D.share && (t.shareUrl || !t.onShare) ? { url: Ns, at: v.t } : null },
6494
- copied: Ja ? /* @__PURE__ */ m("div", { className: "gfull__toast", "aria-live": "polite", children: [
6494
+ copied: Xa ? /* @__PURE__ */ m("div", { className: "gfull__toast", "aria-live": "polite", children: [
6495
6495
  /* @__PURE__ */ i(oe, { d: ee.check, size: 13, sw: 2 }),
6496
6496
  "Link copied"
6497
6497
  ] }) : pn ? /* @__PURE__ */ m("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
@@ -6505,7 +6505,7 @@ function gd(t) {
6505
6505
  `${Tn || "Translated"} voice is still being prepared · playing with subtitles`
6506
6506
  ] }) : null,
6507
6507
  onTouch: () => {
6508
- dn(!0), qn();
6508
+ dn(!0), Jn();
6509
6509
  },
6510
6510
  onClose: u ? void 0 : () => {
6511
6511
  dn(!1), J(!1);
@@ -6523,20 +6523,20 @@ function gd(t) {
6523
6523
  /* @__PURE__ */ i("span", { className: "s", children: on })
6524
6524
  ] }),
6525
6525
  !s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
6526
- ] }), mr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), js = /* @__PURE__ */ i(Iu, { model: ce, rows: ue, player: zt ? v : { ...v, playRow: v.seekRow }, tail: an, tailFg: ut, running: ge, desk: s, feedRef: Rt, listener: !0, showLabels: Ln, find: T, findOpen: !s && f, lang: Qe, warm: R, onVisible: Et, wordHl: kn }), pr = /* @__PURE__ */ i(jc, { error: d ?? Z ?? (Kn && te ? null : v.error) ?? re.error, onClose: () => {
6526
+ ] }), yr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), js = /* @__PURE__ */ i(bu, { model: ce, rows: ue, player: zt ? v : { ...v, playRow: v.seekRow }, tail: an, tailFg: ut, running: ge, desk: s, feedRef: Rt, listener: !0, showLabels: Ln, find: T, findOpen: !s && f, lang: Qe, warm: R, onVisible: Et, wordHl: kn }), Nr = /* @__PURE__ */ i(zc, { error: d ?? Z ?? (Xn && te ? null : v.error) ?? re.error, onClose: () => {
6527
6527
  h(null), Ne(), v.clearError(), re.clearError();
6528
- } }), zs = [$ ? Ot($) : null, K ? K.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), Is = (z) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ m(xe, { children: [
6528
+ } }), zs = [$ ? Ot($) : null, K ? K.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), Is = (j) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ m(xe, { children: [
6529
6529
  /* @__PURE__ */ m("div", { className: "ctrans__row", children: [
6530
6530
  /* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
6531
6531
  /* @__PURE__ */ m("div", { className: "ctrans__mid", children: [
6532
6532
  /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: v.idx <= 0 ? 0.3 : 1 }, onClick: v.prev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 16, sw: 1.8 }) }),
6533
- /* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : v.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (v.playing ? "Pause" : "Play"), disabled: !St, onClick: v.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: v.playing ? void 0 : { marginLeft: 2 }, children: v.playing ? hu : fu }) }),
6533
+ /* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : v.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (v.playing ? "Pause" : "Play"), disabled: !St, onClick: v.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: v.playing ? void 0 : { marginLeft: 2 }, children: v.playing ? fu : Mu }) }),
6534
6534
  /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: v.idx >= ue.length - 1 ? 0.3 : 1 }, onClick: v.next, children: /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 16, sw: 1.8 }) })
6535
6535
  ] }),
6536
6536
  /* @__PURE__ */ i("span", { className: "ctrans__mute", children: Nn(36) })
6537
6537
  ] }),
6538
- /* @__PURE__ */ i("div", { className: "ctrans__scrub", children: _a(z) })
6539
- ] }) }), so = Kc("ga", { tabs: Xt, cur: M, pref: (Ni = Xt[0]) == null ? void 0 : Ni.key, onPick: g }), bs = Math.max(0, Math.min(100, Math.round(U))), io = Ye && /* @__PURE__ */ m("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
6538
+ /* @__PURE__ */ i("div", { className: "ctrans__scrub", children: Ya(j) })
6539
+ ] }) }), io = Jc("ga", { tabs: Xt, cur: M, pref: (Ti = Xt[0]) == null ? void 0 : Ti.key, onPick: g }), bs = Math.max(0, Math.min(100, Math.round(U))), ao = Ye && /* @__PURE__ */ m("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
6540
6540
  Be && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
6541
6541
  /* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ m(xe, { children: [
6542
6542
  qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
@@ -6550,27 +6550,33 @@ function gd(t) {
6550
6550
  ] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
6551
6551
  ] }), Os = u && n && (ge || ae === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, xn = w(t.onProgress);
6552
6552
  xn.current = t.onProgress, x(() => {
6553
- var z;
6554
- (z = xn.current) == null || z.call(xn, Os);
6553
+ var j;
6554
+ (j = xn.current) == null || j.call(xn, Os);
6555
6555
  }, [Os]);
6556
- const [ao, yr] = j(!1), Nr = !!_t && !Ye && (Xe ? !!v.ended : !v.playing && v.dur > 0 && v.t >= v.dur - 0.5);
6556
+ const [xs, Cn] = z(!1), Sn = !!_t && !Ye && (Xe ? !!v.ended : !v.playing && v.dur > 0 && v.t >= v.dur - 0.5);
6557
6557
  x(() => {
6558
- Nr || yr(!1);
6559
- }, [Nr]);
6560
- const oo = t.endCard !== !1 && Nr && !ao && /* @__PURE__ */ i(qu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => yr(!0), onReplay: () => {
6561
- yr(!0), tt.current = !0, v.seekFrac ? v.seekFrac(0) : v.seekRow(0), v.playing || v.toggle();
6562
- } });
6558
+ Sn || Cn(!1);
6559
+ }, [Sn]);
6560
+ const oo = t.endCard !== !1 && Sn && !xs && /* @__PURE__ */ i(Ku, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => Cn(!0), onReplay: () => {
6561
+ Cn(!0), tt.current = !0, v.seekFrac ? v.seekFrac(0) : v.seekRow(0), v.playing || v.toggle();
6562
+ } }), lo = t.endCard !== !1 && Sn && xs && /* @__PURE__ */ m("button", { type: "button", className: "vsp-endpill", onClick: (j) => {
6563
+ j.stopPropagation(), Cn(!1);
6564
+ }, children: [
6565
+ /* @__PURE__ */ i(oe, { d: ee.link, size: 15, sw: 1.8 }),
6566
+ "Transcribe a video"
6567
+ ] });
6563
6568
  if (u) return /* @__PURE__ */ m(xe, { children: [
6564
- r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: mr }) : io || _t || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
6569
+ r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: yr }) : ao || _t || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
6565
6570
  oo,
6566
- pr
6571
+ lo,
6572
+ Nr
6567
6573
  ] });
6568
6574
  if (s) {
6569
- const z = zt && !Bt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: Is(!0) }), pe = !r && (Xt.length > 0 || Bt || !!re.sidePanel || !!z);
6575
+ const j = zt && !Bt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: Is(!0) }), pe = !r && (Xt.length > 0 || Bt || !!re.sidePanel || !!j);
6570
6576
  return /* @__PURE__ */ m(xe, { children: [
6571
6577
  /* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ m("div", { className: "gcolhead", children: [
6572
6578
  /* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ m("div", { className: "gcolhead__col", children: [
6573
- /* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(Hn, { dark: a, height: 20.38 }) }),
6579
+ /* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(Fn, { dark: a, height: 20.38 }) }),
6574
6580
  !r && /* @__PURE__ */ m("div", { className: "dhead__session", children: [
6575
6581
  /* @__PURE__ */ i("span", { className: "t", children: n ? qe : "" }),
6576
6582
  /* @__PURE__ */ i("span", { className: "s", children: n ? zs : "" })
@@ -6580,38 +6586,38 @@ function gd(t) {
6580
6586
  ] }) }),
6581
6587
  /* @__PURE__ */ m("div", { className: "listenerlive listenerlive--cols listenerlive--pub", children: [
6582
6588
  /* @__PURE__ */ m("div", { className: "listenerlive__main", children: [
6583
- mr,
6589
+ yr,
6584
6590
  !r && mn,
6585
6591
  Ls,
6586
6592
  p && /* @__PURE__ */ i("div", { className: "pubflash", children: p }),
6587
6593
  !r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: js }),
6588
6594
  !r && /* @__PURE__ */ m("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
6589
- Ue.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ue.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(Qn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, onClick: Ue.onClick }) }),
6595
+ Ue.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ue.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(Bn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, onClick: Ue.onClick }) }),
6590
6596
  Xr
6591
6597
  ] })
6592
6598
  ] }),
6593
- pe && /* @__PURE__ */ m(eu, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
6594
- !re.sidePanel && z,
6599
+ pe && /* @__PURE__ */ m(tu, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
6600
+ !re.sidePanel && j,
6595
6601
  !re.sidePanel && us,
6596
- !re.sidePanel && Xt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Jc, { col: so, order: ["summary", "export"], onPick: g, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ i(Ti, { panel: !0, children: es(Re) }) }) }),
6602
+ !re.sidePanel && Xt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Xc, { col: io, order: ["summary", "export"], onPick: g, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ i(vi, { panel: !0, children: es(Re) }) }) }),
6597
6603
  re.sidePanel
6598
6604
  ] })
6599
6605
  ] }),
6600
6606
  !_t && re.sheets,
6601
- !(u && _t) && gr,
6607
+ !(u && _t) && pr,
6602
6608
  _t,
6603
- pr
6609
+ Nr
6604
6610
  ] });
6605
6611
  }
6606
- const lo = Xt.length > 0 && !f && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ m(Ti, { panel: !0, children: [
6607
- /* @__PURE__ */ i(Ta, { tabs: Xt, current: M, onPick: g, gap: M !== "none" }),
6612
+ const co = Xt.length > 0 && !f && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ m(vi, { panel: !0, children: [
6613
+ /* @__PURE__ */ i(va, { tabs: Xt, current: M, onPick: g, gap: M !== "none" }),
6608
6614
  M !== "none" && es(M)
6609
6615
  ] }) });
6610
6616
  return /* @__PURE__ */ m(xe, { children: [
6611
- /* @__PURE__ */ i(Ru, { dark: a, title: n ? qe : "", subline: n ? zs : "", onOptions: () => I(!0), optionsActive: V }),
6612
- mr,
6617
+ /* @__PURE__ */ i(Pu, { dark: a, title: n ? qe : "", subline: n ? zs : "", onOptions: () => I(!0), optionsActive: V }),
6618
+ yr,
6613
6619
  Ls,
6614
- !r && lo,
6620
+ !r && co,
6615
6621
  !r && us,
6616
6622
  !r && /* @__PURE__ */ m("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
6617
6623
  mn,
@@ -6621,23 +6627,23 @@ function gd(t) {
6621
6627
  !r && /* @__PURE__ */ m("div", { className: "gbottom", "data-transport": "1", children: [
6622
6628
  zt && !Bt && /* @__PURE__ */ i("div", { className: "pubctl", children: Is(!1) }),
6623
6629
  /* @__PURE__ */ m("div", { className: "gbottom__bar", children: [
6624
- Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: ir({ width: 87 }, void 0) }),
6630
+ Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: or({ width: 87 }, void 0) }),
6625
6631
  /* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Xr })
6626
6632
  ] })
6627
6633
  ] }),
6628
6634
  !_t && re.sheets,
6629
- !(u && _t) && gr,
6635
+ !(u && _t) && pr,
6630
6636
  _t,
6631
- pr
6637
+ Nr
6632
6638
  ] });
6633
6639
  }
6634
- function md(t) {
6635
- const [e, n] = j(null);
6640
+ function pd(t) {
6641
+ const [e, n] = z(null);
6636
6642
  return x(() => {
6637
6643
  if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
6638
6644
  let r = !0, s;
6639
6645
  const a = () => {
6640
- xo(t).then((o) => {
6646
+ Co(t).then((o) => {
6641
6647
  r && (n({ url: t, ok: o }), o || (s = setTimeout(a, 3e3)));
6642
6648
  });
6643
6649
  };
@@ -6646,64 +6652,64 @@ function md(t) {
6646
6652
  };
6647
6653
  }, [t, (e == null ? void 0 : e.url) === t && (e == null ? void 0 : e.ok)]), !t || (e == null ? void 0 : e.url) !== t ? "unknown" : e.ok ? "yes" : "no";
6648
6654
  }
6649
- function bd({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
6655
+ function Od({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
6650
6656
  return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: e, height: e, "aria-hidden": "true", className: s, style: { flex: "none", display: "block", color: n ? t.color : void 0, ...r }, children: /* @__PURE__ */ i("path", { d: t.glyph, fill: "currentColor", fillRule: "evenodd" }) });
6651
6657
  }
6652
6658
  export {
6653
- Bc as ExportPanel,
6654
- Ia as FullVideo,
6655
- Uu as MiniPlayer,
6656
- Mu as MuteButton,
6657
- ku as NO_SEEK,
6658
- hu as PAUSE_D,
6659
- fu as PLAY_D,
6660
- ju as PUB_SIDE,
6661
- zd as PanelSeek,
6662
- tc as PlayerApiProvider,
6663
- Vn as REMOVE_BG_LABEL,
6664
- yl as REMOVE_BG_NOTE,
6665
- zc as ReplayScrub,
6666
- sa as SITES,
6667
- bd as SiteIcon,
6668
- Ac as SpeakerCast,
6669
- Fc as SummaryPanel,
6670
- jd as Transport,
6671
- bu as TxFind,
6672
- Iu as TxLines,
6673
- Id as VocalStackPlayer,
6674
- Ec as VoiceSheetBody,
6675
- du as YtFollow,
6676
- Tl as bedNote,
6659
+ Hc as ExportPanel,
6660
+ ba as FullVideo,
6661
+ $u as MiniPlayer,
6662
+ gu as MuteButton,
6663
+ Lu as NO_SEEK,
6664
+ fu as PAUSE_D,
6665
+ Mu as PLAY_D,
6666
+ zu as PUB_SIDE,
6667
+ Id as PanelSeek,
6668
+ nc as PlayerApiProvider,
6669
+ Hn as REMOVE_BG_LABEL,
6670
+ Nl as REMOVE_BG_NOTE,
6671
+ Ic as ReplayScrub,
6672
+ ia as SITES,
6673
+ Od as SiteIcon,
6674
+ Ec as SpeakerCast,
6675
+ Zc as SummaryPanel,
6676
+ zd as Transport,
6677
+ Ou as TxFind,
6678
+ bu as TxLines,
6679
+ bd as VocalStackPlayer,
6680
+ _c as VoiceSheetBody,
6681
+ hu as YtFollow,
6682
+ vl as bedNote,
6677
6683
  dn as browserFull,
6678
- qo as hasEmbed,
6679
- Ho as hostOfUrl,
6684
+ Ko as hasEmbed,
6685
+ Wo as hostOfUrl,
6680
6686
  Ft as lineEnd,
6681
- ka as lineWords,
6687
+ La as lineWords,
6682
6688
  bt as pictureT,
6683
- Un as placePosition,
6684
- $n as realFull,
6685
- kd as setErrorReporter,
6686
- $i as setFullTarget,
6687
- Ld as siteById,
6689
+ Rn as placePosition,
6690
+ Pn as realFull,
6691
+ Ld as setErrorReporter,
6692
+ Ri as setFullTarget,
6693
+ jd as siteById,
6688
6694
  Zt as siteOf,
6689
- au as snapPosition,
6690
- Jo as sourceVideoUrl,
6691
- Yi as spokenWordOf,
6692
- vl as trackPlan,
6693
- ha as useApi,
6694
- Rc as useArchiveVoice,
6695
- xl as useBackgroundBed,
6696
- Nu as useDuck,
6697
- Ou as useFindPull,
6698
- gu as useFlash,
6695
+ ou as snapPosition,
6696
+ Xo as sourceVideoUrl,
6697
+ Ui as spokenWordOf,
6698
+ wl as trackPlan,
6699
+ fa as useApi,
6700
+ Pc as useArchiveVoice,
6701
+ Cl as useBackgroundBed,
6702
+ Tu as useDuck,
6703
+ xu as useFindPull,
6704
+ mu as useFlash,
6699
6705
  Gt as usePlayerApi,
6700
- oa as useSeparatedTrack,
6701
- Hc as useSummaryIn,
6702
- hc as useTranscript,
6703
- vu as useTxPlayer,
6704
- zu as useTxVoice,
6705
- xc as useViewportTranslation,
6706
- Uc as useVoiceCatalogue,
6707
- Tu as useYtLead
6706
+ la as useSeparatedTrack,
6707
+ Wc as useSummaryIn,
6708
+ fc as useTranscript,
6709
+ wu as useTxPlayer,
6710
+ Iu as useTxVoice,
6711
+ Cc as useViewportTranslation,
6712
+ $c as useVoiceCatalogue,
6713
+ vu as useYtLead
6708
6714
  };
6709
6715
  //# sourceMappingURL=index.js.map