@vocalstack/player 0.1.0-alpha.40 → 0.1.0-alpha.42

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 $a = Object.defineProperty;
2
- var Qa = (t, e, n) => e in t ? $a(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
- var ge = (t, e, n) => Qa(t, typeof e != "symbol" ? e + "" : e, n);
4
- import { jsx as i, jsxs as g, Fragment as xe } from "react/jsx-runtime";
5
- import { useState as L, useRef as k, useEffect as D, useLayoutEffect as Kt, createContext as ki, useMemo as ze, useContext as Ba, useCallback as Je, Fragment as Va, forwardRef as Ha, useImperativeHandle as Wa } from "react";
6
- import { createPortal as Fa } from "react-dom";
7
- import { VocalStackError as ji, VocalStack as zi } from "@vocalstack/js-sdk";
8
- const Ii = "https://vocalstack.com", Za = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", qa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ka = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
9
- function Ja({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
1
+ var Ra = Object.defineProperty;
2
+ var Pa = (t, e, n) => e in t ? Ra(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var ge = (t, e, n) => Pa(t, typeof e != "symbol" ? e + "" : e, n);
4
+ import { jsx as i, jsxs as g, Fragment as Ce } from "react/jsx-runtime";
5
+ import { useState as L, useRef as k, useEffect as D, useLayoutEffect as qt, createContext as wi, useMemo as ze, useContext as $a, useCallback as Ke, Fragment as Qa, forwardRef as Ba, useImperativeHandle as Va } from "react";
6
+ import { createPortal as Ha } from "react-dom";
7
+ import { VocalStackError as vi, VocalStack as Li } from "@vocalstack/js-sdk";
8
+ const ki = "https://vocalstack.com", Wa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Fa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Za = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
9
+ function qa({ 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 X = {
@@ -53,15 +53,15 @@ const X = {
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(Ja, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
56
+ return /* @__PURE__ */ i(qa, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
57
57
  }
58
- function Xa({ size: t = 15 }) {
58
+ function Ka({ 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
- function Mn({ size: t = 13 }) {
61
+ function cn({ size: t = 13 }) {
62
62
  return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__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" }) });
63
63
  }
64
- function lt({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
64
+ function ht({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
65
65
  return /* @__PURE__ */ i(
66
66
  "span",
67
67
  {
@@ -80,20 +80,20 @@ function lt({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
80
80
  }
81
81
  );
82
82
  }
83
- function eo({ size: t = 12 }) {
83
+ function Ja({ size: t = 12 }) {
84
84
  return /* @__PURE__ */ g("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
89
  function $n({ dark: t, height: e = 20, link: n = !0 }) {
90
- const r = /* @__PURE__ */ i("img", { src: t ? Za : Ga, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
91
- return n ? /* @__PURE__ */ i("a", { href: Ii, style: { display: "block" }, children: r }) : r;
90
+ const r = /* @__PURE__ */ i("img", { src: t ? Wa : Fa, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
91
+ return n ? /* @__PURE__ */ i("a", { href: ki, style: { display: "block" }, children: r }) : r;
92
92
  }
93
93
  function Ar({ dark: t, size: e = 30 }) {
94
- return /* @__PURE__ */ i("img", { src: t ? qa : Ka, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
94
+ return /* @__PURE__ */ i("img", { src: t ? Za : Ga, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
95
95
  }
96
- function ei({ children: t, panel: e, inset: n, className: r = "", style: s }) {
96
+ function Ks({ 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 Tt({ checked: t, onChange: e, label: n, disabled: r }) {
@@ -101,7 +101,7 @@ function Tt({ checked: t, onChange: e, label: n, disabled: r }) {
101
101
  }
102
102
  function wr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
103
103
  const o = k(null), [l, c] = L(null), u = Math.max(0, n.findIndex((d) => d.value === t));
104
- return Kt(() => {
104
+ return qt(() => {
105
105
  const d = o.current;
106
106
  if (!d) return;
107
107
  const M = d.querySelectorAll(".vs-switch__opt")[u];
@@ -122,7 +122,7 @@ function wr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill
122
122
  ] }, d.value))
123
123
  ] });
124
124
  }
125
- function to({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
125
+ function Xa({ 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
128
  function Yn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
@@ -135,7 +135,7 @@ function Yn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
135
135
  /* @__PURE__ */ i(oe, { d: X.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
136
136
  ] });
137
137
  }
138
- function no({ value: t, label: e = "Copy", onCopied: n }) {
138
+ function eo({ value: t, label: e = "Copy", onCopied: n }) {
139
139
  const [r, s] = L(!1), a = async () => {
140
140
  try {
141
141
  await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
@@ -160,8 +160,8 @@ function no({ value: t, label: e = "Copy", onCopied: n }) {
160
160
  }
161
161
  );
162
162
  }
163
- function ro(t, e) {
164
- Kt(() => {
163
+ function to(t, e) {
164
+ qt(() => {
165
165
  const n = t.current, r = window.visualViewport;
166
166
  if (!e || !n || !r) return;
167
167
  let s = 0;
@@ -182,11 +182,11 @@ function vr({ children: t, ms: e = 220 }) {
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(so, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
185
+ return n ? /* @__PURE__ */ i(no, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
186
186
  }
187
- function so({ children: t, ms: e }) {
187
+ function no({ children: t, ms: e }) {
188
188
  const n = k(null), r = k(null), [s, a] = L(null);
189
- return Kt(() => {
189
+ return qt(() => {
190
190
  const o = r.current, l = n.current;
191
191
  if (!o || !l) return;
192
192
  let c;
@@ -209,9 +209,9 @@ function so({ children: t, ms: e }) {
209
209
  };
210
210
  }, [e]), /* @__PURE__ */ i("div", { ref: n, style: { height: s ?? void 0, overflow: "clip", transition: s == null ? void 0 : `height ${e}ms cubic-bezier(.32,.72,0,1)` }, children: /* @__PURE__ */ i("div", { ref: r, children: t }) });
211
211
  }
212
- function Jt({ 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 }) {
212
+ function Kt({ 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 M = k(null);
214
- return ro(M, t), D(() => {
214
+ return to(M, t), D(() => {
215
215
  if (!t) return;
216
216
  const h = (f) => {
217
217
  f.key === "Escape" && e();
@@ -228,7 +228,7 @@ function Jt({ 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
- ki(0);
231
+ wi(0);
232
232
  function Lr({ children: t, style: e, className: n }) {
233
233
  return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
234
234
  }
@@ -236,7 +236,7 @@ let xn = null;
236
236
  function Qu(t) {
237
237
  xn = t;
238
238
  }
239
- function Oi(t) {
239
+ function ji(t) {
240
240
  xn == null || xn(t);
241
241
  }
242
242
  function Qn() {
@@ -246,11 +246,11 @@ function Qn() {
246
246
  return "ogg";
247
247
  }
248
248
  }
249
- function io(t = {}) {
249
+ function ro(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 ao(t) {
253
+ async function so(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 ao(t) {
265
265
  return null;
266
266
  }
267
267
  }
268
- async function oo(t) {
268
+ async function io(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,11 +273,11 @@ async function oo(t) {
273
273
  return !1;
274
274
  }
275
275
  }
276
- function lo(t, e, n = {}) {
276
+ function ao(t, e, n = {}) {
277
277
  const r = new URLSearchParams({ kind: "delivery", format: Qn() });
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 ti(t, e, n = {}, r = "background") {
280
+ function Js(t, e, n = {}, r = "background") {
281
281
  const s = new URLSearchParams({ kind: r, format: Qn() });
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
  }
@@ -285,30 +285,30 @@ function bn(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 co(t, e, n, r, s = {}) {
289
- return uo(t, e, n, r, "mp3", s);
288
+ function oo(t, e, n, r, s = {}) {
289
+ return lo(t, e, n, r, "mp3", s);
290
290
  }
291
- function uo(t, e, n, r, s, a) {
291
+ function lo(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 ho(t, e = !0) {
295
+ function co(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 && bi(t), `The audio could not be played: ${r}.`;
297
+ return e && zi(t), `The audio could not be played: ${r}.`;
298
298
  }
299
- function bi(t) {
299
+ function zi(t) {
300
300
  const e = (t == null ? void 0 : t.code) ?? 0;
301
- e !== 1 && Oi(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
301
+ e !== 1 && ji(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
302
302
  }
303
- const Mo = 3e3;
304
- function go(t, e, n) {
303
+ const uo = 3e3;
304
+ function ho(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") ? Mo : null;
309
+ return s && (s.retryable === !0 || s.code === "engine_unavailable") ? uo : null;
310
310
  }
311
- class fo {
311
+ class Mo {
312
312
  constructor(e = {}) {
313
313
  ge(this, "entries", /* @__PURE__ */ new Map());
314
314
  ge(this, "wanted", []);
@@ -401,13 +401,13 @@ class fo {
401
401
  }).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
402
402
  }
403
403
  }
404
- const Ci = { video: !1 };
405
- function xi(t) {
406
- if (!Ci.video) return new Audio(t);
404
+ const Ii = { video: !1 };
405
+ function Oi(t) {
406
+ if (!Ii.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 Si extends Error {
410
+ class bi 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 nt = class nt {
453
453
  ge(this, "loading", null);
454
454
  ge(this, "readAhead", 0);
455
455
  ge(this, "readAheadS", 0);
456
- ge(this, "prefetch", new fo());
456
+ ge(this, "prefetch", new Mo());
457
457
  ge(this, "warmed", /* @__PURE__ */ new Set());
458
458
  ge(this, "startingSince", /* @__PURE__ */ new Map());
459
459
  ge(this, "retries", /* @__PURE__ */ new Map());
@@ -789,7 +789,7 @@ const nt = class nt {
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 = go(l.status, l.headers.get("Retry-After"), c);
792
+ a = ho(l.status, l.headers.get("Retry-After"), c);
793
793
  } catch {
794
794
  r = !0;
795
795
  }
@@ -810,7 +810,7 @@ const nt = class nt {
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 Si()), this.onSentence(e);
813
+ this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new bi()), this.onSentence(e);
814
814
  return;
815
815
  }
816
816
  const o = (this.retries.get(e) ?? 0) + 1;
@@ -838,7 +838,7 @@ const nt = class nt {
838
838
  }
839
839
  element() {
840
840
  if (this.el) return this.el;
841
- const e = xi();
841
+ const e = Oi();
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 nt = class nt {
892
892
  };
893
893
  ge(nt, "WAIT_MS", 15e3), ge(nt, "START_WAIT_MS", 4e3), ge(nt, "COMING_MS", 12e4), ge(nt, "SKEW_LINES", 3), ge(nt, "RETRIES", 4), ge(nt, "RETRY_MS", 1200), ge(nt, "STARTING_MS", 3e5);
894
894
  let kr = nt;
895
- function Di(t, e) {
895
+ function Ci(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 po(t, e, n, r = {}, s) {
898
+ function go(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 = io(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
902
+ const o = ro(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
903
903
  return a.flatMap((u) => {
904
904
  var h, f;
905
905
  const d = (h = t.clipRev) == null ? void 0 : h[String(u)], M = Math.max(1, ((f = t.clipParts) == null ? void 0 : f[String(u)]) ?? 1);
@@ -918,16 +918,16 @@ function po(t, e, n, r = {}, s) {
918
918
  });
919
919
  });
920
920
  }
921
- function Ai(t, e) {
921
+ function xi(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 ? mo(t, e.t, e.dur) : null;
928
+ return e.dur > 0 ? fo(t, e.t, e.dur) : null;
929
929
  }
930
- function mo(t, e, n) {
930
+ function fo(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 Ir(t, e) {
945
945
  return e;
946
946
  }
947
947
  }
948
- function Ei(t, e) {
948
+ function Si(t, e) {
949
949
  try {
950
950
  e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
951
951
  } catch {
@@ -960,32 +960,32 @@ function Er(t, e) {
960
960
  zr.delete(s), window.removeEventListener("storage", s);
961
961
  };
962
962
  }, [t]), [n, (s) => {
963
- r(s), Ei(t, s);
963
+ r(s), Si(t, s);
964
964
  }];
965
965
  }
966
- function ni(t) {
966
+ function Xs(t) {
967
967
  const e = Ir(jr, []);
968
- Ei(jr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
968
+ Si(jr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
969
969
  }
970
- function _i() {
970
+ function Di() {
971
971
  const [t, e] = Er(jr, []), 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 Yi(t, e) {
976
+ function Ai(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 No(t) {
981
+ function po(t) {
982
982
  const [e, n] = Er(`vs.pins.${t}`, null);
983
983
  return [Array.isArray(e) ? e : [], n];
984
984
  }
985
- const yo = 352;
986
- function To(t) {
985
+ const mo = 352;
986
+ function No(t) {
987
987
  const [e, n] = Er(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
988
- return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : yo, n];
988
+ return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : mo, n];
989
989
  }
990
990
  function _r({ 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: M }) {
991
991
  const [h, f] = L(""), [m, y] = L(!1), [j, N] = L(null);
@@ -998,10 +998,10 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
998
998
  const K = l.indexOf(b.code), v = l.indexOf(te.code);
999
999
  return K !== -1 || v !== -1 ? (K === -1 ? 999 : K) - (v === -1 ? 999 : v) : b.label.localeCompare(te.label);
1000
1000
  });
1001
- }, [s, h, l]), I = ze(
1001
+ }, [s, h, l]), O = ze(
1002
1002
  () => h ? [] : c.map((A) => p.find((T) => T.code === A)).filter((A) => !!A).sort((A, T) => A.label.localeCompare(T.label)),
1003
1003
  [c, p, h]
1004
- ), C = ze(() => I.length ? p.filter((A) => !I.some((T) => T.code === A.code)) : p, [p, I]), S = m || h ? C.length : 12, B = C, Y = C.length - Math.min(S, C.length), ee = (A, T = !1, _ = !1) => {
1004
+ ), C = ze(() => O.length ? p.filter((A) => !O.some((T) => T.code === A.code)) : p, [p, O]), S = m || h ? C.length : 12, B = C, Y = C.length - Math.min(S, C.length), ee = (A, T = !1, _ = !1) => {
1005
1005
  const b = !!u && !A.voice;
1006
1006
  return /* @__PURE__ */ g(
1007
1007
  "button",
@@ -1023,17 +1023,17 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1023
1023
  /* @__PURE__ */ i("div", { className: "vs-picker__native", children: A.native })
1024
1024
  ] }),
1025
1025
  /* @__PURE__ */ i("span", { className: "vs-picker__slot", children: T && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${A.label} from recent`, "aria-label": `Remove ${A.label} from recent`, onClick: (te) => {
1026
- te.stopPropagation(), ni(A.code);
1026
+ te.stopPropagation(), Xs(A.code);
1027
1027
  }, onKeyDown: (te) => {
1028
- (te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), ni(A.code));
1028
+ (te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), Xs(A.code));
1029
1029
  }, children: /* @__PURE__ */ i(oe, { d: X.close, size: 16 }) }) }),
1030
1030
  /* @__PURE__ */ i("span", { className: `vs-picker__slot${b ? " vs-picker__slot--wide" : ""}`, title: A.voice ? "Voice available" : b ? "No voice speaks this language yet" : void 0, children: b ? j === A.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : A.voice && /* @__PURE__ */ i(oe, { d: X.headphones, size: 16 }) }),
1031
- /* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === A.code && (M === A.code ? /* @__PURE__ */ i(lt, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 })) })
1031
+ /* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === A.code && (M === A.code ? /* @__PURE__ */ i(ht, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 })) })
1032
1032
  ]
1033
1033
  },
1034
1034
  A.code
1035
1035
  );
1036
- }, z = /* @__PURE__ */ g("div", { className: "vs-picker__search", children: [
1036
+ }, I = /* @__PURE__ */ g("div", { className: "vs-picker__search", children: [
1037
1037
  /* @__PURE__ */ i(oe, { d: X.search, size: 16, sw: 1.7, style: { color: "var(--vs-text-muted)" } }),
1038
1038
  /* @__PURE__ */ i("input", { value: h, onChange: (A) => f(A.target.value), placeholder: a, "aria-label": a })
1039
1039
  ] }), F = /* @__PURE__ */ g("div", { className: "vs-picker__list", children: [
@@ -1049,9 +1049,9 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1049
1049
  /* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
1050
1050
  /* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 }) })
1051
1051
  ] }),
1052
- I.length > 0 && /* @__PURE__ */ g(xe, { children: [
1052
+ O.length > 0 && /* @__PURE__ */ g(Ce, { children: [
1053
1053
  /* @__PURE__ */ i("div", { className: "vs-picker__head", children: "RECENT" }),
1054
- I.map((A) => ee(A, !0)),
1054
+ O.map((A) => ee(A, !0)),
1055
1055
  /* @__PURE__ */ i("div", { className: "vs-picker__rule" })
1056
1056
  ] }),
1057
1057
  B.map((A, T) => ee(A, !1, T >= S)),
@@ -1066,13 +1066,13 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1066
1066
  "”"
1067
1067
  ] })
1068
1068
  ] });
1069
- return { search: z, list: F };
1069
+ return { search: I, list: F };
1070
1070
  }
1071
- function wo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
1071
+ function yo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
1072
1072
  const { search: o, list: l } = _r({ ...a, open: t, onClose: e });
1073
- return /* @__PURE__ */ i(Jt, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
1073
+ return /* @__PURE__ */ i(Kt, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
1074
1074
  }
1075
- function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
1075
+ function ei({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
1076
1076
  const l = k(null), [c, u] = L(!1), [d, M] = L(!1), h = k(n);
1077
1077
  return h.current = n, D(() => {
1078
1078
  u(!1), M(!1);
@@ -1100,7 +1100,7 @@ function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
1100
1100
  return () => {
1101
1101
  clearInterval(m), f.playbackRate = 1;
1102
1102
  };
1103
- }, [c, r, o]), d ? null : /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
1103
+ }, [c, r, o]), d ? null : /* @__PURE__ */ g("div", { className: "txyt vsp-follow", style: c ? { background: "#000" } : void 0, children: [
1104
1104
  /* @__PURE__ */ i(
1105
1105
  "video",
1106
1106
  {
@@ -1120,10 +1120,10 @@ function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
1120
1120
  }
1121
1121
  ),
1122
1122
  c && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
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(Mn, { size: 44 }) }) })
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(cn, { size: 44 }) }) })
1124
1124
  ] });
1125
1125
  }
1126
- const Ui = [
1126
+ const Ei = [
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" },
@@ -1137,11 +1137,11 @@ const Ui = [
1137
1137
  { id: "kick", name: "Kick", color: "#53fc18", hosts: /(^|\.)kick\.com$/, glyph: "M4 3h5.5v5H11V6h2V3h5.5v6.5h-2V11h-2v2h2v1.5h2V21H13v-3h-2v-2H9.5v5H4V3Z" },
1138
1138
  { id: "mixcloud", name: "Mixcloud", color: "#7f8cff", hosts: /(^|\.)mixcloud\.com$/, audioOnly: !0, glyph: "M17.5 9.5a5.5 5.5 0 0 0-10.6 1.2A3.8 3.8 0 0 0 7.3 18h10.2a4.25 4.25 0 0 0 0-8.5Z" },
1139
1139
  { id: "bandcamp", name: "Bandcamp", color: "#1da0c3", hosts: /(^|\.)bandcamp\.com$/, audioOnly: !0, glyph: "M2 18 8.5 6H22l-6.5 12H2Z" }
1140
- ], vo = new Map(Ui.map((t) => [t.id, t]));
1140
+ ], To = new Map(Ei.map((t) => [t.id, t]));
1141
1141
  function Bu(t) {
1142
- return t ? vo.get(t) ?? null : null;
1142
+ return t ? To.get(t) ?? null : null;
1143
1143
  }
1144
- function Lo(t) {
1144
+ function wo(t) {
1145
1145
  const e = t == null ? void 0 : t.trim();
1146
1146
  if (!e) return null;
1147
1147
  try {
@@ -1150,9 +1150,9 @@ function Lo(t) {
1150
1150
  return null;
1151
1151
  }
1152
1152
  }
1153
- function ko(t) {
1154
- const e = Lo(t);
1155
- return e ? Ui.find((n) => n.hosts.test(e)) ?? null : null;
1153
+ function vo(t) {
1154
+ const e = wo(t);
1155
+ return e ? Ei.find((n) => n.hosts.test(e)) ?? null : null;
1156
1156
  }
1157
1157
  function Bn(t) {
1158
1158
  try {
@@ -1162,12 +1162,12 @@ function Bn(t) {
1162
1162
  }
1163
1163
  }
1164
1164
  const Sn = (t) => Math.max(0, Math.floor(t));
1165
- function Ri(t) {
1165
+ function _i(t) {
1166
1166
  var n;
1167
1167
  const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = Bn(t)) == null ? void 0 : n.pathname) ?? "");
1168
1168
  return e ? e[1].toLowerCase() : null;
1169
1169
  }
1170
- function jo(t) {
1170
+ function Lo(t) {
1171
1171
  const e = Bn(t);
1172
1172
  if (!e) return null;
1173
1173
  const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
@@ -1175,14 +1175,14 @@ function jo(t) {
1175
1175
  const s = n[r + 1];
1176
1176
  return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
1177
1177
  }
1178
- function zo(t) {
1178
+ function ko(t) {
1179
1179
  const e = Bn(t);
1180
1180
  if (!e) return null;
1181
1181
  if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
1182
1182
  const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
1183
1183
  return n ? n[1] : null;
1184
1184
  }
1185
- function Io(t) {
1185
+ function jo(t) {
1186
1186
  const e = Bn(t);
1187
1187
  if (!e) return null;
1188
1188
  const n = e.pathname.split("/").filter(Boolean);
@@ -1192,39 +1192,39 @@ function Io(t) {
1192
1192
  const s = n.indexOf("clip");
1193
1193
  return s >= 0 && n[s + 1] ? { clip: n[s + 1] } : n[0] ? { channel: n[0] } : null;
1194
1194
  }
1195
- const Oo = (t) => {
1195
+ const zo = (t) => {
1196
1196
  const e = Sn(t);
1197
1197
  return `${Math.floor(e / 3600)}h${Math.floor(e % 3600 / 60)}m${e % 60}s`;
1198
1198
  };
1199
- function Pi(t, e) {
1200
- const n = ko(t);
1199
+ function Yi(t, e) {
1200
+ const n = vo(t);
1201
1201
  if (!n) return null;
1202
1202
  const r = e.play ? 1 : 0;
1203
1203
  switch (n.id) {
1204
1204
  case "loom": {
1205
- const s = Ri(t);
1205
+ const s = _i(t);
1206
1206
  if (!s) return null;
1207
1207
  const a = 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(Sn(e.t)) });
1208
1208
  return `https://www.loom.com/embed/${s}?${a}`;
1209
1209
  }
1210
1210
  case "vimeo": {
1211
- const s = jo(t);
1211
+ const s = Lo(t);
1212
1212
  if (!s) return null;
1213
1213
  const a = new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0", title: "0", byline: "0", portrait: "0", dnt: "1" });
1214
1214
  return s.h && a.set("h", s.h), `https://player.vimeo.com/video/${s.id}?${a}#t=${Sn(e.t)}s`;
1215
1215
  }
1216
1216
  case "dailymotion": {
1217
- const s = zo(t);
1217
+ const s = ko(t);
1218
1218
  if (!s) return null;
1219
1219
  const a = new URLSearchParams({ autoplay: String(r), mute: "1", controls: "0", "queue-enable": "0", "sharing-enable": "0", "ui-start-screen-info": "0", start: String(Sn(e.t)) });
1220
1220
  return `https://www.dailymotion.com/embed/video/${s}?${a}`;
1221
1221
  }
1222
1222
  case "twitch": {
1223
- const s = Io(t);
1223
+ const s = jo(t);
1224
1224
  if (!s || !e.host) return null;
1225
1225
  if (s.clip) return `https://clips.twitch.tv/embed?${new URLSearchParams({ clip: s.clip, parent: e.host, autoplay: String(!!e.play), muted: "true" })}`;
1226
1226
  const a = new URLSearchParams({ parent: e.host, autoplay: String(!!e.play), muted: "true" });
1227
- return s.video ? (a.set("video", `v${s.video}`), a.set("time", Oo(e.t))) : s.channel && a.set("channel", s.channel), `https://player.twitch.tv/?${a}`;
1227
+ return s.video ? (a.set("video", `v${s.video}`), a.set("time", zo(e.t))) : s.channel && a.set("channel", s.channel), `https://player.twitch.tv/?${a}`;
1228
1228
  }
1229
1229
  case "facebook":
1230
1230
  return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false" })}`;
@@ -1232,13 +1232,34 @@ function Pi(t, e) {
1232
1232
  return null;
1233
1233
  }
1234
1234
  }
1235
+ function Io(t) {
1236
+ return !!t && Yi(t, { t: 0, play: !1, host: "localhost" }) != null;
1237
+ }
1238
+ function Oo(t, e) {
1239
+ const n = e == null ? void 0 : e.trim();
1240
+ if (!t || !n) return null;
1241
+ switch (t) {
1242
+ case "loom":
1243
+ return /^[0-9a-f]{32}$/i.test(n) ? `https://www.loom.com/share/${n}` : null;
1244
+ case "vimeo":
1245
+ return /^\d+(\/[0-9a-z]+)?$/i.test(n) ? `https://vimeo.com/${n}` : null;
1246
+ case "dailymotion":
1247
+ return /^[a-z0-9]+$/i.test(n) ? `https://www.dailymotion.com/video/${n}` : null;
1248
+ case "youtube":
1249
+ return /^[\w-]{6,}$/.test(n) ? `https://www.youtube.com/watch?v=${n}` : null;
1250
+ case "twitch":
1251
+ return /^v\d+$/.test(n) ? `https://www.twitch.tv/videos/${n.slice(1)}` : n.startsWith("clip:") ? `https://clips.twitch.tv/${encodeURIComponent(n.slice(5))}` : n.startsWith("channel:") ? `https://www.twitch.tv/${encodeURIComponent(n.slice(8))}` : null;
1252
+ default:
1253
+ return null;
1254
+ }
1255
+ }
1235
1256
  function bo(t) {
1236
- return !!t && Pi(t, { t: 0, play: !1, host: "localhost" }) != null;
1257
+ return !t || t.kind !== "url" ? null : Oo(t.site, t.embedId) ?? t.url ?? null;
1237
1258
  }
1238
1259
  function Co({ url: t, t: e, playing: n, seekN: r, title: s }) {
1239
1260
  const a = k(e);
1240
1261
  a.current = e;
1241
- const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() => Pi(t, { t: a.current, play: n, host: c }), [t, n, r, c]);
1262
+ const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() => Yi(t, { t: a.current, play: n, host: c }), [t, n, r, c]);
1242
1263
  return u ? /* @__PURE__ */ i(
1243
1264
  "iframe",
1244
1265
  {
@@ -1297,34 +1318,34 @@ function Do(t) {
1297
1318
  };
1298
1319
  };
1299
1320
  }
1300
- const ln = /* @__PURE__ */ new Map();
1321
+ const rn = /* @__PURE__ */ new Map();
1301
1322
  function Ao(t) {
1302
- const [e, n] = L(() => t ? ln.get(t) ?? null : null);
1323
+ const [e, n] = L(() => t ? rn.get(t) ?? null : null);
1303
1324
  return D(() => {
1304
1325
  if (!t) {
1305
1326
  n(null);
1306
1327
  return;
1307
1328
  }
1308
- if (ln.has(t)) {
1309
- n(ln.get(t) ?? null);
1329
+ if (rn.has(t)) {
1330
+ n(rn.get(t) ?? null);
1310
1331
  return;
1311
1332
  }
1312
1333
  let r = !0;
1313
1334
  return fetch(`https://www.youtube.com/oembed?format=json&url=${encodeURIComponent(`https://www.youtube.com/watch?v=${t}`)}`).then((s) => s.ok ? s.json() : null).then((s) => {
1314
1335
  const a = s && typeof s.title == "string" && s.title.trim() ? s.title.trim() : null;
1315
- ln.set(t, a), r && n(a);
1336
+ rn.set(t, a), r && n(a);
1316
1337
  }).catch(() => {
1317
- ln.set(t, null);
1338
+ rn.set(t, null);
1318
1339
  }), () => {
1319
1340
  r = !1;
1320
1341
  };
1321
1342
  }, [t]), e;
1322
1343
  }
1323
- const Eo = /^[0-9a-f]{16,}$/i, si = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1344
+ const Eo = /^[0-9a-f]{16,}$/i, ti = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1324
1345
  function _o(t) {
1325
1346
  const e = (r) => {
1326
1347
  const s = r == null ? void 0 : r.trim();
1327
- return s && s !== t.id && !si.test(s) && !Eo.test(s) ? s : null;
1348
+ return s && s !== t.id && !ti.test(s) && !Eo.test(s) ? s : null;
1328
1349
  }, n = (() => {
1329
1350
  if (!t.url) return null;
1330
1351
  try {
@@ -1333,10 +1354,10 @@ function _o(t) {
1333
1354
  return null;
1334
1355
  }
1335
1356
  })();
1336
- return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (si.test(t.id) ? "VocalStack" : t.id);
1357
+ return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (ti.test(t.id) ? "VocalStack" : t.id);
1337
1358
  }
1338
1359
  const Yo = 0.3;
1339
- function ii(t, e) {
1360
+ function ni(t, e) {
1340
1361
  t.muted = e.muted, Math.abs(t.currentTime - e.t) > Yo && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
1341
1362
  }) : t.paused || t.pause();
1342
1363
  }
@@ -1401,7 +1422,7 @@ async function Go(t) {
1401
1422
  function Mr(t) {
1402
1423
  t && (t.pause(), t.removeAttribute("src"), t.load());
1403
1424
  }
1404
- function $i(t, e) {
1425
+ function Ui(t, e) {
1405
1426
  const [n, r] = L("off"), [s, a] = L([]), [o, l] = L(!1), c = k(null), u = k([null, null]), d = k([NaN, NaN]), M = k(0);
1406
1427
  return D(() => {
1407
1428
  if (a([]), l(!1), !t) {
@@ -1440,7 +1461,7 @@ function $i(t, e) {
1440
1461
  for (const N of u.current) N && !N.paused && N.pause();
1441
1462
  };
1442
1463
  if (n === "ready" && c.current) {
1443
- h(), ii(c.current, e), l(!0);
1464
+ h(), ni(c.current, e), l(!0);
1444
1465
  return;
1445
1466
  }
1446
1467
  const f = n === "making" ? Fo(s, e.t) : -1;
@@ -1450,16 +1471,16 @@ function $i(t, e) {
1450
1471
  }
1451
1472
  const m = Zo(s, f, d.current, M.current);
1452
1473
  for (const [N, p] of m.load) {
1453
- let I = u.current[N];
1454
- I || (I = new Audio(), I.preload = "auto", u.current[N] = I), I.pause(), I.src = s[p].url, d.current[N] = s[p].startS;
1474
+ let O = u.current[N];
1475
+ O || (O = new Audio(), O.preload = "auto", u.current[N] = O), O.pause(), O.src = s[p].url, d.current[N] = s[p].startS;
1455
1476
  }
1456
1477
  M.current = m.play;
1457
1478
  const y = u.current[m.play], j = u.current[1 - m.play];
1458
- j && !j.paused && j.pause(), ii(y, { ...e, t: e.t - s[f].startS }), l(!e.playing || y.readyState >= 3);
1479
+ j && !j.paused && j.pause(), ni(y, { ...e, t: e.t - s[f].startS }), l(!e.playing || y.readyState >= 3);
1459
1480
  }, [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 };
1460
1481
  }
1461
1482
  function qo(t, e) {
1462
- return $i(t, e).state;
1483
+ return Ui(t, e).state;
1463
1484
  }
1464
1485
  const Ko = 0.5, Jo = 3;
1465
1486
  function Yr(t, e) {
@@ -1558,7 +1579,7 @@ function nl(t) {
1558
1579
  });
1559
1580
  }, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
1560
1581
  }
1561
- const ai = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1582
+ const ri = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1562
1583
  function rl(t, e) {
1563
1584
  var n, r;
1564
1585
  if (t === "play") {
@@ -1576,7 +1597,7 @@ function rl(t, e) {
1576
1597
  (r = e.prev) == null || r.call(e);
1577
1598
  }
1578
1599
  function sl(t, e) {
1579
- for (const n of ai)
1600
+ for (const n of ri)
1580
1601
  try {
1581
1602
  t.setActionHandler(n, () => {
1582
1603
  const r = e();
@@ -1585,7 +1606,7 @@ function sl(t, e) {
1585
1606
  } catch {
1586
1607
  }
1587
1608
  return () => {
1588
- for (const n of ai)
1609
+ for (const n of ri)
1589
1610
  try {
1590
1611
  t.setActionHandler(n, null);
1591
1612
  } catch {
@@ -1614,11 +1635,11 @@ function il(t, e) {
1614
1635
  }
1615
1636
  }, [r, e]);
1616
1637
  }
1617
- function It(t) {
1638
+ function kt(t) {
1618
1639
  const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = e % 60, a = String(r).padStart(2, "0"), o = String(s).padStart(2, "0");
1619
1640
  return n > 0 ? `${n}:${a}:${o}` : `${a}:${o}`;
1620
1641
  }
1621
- function qt() {
1642
+ function Gt() {
1622
1643
  return {
1623
1644
  segments: /* @__PURE__ */ new Map(),
1624
1645
  sentences: /* @__PURE__ */ new Map(),
@@ -1639,11 +1660,11 @@ function al(t, e) {
1639
1660
  const n = t.spans[t.spans.length - 1];
1640
1661
  return n ? (n.wallEnd ?? n.wallStart) + Math.max(0, e - (n.mediaEnd ?? n.mediaStart)) : e;
1641
1662
  }
1642
- function dn(t, e) {
1663
+ function on(t, e) {
1643
1664
  return (e ?? []).map((n, r) => ({ text: String(n.text ?? ""), prob: n.prob ?? null, start: n.start ?? 0, end: n.end ?? 0, alts: n.alts, ...n.script === !0 ? { script: !0 } : {}, ...n.script === !0 && typeof n.recognized == "string" ? { recognized: n.recognized } : {}, seq: t, idx: r }));
1644
1665
  }
1645
1666
  function gr(t, e) {
1646
- const n = e ?? qt();
1667
+ const n = e ?? Gt();
1647
1668
  delete n.numbers, n.state = t.state, t.speakerLabels && (n.labels = t.speakerLabels), n.lastSeq = Math.max(n.lastSeq, t.lastSeq), n.spans = t.spans.map((r) => ({ wallStart: r.wallStart, wallEnd: r.wallEnd ?? null, mediaStart: r.mediaStart, mediaEnd: r.mediaEnd ?? null }));
1648
1669
  for (const r of t.segments) {
1649
1670
  const s = r.scriptPos;
@@ -1655,7 +1676,7 @@ function gr(t, e) {
1655
1676
  start: r.start,
1656
1677
  end: r.end,
1657
1678
  text: r.text,
1658
- words: dn(r.seq, r.words),
1679
+ words: on(r.seq, r.words),
1659
1680
  catchup: !!r.catchup,
1660
1681
  corrected: !!r.corrected,
1661
1682
  settled: !!r.settled,
@@ -1704,7 +1725,7 @@ function gr(t, e) {
1704
1725
  ])
1705
1726
  ), n;
1706
1727
  }
1707
- function oi(t, e) {
1728
+ function si(t, e) {
1708
1729
  const n = e ?? {};
1709
1730
  return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
1710
1731
  }
@@ -1736,7 +1757,7 @@ function ll(t, e) {
1736
1757
  start: r.start,
1737
1758
  end: r.end,
1738
1759
  text: r.text,
1739
- words: r.words ? dn(r.seq, r.words) : (s == null ? void 0 : s.words) ?? [],
1760
+ words: r.words ? on(r.seq, r.words) : (s == null ? void 0 : s.words) ?? [],
1740
1761
  catchup: !!r.catchup,
1741
1762
  corrected: (s == null ? void 0 : s.corrected) ?? !1,
1742
1763
  settled: (s == null ? void 0 : s.settled) ?? !1,
@@ -1745,7 +1766,7 @@ function ll(t, e) {
1745
1766
  confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
1746
1767
  latencyS: r.latencyS,
1747
1768
  language: r.language,
1748
- translations: oi(s == null ? void 0 : s.translations, r.translations),
1769
+ translations: si(s == null ? void 0 : s.translations, r.translations),
1749
1770
  scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
1750
1771
  scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
1751
1772
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
@@ -1767,7 +1788,7 @@ function ll(t, e) {
1767
1788
  case "transcript.amended": {
1768
1789
  const r = t.segments.get(e.seq);
1769
1790
  if (r && r.corrected && ol(r.words, e)) {
1770
- r.text = e.text, r.words = dn(e.seq, e.tail.words);
1791
+ r.text = e.text, r.words = on(e.seq, e.tail.words);
1771
1792
  break;
1772
1793
  }
1773
1794
  if (r && !r.corrected) {
@@ -1775,7 +1796,7 @@ function ll(t, e) {
1775
1796
  const s = String(e.text).split(/\s+/).filter(Boolean);
1776
1797
  if (e.tail && e.tail.replaced <= r.words.length) {
1777
1798
  const a = r.words.slice(0, r.words.length - e.tail.replaced);
1778
- r.words = dn(e.seq, [...a, ...e.tail.words]);
1799
+ r.words = on(e.seq, [...a, ...e.tail.words]);
1779
1800
  } else s.length === r.words.length && (r.words = r.words.map((a, o) => ({ ...a, text: s[o] })));
1780
1801
  if ((n = e.scriptWords) != null && n.length) {
1781
1802
  const a = (c) => c.toLowerCase().replace(/[^\p{L}\p{N}]/gu, ""), o = (e.fixes ?? []).filter((c) => String(c.kind ?? "").endsWith("script") && String(c.orig ?? "").trim()), l = (c) => {
@@ -1823,7 +1844,7 @@ function ll(t, e) {
1823
1844
  suppressed: !!r.suppressed,
1824
1845
  unclear: !!r.unclear,
1825
1846
  language: r.language,
1826
- translations: a ? s.translations : oi(s == null ? void 0 : s.translations, r.translations),
1847
+ translations: a ? s.translations : si(s == null ? void 0 : s.translations, r.translations),
1827
1848
  provisional: !!r.provisional,
1828
1849
  translationLatencyS: r.translationLatencyS
1829
1850
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
@@ -1837,7 +1858,7 @@ function ll(t, e) {
1837
1858
  if (r) {
1838
1859
  r.text = e.text, r.corrected = !e.reverted || r.corrected;
1839
1860
  const s = String(e.text).split(/\s+/).filter(Boolean);
1840
- Array.isArray(e.words) ? r.words = dn(e.seq, e.words) : s.length === r.words.length && (r.words = r.words.map((a, o) => ({ ...a, text: s[o], prob: o === e.wordIdx ? 1 : a.prob }))), r.translations = {};
1861
+ Array.isArray(e.words) ? r.words = on(e.seq, e.words) : s.length === r.words.length && (r.words = r.words.map((a, o) => ({ ...a, text: s[o], prob: o === e.wordIdx ? 1 : a.prob }))), r.translations = {};
1841
1862
  }
1842
1863
  if (typeof e.sentenceId == "number") {
1843
1864
  const s = t.sentences.get(e.sentenceId);
@@ -1930,19 +1951,19 @@ function Rn(t, e) {
1930
1951
  return n.get(e) ?? n.size + 1 + e;
1931
1952
  }
1932
1953
  const ml = /^\s*speaker\s+\d+\s*$/i;
1933
- function li(t) {
1954
+ function ii(t) {
1934
1955
  return t && t.trim() && !ml.test(t) ? t : void 0;
1935
1956
  }
1936
- function Qi(t, e) {
1957
+ function Ri(t, e) {
1937
1958
  var n;
1938
- return li(t.speakers[e]) ?? li((n = t.speakerIds[e]) == null ? void 0 : n.name);
1959
+ return ii(t.speakers[e]) ?? ii((n = t.speakerIds[e]) == null ? void 0 : n.name);
1939
1960
  }
1940
1961
  function Ur(t, e) {
1941
- return e < 0 ? "" : Qi(t, e) ?? `Speaker ${Rn(t, e)}`;
1962
+ return e < 0 ? "" : Ri(t, e) ?? `Speaker ${Rn(t, e)}`;
1942
1963
  }
1943
- function Bi(t, e) {
1964
+ function Pi(t, e) {
1944
1965
  if (e < 0) return "?";
1945
- const n = Qi(t, e);
1966
+ const n = Ri(t, e);
1946
1967
  return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Rn(t, e)}`).toUpperCase() : `S${Rn(t, e)}`;
1947
1968
  }
1948
1969
  function Nl(t) {
@@ -1990,30 +2011,30 @@ const Tl = /* @__PURE__ */ new Set([
1990
2011
  "invalid_request",
1991
2012
  "aborted",
1992
2013
  "unauthorized"
1993
- ]), Vi = {
2014
+ ]), $i = {
1994
2015
  internal: "Something went wrong on our side. Please try again.",
1995
2016
  unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
1996
2017
  engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
1997
2018
  engine_lost: "The transcription engine stopped. Please try again.",
1998
2019
  capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
1999
2020
  timeout: "That took too long. Please try again."
2000
- }, Or = Vi.internal, fr = "Can't reach VocalStack. Check your connection.", ci = {
2021
+ }, Or = $i.internal, fr = "Can't reach VocalStack. Check your connection.", ai = {
2001
2022
  NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
2002
2023
  NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
2003
2024
  AbortError: "It was cancelled."
2004
2025
  };
2005
- function Ot(t) {
2026
+ function jt(t) {
2006
2027
  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;
2007
2028
  if (n || r && r >= 400) {
2008
2029
  const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
2009
- return n && Tl.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: fr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : fr, code: n, status: r, details: s, ...o } : { message: n && Vi[n] || Or, code: n, status: r, details: s, ...o };
2030
+ return n && Tl.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: fr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : fr, code: n, status: r, details: s, ...o } : { message: n && $i[n] || Or, code: n, status: r, details: s, ...o };
2010
2031
  }
2011
2032
  const a = (e == null ? void 0 : e.name) ?? "";
2012
- return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Oi(t instanceof Error ? t : new Error(String(t))), { message: fr }) : ci[a] ? { message: ci[a] } : t instanceof Error && a === "Error" && !(t instanceof ji) ? { message: t.message } : { message: Or };
2033
+ return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && ji(t instanceof Error ? t : new Error(String(t))), { message: fr }) : ai[a] ? { message: ai[a] } : t instanceof Error && a === "Error" && !(t instanceof vi) ? { message: t.message } : { message: Or };
2013
2034
  }
2014
- const Hi = "https://api.vocalstack.com", Pr = ki(null);
2035
+ const Qi = "https://api.vocalstack.com", Pr = wi(null);
2015
2036
  function Bt() {
2016
- const t = Ba(Pr);
2037
+ const t = $a(Pr);
2017
2038
  if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
2018
2039
  return t;
2019
2040
  }
@@ -2021,15 +2042,15 @@ function wl(t) {
2021
2042
  return t.value ? /* @__PURE__ */ i(Pr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(vl, { ...t });
2022
2043
  }
2023
2044
  function vl({ children: t, ...e }) {
2024
- const n = Wi(e);
2045
+ const n = Bi(e);
2025
2046
  return /* @__PURE__ */ i(Pr.Provider, { value: n, children: t });
2026
2047
  }
2027
2048
  const Ll = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
2028
2049
  function kl(t) {
2029
2050
  return Ll.test(t);
2030
2051
  }
2031
- function Wi(t) {
2032
- const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || kl(t.id)), s = (t.baseUrl ?? Hi).replace(/\/$/, ""), a = k(t.token);
2052
+ function Bi(t) {
2053
+ const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || kl(t.id)), s = (t.baseUrl ?? Qi).replace(/\/$/, ""), a = k(t.token);
2033
2054
  a.current = t.token;
2034
2055
  const o = !!t.token, l = ze(() => async () => {
2035
2056
  const h = a.current;
@@ -2047,7 +2068,7 @@ function Wi(t) {
2047
2068
  h = !1;
2048
2069
  };
2049
2070
  }, [r, l]);
2050
- const d = t.client ?? null, M = ze(() => d ?? new zi({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
2071
+ const d = t.client ?? null, M = ze(() => d ?? new Li({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
2051
2072
  return ze(() => {
2052
2073
  if (e) return { client: M, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
2053
2074
  if (n) return { client: M, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
@@ -2091,7 +2112,7 @@ function Il(t, e) {
2091
2112
  d && (r(M), a(!1), l(null));
2092
2113
  }).catch((M) => {
2093
2114
  if (!d) return;
2094
- const h = Ot(M);
2115
+ const h = jt(M);
2095
2116
  h.code === "not_found" || h.status === 404 ? a(!0) : l(h);
2096
2117
  }), () => {
2097
2118
  d = !1;
@@ -2119,7 +2140,7 @@ function Ol(t, e) {
2119
2140
  };
2120
2141
  }, [t, e]), n;
2121
2142
  }
2122
- async function ui(t, e, n = {}) {
2143
+ async function oi(t, e, n = {}) {
2123
2144
  const r = new URLSearchParams();
2124
2145
  for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
2125
2146
  t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
@@ -2132,7 +2153,7 @@ async function ui(t, e, n = {}) {
2132
2153
  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) });
2133
2154
  }
2134
2155
  const pr = /* @__PURE__ */ new Map();
2135
- function Fi() {
2156
+ function Vi() {
2136
2157
  const t = Bt(), [e, n] = L(pr.get(t.origin) ?? null);
2137
2158
  return D(() => {
2138
2159
  pr.has(t.origin) || t.client.languages.list().then((r) => {
@@ -2141,11 +2162,11 @@ function Fi() {
2141
2162
  });
2142
2163
  }, [t]), e;
2143
2164
  }
2144
- function Zi(t, e) {
2165
+ function Hi(t, e) {
2145
2166
  const [n, r] = L(null), [s, a] = L(null), [o, l] = L(0);
2146
2167
  return D(() => {
2147
2168
  let c = !0;
2148
- return t().then((u) => c && r(u)).catch((u) => c && a(Ot(u))), () => {
2169
+ return t().then((u) => c && r(u)).catch((u) => c && a(jt(u))), () => {
2149
2170
  c = !1;
2150
2171
  };
2151
2172
  }, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
@@ -2154,14 +2175,14 @@ const bl = (t) => new Promise((e) => setTimeout(e, t)), Cl = 2500, xl = 72;
2154
2175
  function Sl(t, e) {
2155
2176
  const n = Bt(), r = k(n);
2156
2177
  r.current = n;
2157
- const [s, a] = L(qt), o = k(qt()), l = k(null), c = k(e.lang ?? null), [u, d] = L(!1), [M, h] = L(null), [f, m] = L(!1), y = Je(() => {
2178
+ const [s, a] = L(Gt), o = k(Gt()), l = k(null), c = k(e.lang ?? null), [u, d] = L(!1), [M, h] = L(null), [f, m] = L(!1), y = Ke(() => {
2158
2179
  const A = o.current;
2159
2180
  a({ ...A });
2160
2181
  }, []), j = k(e);
2161
2182
  j.current = e, D(() => {
2162
2183
  if (!t) return;
2163
2184
  let A = !0, T = 0;
2164
- o.current = qt(), a(qt()), m(!1);
2185
+ o.current = Gt(), a(Gt()), m(!1);
2165
2186
  const _ = n.client;
2166
2187
  let b = o.current.state;
2167
2188
  const te = () => {
@@ -2183,7 +2204,7 @@ function Sl(t, e) {
2183
2204
  for await (const le of Z) {
2184
2205
  if (!A) break;
2185
2206
  if (le.type === "snapshot")
2186
- o.current = gr(le.snapshot, le.reason === "gap" ? o.current : qt()), y(), te();
2207
+ o.current = gr(le.snapshot, le.reason === "gap" ? o.current : Gt()), y(), te();
2187
2208
  else if (le.type === "frame") {
2188
2209
  ll(o.current, le.frame);
2189
2210
  const Te = le.frame;
@@ -2192,7 +2213,7 @@ function Sl(t, e) {
2192
2213
  }
2193
2214
  } catch (pe) {
2194
2215
  if (!A) return;
2195
- const le = Ot(pe);
2216
+ const le = jt(pe);
2196
2217
  if (le.code === "not_found" || le.status === 404) {
2197
2218
  m(!0), h(le);
2198
2219
  return;
@@ -2200,7 +2221,7 @@ function Sl(t, e) {
2200
2221
  try {
2201
2222
  await _.recordings.get(t, n.readAs);
2202
2223
  } catch (Te) {
2203
- const je = Ot(Te);
2224
+ const je = jt(Te);
2204
2225
  if (je.code === "not_found" || je.status === 404) {
2205
2226
  m(!0), h(je);
2206
2227
  return;
@@ -2227,7 +2248,7 @@ function Sl(t, e) {
2227
2248
  A = !1, (K = l.current) == null || K.close(), l.current = null, d(!1);
2228
2249
  };
2229
2250
  }, [t, n, e.voice]);
2230
- const [N, p] = L(!1), [I, C] = L(null), S = k(0), [B, Y] = L(null), ee = Je((A) => {
2251
+ const [N, p] = L(!1), [O, C] = L(null), S = k(0), [B, Y] = L(null), ee = Ke((A) => {
2231
2252
  var te;
2232
2253
  if (c.current = A, (te = l.current) == null || te.setLanguage(A), !t) return;
2233
2254
  const T = r.current.client, _ = ++S.current;
@@ -2243,7 +2264,7 @@ function Sl(t, e) {
2243
2264
  }).finally(() => {
2244
2265
  _ === S.current && p(!1);
2245
2266
  });
2246
- }, [y, t]), z = Je((A, T) => {
2267
+ }, [y, t]), I = Ke((A, T) => {
2247
2268
  const _ = o.current;
2248
2269
  let b = !1;
2249
2270
  for (const [te, K] of Object.entries(T)) {
@@ -2251,10 +2272,10 @@ function Sl(t, e) {
2251
2272
  v && (v.translations = { ...v.translations, [A]: K }, b = !0);
2252
2273
  }
2253
2274
  b && y();
2254
- }, [y]), F = Je(() => h(null), []);
2255
- return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: z, translating: N, translateFailed: I, shownLang: B };
2275
+ }, [y]), F = Ke(() => h(null), []);
2276
+ return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: I, translating: N, translateFailed: O, shownLang: B };
2256
2277
  }
2257
- const di = {
2278
+ const li = {
2258
2279
  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" },
2259
2280
  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" },
2260
2281
  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é" },
@@ -2262,13 +2283,13 @@ const di = {
2262
2283
  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" },
2263
2284
  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" }
2264
2285
  };
2265
- function Gi(t) {
2266
- return t && di[t] || di.English;
2286
+ function Wi(t) {
2287
+ return t && li[t] || li.English;
2267
2288
  }
2268
- async function qi(t) {
2289
+ async function Fi(t) {
2269
2290
  var s, a, o, l, c;
2270
2291
  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);
2271
- return new ji(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Or, { 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) });
2292
+ return new vi(typeof n == "string" ? n : "internal", typeof r == "string" ? r : Or, { 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) });
2272
2293
  }
2273
2294
  function mr(t) {
2274
2295
  switch (t) {
@@ -2314,18 +2335,18 @@ function $r(t) {
2314
2335
  }
2315
2336
  async function _l(t) {
2316
2337
  const e = await fetch(t, { redirect: "manual" });
2317
- if (e.type !== "opaqueredirect" && !e.ok) throw await qi(e);
2338
+ if (e.type !== "opaqueredirect" && !e.ok) throw await Fi(e);
2318
2339
  $r(t);
2319
2340
  }
2320
2341
  async function Yl(t, e, n, r = {}) {
2321
2342
  var h, f;
2322
2343
  const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
2323
- if (!s.ok) throw await qi(s);
2344
+ if (!s.ok) throw await Fi(s);
2324
2345
  const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (h = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : h[1], c = (f = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : f[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), M = document.createElement("a");
2325
2346
  M.href = d, M.download = u, M.style.display = "none", document.body.appendChild(M), M.click(), M.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
2326
2347
  }
2327
2348
  async function Ul(t, e) {
2328
- const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((M) => M.lang === r), l = (d) => Di(d, s);
2349
+ const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((M) => M.lang === r), l = (d) => Ci(d, s);
2329
2350
  let c = l(await o());
2330
2351
  (!c || c.state === "clips" || c.state === "failed") && await e.request();
2331
2352
  const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
@@ -2334,13 +2355,13 @@ async function Ul(t, e) {
2334
2355
  if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
2335
2356
  await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
2336
2357
  }
2337
- $r(co(t.origin, n, r, c.voiceKey, a));
2358
+ $r(oo(t.origin, n, r, c.voiceKey, a));
2338
2359
  }
2339
- const Ki = (t) => {
2360
+ const Zi = (t) => {
2340
2361
  var e;
2341
2362
  return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
2342
- }, Rl = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, hi = 0.3, Pl = 1.5;
2343
- function Ji(t, e, n) {
2363
+ }, Rl = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, ci = 0.3, Pl = 1.5;
2364
+ function Gi(t, e, n) {
2344
2365
  var s;
2345
2366
  const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
2346
2367
  return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
@@ -2349,7 +2370,7 @@ function $l(t, e, n) {
2349
2370
  var c, u;
2350
2371
  const r = t[e];
2351
2372
  if (!r) return !1;
2352
- const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - hi, a = t[e + 1], o = Ji(r, a, r.start + 4) + Pl, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - hi) : o;
2373
+ const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - ci, a = t[e + 1], o = Gi(r, a, r.start + 4) + Pl, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - ci) : o;
2353
2374
  return n >= s && n < Math.max(l, s + 0.5);
2354
2375
  }
2355
2376
  function Ql(t, e, n) {
@@ -2378,24 +2399,24 @@ function Bl(t, e, n = 0) {
2378
2399
  const o = () => {
2379
2400
  let Y = s.parentElement;
2380
2401
  for (let ee = 0; ee < 4 && Y; ee++) {
2381
- const z = Y.querySelector("[data-transport]");
2382
- if (z) return z;
2402
+ const I = Y.querySelector("[data-transport]");
2403
+ if (I) return I;
2383
2404
  Y = Y.parentElement;
2384
2405
  }
2385
2406
  return null;
2386
2407
  }, l = () => {
2387
- const Y = o(), ee = Y ? Y.offsetHeight : 0, z = s.clientHeight - ee - 36, F = s.scrollHeight - s.clientHeight, A = z > 0 ? Math.max(30, Math.round(z * (s.clientHeight - ee) / s.scrollHeight)) : 0;
2388
- return { vis: z, max: F, size: A };
2408
+ const Y = o(), ee = Y ? Y.offsetHeight : 0, I = s.clientHeight - ee - 36, F = s.scrollHeight - s.clientHeight, A = I > 0 ? Math.max(30, Math.round(I * (s.clientHeight - ee) / s.scrollHeight)) : 0;
2409
+ return { vis: I, max: F, size: A };
2389
2410
  };
2390
2411
  let c = -1, u = null, d = !1, M = 0, h = 0;
2391
2412
  const f = () => {
2392
2413
  const Y = o();
2393
2414
  if (!Y) return;
2394
- const ee = parseFloat(s.dataset.glassExtra || "0") || 0, z = Y.offsetHeight + 14 + ee;
2395
- if (z === c) return;
2396
- c = z;
2415
+ const ee = parseFloat(s.dataset.glassExtra || "0") || 0, I = Y.offsetHeight + 14 + ee;
2416
+ if (I === c) return;
2417
+ c = I;
2397
2418
  const F = s.scrollHeight - s.scrollTop - s.clientHeight < 40;
2398
- s.style.paddingBottom = z + "px", F && (s.scrollTop = s.scrollHeight);
2419
+ s.style.paddingBottom = I + "px", F && (s.scrollTop = s.scrollHeight);
2399
2420
  }, m = () => {
2400
2421
  a.style.opacity = "1", clearTimeout(u), u = setTimeout(() => {
2401
2422
  d || (a.style.opacity = "0");
@@ -2406,15 +2427,15 @@ function Bl(t, e, n = 0) {
2406
2427
  f();
2407
2428
  const ee = o();
2408
2429
  ee && ee !== j && y && (j = ee, y.observe(ee));
2409
- const z = l();
2410
- if (z.vis < 60 || z.max < 6) {
2430
+ const I = l();
2431
+ if (I.vis < 60 || I.max < 6) {
2411
2432
  a.style.opacity = "0", a.style.pointerEvents = "none";
2412
2433
  return;
2413
2434
  }
2414
- a.style.pointerEvents = "auto", a.style.height = z.size + "px", a.style.transform = "translateY(" + Math.round(s.scrollTop / z.max * (z.vis - z.size)) + "px)", Y && m();
2435
+ a.style.pointerEvents = "auto", a.style.height = I.size + "px", a.style.transform = "translateY(" + Math.round(s.scrollTop / I.max * (I.vis - I.size)) + "px)", Y && m();
2415
2436
  }, p = parseFloat(getComputedStyle(s).paddingRight) || 0;
2416
2437
  a.style.right = (p >= 12 ? -(p - 6) : 2) + "px";
2417
- const I = () => N(!0), C = (Y) => {
2438
+ const O = () => N(!0), C = (Y) => {
2418
2439
  const ee = l();
2419
2440
  ee.vis - ee.size <= 0 || (Y.preventDefault(), Y.stopPropagation(), a.setPointerCapture(Y.pointerId), d = !0, M = Y.clientY, h = s.scrollTop, a.style.cursor = "grabbing", m());
2420
2441
  }, S = (Y) => {
@@ -2424,9 +2445,9 @@ function Bl(t, e, n = 0) {
2424
2445
  }, B = () => {
2425
2446
  d && (d = !1, a.style.cursor = "grab", m());
2426
2447
  };
2427
- return s.addEventListener("scroll", I, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", S), a.addEventListener("pointerup", B), a.addEventListener("pointercancel", B), typeof ResizeObserver < "u" && (y = new ResizeObserver(() => N()), y.observe(s)), r.current = () => N(), N(), () => {
2448
+ return s.addEventListener("scroll", O, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", S), a.addEventListener("pointerup", B), a.addEventListener("pointercancel", B), typeof ResizeObserver < "u" && (y = new ResizeObserver(() => N()), y.observe(s)), r.current = () => N(), N(), () => {
2428
2449
  r.current = () => {
2429
- }, s.removeEventListener("scroll", I), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", S), a.removeEventListener("pointerup", B), a.removeEventListener("pointercancel", B), y == null || y.disconnect(), clearTimeout(u);
2450
+ }, s.removeEventListener("scroll", O), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", S), a.removeEventListener("pointerup", B), a.removeEventListener("pointercancel", B), y == null || y.disconnect(), clearTimeout(u);
2430
2451
  };
2431
2452
  }, []);
2432
2453
  }
@@ -2457,7 +2478,7 @@ Request id: ${t.requestId}` : t.message;
2457
2478
  /* @__PURE__ */ i(oe, { d: X.warn, size: 16, style: { color: "var(--conf-low)", flex: "none" } }),
2458
2479
  /* @__PURE__ */ g("span", { style: { flex: 1 }, children: [
2459
2480
  t.message,
2460
- u && /* @__PURE__ */ g(xe, { children: [
2481
+ u && /* @__PURE__ */ g(Ce, { children: [
2461
2482
  " ",
2462
2483
  /* @__PURE__ */ i("a", { href: "https://app.vocalstack.com/billing", target: "_blank", rel: "noopener", className: "dev-link", style: { fontSize: "inherit", fontWeight: 600, whiteSpace: "nowrap" }, children: "Add credit" })
2463
2484
  ] })
@@ -2466,14 +2487,14 @@ Request id: ${t.requestId}` : t.message;
2466
2487
  /* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: X.close, size: 14 }) })
2467
2488
  ] });
2468
2489
  }
2469
- function Xi({ color: t }) {
2490
+ function qi({ color: t }) {
2470
2491
  return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: X.voiceClone, size: 13, sw: 1.7, stroke: t }) });
2471
2492
  }
2472
2493
  function Vu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
2473
2494
  return /* @__PURE__ */ g("div", { className: "vs-tt", children: [
2474
2495
  /* @__PURE__ */ g("div", { className: "vs-tt__r1", children: [
2475
2496
  /* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
2476
- e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(xe, { children: [
2497
+ e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(Ce, { children: [
2477
2498
  /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: n }),
2478
2499
  /* @__PURE__ */ i("div", { className: "vs-tt__spk", children: r }),
2479
2500
  /* @__PURE__ */ i("div", { className: "vs-tt__voice", children: s })
@@ -2487,9 +2508,9 @@ function Vu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
2487
2508
  ] });
2488
2509
  }
2489
2510
  function Wl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
2490
- const M = k(null), h = k(!1), [f, m] = L(null), y = Math.max(1, e), j = f ?? u, N = j != null ? Math.min(100, Math.max(0, j * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none", I = (S) => {
2491
- var z;
2492
- const B = (z = M.current) == null ? void 0 : z.getBoundingClientRect();
2511
+ const M = k(null), h = k(!1), [f, m] = L(null), y = Math.max(1, e), j = f ?? u, N = j != null ? Math.min(100, Math.max(0, j * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none", O = (S) => {
2512
+ var I;
2513
+ const B = (I = M.current) == null ? void 0 : I.getBoundingClientRect();
2493
2514
  if (!B) return;
2494
2515
  const Y = Math.min(1, Math.max(0, (S.clientX - B.left) / Math.max(1, B.width)));
2495
2516
  if (o) {
@@ -2509,10 +2530,10 @@ function Wl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
2509
2530
  className: "rscrub__track",
2510
2531
  onPointerDown: (S) => {
2511
2532
  var B;
2512
- h.current = !0, (B = M.current) == null || B.setPointerCapture(S.pointerId), l == null || l(), I(S), S.preventDefault();
2533
+ h.current = !0, (B = M.current) == null || B.setPointerCapture(S.pointerId), l == null || l(), O(S), S.preventDefault();
2513
2534
  },
2514
2535
  onPointerMove: (S) => {
2515
- h.current && I(S);
2536
+ h.current && O(S);
2516
2537
  },
2517
2538
  onPointerUp: C,
2518
2539
  onPointerCancel: C,
@@ -2546,7 +2567,7 @@ function Zl({ f: t, desk: e, onOpen: n }) {
2546
2567
  s,
2547
2568
  a > 0 && /* @__PURE__ */ i("span", { className: "badge__n", children: a })
2548
2569
  ] }, s);
2549
- return /* @__PURE__ */ g(xe, { children: [
2570
+ return /* @__PURE__ */ g(Ce, { children: [
2550
2571
  t.script > 0 && r(e ? "SCRIPT FIX" : "SCRIPT", t.script, !0),
2551
2572
  t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
2552
2573
  ] });
@@ -2565,7 +2586,7 @@ function ql(t, e, n, r) {
2565
2586
  D(() => {
2566
2587
  u.current = /* @__PURE__ */ new Set();
2567
2588
  }, [t, e]);
2568
- const h = Je((f) => o(f), []);
2589
+ const h = Ke((f) => o(f), []);
2569
2590
  return D(() => {
2570
2591
  if (!t || !e || !a.length || d.current) return;
2571
2592
  const f = a.filter((m) => {
@@ -2590,17 +2611,17 @@ function ql(t, e, n, r) {
2590
2611
  function Kl(t) {
2591
2612
  return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
2592
2613
  }
2593
- function cn(t, e) {
2614
+ function sn(t, e) {
2594
2615
  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 };
2595
2616
  }
2596
2617
  function Jl(t, e) {
2597
- const n = t.slice().sort((s, a) => cn(s, e).rank - cn(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
2618
+ const n = t.slice().sort((s, a) => sn(s, e).rank - sn(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
2598
2619
  for (const s of n) {
2599
- const a = cn(s, e).head;
2620
+ const a = sn(s, e).head;
2600
2621
  r[a] = (r[a] ?? 0) + 1;
2601
2622
  }
2602
2623
  return n.map((s, a) => {
2603
- const o = cn(s, e).head, l = a === 0 || cn(n[a - 1], e).head !== o;
2624
+ const o = sn(s, e).head, l = a === 0 || sn(n[a - 1], e).head !== o;
2604
2625
  return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
2605
2626
  });
2606
2627
  }
@@ -2615,7 +2636,7 @@ function Xl(t, e, n) {
2615
2636
  return {
2616
2637
  key: o,
2617
2638
  name: Ur(e, o),
2618
- initial: Bi(e, o),
2639
+ initial: Pi(e, o),
2619
2640
  lane: l.lane,
2620
2641
  sex: e.speakerSex[o] ?? null,
2621
2642
  voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
@@ -2626,11 +2647,11 @@ function Xl(t, e, n) {
2626
2647
  });
2627
2648
  return s && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
2628
2649
  }
2629
- function Mi(t) {
2650
+ function ui(t) {
2630
2651
  const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
2631
2652
  return e ? `cast:${e}` : "";
2632
2653
  }
2633
- function gi(t) {
2654
+ function di(t) {
2634
2655
  if (!t || !t.startsWith("cast:")) return null;
2635
2656
  const e = /* @__PURE__ */ new Map();
2636
2657
  for (const n of t.slice(5).split(";")) {
@@ -2641,7 +2662,7 @@ function gi(t) {
2641
2662
  }
2642
2663
  return e.size ? e : null;
2643
2664
  }
2644
- function fi(t, e, n = !0) {
2665
+ function hi(t, e, n = !0) {
2645
2666
  const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
2646
2667
  for (const o of t) {
2647
2668
  const c = (o.voiceId ? e.find((h) => h.cloned && !h.auto && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((h) => h.cloned && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((h) => h.cloned && h.auto && h.consent !== "pending" && h.speaker === o.key) : void 0) : void 0);
@@ -2676,10 +2697,10 @@ function ec({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
2676
2697
  }
2677
2698
  ),
2678
2699
  /* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: M ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
2679
- d.hasVoice && !h && /* @__PURE__ */ i(Xi, { color: d.fg ?? (M ? "var(--ink-62)" : "var(--ink-45)") }),
2700
+ d.hasVoice && !h && /* @__PURE__ */ i(qi, { color: d.fg ?? (M ? "var(--ink-62)" : "var(--ink-45)") }),
2680
2701
  h && /* @__PURE__ */ i("span", { title: h, "aria-label": h, 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: "!" }),
2681
2702
  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: M ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: X.micOff, size: 13, sw: 1.7 }) }),
2682
- (m || f) && /* @__PURE__ */ i("span", { title: f ? "Cloning this voice…" : "No voice clone yet", "aria-label": f ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: f ? /* @__PURE__ */ i(lt, { 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)" } }) })
2703
+ (m || f) && /* @__PURE__ */ i("span", { title: f ? "Cloning this voice…" : "No voice clone yet", "aria-label": f ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: f ? /* @__PURE__ */ i(ht, { 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)" } }) })
2683
2704
  ]
2684
2705
  },
2685
2706
  d.key
@@ -2691,7 +2712,7 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2691
2712
  D(() => {
2692
2713
  N({});
2693
2714
  }, [d, M]);
2694
- const p = (S) => S === m.vcMale.toUpperCase() || S === m.vcFemale.toUpperCase(), I = (S) => {
2715
+ const p = (S) => S === m.vcMale.toUpperCase() || S === m.vcFemale.toUpperCase(), O = (S) => {
2695
2716
  if (S === m.vcSheet) return !0;
2696
2717
  const B = j[S];
2697
2718
  return B != null ? !B : !M || !p(S) ? !0 : S === (M === "female" ? m.vcFemale : m.vcMale).toUpperCase();
@@ -2700,10 +2721,10 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2700
2721
  h && /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
2701
2722
  /* @__PURE__ */ i(oe, { d: X.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
2702
2723
  /* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: h }),
2703
- /* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(no, { value: h, label: "Copy this error" }) })
2724
+ /* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(eo, { value: h, label: "Copy this error" }) })
2704
2725
  ] }),
2705
2726
  t,
2706
- f && /* @__PURE__ */ g(xe, { children: [
2727
+ f && /* @__PURE__ */ g(Ce, { children: [
2707
2728
  /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, padding: "14px 2px 6px", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: m.vcSheet }) }),
2708
2729
  /* @__PURE__ */ g("div", { role: f.action ? "button" : "status", tabIndex: f.action ? 0 : void 0, title: f.tip, onClick: f.action, onKeyDown: f.action ? (S) => {
2709
2730
  (S.key === "Enter" || S.key === " ") && (S.preventDefault(), f.action());
@@ -2715,16 +2736,16 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2715
2736
  ] })
2716
2737
  ] })
2717
2738
  ] }),
2718
- y.map(({ v: S, headOn: B, head: Y, headCount: ee, rule: z }, F) => {
2719
- const A = Kl(S), T = a === S.id, _ = I(Y), b = (u == null ? void 0 : u(S)) ?? null;
2720
- return /* @__PURE__ */ g(Va, { children: [
2739
+ y.map(({ v: S, headOn: B, head: Y, headCount: ee, rule: I }, F) => {
2740
+ const A = Kl(S), T = a === S.id, _ = O(Y), b = (u == null ? void 0 : u(S)) ?? null;
2741
+ return /* @__PURE__ */ g(Qa, { children: [
2721
2742
  B && Y === m.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: F === 0 && !f ? "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: Y }) }),
2722
2743
  B && Y !== m.vcSheet && /* @__PURE__ */ g(
2723
2744
  "button",
2724
2745
  {
2725
2746
  type: "button",
2726
2747
  onClick: (te) => {
2727
- te.stopPropagation(), N((K) => ({ ...K, [Y]: I(Y) }));
2748
+ te.stopPropagation(), N((K) => ({ ...K, [Y]: O(Y) }));
2728
2749
  },
2729
2750
  title: `${_ ? "Hide " : "Show "}${Y.toLowerCase()} voices`,
2730
2751
  "aria-expanded": _,
@@ -2744,11 +2765,11 @@ function tc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2744
2765
  "aria-hidden": !_,
2745
2766
  tabIndex: _ ? void 0 : -1,
2746
2767
  onClick: () => o(S),
2747
- style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: _ ? z : "0", display: "flex", alignItems: "center", gap: 11, padding: _ ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === S.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: _ ? 1 : 0, maxHeight: _ ? 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" },
2768
+ style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: _ ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: _ ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === S.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: _ ? 1 : 0, maxHeight: _ ? 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" },
2748
2769
  children: [
2749
2770
  /* @__PURE__ */ i("span", { title: T ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: T ? "transparent" : S.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: T ? /* @__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 === S.id ? /* @__PURE__ */ g("span", { className: "vcplay", children: [
2750
2771
  /* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(nc, { height: 13, width: 2.5 }) }),
2751
- /* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(Xa, { size: 11 }) })
2772
+ /* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(Ka, { size: 11 }) })
2752
2773
  ] }) : /* @__PURE__ */ i(oe, { d: S.cloned ? X.voiceClone : S.gender === "female" ? X.venus : S.gender === "male" ? X.mars : X.mic, size: 15, sw: 1.6, style: { color: S.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
2753
2774
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
2754
2775
  /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: S.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: S.name }) }),
@@ -2793,7 +2814,7 @@ function Cr(t, e) {
2793
2814
  return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : rc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
2794
2815
  }
2795
2816
  function sc(t, e, n = 0, r) {
2796
- 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 = Bt(), { data: c } = Zi(async () => {
2817
+ 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 = Bt(), { data: c } = Hi(async () => {
2797
2818
  if (!t || !e) return null;
2798
2819
  try {
2799
2820
  return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
@@ -2807,21 +2828,21 @@ function ic(t) {
2807
2828
  return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
2808
2829
  }
2809
2830
  function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
2810
- const o = Bt(), { data: l, reload: c } = Zi(async () => {
2831
+ const o = Bt(), { data: l, reload: c } = Hi(async () => {
2811
2832
  if (!t || !e) return null;
2812
2833
  const K = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
2813
2834
  return { recordingId: t, lang: e, rows: K.filter((v) => v.lang === e) };
2814
2835
  }, [t, e, o, n]), u = ze(
2815
2836
  () => l && l.lang === e && l.recordingId === t ? l.rows : [],
2816
2837
  [l, e, t]
2817
- ), d = ze(() => Di(u, s), [u, s]), M = d ? d.voiceKey || null : s, [h, f] = L(null), [m, y] = L(null), j = k(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${M ?? ""}`, p = Je(async (K, v) => {
2838
+ ), d = ze(() => Ci(u, s), [u, s]), M = d ? d.voiceKey || null : s, [h, f] = L(null), [m, y] = L(null), j = k(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${M ?? ""}`, p = Ke(async (K, v) => {
2818
2839
  if (!t || !e || !n) return;
2819
- const ie = v != null && v.size ? null : gi(K), ne = v != null && v.size ? v : ie, Z = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${Z ? JSON.stringify(Z) : K ?? ""}`;
2840
+ const ie = v != null && v.size ? null : di(K), ne = v != null && v.size ? v : ie, Z = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${Z ? JSON.stringify(Z) : K ?? ""}`;
2820
2841
  if (j.current.has(J)) return;
2821
2842
  j.current.add(J), f(J), y(null);
2822
2843
  const pe = { langs: [e] };
2823
2844
  Z ? pe.voiceBySpeaker = Z : K && (pe.voice = K);
2824
- const le = await ui(o, `/v1/recordings/${t}/voice`, { method: "POST", body: pe }).catch(() => null);
2845
+ const le = await oi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: pe }).catch(() => null);
2825
2846
  if (f((Te) => Te === J ? null : Te), !(le != null && le.ok)) {
2826
2847
  j.current.delete(J);
2827
2848
  const Te = le ? await le.json().catch(() => null) : null;
@@ -2829,18 +2850,18 @@ function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
2829
2850
  return;
2830
2851
  }
2831
2852
  c();
2832
- }, [t, e, n, o, c]), I = Je(() => {
2853
+ }, [t, e, n, o, c]), O = Ke(() => {
2833
2854
  const K = `${t ?? ""}|${e ?? ""}|`;
2834
2855
  for (const v of [...j.current]) v.startsWith(K) && j.current.delete(v);
2835
2856
  y(null);
2836
- }, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, S = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : m, B = (a == null ? void 0 : a.join(",")) ?? "", [Y, ee] = L(null), z = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), F = ze(() => n && B ? B.split(",").map(Number).filter((K) => !z.has(K)) : [], [n, B, z]), A = k(null);
2857
+ }, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, S = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : m, B = (a == null ? void 0 : a.join(",")) ?? "", [Y, ee] = L(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), F = ze(() => n && B ? B.split(",").map(Number).filter((K) => !I.has(K)) : [], [n, B, I]), A = k(null);
2837
2858
  D(() => {
2838
2859
  if (!n || !t || !e || !F.length) return;
2839
2860
  const K = Y ?? F[0], v = F.find((pe) => pe >= K) ?? F[0], ie = `${t}|${e}|${M ?? ""}`, ne = A.current;
2840
2861
  if (ne && ne.key === ie && Math.abs(ne.near - v) < 12 && Date.now() - ne.at < 6e4) return;
2841
2862
  A.current = { key: ie, near: v, at: Date.now() };
2842
- const Z = gi(M), J = { langs: [e], near: v };
2843
- Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : M && (J.voice = M), ui(o, `/v1/recordings/${t}/voice`, { method: "POST", body: J }).then((pe) => {
2863
+ const Z = di(M), J = { langs: [e], near: v };
2864
+ Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : M && (J.voice = M), oi(o, `/v1/recordings/${t}/voice`, { method: "POST", body: J }).then((pe) => {
2844
2865
  pe.ok || (A.current = null);
2845
2866
  }).catch(() => {
2846
2867
  A.current = null;
@@ -2850,20 +2871,20 @@ function ac({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
2850
2871
  D(() => {
2851
2872
  if (!T) return;
2852
2873
  const K = setInterval(() => {
2853
- const v = z.size;
2874
+ const v = I.size;
2854
2875
  v !== _.current.n && (_.current = { n: v, at: Date.now() }), !(Date.now() - _.current.at > 10 * 6e4) && c();
2855
2876
  }, 3e3);
2856
2877
  return () => clearInterval(K);
2857
- }, [T, c, z]);
2878
+ }, [T, c, I]);
2858
2879
  const b = ze(() => {
2859
2880
  if (!t) return [];
2860
- const K = B ? B.split(",").map(Number).filter((ie) => !n || z.has(ie)) : void 0, v = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
2861
- return po(v, t, o.origin, r, K);
2862
- }, [d, t, o, r, B, e, s, n, z]), te = ze(() => new Set(F), [F]);
2863
- return { listed: l, rows: u, track: d, renderVoiceId: M, rendering: C, failed: S, clips: b, requestRender: p, forget: I, reload: c, setNear: ee, missing: F.length, coming: te };
2881
+ const K = B ? B.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, v = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
2882
+ return go(v, t, o.origin, r, K);
2883
+ }, [d, t, o, r, B, e, s, n, I]), te = ze(() => new Set(F), [F]);
2884
+ return { listed: l, rows: u, track: d, renderVoiceId: M, rendering: C, failed: S, clips: b, requestRender: p, forget: O, reload: c, setNear: ee, missing: F.length, coming: te };
2864
2885
  }
2865
2886
  const oc = { share: X.share, delay: X.tabGauge, video: X.video, source: X.tabSources, script: X.tabScript, fix: X.tabFix, ending: X.tabEnding, summary: X.tabSummary, export: X.tabExport, settings: X.tabSettings, sources: X.tabSources, recs: X.mic };
2866
- function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
2887
+ function Ki({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
2867
2888
  const o = s && t.length <= 3, l = t.some((j) => j.key === e), [c, u] = L(null), d = k(null), [M, h] = L(0);
2868
2889
  D(() => {
2869
2890
  d.current && h(d.current.offsetWidth);
@@ -2875,13 +2896,13 @@ function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
2875
2896
  return;
2876
2897
  }
2877
2898
  if ((c == null ? void 0 : c.k) === N.key) return;
2878
- const I = j.currentTarget.getBoundingClientRect(), C = j.currentTarget.parentElement.getBoundingClientRect();
2879
- u({ k: N.key, label: N.label, x: I.left + I.width / 2, y: C.top });
2899
+ const O = j.currentTarget.getBoundingClientRect(), C = j.currentTarget.parentElement.getBoundingClientRect();
2900
+ u({ k: N.key, label: N.label, x: O.left + O.width / 2, y: C.top });
2880
2901
  }, m = () => u(null);
2881
2902
  let y = null;
2882
2903
  if (c) {
2883
2904
  const j = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, N = M || 80, p = Math.max(j.l + 8, Math.min(j.r - N - 8, c.x - N / 2));
2884
- y = Fa(
2905
+ y = Ha(
2885
2906
  /* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ g("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: [
2886
2907
  /* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
2887
2908
  /* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(N - 19, c.x - p - 5.5))) } })
@@ -2891,13 +2912,13 @@ function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
2891
2912
  }
2892
2913
  return /* @__PURE__ */ g("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: m, children: [
2893
2914
  t.map((j) => {
2894
- const N = e === j.key, p = o || N, I = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", C = j.icon ?? oc[j.key], S = () => {
2915
+ const N = e === j.key, p = o || N, O = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", C = j.icon ?? oc[j.key], S = () => {
2895
2916
  m(), n(s && N ? "none" : j.key);
2896
2917
  };
2897
- return s ? /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, title: j.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: I }, onClick: S, children: [
2918
+ return s ? /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, title: j.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: O }, onClick: S, children: [
2898
2919
  C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: j.sw ?? 2, style: { flex: "none" } }),
2899
2920
  p && /* @__PURE__ */ i("span", { className: "tabbar__label", children: j.label })
2900
- ] }, j.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: I }, onMouseEnter: (B) => f(B, j), onMouseMove: (B) => f(B, j), onClick: S, children: /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, "aria-label": j.label, className: `tabbar__tab${N ? " is-on" : ""}${(c == null ? void 0 : c.k) === j.key ? " is-tip" : ""}`, children: [
2921
+ ] }, j.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: O }, onMouseEnter: (B) => f(B, j), onMouseMove: (B) => f(B, j), onClick: S, children: /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, "aria-label": j.label, className: `tabbar__tab${N ? " is-on" : ""}${(c == null ? void 0 : c.k) === j.key ? " is-tip" : ""}`, children: [
2901
2922
  C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: j.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: N && !o ? "scale(1.12)" : "none" } }),
2902
2923
  /* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: p ? "1fr" : "0fr", marginLeft: p && C ? 6 : 0 }, children: /* @__PURE__ */ i("span", { className: "tabbar__label", "data-tab-l": "", style: { opacity: p ? 1 : 0, transform: p ? "none" : "translateX(-6px)" }, children: j.label }) })
2903
2924
  ] }) }, j.key);
@@ -2927,10 +2948,10 @@ function uc({ audio: t, video: e, formats: n, onExport: r }) {
2927
2948
  }).finally(() => {
2928
2949
  u.current && l(null);
2929
2950
  }));
2930
- }, f = (m, y, j, N) => /* @__PURE__ */ g(xe, { children: [
2951
+ }, f = (m, y, j, N) => /* @__PURE__ */ g(Ce, { children: [
2931
2952
  /* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: N }),
2932
2953
  /* @__PURE__ */ g("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === m || void 0, onClick: () => h(m, y), style: o && o !== m ? { opacity: 0.45 } : void 0, children: [
2933
- o === m ? /* @__PURE__ */ i(lt, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: j, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
2954
+ o === m ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: j, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
2934
2955
  /* @__PURE__ */ g("span", { style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: 1, textAlign: "left" }, children: [
2935
2956
  /* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
2936
2957
  /* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
@@ -2941,10 +2962,10 @@ function uc({ audio: t, video: e, formats: n, onExport: r }) {
2941
2962
  return /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
2942
2963
  t && f("audio", t, cc, "DOWNLOAD AUDIO"),
2943
2964
  e && f("video", e, X.video, "DOWNLOAD VIDEO"),
2944
- n !== !1 && /* @__PURE__ */ g(xe, { children: [
2965
+ n !== !1 && /* @__PURE__ */ g(Ce, { children: [
2945
2966
  /* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
2946
2967
  /* @__PURE__ */ i("div", { className: "fmtgrid", children: br.map((m) => /* @__PURE__ */ g("button", { type: "button", className: "fmtgrid__cell", title: o === m.key ? `Building the ${m.name}…` : m.note, disabled: o != null, "aria-busy": o === m.key || void 0, onClick: () => M(m.key), style: o && o !== m.key ? { opacity: 0.45 } : void 0, children: [
2947
- o === m.key ? /* @__PURE__ */ i(lt, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === m.key ? X.check : m.icon, size: 16, sw: 1.6, style: { color: s === m.key ? "var(--brand)" : "var(--ink-62)" } }),
2968
+ o === m.key ? /* @__PURE__ */ i(ht, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === m.key ? X.check : m.icon, size: 16, sw: 1.6, style: { color: s === m.key ? "var(--brand)" : "var(--ink-62)" } }),
2948
2969
  /* @__PURE__ */ i("span", { children: m.name })
2949
2970
  ] }, m.key)) })
2950
2971
  ] })
@@ -3007,11 +3028,11 @@ ${a}`).catch(() => {
3007
3028
  e ? "Copied" : "Copy"
3008
3029
  ] })
3009
3030
  ] }),
3010
- t.state === "ready" ? /* @__PURE__ */ g(xe, { children: [
3031
+ t.state === "ready" ? /* @__PURE__ */ g(Ce, { children: [
3011
3032
  /* @__PURE__ */ i("div", { style: { fontSize: 15, fontWeight: 600, lineHeight: 1.3, letterSpacing: "-.15px", color: "var(--ink-96)", textWrap: "pretty" }, children: s }),
3012
3033
  /* @__PURE__ */ i("div", { style: { fontSize: 13, fontWeight: 300, lineHeight: 1.55, color: "var(--ink-80)", textWrap: "pretty", whiteSpace: "pre-line" }, children: a })
3013
3034
  ] }) : t.state === "unavailable" ? l("No summary for this recording.") : t.state === "not_requested" ? t.request ? l("This recording was made without a summary.", { label: "Summarize", onClick: t.request }) : l("Recordings under a minute and files of a batch are not summarised.") : /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "center", gap: 10, fontSize: 13, fontWeight: 300, color: "var(--ink-45)" }, children: [
3014
- /* @__PURE__ */ i(lt, { size: 14, color: "var(--brand)", track: "var(--fill-12)" }),
3035
+ /* @__PURE__ */ i(ht, { size: 14, color: "var(--brand)", track: "var(--fill-12)" }),
3015
3036
  t.slow ? "Still writing the summary…" : "Writing the summary…"
3016
3037
  ] })
3017
3038
  ] });
@@ -3047,46 +3068,46 @@ function fc(t = !0, e) {
3047
3068
  }
3048
3069
  const pc = "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";
3049
3070
  function mc(t, e) {
3050
- const [n, r] = No(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
3071
+ const [n, r] = po(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
3051
3072
  let l = n;
3052
3073
  [...e.autoPin ?? []].reverse().forEach((p) => {
3053
3074
  s.includes(p) && !l.includes(p) && !l.includes(`!${p}`) && (l = [p, ...l]);
3054
3075
  });
3055
3076
  const c = l;
3056
3077
  (e.forcePin ?? []).forEach((p) => {
3057
- l = l.filter((I) => I !== `!${p}`), s.includes(p) && !l.includes(p) && (l = [p, ...l]);
3078
+ l = l.filter((O) => O !== `!${p}`), s.includes(p) && !l.includes(p) && (l = [p, ...l]);
3058
3079
  });
3059
3080
  const u = (p) => (e.forcePin ?? []).includes(p) && !c.includes(p), d = a ? l.filter((p) => s.includes(p) && o.includes(p)) : [], M = s.filter((p) => !d.includes(p)), h = e.cur && e.cur !== "none" && M.includes(e.cur) ? e.cur : e.pref && M.includes(e.pref) ? e.pref : M[0] ?? null, f = (p) => {
3060
- const I = M.filter((C) => C !== p);
3061
- return I[M.indexOf(p)] ?? I[I.length - 1] ?? null;
3062
- }, m = (p, I) => {
3081
+ const O = M.filter((C) => C !== p);
3082
+ return O[M.indexOf(p)] ?? O[O.length - 1] ?? null;
3083
+ }, m = (p, O) => {
3063
3084
  if (!o.includes(p)) return;
3064
3085
  const C = d.filter((S) => S !== p);
3065
- if (C.splice(I ?? C.length, 0, p), h === p) {
3086
+ if (C.splice(O ?? C.length, 0, p), h === p) {
3066
3087
  const S = f(p);
3067
3088
  S && e.onPick(S);
3068
3089
  }
3069
3090
  r([...C.filter((S) => !u(S) || S === p), ...c.filter((S) => !C.includes(S) && S !== `!${p}`)]);
3070
3091
  }, y = (p) => {
3071
- r([...c.filter((I) => I !== p && I !== `!${p}`), ...(e.autoPin ?? []).includes(p) ? [`!${p}`] : []]), e.onPick(p);
3092
+ r([...c.filter((O) => O !== p && O !== `!${p}`), ...(e.autoPin ?? []).includes(p) ? [`!${p}`] : []]), e.onPick(p);
3072
3093
  }, j = (p) => {
3073
- var I;
3074
- return ((I = e.tabs.find((C) => C.key === p)) == null ? void 0 : I.label) ?? p;
3094
+ var O;
3095
+ return ((O = e.tabs.find((C) => C.key === p)) == null ? void 0 : O.label) ?? p;
3075
3096
  }, N = (p) => {
3076
- const I = d.includes(p), C = s.includes(p);
3097
+ const O = d.includes(p), C = s.includes(p);
3077
3098
  return {
3078
- show: C && (!a || I || h === p),
3079
- pinned: I,
3080
- order: I ? d.indexOf(p) + 1 : 1e3,
3081
- pill: a && C && o.includes(p) && M.length > 0 && (I || M.length > 1),
3082
- title: I ? `Unpin — return ${j(p)} to the tabs` : `Pin ${j(p)} open above the tabs`,
3083
- toggle: () => I ? y(p) : m(p)
3099
+ show: C && (!a || O || h === p),
3100
+ pinned: O,
3101
+ order: O ? d.indexOf(p) + 1 : 1e3,
3102
+ pill: a && C && o.includes(p) && M.length > 0 && (O || M.length > 1),
3103
+ title: O ? `Unpin — return ${j(p)} to the tabs` : `Pin ${j(p)} open above the tabs`,
3104
+ toggle: () => O ? y(p) : m(p)
3084
3105
  };
3085
3106
  };
3086
3107
  return { id: t, tabbed: a && M.length > 1, cur: h, seq: d, pinnable: o, tabKeys: M, stripTabs: e.tabs.filter((p) => M.includes(p.key)), panel: N, pin: m, unpin: y };
3087
3108
  }
3088
3109
  function Nc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
3089
- return yc(t), /* @__PURE__ */ g(xe, { children: [
3110
+ return yc(t), /* @__PURE__ */ g(Ce, { children: [
3090
3111
  e.map((o) => {
3091
3112
  const l = t.panel(o);
3092
3113
  if (!l.show) return null;
@@ -3096,7 +3117,7 @@ function Nc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
3096
3117
  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: X.pin, size: 12, sw: 2 }) })
3097
3118
  ] }, o) : null;
3098
3119
  }),
3099
- t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(ea, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
3120
+ t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Ki, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
3100
3121
  o !== "none" && (s ?? (() => {
3101
3122
  }))(o);
3102
3123
  }, fold: !1 }) })
@@ -3112,58 +3133,58 @@ function yc(t) {
3112
3133
  r !== N && (r && r.removeAttribute("data-grip-hot"), r = N, N && N.setAttribute("data-grip-hot", ""));
3113
3134
  }, o = (N) => N.col.querySelector("[data-desk-tabs]"), l = (N) => {
3114
3135
  var ee;
3115
- const p = N.el.getBoundingClientRect(), I = N.el.cloneNode(!0);
3116
- I.querySelectorAll("*").forEach((z) => {
3117
- z.style.animation = "none", z.style.transition = "none";
3118
- }), I.querySelectorAll("iframe,video").forEach((z) => {
3136
+ const p = N.el.getBoundingClientRect(), O = N.el.cloneNode(!0);
3137
+ O.querySelectorAll("*").forEach((I) => {
3138
+ I.style.animation = "none", I.style.transition = "none";
3139
+ }), O.querySelectorAll("iframe,video").forEach((I) => {
3119
3140
  const F = document.createElement("div");
3120
- F.style.cssText = "width:100%;height:100%;background:#000", z.replaceWith(F);
3121
- }), I.removeAttribute("data-panel-key"), I.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((z) => z.hasAttribute("data-pin-pill") ? z.remove() : z.removeAttribute("data-panel-key")), Object.assign(I.style, { position: "fixed", left: `${p.left}px`, top: `${p.top}px`, width: `${p.width}px`, height: `${p.height}px`, margin: "0", zIndex: "1000", pointerEvents: "none", opacity: ".95", borderRadius: "14px", boxShadow: "0 14px 36px rgba(0,0,0,.3)", animation: "none", transition: "none", cursor: "move", willChange: "transform", contain: "layout paint", overflow: "hidden" });
3141
+ F.style.cssText = "width:100%;height:100%;background:#000", I.replaceWith(F);
3142
+ }), O.removeAttribute("data-panel-key"), O.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((I) => I.hasAttribute("data-pin-pill") ? I.remove() : I.removeAttribute("data-panel-key")), Object.assign(O.style, { position: "fixed", left: `${p.left}px`, top: `${p.top}px`, width: `${p.width}px`, height: `${p.height}px`, margin: "0", zIndex: "1000", pointerEvents: "none", opacity: ".95", borderRadius: "14px", boxShadow: "0 14px 36px rgba(0,0,0,.3)", animation: "none", transition: "none", cursor: "move", willChange: "transform", contain: "layout paint", overflow: "hidden" });
3122
3143
  const C = getComputedStyle(N.el);
3123
- for (let z = 0; z < C.length; z++) {
3124
- const F = C[z];
3125
- F.startsWith("--") && I.style.setProperty(F, C.getPropertyValue(F));
3144
+ for (let I = 0; I < C.length; I++) {
3145
+ const F = C[I];
3146
+ F.startsWith("--") && O.style.setProperty(F, C.getPropertyValue(F));
3126
3147
  }
3127
- I.style.fontFamily = C.fontFamily, I.style.color = C.color;
3148
+ O.style.fontFamily = C.fontFamily, O.style.color = C.color;
3128
3149
  let S = N.el.parentElement, B = "";
3129
3150
  for (; S && !B; ) {
3130
- const z = getComputedStyle(S).backgroundColor;
3131
- z && !/rgba?\(0, 0, 0, 0\)|transparent/.test(z) && !/\/ 0\.|, 0\.\d+\)$/.test(z) && (B = z), S = S.parentElement;
3151
+ const I = getComputedStyle(S).backgroundColor;
3152
+ I && !/rgba?\(0, 0, 0, 0\)|transparent/.test(I) && !/\/ 0\.|, 0\.\d+\)$/.test(I) && (B = I), S = S.parentElement;
3132
3153
  }
3133
- I.style.background = B || getComputedStyle(document.body).backgroundColor, document.body.appendChild(I), N.orig = [...N.col.querySelectorAll("[data-panel-key]")].map((z) => [z, z.style.order]), N.snap = {}, N.orig.forEach(([z]) => {
3134
- N.snap[z.getAttribute("data-panel-key")] = z.getBoundingClientRect();
3154
+ O.style.background = B || getComputedStyle(document.body).backgroundColor, document.body.appendChild(O), N.orig = [...N.col.querySelectorAll("[data-panel-key]")].map((I) => [I, I.style.order]), N.snap = {}, N.orig.forEach(([I]) => {
3155
+ N.snap[I.getAttribute("data-panel-key")] = I.getBoundingClientRect();
3135
3156
  }), N.tabsSnap = ((ee = o(N)) == null ? void 0 : ee.getBoundingClientRect()) ?? null;
3136
3157
  const Y = N.col.querySelector("[data-panel-grid]");
3137
- N.grid = !!Y && getComputedStyle(Y).display === "grid", N.el.classList.add("is-dragging"), document.documentElement.style.cursor = "move", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", Object.assign(N, { on: !0, clone: I }), a(null);
3158
+ N.grid = !!Y && getComputedStyle(Y).display === "grid", N.el.classList.add("is-dragging"), document.documentElement.style.cursor = "move", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", Object.assign(N, { on: !0, clone: O }), a(null);
3138
3159
  }, c = () => {
3139
3160
  const N = s;
3140
3161
  if (!N || !N.on || N.px == null || N.py == null) return;
3141
3162
  N.raf = 0, N.clone.style.transform = `translate3d(${N.px - N.x0}px,${N.py - N.y0}px,0)`;
3142
- const p = e.current, I = N.key, C = o(N), S = p.seq.includes(I), B = S || p.tabKeys.length > 1, Y = C && N.tabsSnap, ee = !Y || N.py < Y.top + Y.height / 2 ? B ? "pin" : null : "tabs";
3143
- let z = null;
3163
+ const p = e.current, O = N.key, C = o(N), S = p.seq.includes(O), B = S || p.tabKeys.length > 1, Y = C && N.tabsSnap, ee = !Y || N.py < Y.top + Y.height / 2 ? B ? "pin" : null : "tabs";
3164
+ let I = null;
3144
3165
  if (ee === "pin") {
3145
- const A = p.seq.filter((_) => _ !== I).map((_) => N.snap[_]).filter(Boolean), T = N.grid ? A.filter((_) => _.bottom < N.py || _.top <= N.py && _.left + _.width / 2 < N.px).length : A.filter((_) => _.top + _.height / 2 < N.py).length;
3146
- S && p.seq.indexOf(I) === T || (z = { zone: ee, idx: T });
3147
- } else ee === "tabs" && S && (z = { zone: ee });
3148
- const F = z ? z.zone + (z.idx ?? "") : "";
3166
+ const A = p.seq.filter((_) => _ !== O).map((_) => N.snap[_]).filter(Boolean), T = N.grid ? A.filter((_) => _.bottom < N.py || _.top <= N.py && _.left + _.width / 2 < N.px).length : A.filter((_) => _.top + _.height / 2 < N.py).length;
3167
+ S && p.seq.indexOf(O) === T || (I = { zone: ee, idx: T });
3168
+ } else ee === "tabs" && S && (I = { zone: ee });
3169
+ const F = I ? I.zone + (I.idx ?? "") : "";
3149
3170
  if (F !== N.sig) {
3150
- if (N.sig = F, N.target = z, N.orig.forEach(([A, T]) => {
3171
+ if (N.sig = F, N.target = I, N.orig.forEach(([A, T]) => {
3151
3172
  A.style.order = T;
3152
- }), (z == null ? void 0 : z.zone) === "pin") {
3153
- const A = p.seq.filter((T) => T !== I);
3154
- A.splice(z.idx, 0, I), A.forEach((T, _) => {
3173
+ }), (I == null ? void 0 : I.zone) === "pin") {
3174
+ const A = p.seq.filter((T) => T !== O);
3175
+ A.splice(I.idx, 0, O), A.forEach((T, _) => {
3155
3176
  const b = N.col.querySelector(`[data-panel-key="${T}"]`);
3156
3177
  b && (b.style.order = String(_ + 1));
3157
3178
  });
3158
- } else (z == null ? void 0 : z.zone) === "tabs" && (N.el.style.order = "998");
3159
- C && ((z == null ? void 0 : z.zone) === "tabs" ? C.setAttribute("data-drop-hot", "") : C.removeAttribute("data-drop-hot"));
3179
+ } else (I == null ? void 0 : I.zone) === "tabs" && (N.el.style.order = "998");
3180
+ C && ((I == null ? void 0 : I.zone) === "tabs" ? C.setAttribute("data-drop-hot", "") : C.removeAttribute("data-drop-hot"));
3160
3181
  }
3161
3182
  }, u = (N) => {
3162
- var I;
3183
+ var O;
3163
3184
  const p = s;
3164
3185
  if (s = null, !(!p || !p.on) && (p.raf && cancelAnimationFrame(p.raf), p.clone.remove(), p.orig.forEach(([C, S]) => {
3165
3186
  C.style.order = S;
3166
- }), p.el.classList.remove("is-dragging"), document.documentElement.style.cursor = "", document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", (I = o(p)) == null || I.removeAttribute("data-drop-hot"), N && p.target)) {
3187
+ }), p.el.classList.remove("is-dragging"), document.documentElement.style.cursor = "", document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", (O = o(p)) == null || O.removeAttribute("data-drop-hot"), N && p.target)) {
3167
3188
  const C = e.current;
3168
3189
  p.target.zone === "tabs" ? C.seq.includes(p.key) && C.unpin(p.key) : C.pin(p.key, p.target.idx);
3169
3190
  }
@@ -3185,10 +3206,10 @@ function yc(t) {
3185
3206
  r && ((Y = r.closest("[data-tab-col]")) == null ? void 0 : Y.getAttribute("data-tab-col")) === n && a(null);
3186
3207
  return;
3187
3208
  }
3188
- const I = p.closest("[data-panel-key]"), C = I == null ? void 0 : I.firstElementChild;
3189
- if (!I || !C || !e.current.tabbed || !e.current.pinnable.includes(I.getAttribute("data-panel-key")) || p.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
3190
- const S = C.getBoundingClientRect(), B = parseFloat(getComputedStyle(I).getPropertyValue("--grip-h")) || 30;
3191
- a(N.clientY >= S.top && N.clientY <= S.top + B ? I : null);
3209
+ const O = p.closest("[data-panel-key]"), C = O == null ? void 0 : O.firstElementChild;
3210
+ if (!O || !C || !e.current.tabbed || !e.current.pinnable.includes(O.getAttribute("data-panel-key")) || p.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
3211
+ const S = C.getBoundingClientRect(), B = parseFloat(getComputedStyle(O).getPropertyValue("--grip-h")) || 30;
3212
+ a(N.clientY >= S.top && N.clientY <= S.top + B ? O : null);
3192
3213
  }, h = (N) => {
3193
3214
  if (!r || N.button !== 0) return;
3194
3215
  const p = d(r);
@@ -3204,7 +3225,7 @@ function yc(t) {
3204
3225
  }, [n]);
3205
3226
  }
3206
3227
  function Tc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
3207
- const [o, l] = To(t), c = k(null), u = k(null);
3228
+ const [o, l] = No(t), c = k(null), u = k(null);
3208
3229
  wc(u), D(() => {
3209
3230
  document.documentElement.style.setProperty("--colw", `${o}px`);
3210
3231
  }, [o]);
@@ -3212,19 +3233,19 @@ function Tc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
3212
3233
  const f = c.current, m = f == null ? void 0 : f.parentElement;
3213
3234
  if (h.button !== 0 || !f || !m) return;
3214
3235
  h.preventDefault();
3215
- const y = h.currentTarget, j = getComputedStyle(m), N = m.clientWidth - parseFloat(j.paddingLeft) - parseFloat(j.paddingRight) - (parseFloat(j.columnGap) || 0), p = 320, I = 320, C = Math.max(p, N - I), S = h.clientX, B = f.getBoundingClientRect().width;
3236
+ const y = h.currentTarget, j = getComputedStyle(m), N = m.clientWidth - parseFloat(j.paddingLeft) - parseFloat(j.paddingRight) - (parseFloat(j.columnGap) || 0), p = 320, O = 320, C = Math.max(p, N - O), S = h.clientX, B = f.getBoundingClientRect().width;
3216
3237
  let Y = B;
3217
3238
  y.classList.add("is-on");
3218
3239
  const ee = { cur: document.body.style.cursor, sel: document.body.style.userSelect };
3219
3240
  document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
3220
- const z = (A) => {
3241
+ const I = (A) => {
3221
3242
  Y = Math.round(Math.min(C, Math.max(p, B + (S - A.clientX)))), f.style.flexBasis = `${Y}px`, document.documentElement.style.setProperty("--colw", `${Y}px`);
3222
3243
  }, F = () => {
3223
- window.removeEventListener("pointermove", z), window.removeEventListener("pointerup", F), window.removeEventListener("pointercancel", F), document.body.style.cursor = ee.cur, document.body.style.userSelect = ee.sel, y.classList.remove("is-on"), l(Y);
3244
+ window.removeEventListener("pointermove", I), window.removeEventListener("pointerup", F), window.removeEventListener("pointercancel", F), document.body.style.cursor = ee.cur, document.body.style.userSelect = ee.sel, y.classList.remove("is-on"), l(Y);
3224
3245
  };
3225
- window.addEventListener("pointermove", z), window.addEventListener("pointerup", F), window.addEventListener("pointercancel", F);
3246
+ window.addEventListener("pointermove", I), window.addEventListener("pointerup", F), window.addEventListener("pointercancel", F);
3226
3247
  }, M = r ? { display: "none" } : void 0;
3227
- return /* @__PURE__ */ g(xe, { children: [
3248
+ return /* @__PURE__ */ g(Ce, { children: [
3228
3249
  /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...M }, children: /* @__PURE__ */ i("div", { className: "colgrip__bar", style: { left: -(n / 2 + 6) }, title: "Drag to resize · double-click to reset", onPointerDown: d, onDoubleClick: () => l(null) }) }),
3229
3250
  /* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...M }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
3230
3251
  ] });
@@ -3262,36 +3283,36 @@ function vc(t) {
3262
3283
  }
3263
3284
  const Lc = 1500, kc = 3e5;
3264
3285
  function jc(t) {
3265
- const e = Bt(), [n, r] = L(null), [s, a] = L(null), [o, l] = L(null), [c, u] = L(null), d = k(null), M = k(null), h = k(null), f = k(0), m = Je(() => {
3286
+ const e = Bt(), [n, r] = L(null), [s, a] = L(null), [o, l] = L(null), [c, u] = L(null), d = k(null), M = k(null), h = k(null), f = k(0), m = Ke(() => {
3266
3287
  h.current && (clearTimeout(h.current), h.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), M.current && (URL.revokeObjectURL(M.current), M.current = null);
3267
- }, []), y = Je(() => {
3288
+ }, []), y = Ke(() => {
3268
3289
  f.current += 1, m(), a(null), l(null);
3269
- }, [m]), j = Je(() => {
3290
+ }, [m]), j = Ke(() => {
3270
3291
  y(), r(null);
3271
3292
  }, [y]);
3272
3293
  D(() => () => {
3273
3294
  f.current += 1, m();
3274
3295
  }, [m]);
3275
- const N = Je((p) => {
3296
+ const N = Ke((p) => {
3276
3297
  f.current += 1;
3277
- const I = f.current;
3298
+ const O = f.current;
3278
3299
  if (m(), r(p.id), a(null), l(null), u(null), !t) return;
3279
3300
  let C = p.previewUrl ? `${e.origin}${p.previewUrl}` : `${e.origin}/v1/voices/preview?voice=${encodeURIComponent(p.id)}&lang=${encodeURIComponent(t)}`;
3280
3301
  Qn() === "caf" && (C += `${C.includes("?") ? "&" : "?"}format=caf`);
3281
3302
  const S = Date.now();
3282
3303
  e.shareCode && C.includes("recording=") && (C += `&shareCode=${encodeURIComponent(e.shareCode)}`);
3283
3304
  const B = async () => {
3284
- if (f.current !== I) return;
3305
+ if (f.current !== O) return;
3285
3306
  let Y;
3286
3307
  try {
3287
3308
  const A = e.owner ? await e.bearer() : void 0;
3288
3309
  Y = await fetch(C, { headers: A ? { Authorization: `Bearer ${A}` } : {} });
3289
3310
  } catch (A) {
3290
- if (f.current !== I) return;
3291
- l(null), u(Ot(A));
3311
+ if (f.current !== O) return;
3312
+ l(null), u(jt(A));
3292
3313
  return;
3293
3314
  }
3294
- if (f.current !== I) return;
3315
+ if (f.current !== O) return;
3295
3316
  if (Y.status === 202 || Y.status === 503) {
3296
3317
  if (Date.now() - S > kc) {
3297
3318
  l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
@@ -3309,28 +3330,28 @@ function jc(t) {
3309
3330
  return;
3310
3331
  }
3311
3332
  const ee = await Y.blob();
3312
- if (f.current !== I) return;
3333
+ if (f.current !== O) return;
3313
3334
  l(null), M.current = URL.createObjectURL(ee);
3314
- const z = new Audio(M.current);
3315
- z.playsInline = !0;
3335
+ const I = new Audio(M.current);
3336
+ I.playsInline = !0;
3316
3337
  const F = () => {
3317
- f.current === I && (m(), a(null));
3338
+ f.current === O && (m(), a(null));
3318
3339
  };
3319
- z.onended = F, z.onerror = F, d.current = z, z.play().then(() => {
3320
- f.current === I && a(p.id);
3340
+ I.onended = F, I.onerror = F, d.current = I, I.play().then(() => {
3341
+ f.current === O && a(p.id);
3321
3342
  }).catch(F);
3322
3343
  };
3323
3344
  B();
3324
3345
  }, [t, m, e]);
3325
3346
  return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: j };
3326
3347
  }
3327
- const xr = 0.05, ta = (t, e) => {
3348
+ const xr = 0.05, Ji = (t, e) => {
3328
3349
  let n = 0;
3329
3350
  for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
3330
3351
  return n;
3331
3352
  };
3332
3353
  function zc(t, e, n, r) {
3333
- const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ? ta(t, s) : -1;
3354
+ const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ? Ji(t, s) : -1;
3334
3355
  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 };
3335
3356
  }
3336
3357
  function Dn(t, e, n) {
@@ -3345,18 +3366,18 @@ function Dn(t, e, n) {
3345
3366
  }
3346
3367
  a = Math.max(0, Math.min(r, a));
3347
3368
  const o = r > 0 && a >= r - xr && s < 0;
3348
- return { t: a, playing: t.playing && !o, index: s >= 0 ? s : ta(e, a) };
3369
+ return { t: a, playing: t.playing && !o, index: s >= 0 ? s : Ji(e, a) };
3349
3370
  }
3350
3371
  function Ic(t) {
3351
3372
  return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
3352
3373
  }
3353
- const pi = "Preparing the voice…";
3374
+ const Mi = "Preparing the voice…";
3354
3375
  function Oc(t) {
3355
3376
  if (!t.lang) return null;
3356
3377
  const e = t.langName;
3357
3378
  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;
3358
3379
  }
3359
- function na(t, e) {
3380
+ function Xi(t, e) {
3360
3381
  const [n, r] = L(null), [s, a] = L(!1);
3361
3382
  return D(() => {
3362
3383
  if (!t) {
@@ -3416,22 +3437,22 @@ function Cc({ state: t, line: e, onRetry: n, onOriginal: r }) {
3416
3437
  }
3417
3438
  );
3418
3439
  }
3419
- function ra(t, e, n) {
3440
+ function ea(t, e, n) {
3420
3441
  var c;
3421
3442
  const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
3422
3443
  if (!s && r.words.length) return r.words;
3423
- const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Ji(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
3444
+ const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Gi(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
3424
3445
  return Ql(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
3425
3446
  }
3426
- function mi(t, e, n) {
3447
+ function gi(t, e, n) {
3427
3448
  if (!t.engaged || e !== t.idx || !n.length) return null;
3428
- if (!t.wordSync) return t.clipPos ? Ai(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
3449
+ if (!t.wordSync) return t.clipPos ? xi(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
3429
3450
  const r = t.t;
3430
3451
  let s = -1;
3431
3452
  for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
3432
3453
  return s;
3433
3454
  }
3434
- function Gt(t, e) {
3455
+ function Zt(t, e) {
3435
3456
  var l;
3436
3457
  const n = t.clipPos;
3437
3458
  if (t.wordSync || t.timed || !n || !(n.dur > 0)) return t.t;
@@ -3453,15 +3474,15 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3453
3474
  const W = setTimeout(() => y(!0), 300);
3454
3475
  return () => clearTimeout(W);
3455
3476
  }, [h]);
3456
- const j = r && !m, N = k(!1), [p, I] = L(!1), C = (W, ye = []) => {
3477
+ const j = r && !m, N = k(!1), [p, O] = L(!1), C = (W, ye = []) => {
3457
3478
  var G, ke;
3458
3479
  if (!(N.current && (W === "pauseVideo" || W === "seekTo" || W === "setPlaybackRate")))
3459
3480
  try {
3460
3481
  (ke = (G = f.current) == null ? void 0 : G.contentWindow) == null || ke.postMessage(JSON.stringify({ event: "command", func: W, args: ye }), "*");
3461
3482
  } catch {
3462
3483
  }
3463
- }, S = k(null), B = k(!1), Y = k(!1), ee = k(!1), z = k(a);
3464
- z.current = a;
3484
+ }, S = k(null), B = k(!1), Y = k(!1), ee = k(!1), I = k(a);
3485
+ I.current = a;
3465
3486
  const F = k(d);
3466
3487
  F.current = d;
3467
3488
  const A = k(o);
@@ -3470,10 +3491,10 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3470
3491
  var ye, G;
3471
3492
  const W = Y.current || ee.current;
3472
3493
  if (W !== N.current)
3473
- if (N.current = W, I(W), (ye = A.current) == null || ye.call(A, W), W) {
3494
+ if (N.current = W, O(W), (ye = A.current) == null || ye.call(A, W), W) {
3474
3495
  if (C("playVideo"), F.current) return;
3475
- we.current && z.current && (T.current = !0, z.current());
3476
- } else T.current && !F.current && (T.current = !1, we.current || (G = z.current) == null || G.call(z));
3496
+ we.current && I.current && (T.current = !0, I.current());
3497
+ } else T.current && !F.current && (T.current = !1, we.current || (G = I.current) == null || G.call(I));
3477
3498
  }, b = k(n);
3478
3499
  b.current = n;
3479
3500
  const te = k(M);
@@ -3563,7 +3584,7 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3563
3584
  }, [Z]), /* @__PURE__ */ g("div", { className: `txyt${p ? " txyt--ad" : ""}`, children: [
3564
3585
  /* @__PURE__ */ i("iframe", { ref: f, onLoad: je, referrerPolicy: "strict-origin-when-cross-origin", src: `https://www.youtube-nocookie.com/embed/${t}?enablejsapi=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, title: e, allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" }),
3565
3586
  !p && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
3566
- /* @__PURE__ */ i("div", { className: `txyt__paused${ie && !p && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Mn, { size: 44 }) }) }),
3587
+ /* @__PURE__ */ i("div", { className: `txyt__paused${ie && !p && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) }) }),
3567
3588
  p && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
3568
3589
  H && /* @__PURE__ */ g("div", { className: "txyt__gone", children: [
3569
3590
  /* @__PURE__ */ i("span", { children: "YouTube no longer has this part of the broadcast" }),
@@ -3571,7 +3592,7 @@ function xc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
3571
3592
  ] })
3572
3593
  ] });
3573
3594
  }
3574
- const Sc = /* @__PURE__ */ g(xe, { children: [
3595
+ const Sc = /* @__PURE__ */ g(Ce, { children: [
3575
3596
  /* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
3576
3597
  /* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
3577
3598
  ] }), Dc = /* @__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" });
@@ -3580,7 +3601,7 @@ function Ac({ player: t, size: e }) {
3580
3601
  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 ? X.volumeOff : X.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
3581
3602
  }
3582
3603
  function Ec() {
3583
- const [t, e] = L(""), n = k(null), r = Je((s) => {
3604
+ const [t, e] = L(""), n = k(null), r = Ke((s) => {
3584
3605
  clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
3585
3606
  }, []);
3586
3607
  return D(() => () => clearTimeout(n.current), []), [t, r];
@@ -3589,7 +3610,7 @@ const _c = 0.2, Yc = 140, Uc = 320;
3589
3610
  function Rc(t, e) {
3590
3611
  const n = k(t);
3591
3612
  n.current = t;
3592
- const r = k(0), s = k(1), a = Je((o, l) => {
3613
+ const r = k(0), s = k(1), a = Ke((o, l) => {
3593
3614
  cancelAnimationFrame(r.current);
3594
3615
  const c = s.current, u = performance.now(), d = () => {
3595
3616
  const M = l > 0 ? Math.min(1, (performance.now() - u) / l) : 1;
@@ -3614,18 +3635,18 @@ function Pc(t, e, n, r) {
3614
3635
  N.current = n;
3615
3636
  const p = k(r);
3616
3637
  p.current = r;
3617
- const [I, C] = L(!1), S = k(!1), B = (Q) => {
3638
+ const [O, C] = L(!1), S = k(!1), B = (Q) => {
3618
3639
  S.current = Q, C(Q);
3619
3640
  }, Y = (Q, H) => {
3620
3641
  var E;
3621
3642
  return (E = s.current) == null ? void 0 : E.call(s, Q, H);
3622
- }, ee = l === 1 || l === 3, z = k(null), F = k(null), A = ze(() => ({
3643
+ }, ee = l === 1 || l === 3, I = k(null), F = k(null), A = ze(() => ({
3623
3644
  muted: !0,
3624
3645
  bind: (Q) => {
3625
3646
  s.current = Q, Q || (a.current = !1);
3626
3647
  },
3627
3648
  onInfo: (Q) => {
3628
- if (Q.ready && !a.current && (a.current = !0, o.current && (o.current = !1, Y("playVideo"))), typeof Q.state == "number" && (z.current = Q.state, c(Q.state)), typeof Q.muted == "boolean" && (F.current = Q.muted), typeof Q.t == "number") {
3649
+ if (Q.ready && !a.current && (a.current = !0, o.current && (o.current = !1, Y("playVideo"))), typeof Q.state == "number" && (I.current = Q.state, c(Q.state)), typeof Q.muted == "boolean" && (F.current = Q.muted), typeof Q.t == "number") {
3629
3650
  const H = Q.t - N.current;
3630
3651
  j.current = { t: H, at: performance.now() }, H < y.current && y.current - H < 0.35 || m(Math.max(0, H));
3631
3652
  }
@@ -3644,8 +3665,8 @@ function Pc(t, e, n, r) {
3644
3665
  };
3645
3666
  return Q = requestAnimationFrame(H), () => cancelAnimationFrame(Q);
3646
3667
  }, [l]), D(() => {
3647
- !I || r == null || r < f + 1.5 || (B(!1), Y("playVideo"));
3648
- }, [I, r, f]), D(() => {
3668
+ !O || r == null || r < f + 1.5 || (B(!1), Y("playVideo"));
3669
+ }, [O, r, f]), D(() => {
3649
3670
  r == null && S.current && (B(!1), Y("playVideo"));
3650
3671
  }, [r]);
3651
3672
  const T = t.length ? ((De = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : De.end) ?? t[t.length - 1].start + 4 : 0, _ = e || T || 1, b = ze(() => {
@@ -3658,7 +3679,7 @@ function Pc(t, e, n, r) {
3658
3679
  Y("seekTo", [H + N.current, !0]), j.current = { t: H, at: performance.now() }, m(H), K((E) => E + 1);
3659
3680
  }, ie = k(!1), ne = k(void 0), Z = (Q) => {
3660
3681
  window.clearTimeout(ne.current), ne.current = window.setTimeout(() => {
3661
- !ie.current || Q <= 0 || z.current === 1 || z.current === 3 || (Y("playVideo"), Z(Q - 1));
3682
+ !ie.current || Q <= 0 || I.current === 1 || I.current === 3 || (Y("playVideo"), Z(Q - 1));
3662
3683
  }, 1200);
3663
3684
  };
3664
3685
  D(() => () => window.clearTimeout(ne.current), []);
@@ -3703,9 +3724,9 @@ function Pc(t, e, n, r) {
3703
3724
  };
3704
3725
  if (!await H(() => a.current, 1e4)) return null;
3705
3726
  ve(!0);
3706
- for (let E = 0; E < 5 && z.current !== 1; E++)
3707
- Y("playVideo"), await H(() => z.current === 1, 1500);
3708
- return z.current !== 1 ? null : h.current ? (ve(!0), !1) : (ve(!1), await Q(1200), z.current === 1 && F.current === !1 ? !0 : (ve(!0), Y("playVideo"), !1));
3727
+ for (let E = 0; E < 5 && I.current !== 1; E++)
3728
+ Y("playVideo"), await H(() => I.current === 1, 1500);
3729
+ return I.current !== 1 ? null : h.current ? (ve(!0), !1) : (ve(!1), await Q(1200), I.current === 1 && F.current === !1 ? !0 : (ve(!0), Y("playVideo"), !1));
3709
3730
  },
3710
3731
  playing: ee,
3711
3732
  ended: l === 0,
@@ -3718,8 +3739,8 @@ function Pc(t, e, n, r) {
3718
3739
  seekRow: Te,
3719
3740
  toggleMute: () => {
3720
3741
  const Q = !M.current;
3721
- ve(Q), !Q && !h.current && z.current === 1 && setTimeout(() => {
3722
- z.current === 2 && !M.current && (ve(!0), Y("playVideo"));
3742
+ ve(Q), !Q && !h.current && I.current === 1 && setTimeout(() => {
3743
+ I.current === 2 && !M.current && (ve(!0), Y("playVideo"));
3723
3744
  }, 900);
3724
3745
  },
3725
3746
  seekFrac: (Q) => v(Math.max(0, Math.min(1, Q)) * _),
@@ -3743,7 +3764,7 @@ function Pc(t, e, n, r) {
3743
3764
  clearError: () => {
3744
3765
  },
3745
3766
  has: !0,
3746
- edgeWait: I,
3767
+ edgeWait: O,
3747
3768
  wordSync: !0,
3748
3769
  pause: pe,
3749
3770
  setVolume: (Q) => Y("setVolume", [Math.round(Q * 100)])
@@ -3753,8 +3774,8 @@ function $c(t, e, n, r, s = 0, a = null) {
3753
3774
  var E;
3754
3775
  const o = k(null), [l, c] = L(!1), [u, d] = L(0), [M, h] = L(!1), f = k(M);
3755
3776
  f.current = M;
3756
- const m = k(!1), [y, j] = L(null), [N, p] = L(!1), I = k(s);
3757
- I.current = s;
3777
+ const m = k(!1), [y, j] = L(null), [N, p] = L(!1), O = k(s);
3778
+ O.current = s;
3758
3779
  const C = k(null), [S, B] = L(0);
3759
3780
  D(() => {
3760
3781
  p(!1);
@@ -3763,16 +3784,16 @@ function $c(t, e, n, r, s = 0, a = null) {
3763
3784
  c(!1), o.current = null;
3764
3785
  return;
3765
3786
  }
3766
- const V = xi(t), ce = I.current;
3787
+ const V = Oi(t), ce = O.current;
3767
3788
  return V.preload = "metadata", V.muted = f.current || m.current, V.onplay = () => c(!0), V.onpause = () => c(!1), V.onended = () => c(!1), V.onloadedmetadata = () => {
3768
3789
  p(!0), V.currentTime = ((x == null ? void 0 : x.t) ?? 0) + ce, x != null && x.playing && V.play().catch((W) => {
3769
- x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || j(Ot(W));
3790
+ x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || j(jt(W));
3770
3791
  });
3771
3792
  }, V.onerror = () => {
3772
3793
  c(!1);
3773
- const W = V.error, ye = ho(W, !1);
3774
- ao(t).then((G) => {
3775
- vc(G == null ? void 0 : G.message) || bi(W), o.current === V && (j({ message: (G == null ? void 0 : G.message) ?? ye }), G != null && G.permanent || (o.current = null));
3794
+ const W = V.error, ye = co(W, !1);
3795
+ so(t).then((G) => {
3796
+ vc(G == null ? void 0 : G.message) || zi(W), o.current === V && (j({ message: (G == null ? void 0 : G.message) ?? ye }), G != null && G.permanent || (o.current = null));
3776
3797
  });
3777
3798
  }, o.current = V, () => {
3778
3799
  C.current = { t: Math.max(0, V.currentTime - ce), playing: !V.paused && !V.ended }, V.pause(), V.onplay = V.onpause = V.onended = V.onloadedmetadata = V.onerror = null, o.current = null;
@@ -3780,8 +3801,8 @@ function $c(t, e, n, r, s = 0, a = null) {
3780
3801
  }, [t, S]), D(() => () => {
3781
3802
  C.current = null;
3782
3803
  }, []);
3783
- const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, z = !ee && N && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || Y || 1, F = k(z);
3784
- F.current = z;
3804
+ const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, I = !ee && N && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || Y || 1, F = k(I);
3805
+ F.current = I;
3785
3806
  const A = k(ee);
3786
3807
  A.current = ee;
3787
3808
  const T = k(a);
@@ -3803,7 +3824,7 @@ function $c(t, e, n, r, s = 0, a = null) {
3803
3824
  const V = () => {
3804
3825
  const ce = o.current;
3805
3826
  if (ce) {
3806
- const W = ce.currentTime - I.current;
3827
+ const W = ce.currentTime - O.current;
3807
3828
  if (A.current && W >= F.current) {
3808
3829
  ce.pause(), d(F.current);
3809
3830
  return;
@@ -3825,9 +3846,9 @@ function $c(t, e, n, r, s = 0, a = null) {
3825
3846
  return x;
3826
3847
  }, [n, u]), [ie, ne] = L(0), Z = (x) => {
3827
3848
  const V = T.current != null ? Math.min(x, Math.max(0, T.current - 0.5)) : x, ce = o.current;
3828
- d(V), ce && (ce.currentTime = V + I.current), ne((W) => W + 1);
3849
+ d(V), ce && (ce.currentTime = V + O.current), ne((W) => W + 1);
3829
3850
  }, J = (x) => {
3830
- (x == null ? void 0 : x.name) !== "AbortError" && j(Ot(x));
3851
+ (x == null ? void 0 : x.name) !== "AbortError" && j(jt(x));
3831
3852
  }, pe = () => {
3832
3853
  var V;
3833
3854
  const x = o.current;
@@ -3847,12 +3868,12 @@ function $c(t, e, n, r, s = 0, a = null) {
3847
3868
  K(!1);
3848
3869
  return;
3849
3870
  }
3850
- x.currentTime < I.current && (x.currentTime = I.current), u >= z - 0.25 && Z(0), x.play().catch(J);
3871
+ x.currentTime < O.current && (x.currentTime = O.current), u >= I - 0.25 && Z(0), x.play().catch(J);
3851
3872
  }, le = (x) => {
3852
3873
  const V = n[Math.max(0, Math.min(n.length - 1, x))];
3853
3874
  V && Z(V.start);
3854
- }, Te = (x) => Z(Math.max(0, Math.min(1, x)) * z), je = (x) => {
3855
- const V = Dn(x, n, z);
3875
+ }, Te = (x) => Z(Math.max(0, Math.min(1, x)) * I), je = (x) => {
3876
+ const V = Dn(x, n, I);
3856
3877
  Z(V.t);
3857
3878
  const ce = o.current;
3858
3879
  if (ce) {
@@ -3877,7 +3898,7 @@ function $c(t, e, n, r, s = 0, a = null) {
3877
3898
  autoplay: async () => {
3878
3899
  const x = o.current;
3879
3900
  if (!x) return null;
3880
- x.currentTime < I.current && (x.currentTime = I.current);
3901
+ x.currentTime < O.current && (x.currentTime = O.current);
3881
3902
  const V = (ce) => {
3882
3903
  f.current = ce, x.muted = ce || m.current, h(ce);
3883
3904
  };
@@ -3896,7 +3917,7 @@ function $c(t, e, n, r, s = 0, a = null) {
3896
3917
  playing: l,
3897
3918
  t: u,
3898
3919
  idx: v,
3899
- dur: z,
3920
+ dur: I,
3900
3921
  muted: M,
3901
3922
  toggleMute: () => {
3902
3923
  const x = !f.current;
@@ -3911,12 +3932,12 @@ function $c(t, e, n, r, s = 0, a = null) {
3911
3932
  seekN: ie,
3912
3933
  stop: () => {
3913
3934
  const x = o.current;
3914
- x && (x.pause(), x.currentTime = I.current), d(0);
3935
+ x && (x.pause(), x.currentTime = O.current), d(0);
3915
3936
  },
3916
3937
  videoAt: (x) => {
3917
3938
  const V = o.current;
3918
3939
  if (!V || V.paused || V.ended || we.current || Date.now() - Ee.current < 3e3) return;
3919
- const ce = x + I.current;
3940
+ const ce = x + O.current;
3920
3941
  Math.abs(V.currentTime - ce) <= 0.2 || (Ee.current = Date.now(), V.currentTime = ce);
3921
3942
  },
3922
3943
  engaged: l || u > 0,
@@ -3946,8 +3967,8 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
3946
3967
  c.current = l ?? c.current;
3947
3968
  const u = k(null), [d, M] = L(!1), [h, f] = L(0), [m, y] = L(0), [j, N] = L(!1), p = k(j);
3948
3969
  p.current = j;
3949
- const [I, C] = L(null), [S, B] = L(null), [Y, ee] = L(null), [z, F] = L(null), A = k(z);
3950
- A.current = z;
3970
+ const [O, C] = L(null), [S, B] = L(null), [Y, ee] = L(null), [I, F] = L(null), A = k(I);
3971
+ A.current = I;
3951
3972
  const [T, _] = L(null), [b, te] = L(null), [K, v] = L(null), [ie, ne] = L(!1), Z = k(e);
3952
3973
  Z.current = e;
3953
3974
  const J = k(o), pe = k([]);
@@ -3956,13 +3977,13 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
3956
3977
  Te.current = s;
3957
3978
  const je = k(a);
3958
3979
  je.current = a;
3959
- const Se = Je((U) => {
3980
+ const Se = Ke((U) => {
3960
3981
  U.finite = !0, U.coming = (R) => c.current.has(R), U.readAhead = 6, U.readAheadS = 45, U.onWaiting = (R) => B(R), U.onStarting = (R) => ee(R), U.onSentence = (R) => {
3961
3982
  if (M(U.playing), R == null) return;
3962
3983
  const q = Z.current.findIndex((se) => se.sentenceId === R);
3963
3984
  q >= 0 && f(q);
3964
3985
  }, U.onError = (R) => {
3965
- M(U.playing), C(R instanceof Si ? { 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." });
3986
+ M(U.playing), C(R instanceof bi ? { 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." });
3966
3987
  }, U.gapBefore = (R, q) => {
3967
3988
  if (!J.current) return 0;
3968
3989
  const se = Z.current, de = se.find((be) => be.sentenceId === R), Oe = se.find((be) => be.sentenceId === q);
@@ -3973,7 +3994,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
3973
3994
  return Le && Date.now() - Le.at < 2e3 ? Math.max(0, Oe.start - (Le.t + (Date.now() - Le.at) / 1e3 * U.rate)) : !de || Oe.start <= de.start ? 0 : Math.max(0, Oe.start - Qt(de, de.start, de.start + 4));
3974
3995
  }, U.flow = J.current, U.silentSpan = (R) => {
3975
3996
  var $e;
3976
- const q = Z.current, se = q.findIndex((at) => at.sentenceId === R), de = q[se];
3997
+ const q = Z.current, se = q.findIndex((ut) => ut.sentenceId === R), de = q[se];
3977
3998
  if (!de) return null;
3978
3999
  const Oe = (($e = q[se + 1]) == null ? void 0 : $e.start) ?? Qt(de, de.start, de.start + 4), Ne = Math.max(0, Oe - de.start), Le = le.current, be = Le && Date.now() - Le.at < 2e3 ? Le.t + (Date.now() - Le.at) / 1e3 * (U.rate || 1) : de.start, He = Math.max(0, Math.min(Ne, be - de.start));
3979
4000
  return { fromS: He, ms: (Ne - He) * 1e3 / (U.rate || 1) };
@@ -4053,7 +4074,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4053
4074
  var de;
4054
4075
  const R = e[U], q = (R == null ? void 0 : R.start) ?? 0, se = ((de = e[U + 1]) == null ? void 0 : de.start) ?? Qt(R, q, Ie);
4055
4076
  return { from: q, span: Math.max(0, se - q) };
4056
- }, Me = $(G), ue = Math.max(0, Math.min(Me.span, Qt(e[G], Me.from, Me.from + 4) - Me.from)), ae = z ? z.t : o ? b != null && ie ? Me.from + Math.min(Me.span, b) : b != null ? K != null ? Math.min(Me.from, K + b) : Me.from + Math.min(Me.span, ue + b) : T && T.dur > 0 ? Me.from + Math.min(ue, T.t / T.dur * ue) : Me.from : T && T.dur > 0 ? Me.from + Math.min(Me.span, T.t / T.dur * Me.span) : Me.from;
4077
+ }, Me = $(G), ue = Math.max(0, Math.min(Me.span, Qt(e[G], Me.from, Me.from + 4) - Me.from)), ae = I ? I.t : o ? b != null && ie ? Me.from + Math.min(Me.span, b) : b != null ? K != null ? Math.min(Me.from, K + b) : Me.from + Math.min(Me.span, ue + b) : T && T.dur > 0 ? Me.from + Math.min(ue, T.t / T.dur * ue) : Me.from : T && T.dur > 0 ? Me.from + Math.min(Me.span, T.t / T.dur * Me.span) : Me.from;
4057
4078
  D(() => {
4058
4079
  we.current = Ee.current ?? zc(e, ae, d, Ie);
4059
4080
  });
@@ -4065,7 +4086,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4065
4086
  muted: j,
4066
4087
  wordSync: !1,
4067
4088
  timed: o,
4068
- clipPos: z ? null : T,
4089
+ clipPos: I ? null : T,
4069
4090
  videoAt: (U) => {
4070
4091
  le.current = { t: U, at: Date.now() };
4071
4092
  },
@@ -4074,7 +4095,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4074
4095
  preparing: S != null || Re,
4075
4096
  silent: d && ie,
4076
4097
  starting: Y,
4077
- error: I,
4098
+ error: O,
4078
4099
  seekN: m,
4079
4100
  toggleMute: () => {
4080
4101
  var R;
@@ -4112,7 +4133,7 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4112
4133
  H(U), t.some((R) => R.sentenceId >= (U.sentenceId ?? 0)) && (H(null), Q.current(U));
4113
4134
  },
4114
4135
  seekFrac: (U) => {
4115
- var at, st, ft;
4136
+ var ut, st, pt;
4116
4137
  E();
4117
4138
  const R = Math.max(0, Math.min(1, U)) * Ie;
4118
4139
  let q = 0;
@@ -4120,9 +4141,9 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4120
4141
  const se = e[q], de = o && se && R < se.start - 0.05;
4121
4142
  if (o && se && (de || e[q + 1] && R >= Qt(se, se.start, se.start + 4))) {
4122
4143
  const Ge = de ? q : q + 1, rt = e[Ge];
4123
- (at = u.current) == null || at.startWithin(-1, 0);
4124
- const ct = { t: R, sid: rt.sentenceId ?? null };
4125
- A.current = ct, F(ct), _e(Ge);
4144
+ (ut = u.current) == null || ut.startWithin(-1, 0);
4145
+ const Mt = { t: R, sid: rt.sentenceId ?? null };
4146
+ A.current = Mt, F(Mt), _e(Ge);
4126
4147
  return;
4127
4148
  }
4128
4149
  const Oe = (se == null ? void 0 : se.sentenceId) ?? null, { from: Ne, span: Le } = $(q);
@@ -4130,11 +4151,11 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4130
4151
  const He = Oe != null ? (st = je.current) == null ? void 0 : st[String(Oe)] : void 0, $e = He != null && He.length ? He[He.length - 1][1] : 0;
4131
4152
  if (se && He && He.length === se.words.length && $e > 0) {
4132
4153
  let Ge = 0;
4133
- for (let Qe = 0; Qe < se.words.length; Qe++) se.words[Qe].start <= R && (Ge = Qe);
4134
- const rt = se.words[Ge], ct = rt.end > rt.start ? Math.max(0, Math.min(1, (R - rt.start) / (rt.end - rt.start))) : 0;
4135
- be = Math.min(1, (He[Ge][0] + ct * (He[Ge][1] - He[Ge][0])) / $e);
4154
+ for (let it = 0; it < se.words.length; it++) se.words[it].start <= R && (Ge = it);
4155
+ const rt = se.words[Ge], Mt = rt.end > rt.start ? Math.max(0, Math.min(1, (R - rt.start) / (rt.end - rt.start))) : 0;
4156
+ be = Math.min(1, (He[Ge][0] + Mt * (He[Ge][1] - He[Ge][0])) / $e);
4136
4157
  }
4137
- Oe != null && ((ft = u.current) == null || ft.startWithin(Oe, be)), F(be > 0.01 ? { t: R, sid: Oe } : null), _e(q);
4158
+ Oe != null && ((pt = u.current) == null || pt.startWithin(Oe, be)), F(be > 0.01 ? { t: R, sid: Oe } : null), _e(q);
4138
4159
  },
4139
4160
  seekWord: a ? (U) => {
4140
4161
  var de, Oe, Ne, Le;
@@ -4193,36 +4214,36 @@ function Qc(t, e, n, r, s, a, o = !1, l) {
4193
4214
  const Bc = () => {
4194
4215
  }, Vc = "The language this recording is read aloud in.", Hc = { title: "READ IN", note: "The transcript and its voice switch to this language." };
4195
4216
  function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: M, hearOriginal: h = !1, timed: f = !1, stockVoices: m = !1, stickyPicker: y = !1, pickerBusy: j = null, voiceSheet: N, forcedVoice: p = null }) {
4196
- var Rt, fn, sn, an;
4197
- const { onAddVoice: I, onPickVoice: C, onSelectSpeaker: S, noCloneFor: B, castNoClone: Y, castShort: ee, castBuilding: z, castWarn: F, badge: A, titleNode: T } = N ?? {}, _ = !!N, b = !!(N != null && N.pendingClones), [te, K] = _i(), [v, ie] = L(null), [ne, Z] = L(!1), [J, pe] = L(!1), [le, Te] = L(!1), [je, Se] = L(!1), ve = u ?? l, we = u === null, Ee = u != null || v != null, De = ((P) => !!P && !!(o != null && o.voice.includes(P)))(we ? l : ve) ? we ? l : ve : "en", Q = jc(De), H = (N == null ? void 0 : N.cloneOn) ?? !0, [E, x] = L(0), V = k(H);
4217
+ var gn, Ut, fn, nn;
4218
+ const { onAddVoice: O, onPickVoice: C, onSelectSpeaker: S, noCloneFor: B, castNoClone: Y, castShort: ee, castBuilding: I, castWarn: F, badge: A, titleNode: T } = N ?? {}, _ = !!N, b = !!(N != null && N.pendingClones), [te, K] = Di(), [v, ie] = L(null), [ne, Z] = L(!1), [J, pe] = L(!1), [le, Te] = L(!1), [je, Se] = L(!1), ve = u ?? l, we = u === null, Ee = u != null || v != null, De = ((P) => !!P && !!(o != null && o.voice.includes(P)))(we ? l : ve) ? we ? l : ve : "en", Q = jc(De), H = (N == null ? void 0 : N.cloneOn) ?? !0, [E, x] = L(0), V = k(H);
4198
4219
  D(() => {
4199
4220
  V.current !== H && (V.current = H, x((P) => P + 1));
4200
4221
  }, [H]);
4201
- const ce = sc(De, Ee || s || J, ic(e) * 1e3 + E, { id: t ?? null, shareCode: a.shareCode ?? null }), W = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => _ || !P.cloned || P.speaker != null), [ce, _]), ye = W.length > 1, G = Cr(o, ve), ke = Gi(), Ie = ze(() => Yi(o, "translation"), [o]), [Fe, Ae] = L(null), [he] = L(() => /* @__PURE__ */ new Set()), [_e, Be] = L({}), $ = ze(() => Xl(n, e, ke.vcUnknownSpk), [n, e, ke]), Me = ye && $.filter((P) => P.key >= 0).length > 1, ue = Fe != null && $.some((P) => P.key === Fe) ? Fe : ((Rt = $[0]) == null ? void 0 : Rt.key) ?? null, ae = ze(() => {
4202
- const P = fi($, W, H);
4203
- for (const [Ce, Ve] of Object.entries(_e[De ?? ""] ?? {})) P.set(Number(Ce), Ve);
4222
+ const ce = sc(De, Ee || s || J, ic(e) * 1e3 + E, { id: t ?? null, shareCode: a.shareCode ?? null }), W = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => _ || !P.cloned || P.speaker != null), [ce, _]), ye = W.length > 1, G = Cr(o, ve), ke = Wi(), Ie = ze(() => Ai(o, "translation"), [o]), [Fe, Ae] = L(null), [he] = L(() => /* @__PURE__ */ new Set()), [_e, Be] = L({}), $ = ze(() => Xl(n, e, ke.vcUnknownSpk), [n, e, ke]), Me = ye && $.filter((P) => P.key >= 0).length > 1, ue = Fe != null && $.some((P) => P.key === Fe) ? Fe : ((gn = $[0]) == null ? void 0 : gn.key) ?? null, ae = ze(() => {
4223
+ const P = hi($, W, H);
4224
+ for (const [xe, Qe] of Object.entries(_e[De ?? ""] ?? {})) P.set(Number(xe), Qe);
4204
4225
  return P;
4205
- }, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ? fi($, W, !1) : null, [m, fe, $, W]), U = ze(() => fe ? Mi(ae) || null : Ye && Mi(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!ve && !!(o != null && o.voice.includes(ve)), de = se && !h, Oe = ze(
4226
+ }, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ? hi($, W, !1) : null, [m, fe, $, W]), U = ze(() => fe ? ui(ae) || null : Ye && ui(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!ve && !!(o != null && o.voice.includes(ve)), de = se && !h, Oe = ze(
4206
4227
  () => n.filter((P) => !P.suppressed && !P.unclear).map((P) => P.sentenceId).filter((P) => P != null),
4207
4228
  [n]
4208
4229
  ), Ne = ac({ recordingId: t, lang: ve, ended: s, cred: a, pickedVoice: p || (U ?? v), sentenceIds: s && de ? Oe : void 0 }), Le = W.find((P) => P.id === v) ?? W.find((P) => {
4209
- var Ce;
4210
- return P.id === ((Ce = Ne.track) == null ? void 0 : Ce.voice);
4230
+ var xe;
4231
+ return P.id === ((xe = Ne.track) == null ? void 0 : xe.voice);
4211
4232
  }) ?? W.find((P) => P.default) ?? W[0] ?? null, be = (Le == null ? void 0 : Le.id) ?? null;
4212
4233
  D(() => {
4213
4234
  if (!Ne.rendering) return;
4214
4235
  const P = setInterval(Ne.reload, 4e3);
4215
4236
  return () => clearInterval(P);
4216
4237
  }, [Ne.rendering, Ne.reload]);
4217
- const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((fn = Ne.track) == null ? void 0 : fn.voiceKey) ?? "default")}`, $e = Qc(Ne.clips, n, r, He, he, (sn = Ne.track) == null ? void 0 : sn.wordTimes, f, Ne.coming);
4238
+ const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((Ut = Ne.track) == null ? void 0 : Ut.voiceKey) ?? "default")}`, $e = Qc(Ne.clips, n, r, He, he, (fn = Ne.track) == null ? void 0 : fn.wordTimes, f, Ne.coming);
4218
4239
  D(() => {
4219
- var Ce;
4220
- const P = (Ce = n[$e.idx]) == null ? void 0 : Ce.sentenceId;
4240
+ var xe;
4241
+ const P = (xe = n[$e.idx]) == null ? void 0 : xe.sentenceId;
4221
4242
  P != null && Ne.setNear(P);
4222
4243
  }, [$e.idx]), D(() => {
4223
4244
  !je || !$e.has || (Se(!1), $e.playing || $e.toggle());
4224
4245
  }, [je, $e.has]);
4225
- const at = Ne.rendering, st = at ? null : Ne.failed ?? null, ft = !1, Ge = Ee && de, rt = Ee && !we && de && !(Ne.listed && Ne.listed.lang === ve && Ne.listed.recordingId === t), ct = {
4246
+ const ut = Ne.rendering, st = ut ? null : Ne.failed ?? null, pt = !1, Ge = Ee && de, rt = Ee && !we && de && !(Ne.listed && Ne.listed.lang === ve && Ne.listed.recordingId === t), Mt = {
4226
4247
  ...$e,
4227
4248
  has: $e.has || Ge && s,
4228
4249
  toggle: () => {
@@ -4235,57 +4256,57 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4235
4256
  pause: () => {
4236
4257
  Se(!1), $e.pause();
4237
4258
  }
4238
- }, Qe = () => Z(!0), Xt = () => {
4259
+ }, it = () => Z(!0), Ve = () => {
4239
4260
  Z(!1), pe(le), Te(!1);
4240
- }, At = (P) => {
4261
+ }, un = (P) => {
4241
4262
  if (d(P), K(P), !((M || y) && !le)) {
4242
4263
  if (P != null) {
4243
- Xt();
4264
+ Ve();
4244
4265
  return;
4245
4266
  }
4246
4267
  Q.reset(), Z(!1), pe(!1), Te(!1);
4247
4268
  }
4248
- }, Xe = () => {
4269
+ }, St = () => {
4249
4270
  Q.reset(), pe(!0);
4250
- }, ut = () => {
4271
+ }, Je = () => {
4251
4272
  Q.reset(), pe(!1);
4252
- }, ot = ne && !le, wt = J || ne && le, re = () => {
4253
- if (ot) {
4273
+ }, lt = ne && !le, at = J || ne && le, Jt = () => {
4274
+ if (lt) {
4254
4275
  Z(!1);
4255
4276
  return;
4256
4277
  }
4257
4278
  Q.reset(), pe(!1), Te(!1), Z(!0);
4258
- }, en = () => {
4259
- if (Q.reset(), wt) {
4279
+ }, re = () => {
4280
+ if (Q.reset(), at) {
4260
4281
  pe(!1), Z(!1), Te(!1);
4261
4282
  return;
4262
4283
  }
4263
4284
  Z(!1), Te(!1), pe(!0);
4264
- }, O = (P) => {
4285
+ }, dn = (P) => {
4265
4286
  if (Q.reset(), pe(Me), (ve !== De || we) && d(De), Ne.forget(), Se(!0), Me && ue != null && De) {
4266
- const Ce = new Map(ae);
4267
- Ce.set(ue, P), Be((Ve) => ({ ...Ve, [De]: Object.fromEntries(Ce) })), ie(null);
4287
+ const xe = new Map(ae);
4288
+ xe.set(ue, P), Be((Qe) => ({ ...Qe, [De]: Object.fromEntries(xe) })), ie(null);
4268
4289
  return;
4269
4290
  }
4270
4291
  ie(P);
4271
- }, dt = we ? { ...Cr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Et = c ? M ? /* @__PURE__ */ i("span", { className: "barchip", style: ot ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Yn, { flag: dt.flag, code: dt.code, bordered: !1, onClick: re, flagOnly: !0, label: dt.label }) }) : /* @__PURE__ */ i(Yn, { flag: dt.flag, code: dt.code, bordered: !1, onClick: Qe, flagOnly: !0, label: dt.label }) : null, Vt = X.voiceClone, bt = Ee && (!!Ne.track || at), Vn = st ? "var(--conf-low)" : bt || M && wt ? "var(--brand)" : "var(--ink-55)", _t = Ic({ on: Ee, want: je, relang: rt, playing: $e.playing, preparing: !!$e.preparing, starting: $e.starting }), [qe] = na(_t === "line", 400), ht = _t === "asked" || _t === "line" && qe, vt = at || ht, Lt = _t === "asked" ? pi : $e.preparing ? `Speaking this line in ${(Le == null ? void 0 : Le.name) ?? "this voice"}…` : at ? `Preparing this recording in ${(Le == null ? void 0 : Le.name) ?? "this voice"} — it will play as soon as it is ready` : st ? `This voice could not be prepared: ${st}` : se ? ye ? "Choose a voice" : Le ? Le.name : ke.vcNoVoice + G.label : `${ke.vcNoVoice}${G.label}`, kt = /* @__PURE__ */ i(wo, { open: ne, onClose: Xt, keepOpen: (!!M || y) && !le, value: we ? null : ve, onSelect: At, languages: Ie, title: (M == null ? void 0 : M.title) ?? "SPOKEN LANGUAGE", note: (M == null ? void 0 : M.note) ?? Vc, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te, requireVoice: le, sticky: y, busy: j }), Ht = ze(() => W.filter((P) => P.cloned && !P.auto), [W]), Yt = (P) => P.voiceId ? Ht.find((Ce) => Ce.id === `clone:${P.voiceId}`) ?? null : null, Mt = ze(() => $.filter((P) => P.key >= 0), [$]), tn = ze(() => {
4272
- const P = W.filter((Ve) => !Ve.cloned);
4273
- if (!Me) return [...P, ...s && Mt.length === 1 ? Ht.filter((Ve) => Ve.id === `clone:${Mt[0].voiceId}`) : []];
4274
- const Ce = [];
4275
- for (const Ve of Mt) {
4276
- if (Yt(Ve)) continue;
4277
- const mt = W.find((on) => on.cloned && on.auto && on.speaker === Ve.key);
4278
- !mt || mt.ready === !1 || mt.consent === "pending" && !b || Ce.push({ id: mt.id, name: Ve.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Ve.sex ?? mt.gender ?? null, speaker: Ve.key, consent: mt.consent ?? null });
4292
+ }, z = we ? { ...Cr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Vn = c ? M ? /* @__PURE__ */ i("span", { className: "barchip", style: lt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Yn, { flag: z.flag, code: z.code, bordered: !1, onClick: Jt, flagOnly: !0, label: z.label }) }) : /* @__PURE__ */ i(Yn, { flag: z.flag, code: z.code, bordered: !1, onClick: it, flagOnly: !0, label: z.label }) : null, Dt = X.voiceClone, At = Ee && (!!Ne.track || ut), Et = st ? "var(--conf-low)" : At || M && at ? "var(--brand)" : "var(--ink-55)", Vt = Ic({ on: Ee, want: je, relang: rt, playing: $e.playing, preparing: !!$e.preparing, starting: $e.starting }), [hn] = Xi(Vt === "line", 400), qe = Vt === "asked" || Vt === "line" && hn, ot = ut || qe, Xt = Vt === "asked" ? Mi : $e.preparing ? `Speaking this line in ${(Le == null ? void 0 : Le.name) ?? "this voice"}…` : ut ? `Preparing this recording in ${(Le == null ? void 0 : Le.name) ?? "this voice"} — it will play as soon as it is ready` : st ? `This voice could not be prepared: ${st}` : se ? ye ? "Choose a voice" : Le ? Le.name : ke.vcNoVoice + G.label : `${ke.vcNoVoice}${G.label}`, mt = /* @__PURE__ */ i(yo, { open: ne, onClose: Ve, keepOpen: (!!M || y) && !le, value: we ? null : ve, onSelect: un, languages: Ie, title: (M == null ? void 0 : M.title) ?? "SPOKEN LANGUAGE", note: (M == null ? void 0 : M.note) ?? Vc, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te, requireVoice: le, sticky: y, busy: j }), gt = ze(() => W.filter((P) => P.cloned && !P.auto), [W]), Ht = (P) => P.voiceId ? gt.find((xe) => xe.id === `clone:${P.voiceId}`) ?? null : null, dt = ze(() => $.filter((P) => P.key >= 0), [$]), en = ze(() => {
4293
+ const P = W.filter((Qe) => !Qe.cloned);
4294
+ if (!Me) return [...P, ...s && dt.length === 1 ? gt.filter((Qe) => Qe.id === `clone:${dt[0].voiceId}`) : []];
4295
+ const xe = [];
4296
+ for (const Qe of dt) {
4297
+ if (Ht(Qe)) continue;
4298
+ const bt = W.find((Rt) => Rt.cloned && Rt.auto && Rt.speaker === Qe.key);
4299
+ !bt || bt.ready === !1 || bt.consent === "pending" && !b || xe.push({ id: bt.id, name: Qe.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Qe.sex ?? bt.gender ?? null, speaker: Qe.key, consent: bt.consent ?? null });
4279
4300
  }
4280
- return [...P, ...Ht, ...Ce];
4281
- }, [W, Ht, Me, Mt, b, s]), it = Me ? Mt.find((P) => P.key === ue) ?? null : null, Ct = (P) => {
4282
- var Ce;
4283
- return P ? ((Ce = W.find((Ve) => Ve.id === P)) == null ? void 0 : Ce.gender) ?? null : null;
4284
- }, Ze = it ? it.sex ?? Ct(ae.get(it.key)) : null, Wt = ze(() => it ? tn.filter((P) => P.cloned ? P.live ? P.speaker === it.key : P.id === `clone:${it.voiceId}` : !0) : tn, [tn, it, Ze, Mt]), nn = (P) => W.find((Ce) => Ce.cloned && Ce.auto && Ce.speaker === P) ?? null, pt = { people: Mt, gvList: W, autoOf: nn, savedFor: Yt }, Ke = (A == null ? void 0 : A(pt)) ?? 0, rn = F ? Mt.map((P) => F(P, pt)).filter((P) => !!P) : [], Ut = /* @__PURE__ */ g("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": M ? wt : void 0, "aria-busy": vt || void 0, title: vt || st ? Lt : void 0, style: { cursor: "pointer", background: bt || vt || M && wt ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: M && wt ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: M ? en : Xe, children: [
4285
- /* @__PURE__ */ i(oe, { d: Vt, size: 17, sw: 1.6, style: { color: Vn } }),
4286
- vt && /* @__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" } }),
4287
- rn.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: rn.join(" · "), children: "!" }) : !!Ke && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Ke} speaker${Ke === 1 ? "" : "s"} can get a cloned voice`, children: Ke })
4288
- ] }), gn = /* @__PURE__ */ i(Jt, { open: J, onClose: ut, title: ke.vcSheet, titleNode: T, doneLabel: ke.done, children: /* @__PURE__ */ i(
4301
+ return [...P, ...gt, ...xe];
4302
+ }, [W, gt, Me, dt, b, s]), ct = Me ? dt.find((P) => P.key === ue) ?? null : null, tn = (P) => {
4303
+ var xe;
4304
+ return P ? ((xe = W.find((Qe) => Qe.id === P)) == null ? void 0 : xe.gender) ?? null : null;
4305
+ }, zt = ct ? ct.sex ?? tn(ae.get(ct.key)) : null, Ze = ze(() => ct ? en.filter((P) => P.cloned ? P.live ? P.speaker === ct.key : P.id === `clone:${ct.voiceId}` : !0) : en, [en, ct, zt, dt]), _t = (P) => W.find((xe) => xe.cloned && xe.auto && xe.speaker === P) ?? null, wt = { people: dt, gvList: W, autoOf: _t, savedFor: Ht }, Yt = (A == null ? void 0 : A(wt)) ?? 0, et = F ? dt.map((P) => F(P, wt)).filter((P) => !!P) : [], Mn = /* @__PURE__ */ g("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": M ? at : void 0, "aria-busy": ot || void 0, title: ot || st ? Xt : void 0, style: { cursor: "pointer", background: At || ot || M && at ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: M && at ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: M ? re : St, children: [
4306
+ /* @__PURE__ */ i(oe, { d: Dt, size: 17, sw: 1.6, style: { color: Et } }),
4307
+ ot && /* @__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" } }),
4308
+ et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!Yt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Yt} speaker${Yt === 1 ? "" : "s"} can get a cloned voice`, children: Yt })
4309
+ ] }), It = /* @__PURE__ */ i(Kt, { open: J, onClose: Je, title: ke.vcSheet, titleNode: T, doneLabel: ke.done, children: /* @__PURE__ */ i(
4289
4310
  tc,
4290
4311
  {
4291
4312
  t: ke,
@@ -4298,24 +4319,24 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4298
4319
  onSelect: (P) => {
4299
4320
  Q.reset(), Ae(P), S == null || S(P);
4300
4321
  },
4301
- noClone: (P) => !!(Y != null && Y(P, pt)),
4302
- short: (P) => !!(ee != null && ee(P, pt)),
4303
- warn: (P) => (F == null ? void 0 : F(P, pt)) ?? null,
4304
- building: (P) => !Yt(P) && (W.some((Ce) => Ce.cloned && Ce.speaker === P.key && Ce.ready === !1) || !!(z != null && z(P, pt))),
4305
- sexOf: (P) => P.sex ?? Ct(ae.get(P.key))
4322
+ noClone: (P) => !!(Y != null && Y(P, wt)),
4323
+ short: (P) => !!(ee != null && ee(P, wt)),
4324
+ warn: (P) => (F == null ? void 0 : F(P, wt)) ?? null,
4325
+ building: (P) => !Ht(P) && (W.some((xe) => xe.cloned && xe.speaker === P.key && xe.ready === !1) || !!(I != null && I(P, wt))),
4326
+ sexOf: (P) => P.sex ?? tn(ae.get(P.key))
4306
4327
  }
4307
4328
  ),
4308
- voices: Wt,
4329
+ voices: Ze,
4309
4330
  onAdd: (P) => {
4310
- Q.reset(), I == null || I(P);
4331
+ Q.reset(), O == null || O(P);
4311
4332
  },
4312
- noClone: it && !Wt.some((P) => P.cloned) ? (B == null ? void 0 : B(it, nn(it.key), pt)) ?? null : null,
4333
+ noClone: ct && !Ze.some((P) => P.cloned) ? (B == null ? void 0 : B(ct, _t(ct.key), wt)) ?? null : null,
4313
4334
  usedBy: Me && ue != null ? (P) => {
4314
- const Ce = $.filter((Ve) => Ve.key !== ue && ae.get(Ve.key) === P.id);
4315
- return Ce.length ? Ce.map((Ve) => Ve.name).join(", ") : null;
4335
+ const xe = $.filter((Qe) => Qe.key !== ue && ae.get(Qe.key) === P.id);
4336
+ return xe.length ? xe.map((Qe) => Qe.name).join(", ") : null;
4316
4337
  } : void 0,
4317
4338
  foldKey: ue,
4318
- foldFor: Ze,
4339
+ foldFor: zt,
4319
4340
  currentId: Me && ue != null ? ae.get(ue) ?? null : be,
4320
4341
  armedId: Q.armId,
4321
4342
  sampleId: Q.sampleId,
@@ -4331,50 +4352,50 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4331
4352
  }
4332
4353
  Q.arm(P);
4333
4354
  },
4334
- onUse: O
4355
+ onUse: dn
4335
4356
  }
4336
- ) }), Hn = M ? null : /* @__PURE__ */ g(xe, { children: [
4337
- kt,
4338
- gn
4339
- ] }), xt = M && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? kt : gn }) : null, Wn = Ge ? st ? `This voice could not be prepared: ${st}` : ht && (je || $e.playing) ? pi : null : null, Fn = ft;
4357
+ ) }), Hn = M ? null : /* @__PURE__ */ g(Ce, { children: [
4358
+ mt,
4359
+ It
4360
+ ] }), Wn = M && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt : It }) : null, Ot = Ge ? st ? `This voice could not be prepared: ${st}` : qe && (je || $e.playing) ? Mi : null : null, Fn = pt;
4340
4361
  return {
4341
- barChip: { flag: dt.flag, code: dt.code, label: dt.label, onClick: M || y ? re : Qe, active: !!((M || y) && ot), can: c },
4362
+ barChip: { flag: z.flag, code: z.code, label: z.label, onClick: M || y ? Jt : it, active: !!((M || y) && lt), can: c },
4342
4363
  sheetsOpen: ne || J,
4343
4364
  on: Ge,
4344
- player: ct,
4345
- chip: Et,
4346
- voiceBtn: Ut,
4347
- voiceWaiting: vt,
4365
+ player: Mt,
4366
+ chip: Vn,
4367
+ voiceBtn: Mn,
4368
+ voiceWaiting: ot,
4348
4369
  sheets: Hn,
4349
- sidePanel: xt,
4350
- voicesMine: wt,
4351
- toggleVoices: en,
4370
+ sidePanel: Wn,
4371
+ voicesMine: at,
4372
+ toggleVoices: re,
4352
4373
  cloningOn: H,
4353
- playTitle: Wn,
4354
- noVoice: ft,
4374
+ playTitle: Ot,
4375
+ noVoice: pt,
4355
4376
  noVoiceNote: Fn,
4356
4377
  relang: rt,
4357
4378
  sampling: Q.sampleId != null,
4358
4379
  error: Q.error,
4359
4380
  clearError: () => Q.clearError(),
4360
- openVoices: Xe,
4361
- openPicker: Qe,
4381
+ openVoices: St,
4382
+ openPicker: it,
4362
4383
  original: we,
4363
4384
  reloadVoices: () => x((P) => P + 1),
4364
4385
  voicesVer: E,
4365
- people: Mt,
4386
+ people: dt,
4366
4387
  gvList: W,
4367
- autoOf: nn,
4368
- savedFor: Yt,
4369
- closeVoices: ut,
4388
+ autoOf: _t,
4389
+ savedFor: Ht,
4390
+ closeVoices: Je,
4370
4391
  setSheet: pe,
4371
- selectedSpeaker: it,
4392
+ selectedSpeaker: ct,
4372
4393
  armVoice: Q.arm,
4373
4394
  resetPreview: Q.reset,
4374
4395
  armedId: Q.armId,
4375
4396
  resetCast: () => Be((P) => ({ ...P, [De ?? ""]: {} })),
4376
4397
  readLang: typeof u == "string" && u !== l ? u : null,
4377
- readVoiceKey: p || (U ?? v ?? ((an = Ne.track) == null ? void 0 : an.voiceKey) ?? ""),
4398
+ readVoiceKey: p || (U ?? v ?? ((nn = Ne.track) == null ? void 0 : nn.voiceKey) ?? ""),
4378
4399
  pickedVoiceKey: U ?? v ?? null,
4379
4400
  readVoiceName: (Le == null ? void 0 : Le.name) ?? null,
4380
4401
  canSpeak: se,
@@ -4383,17 +4404,17 @@ function Wc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
4383
4404
  clips: Ne.clips,
4384
4405
  setNear: Ne.setNear,
4385
4406
  closePicker: () => {
4386
- ot && Xt();
4407
+ lt && Ve();
4387
4408
  },
4388
- langList: { value: we ? null : ve, onSelect: At, languages: Ie, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te }
4409
+ langList: { value: we ? null : ve, onSelect: un, languages: Ie, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te }
4389
4410
  };
4390
4411
  }
4391
- function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: m, desk: y, feedRef: j, listener: N, showLabels: p, find: I, findOpen: C, lang: S, warm: B, onVisible: Y, wordHl: ee = !0 }) {
4392
- const { playing: z, engaged: F, t: A, idx: T, seekN: _, wordSync: b, clipPos: te } = n;
4412
+ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: m, desk: y, feedRef: j, listener: N, showLabels: p, find: O, findOpen: C, lang: S, warm: B, onVisible: Y, wordHl: ee = !0 }) {
4413
+ const { playing: I, engaged: F, t: A, idx: T, seekN: _, wordSync: b, clipPos: te } = n;
4393
4414
  fc(!0, j);
4394
4415
  const K = k(null);
4395
4416
  Bl(j, K);
4396
- const [v, ie] = L(null), ne = (I ?? "").trim().toLowerCase(), [Z, J] = L(0), pe = k(0), le = k(null), Te = k(T), je = (H) => {
4417
+ const [v, ie] = L(null), ne = (O ?? "").trim().toLowerCase(), [Z, J] = L(0), pe = k(0), le = k(null), Te = k(T), je = (H) => {
4397
4418
  var E;
4398
4419
  return ((E = j.current) == null ? void 0 : E.querySelector(`[data-tx-row="${H}"]`)) ?? null;
4399
4420
  }, Se = k("");
@@ -4447,7 +4468,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4447
4468
  }, []);
4448
4469
  const Re = k(0);
4449
4470
  D(() => {
4450
- if (!z) {
4471
+ if (!I) {
4451
4472
  Te.current = T, Re.current = 0, J(0);
4452
4473
  return;
4453
4474
  }
@@ -4460,7 +4481,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4460
4481
  H();
4461
4482
  const E = setInterval(H, 200);
4462
4483
  return () => clearInterval(E);
4463
- }, [T, z]), D(() => {
4484
+ }, [T, I]), D(() => {
4464
4485
  _ && Ee(T);
4465
4486
  }, [_]);
4466
4487
  const De = () => {
@@ -4471,19 +4492,19 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4471
4492
  ] }) });
4472
4493
  return /* @__PURE__ */ g("div", { ref: j, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${C && !m ? " is-find" : ""}`, children: [
4473
4494
  /* @__PURE__ */ i(Vl, { thumbRef: K }),
4474
- z && Z === -1 && Q("up"),
4495
+ I && Z === -1 && Q("up"),
4475
4496
  e.map((H, E) => {
4476
4497
  var Me;
4477
- const x = z && E === T, V = F && E === T, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(S && ((Me = H.translations[S]) != null && Me.toLowerCase().includes(ne))) ? 0.22 : !F || E <= T || ce ? 1 : 0.38, ye = N ? () => n.playRow(E) : c && l ? () => {
4478
- z && !x && n.seekRow(E), l(H);
4479
- } : z && x ? void 0 : () => n.playRow(E), G = N ? null : Fl(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && v === H.id && !!G && !ke, Fe = Ur(t, H.speaker), Ae = Rr(t, H.speaker), he = Ae.lane, _e = S && H.translations[S] && H.language !== S ? H.translations[S] : null, Be = ra(e, E, S), $ = V && !b && te ? Ai(Be.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
4498
+ const x = I && E === T, V = F && E === T, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(S && ((Me = H.translations[S]) != null && Me.toLowerCase().includes(ne))) ? 0.22 : !F || E <= T || ce ? 1 : 0.38, ye = N ? () => n.playRow(E) : c && l ? () => {
4499
+ I && !x && n.seekRow(E), l(H);
4500
+ } : I && x ? void 0 : () => n.playRow(E), G = N ? null : Fl(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && v === H.id && !!G && !ke, Fe = Ur(t, H.speaker), Ae = Rr(t, H.speaker), he = Ae.lane, _e = S && H.translations[S] && H.language !== S ? H.translations[S] : null, Be = ea(e, E, S), $ = V && !b && te ? xi(Be.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
4480
4501
  return /* @__PURE__ */ g("div", { "data-tx-row": E, "data-sentence": H.sentenceId, className: `txline${B ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: W }, onClick: ye, onMouseEnter: y && a ? () => ie(H.id) : void 0, onMouseLeave: y && a ? () => ie(null) : void 0, children: [
4481
4502
  /* @__PURE__ */ g("div", { className: "txline__meta", children: [
4482
- /* @__PURE__ */ i("span", { className: "txline__at", children: It(H.start) }),
4483
- p && H.speaker >= 0 && /* @__PURE__ */ g(xe, { children: [
4484
- /* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: Bi(t, H.speaker) }),
4503
+ /* @__PURE__ */ i("span", { className: "txline__at", children: kt(H.start) }),
4504
+ p && H.speaker >= 0 && /* @__PURE__ */ g(Ce, { children: [
4505
+ /* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: Pi(t, H.speaker) }),
4485
4506
  /* @__PURE__ */ i("span", { className: `txline__who lane-${he}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
4486
- Ae.hasVoice && /* @__PURE__ */ i(Xi, { color: Ae.fg ?? `var(--lane-${he})` })
4507
+ Ae.hasVoice && /* @__PURE__ */ i(qi, { color: Ae.fg ?? `var(--lane-${he})` })
4487
4508
  ] }),
4488
4509
  x && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: X.headphones, size: y ? 15 : 14, sw: 1.6, stroke: p && H.speaker >= 0 ? Ae.fg ?? `var(--lane-${he})` : "var(--ink-45)" }) }),
4489
4510
  G && M && /* @__PURE__ */ i(Zl, { f: G, desk: y, onOpen: a ? () => a(H, !0) : void 0 }),
@@ -4496,20 +4517,20 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4496
4517
  "span",
4497
4518
  {
4498
4519
  className: "txw",
4499
- title: o && !_e ? c ? "Correct this word" : x && z && n.seekWord ? "Play from this word" : "Play from this line" : x ? "" : "Play from this line",
4520
+ title: o && !_e ? c ? "Correct this word" : x && I && n.seekWord ? "Play from this word" : "Play from this line" : x ? "" : "Play from this line",
4500
4521
  onClick: o && !_e ? (Le) => {
4501
4522
  var be;
4502
4523
  if (Le.stopPropagation(), c) {
4503
4524
  o(H, ue);
4504
4525
  return;
4505
4526
  }
4506
- if (z && x) {
4527
+ if (I && x) {
4507
4528
  (be = n.seekWord) == null || be.call(n, ue);
4508
4529
  return;
4509
4530
  }
4510
4531
  n.playRow(E);
4511
4532
  } : void 0,
4512
- style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !z || n.seekWord ? "pointer" : "default" : x ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || se ? "underline" : "none", textDecorationStyle: se ? "solid" : "dotted", textDecorationColor: se ? "var(--brand)" : Oe ?? "currentColor", textDecorationThickness: de || se ? "1.5px" : void 0, textUnderlineOffset: de || se ? "3px" : void 0 },
4533
+ style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !I || n.seekWord ? "pointer" : "default" : x ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || se ? "underline" : "none", textDecorationStyle: se ? "solid" : "dotted", textDecorationColor: se ? "var(--brand)" : Oe ?? "currentColor", textDecorationThickness: de || se ? "1.5px" : void 0, textUnderlineOffset: de || se ? "3px" : void 0 },
4513
4534
  children: ue.text
4514
4535
  }
4515
4536
  ),
@@ -4523,7 +4544,7 @@ function Fc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
4523
4544
  /* @__PURE__ */ i("span", {}),
4524
4545
  /* @__PURE__ */ i("span", {})
4525
4546
  ] }) }) : /* @__PURE__ */ i("div", { className: "txtail", style: { color: f }, children: h }),
4526
- z && Z === 1 && Q("down")
4547
+ I && Z === 1 && Q("down")
4527
4548
  ] });
4528
4549
  }
4529
4550
  function Zc({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
@@ -4569,8 +4590,8 @@ function Gc(t, e, n, r, s) {
4569
4590
  };
4570
4591
  }, []), l;
4571
4592
  }
4572
- const hn = { 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] };
4573
- function sa(t) {
4593
+ const ln = { 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] };
4594
+ function ta(t) {
4574
4595
  let e = (16 * t + 128) * t + 64;
4575
4596
  if (t >= 2) {
4576
4597
  const n = Math.floor(t / 7) + 2;
@@ -4578,7 +4599,7 @@ function sa(t) {
4578
4599
  }
4579
4600
  return e;
4580
4601
  }
4581
- const Ni = (t) => Math.floor(sa(t) / 8) - hn.perBlock[t] * hn.blocks[t];
4602
+ const fi = (t) => Math.floor(ta(t) / 8) - ln.perBlock[t] * ln.blocks[t];
4582
4603
  function Sr(t, e) {
4583
4604
  let n = 0;
4584
4605
  for (let r = 7; r >= 0; r--)
@@ -4614,10 +4635,10 @@ function Jc(t) {
4614
4635
  function Xc(t) {
4615
4636
  const e = Array.from(new TextEncoder().encode(t));
4616
4637
  let n = 1;
4617
- for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Ni(n) * 8); n++)
4638
+ for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= fi(n) * 8); n++)
4618
4639
  ;
4619
4640
  if (n > 40) throw new Error("Text too long for a QR code");
4620
- const r = n * 4 + 17, s = Ni(n) * 8, a = [], o = (T, _) => {
4641
+ const r = n * 4 + 17, s = fi(n) * 8, a = [], o = (T, _) => {
4621
4642
  for (let b = _ - 1; b >= 0; b--) a.push(T >>> b & 1);
4622
4643
  };
4623
4644
  o(4, 4), o(e.length, n <= 9 ? 8 : 16);
@@ -4626,7 +4647,7 @@ function Xc(t) {
4626
4647
  for (let T = 236; a.length < s; T ^= 253) o(T, 8);
4627
4648
  const l = [];
4628
4649
  for (let T = 0; T < a.length; T += 8) l.push(a.slice(T, T + 8).reduce((_, b) => _ << 1 | b, 0));
4629
- const c = hn.blocks[n], u = hn.perBlock[n], d = Math.floor(sa(n) / 8), M = c - d % c, h = Math.floor(d / c), f = [], m = qc(u);
4650
+ const c = ln.blocks[n], u = ln.perBlock[n], d = Math.floor(ta(n) / 8), M = c - d % c, h = Math.floor(d / c), f = [], m = qc(u);
4630
4651
  for (let T = 0, _ = 0; T < c; T++) {
4631
4652
  const b = l.slice(_, _ + h - u + (T < M ? 0 : 1));
4632
4653
  _ += b.length;
@@ -4642,19 +4663,19 @@ function Xc(t) {
4642
4663
  };
4643
4664
  for (let T = 0; T < r; T++)
4644
4665
  p(6, T, T % 2 === 0), p(T, 6, T % 2 === 0);
4645
- const I = (T, _) => {
4666
+ const O = (T, _) => {
4646
4667
  for (let b = -4; b <= 4; b++) for (let te = -4; te <= 4; te++) {
4647
4668
  const K = Math.max(Math.abs(te), Math.abs(b)), v = T + te, ie = _ + b;
4648
4669
  v >= 0 && v < r && ie >= 0 && ie < r && p(v, ie, K !== 2 && K !== 4);
4649
4670
  }
4650
4671
  };
4651
- I(3, 3), I(r - 4, 3), I(3, r - 4);
4672
+ O(3, 3), O(r - 4, 3), O(3, r - 4);
4652
4673
  const C = Jc(n);
4653
4674
  for (let T = 0; T < C.length; T++) for (let _ = 0; _ < C.length; _++)
4654
4675
  if (!(T === 0 && _ === 0 || T === 0 && _ === C.length - 1 || T === C.length - 1 && _ === 0))
4655
4676
  for (let b = -2; b <= 2; b++) for (let te = -2; te <= 2; te++) p(C[T] + te, C[_] + b, Math.max(Math.abs(te), Math.abs(b)) !== 1);
4656
4677
  const S = (T) => {
4657
- const _ = hn.formatBits << 3 | T;
4678
+ const _ = ln.formatBits << 3 | T;
4658
4679
  let b = _;
4659
4680
  for (let v = 0; v < 10; v++) b = b << 1 ^ (b >>> 9) * 1335;
4660
4681
  const te = (_ << 10 | b) ^ 21522, K = (v) => (te >>> v & 1) !== 0;
@@ -4703,7 +4724,7 @@ function Xc(t) {
4703
4724
  }
4704
4725
  }, ee = (T) => {
4705
4726
  for (let _ = 0; _ < r; _++) for (let b = 0; b < r; b++) !N[_][b] && Y(T, b, _) && (j[_][b] = !j[_][b]);
4706
- }, z = () => {
4727
+ }, I = () => {
4707
4728
  let T = 0;
4708
4729
  const _ = (ne) => {
4709
4730
  const Z = ne[1], J = Z > 0 && ne[2] === Z && ne[3] === Z * 3 && ne[4] === Z && ne[5] === Z;
@@ -4731,7 +4752,7 @@ function Xc(t) {
4731
4752
  let F = 0, A = 1 / 0;
4732
4753
  for (let T = 0; T < 8; T++) {
4733
4754
  ee(T), S(T);
4734
- const _ = z();
4755
+ const _ = I();
4735
4756
  _ < A && (A = _, F = T), ee(T);
4736
4757
  }
4737
4758
  return ee(F), S(F), j;
@@ -4743,16 +4764,16 @@ function eu(t) {
4743
4764
  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>`;
4744
4765
  return `data:image/svg+xml,${encodeURIComponent(a)}`;
4745
4766
  }
4746
- const ia = "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", tu = "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";
4767
+ const na = "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", tu = "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";
4747
4768
  function yr() {
4748
4769
  const t = document;
4749
4770
  return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
4750
4771
  }
4751
4772
  let Br = null;
4752
- function yi(t) {
4773
+ function pi(t) {
4753
4774
  Br = t;
4754
4775
  }
4755
- function Ti() {
4776
+ function mi() {
4756
4777
  const t = document;
4757
4778
  return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
4758
4779
  }
@@ -4762,7 +4783,7 @@ function nu() {
4762
4783
  const t = Br ?? document.documentElement;
4763
4784
  return !t.requestFullscreen && !t.webkitRequestFullscreen;
4764
4785
  }
4765
- function un(t) {
4786
+ function an(t) {
4766
4787
  var e;
4767
4788
  typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches) || An(t);
4768
4789
  }
@@ -4799,7 +4820,7 @@ function En({ pos: t, interactive: e, axis: n = "x" }) {
4799
4820
  const u = a(c);
4800
4821
  s(null), t.onSeek(u);
4801
4822
  }, l = r != null ? r * 100 : t.pct;
4802
- return /* @__PURE__ */ g(xe, { children: [
4823
+ return /* @__PURE__ */ g(Ce, { children: [
4803
4824
  /* @__PURE__ */ i("span", { className: `gfull__t${e ? " gfull__t--at" : ""}`, children: r != null ? t.labelAt(r) : t.atLabel }),
4804
4825
  /* @__PURE__ */ i(
4805
4826
  "div",
@@ -4883,7 +4904,7 @@ function _n({ t, mini: e }) {
4883
4904
  disabled: !t.playable,
4884
4905
  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" },
4885
4906
  onClick: t.onPlay,
4886
- children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(eo, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(Mn, { size: e ? 15 : 19 })
4907
+ children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(Ja, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(cn, { size: e ? 15 : 19 })
4887
4908
  }
4888
4909
  ),
4889
4910
  /* @__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: X.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
@@ -4891,7 +4912,7 @@ function _n({ t, mini: e }) {
4891
4912
  }
4892
4913
  function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
4893
4914
  return /* @__PURE__ */ g("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
4894
- /* @__PURE__ */ i("a", { href: Ii, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Ar, { dark: !0, size: 22 }) : /* @__PURE__ */ i($n, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
4915
+ /* @__PURE__ */ i("a", { href: ki, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Ar, { dark: !0, size: 22 }) : /* @__PURE__ */ i($n, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
4895
4916
  t && /* @__PURE__ */ g("span", { className: "gfull__live", children: [
4896
4917
  /* @__PURE__ */ i("i", {}),
4897
4918
  "LIVE"
@@ -4899,7 +4920,7 @@ function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
4899
4920
  r != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${r}%` })
4900
4921
  ] });
4901
4922
  }
4902
- function aa({ v: t, size: e }) {
4923
+ function ra({ v: t, size: e }) {
4903
4924
  return /* @__PURE__ */ g("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: [
4904
4925
  /* @__PURE__ */ i(oe, { d: X.headphones, size: e, sw: 1.6 }),
4905
4926
  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" } })
@@ -4915,18 +4936,18 @@ function su({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
4915
4936
  /* @__PURE__ */ i(_n, { t: e, mini: !0 }),
4916
4937
  /* @__PURE__ */ i("span", { style: { flex: 1 } }),
4917
4938
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
4918
- /* @__PURE__ */ i(aa, { v: r, size: 14 }),
4939
+ /* @__PURE__ */ i(ra, { v: r, size: 14 }),
4919
4940
  s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
4920
4941
  l.stopPropagation(), s();
4921
4942
  }, children: /* @__PURE__ */ i(oe, { d: X.share, size: 13, sw: 1.8 }) }),
4922
- /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: ia, size: 14, sw: 1.8 }) })
4943
+ /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: na, size: 14, sw: 1.8 }) })
4923
4944
  ] })
4924
4945
  ] }),
4925
4946
  o
4926
4947
  ] });
4927
4948
  }
4928
4949
  const iu = { color: "rgba(255,255,255,.4)" };
4929
- function oa({ 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: M, ad: h, chip: f, transport: m, picker: y, sheet: j, voices: N, voicesBtn: p, sheetOpen: I, onShare: C, onSettings: S, paused: B, copied: Y, onTouch: ee, onClose: z }) {
4950
+ function sa({ 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: M, ad: h, chip: f, transport: m, picker: y, sheet: j, voices: N, voicesBtn: p, sheetOpen: O, onShare: C, onSettings: S, paused: B, copied: Y, onTouch: ee, onClose: I }) {
4930
4951
  const [F, A] = L(() => !!yr());
4931
4952
  D(() => {
4932
4953
  const $ = () => A(!!yr());
@@ -4934,8 +4955,8 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
4934
4955
  document.removeEventListener("fullscreenchange", $), document.removeEventListener("webkitfullscreenchange", $);
4935
4956
  };
4936
4957
  }, []);
4937
- const T = k(z);
4938
- T.current = z;
4958
+ const T = k(I);
4959
+ T.current = I;
4939
4960
  const _ = k(m.playable ? m.onPlay : void 0);
4940
4961
  _.current = m.playable ? m.onPlay : void 0;
4941
4962
  const [b, te] = L(!1), [K, v] = L(0), ie = k(!1);
@@ -4971,11 +4992,11 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
4971
4992
  window.removeEventListener("scroll", ae), ue.remove(), document.documentElement.style.overscrollBehavior = Me[0][1], window.scrollTo(0, 0);
4972
4993
  };
4973
4994
  }, [ne, n]);
4974
- const pe = k(I);
4975
- pe.current = I, D(() => {
4995
+ const pe = k(O);
4996
+ pe.current = O, D(() => {
4976
4997
  const $ = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), Me = (ae) => {
4977
4998
  var fe;
4978
- ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) && Ti() && (ae.preventDefault(), ae.repeat || An(!yr()));
4999
+ ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) && mi() && (ae.preventDefault(), ae.repeat || An(!yr()));
4979
5000
  }, ue = (ae) => {
4980
5001
  ae.key === " " && !pe.current && !$(ae.target) && ae.preventDefault();
4981
5002
  };
@@ -4984,7 +5005,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
4984
5005
  };
4985
5006
  }, []);
4986
5007
  const le = ru("(orientation: landscape) and (max-height: 540px)"), Te = k(null), [je, Se] = L(null);
4987
- Kt(() => {
5008
+ qt(() => {
4988
5009
  const $ = Te.current;
4989
5010
  if (!$ || (Se($.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
4990
5011
  const Me = new ResizeObserver(([ue]) => Se(ue.contentRect.width));
@@ -4992,10 +5013,10 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
4992
5013
  }, []);
4993
5014
  const ve = t && !F, we = !ve && a && !le && (je == null || je >= 880), Ee = !we;
4994
5015
  D(() => {
4995
- if (te(!1), !m.playing || I) return;
5016
+ if (te(!1), !m.playing || O) return;
4996
5017
  const $ = setTimeout(() => te(!0), 3e3);
4997
5018
  return () => clearTimeout($);
4998
- }, [m.playing, I, K]);
5019
+ }, [m.playing, O, K]);
4999
5020
  const Re = k(b);
5000
5021
  Re.current = b;
5001
5022
  const De = k(0), Q = ($) => {
@@ -5003,7 +5024,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5003
5024
  const Me = Date.now();
5004
5025
  !Re.current && Me - De.current < 1e3 || (De.current = Me, v((ue) => ue + 1));
5005
5026
  }, H = !we && le, E = k(null), x = l ? l.words.map(($) => $.dim ? 0 : 1).join("") + l.words.length + ":" + (l.cursor ?? "") : "";
5006
- Kt(() => {
5027
+ qt(() => {
5007
5028
  const $ = E.current;
5008
5029
  if (!$) return;
5009
5030
  const Me = !!(l != null && l.words.some((de) => de.dim)) || (l == null ? void 0 : l.cursor) != null, ue = $.querySelectorAll((l == null ? void 0 : l.cursor) != null && !l.words.some((de) => de.dim) ? "[data-at]" : "[data-said]"), ae = parseFloat(getComputedStyle($).lineHeight) || 24, fe = Math.round($.scrollHeight / ae) - Math.round($.clientHeight / ae), Ye = Math.max(0, fe) * ae;
@@ -5029,7 +5050,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5029
5050
  /* @__PURE__ */ g("label", { className: "gfull__shareat", children: [
5030
5051
  /* @__PURE__ */ i("input", { type: "checkbox", checked: V, onChange: ($) => ce($.target.checked), disabled: B.share.at < 1 }),
5031
5052
  "Start at ",
5032
- It(Math.floor(B.share.at))
5053
+ kt(Math.floor(B.share.at))
5033
5054
  ] }),
5034
5055
  /* @__PURE__ */ i("div", { className: "gfull__shareurl", children: /* @__PURE__ */ i("span", { children: ke.replace(/^https?:\/\//, "") }) }),
5035
5056
  /* @__PURE__ */ g("div", { className: "gfull__shareacts", children: [
@@ -5044,10 +5065,10 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5044
5065
  ] })
5045
5066
  ] })
5046
5067
  ] }), he = ($, Me, ue, ae, fe, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: $, "aria-label": $, onClick: ae, children: /* @__PURE__ */ i(oe, { d: Me, size: (we ? 20 : Ee ? 15 : 18) + Ye, sw: ue, style: fe }) }), _e = /* @__PURE__ */ g("div", { className: "gfull__acts", children: [
5047
- p && /* @__PURE__ */ i(aa, { v: p, size: we ? 20 : Ee ? 15 : 18 }),
5068
+ p && /* @__PURE__ */ i(ra, { v: p, size: we ? 20 : Ee ? 15 : 18 }),
5048
5069
  C && he("Share", X.share, 1.6, C),
5049
- Ti() && !e && he(F ? "Exit full screen" : "Full screen", F ? tu : ia, 1.7, () => An(!F)),
5050
- z && he("Close player", X.close, 1.7, z)
5070
+ mi() && !e && he(F ? "Exit full screen" : "Full screen", F ? tu : na, 1.7, () => An(!F)),
5071
+ I && he("Close player", X.close, 1.7, I)
5051
5072
  ] }), Be = (d || M || S) && /* @__PURE__ */ g("div", { className: "gfull__top", children: [
5052
5073
  d && he(d.muted ? "Unmute" : "Mute", d.muted ? X.volumeOff : X.volume, 1.6, d.onToggle),
5053
5074
  M && he(M.on ? "Hide subtitles" : "Show subtitles", M.on ? X.cc : X.ccOff, 1.7, M.onToggle, void 0, 4),
@@ -5094,7 +5115,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5094
5115
  c
5095
5116
  ] }) }) : /* @__PURE__ */ i("div", { className: "gfull__sub", children: c }) : l && /* @__PURE__ */ i("div", { className: "gfull__sub", children: /* @__PURE__ */ g("div", { ref: E, children: [
5096
5117
  /* @__PURE__ */ i("div", { className: "gfull__subback", "aria-hidden": "true", children: /* @__PURE__ */ g("span", { children: [
5097
- l.who && /* @__PURE__ */ g(xe, { children: [
5118
+ l.who && /* @__PURE__ */ g(Ce, { children: [
5098
5119
  /* @__PURE__ */ g("b", { children: [
5099
5120
  l.who,
5100
5121
  ":"
@@ -5104,7 +5125,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5104
5125
  l.words.map(($) => $.t + $.sp).join("")
5105
5126
  ] }) }),
5106
5127
  /* @__PURE__ */ g("span", { children: [
5107
- l.who && /* @__PURE__ */ g(xe, { children: [
5128
+ l.who && /* @__PURE__ */ g(Ce, { children: [
5108
5129
  /* @__PURE__ */ g("b", { style: { color: l.color }, children: [
5109
5130
  l.who,
5110
5131
  ":"
@@ -5117,7 +5138,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5117
5138
  ] }, Me))
5118
5139
  ] })
5119
5140
  ] }) }),
5120
- /* @__PURE__ */ i("div", { className: `gfull__prog${we ? "" : " gfull__prog--two"}`, children: we ? /* @__PURE__ */ g(xe, { children: [
5141
+ /* @__PURE__ */ i("div", { className: `gfull__prog${we ? "" : " gfull__prog--two"}`, children: we ? /* @__PURE__ */ g(Ce, { children: [
5121
5142
  /* @__PURE__ */ i(Dr, { live: o.live, desk: !0, pct: u }),
5122
5143
  /* @__PURE__ */ i(_n, { t: m }),
5123
5144
  /* @__PURE__ */ i(En, { pos: o, interactive: !0 }),
@@ -5128,7 +5149,7 @@ function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
5128
5149
  /* @__PURE__ */ i(En, { pos: o, interactive: !0 }),
5129
5150
  /* @__PURE__ */ i("div", { className: "gfull__chip", children: f }),
5130
5151
  _e
5131
- ] }) : /* @__PURE__ */ g(xe, { children: [
5152
+ ] }) : /* @__PURE__ */ g(Ce, { children: [
5132
5153
  /* @__PURE__ */ g("div", { className: "gfull__row", children: [
5133
5154
  /* @__PURE__ */ i(Dr, { live: o.live, pct: u, mark: !0 }),
5134
5155
  /* @__PURE__ */ i(En, { pos: o, interactive: !0 })
@@ -5159,7 +5180,7 @@ function au({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o
5159
5180
  ] }),
5160
5181
  o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
5161
5182
  ] }) }),
5162
- /* @__PURE__ */ i(to, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ g("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
5183
+ /* @__PURE__ */ i(Xa, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ g("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
5163
5184
  /* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
5164
5185
  /* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
5165
5186
  /* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
@@ -5171,7 +5192,7 @@ function uu() {
5171
5192
  const t = new Uint8Array(24);
5172
5193
  return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
5173
5194
  }
5174
- function la(t, e, n) {
5195
+ function ia(t, e, n) {
5175
5196
  const r = new URL(t ?? Vr), s = uu(), a = new URL(cu, r);
5176
5197
  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);
5177
5198
  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)}`);
@@ -5213,20 +5234,20 @@ function la(t, e, n) {
5213
5234
  }) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
5214
5235
  }
5215
5236
  async function du(t, e, n) {
5216
- const r = await la(t, { url: e }, n);
5237
+ const r = await ia(t, { url: e }, n);
5217
5238
  return r === "connected" ? null : r;
5218
5239
  }
5219
- const ca = "vsp.connected";
5240
+ const aa = "vsp.connected";
5220
5241
  function hu(t) {
5221
5242
  try {
5222
- return localStorage.getItem(ca) === new URL(t ?? Vr).origin;
5243
+ return localStorage.getItem(aa) === new URL(t ?? Vr).origin;
5223
5244
  } catch {
5224
5245
  return !1;
5225
5246
  }
5226
5247
  }
5227
5248
  function Mu(t) {
5228
5249
  try {
5229
- localStorage.setItem(ca, new URL(t ?? Vr).origin);
5250
+ localStorage.setItem(aa, new URL(t ?? Vr).origin);
5230
5251
  } catch {
5231
5252
  }
5232
5253
  }
@@ -5272,7 +5293,7 @@ function pu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5272
5293
  /* @__PURE__ */ i("input", { className: "vsp-end__input", type: "url", inputMode: "url", autoComplete: "off", spellCheck: !1, placeholder: "https://youtube.com/watch?v=…", value: s, onChange: (y) => {
5273
5294
  a(y.target.value), u(null);
5274
5295
  }, "aria-label": "Video link" }),
5275
- /* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !f || o, children: o ? /* @__PURE__ */ i(lt, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
5296
+ /* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !f || o, children: o ? /* @__PURE__ */ i(ht, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
5276
5297
  ] }),
5277
5298
  o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: gu[d ?? "checking"] }),
5278
5299
  c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
@@ -5285,7 +5306,7 @@ function pu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
5285
5306
  ] })
5286
5307
  ] }) });
5287
5308
  }
5288
- function ua(t) {
5309
+ function oa(t) {
5289
5310
  const [e, n] = L(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
5290
5311
  return D(() => {
5291
5312
  if (t != null) return;
@@ -5295,7 +5316,7 @@ function ua(t) {
5295
5316
  }
5296
5317
  const mu = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
5297
5318
  function Nu(t, e) {
5298
- const n = Fi(), [r, s] = _i(), [a, o] = L(null), [l, c] = L("main"), u = Cr(n, t.lang), d = ze(() => Yi(n, "translation"), [n]), M = (Y) => {
5319
+ const n = Vi(), [r, s] = Di(), [a, o] = L(null), [l, c] = L("main"), u = Cr(n, t.lang), d = ze(() => Ai(n, "translation"), [n]), M = (Y) => {
5299
5320
  e({ lang: Y }), s(Y);
5300
5321
  }, h = _r({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: M, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), f = () => {
5301
5322
  o(null), c("main");
@@ -5307,23 +5328,23 @@ function Nu(t, e) {
5307
5328
  /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
5308
5329
  "Back"
5309
5330
  ] })
5310
- ] }), p = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, I = (Y, ee, z) => /* @__PURE__ */ g("div", { className: "srow", children: [
5331
+ ] }), p = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, O = (Y, ee, I) => /* @__PURE__ */ g("div", { className: "srow", children: [
5311
5332
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
5312
5333
  /* @__PURE__ */ i("div", { className: "srow__t", children: Y }),
5313
5334
  /* @__PURE__ */ i("div", { className: "srow__s", children: ee })
5314
5335
  ] }),
5315
- z
5336
+ I
5316
5337
  ] }), C = /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
5317
5338
  /* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: h.search }),
5318
5339
  h.list
5319
5340
  ] }), S = l === "lang" ? C : l === "subs" ? /* @__PURE__ */ g("div", { style: p, children: [
5320
- I("Show subtitles", "Captions over the video", /* @__PURE__ */ i(Tt, { checked: t.subtitles, onChange: (Y) => e({ subtitles: Y }), label: "Show subtitles" })),
5321
- I("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(Tt, { checked: t.speakerLabels, onChange: (Y) => e({ speakerLabels: Y }), label: "Show speaker labels" })),
5322
- I("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(Tt, { checked: t.wordHighlight, onChange: (Y) => e({ wordHighlight: Y }), label: "Highlight words" }))
5341
+ O("Show subtitles", "Captions over the video", /* @__PURE__ */ i(Tt, { checked: t.subtitles, onChange: (Y) => e({ subtitles: Y }), label: "Show subtitles" })),
5342
+ O("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(Tt, { checked: t.speakerLabels, onChange: (Y) => e({ speakerLabels: Y }), label: "Show speaker labels" })),
5343
+ O("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(Tt, { checked: t.wordHighlight, onChange: (Y) => e({ wordHighlight: Y }), label: "Highlight words" }))
5323
5344
  ] }) : l === "audio" ? /* @__PURE__ */ g("div", { style: p, children: [
5324
- I("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(Tt, { checked: t.translateAudio && !!t.lang, onChange: (Y) => e({ translateAudio: Y }), label: "Translate audio", disabled: !t.lang })),
5325
- I("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(wr, { value: t.voices, onChange: (Y) => e({ voices: Y }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
5326
- I(Un, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Tt, { checked: t.removeBackground, onChange: (Y) => e({ removeBackground: Y }), label: Un }))
5345
+ O("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(Tt, { checked: t.translateAudio && !!t.lang, onChange: (Y) => e({ translateAudio: Y }), label: "Translate audio", disabled: !t.lang })),
5346
+ O("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(wr, { value: t.voices, onChange: (Y) => e({ voices: Y }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
5347
+ O(Un, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Tt, { checked: t.removeBackground, onChange: (Y) => e({ removeBackground: Y }), label: Un }))
5327
5348
  ] }) : /* @__PURE__ */ g("div", { style: p, children: [
5328
5349
  /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
5329
5350
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
@@ -5349,9 +5370,9 @@ function Nu(t, e) {
5349
5370
  ] }),
5350
5371
  j
5351
5372
  ] })
5352
- ] }), B = /* @__PURE__ */ g(xe, { children: [
5353
- /* @__PURE__ */ i(Jt, { open: a === "lang", onClose: f, title: "LANGUAGE", kind: "picker", header: h.search, sticky: !0, children: /* @__PURE__ */ i(vr, { children: h.list }) }),
5354
- /* @__PURE__ */ i(Jt, { open: a === "settings", onClose: f, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : N, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: S }) })
5373
+ ] }), B = /* @__PURE__ */ g(Ce, { children: [
5374
+ /* @__PURE__ */ i(Kt, { open: a === "lang", onClose: f, title: "LANGUAGE", kind: "picker", header: h.search, sticky: !0, children: /* @__PURE__ */ i(vr, { children: h.list }) }),
5375
+ /* @__PURE__ */ i(Kt, { open: a === "settings", onClose: f, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : N, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: S }) })
5355
5376
  ] });
5356
5377
  return {
5357
5378
  chip: y,
@@ -5362,21 +5383,21 @@ function Nu(t, e) {
5362
5383
  }
5363
5384
  };
5364
5385
  }
5365
- const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }), $t = (t) => /* @__PURE__ */ g(xe, { children: [
5386
+ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }), $t = (t) => /* @__PURE__ */ g(Ce, { children: [
5366
5387
  /* @__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" }),
5367
5388
  /* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
5368
5389
  /* @__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 })
5369
- ] }), wi = [
5390
+ ] }), Ni = [
5370
5391
  { name: "YouTube", tint: "#ff3b30", glyph: yt("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") },
5371
5392
  { name: "MP3", tint: "#f78472", glyph: $t("MP3") },
5372
5393
  { name: "Vimeo", tint: "#1ab7ea", glyph: yt("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") },
5373
- { name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(xe, { children: [
5394
+ { name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(Ce, { children: [
5374
5395
  /* @__PURE__ */ i("rect", { x: "3", y: "5.5", width: "13", height: "13", rx: "2.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
5375
5396
  yt("M16 10.2 21 7v10l-5-3.2v-3.6Z")
5376
5397
  ] }) },
5377
5398
  { name: "Twitch", tint: "#a970ff", glyph: yt("M5 2.5 3 6.5v13h4.5V22H10l2.5-2.5h3.8L21 14.8V2.5H5Zm14 11.4-2.9 2.9h-4.3L9.4 19.2v-2.4H6V4.5h13v9.4ZM15.2 7.4h1.9v5.2h-1.9V7.4Zm-5 0h1.9v5.2h-1.9V7.4Z", "evenodd") },
5378
5399
  { name: "WAV", tint: "#7ee0b4", glyph: $t("WAV") },
5379
- { name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(xe, { children: [
5400
+ { name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(Ce, { children: [
5380
5401
  yt("M11 8.6a5 5 0 0 1 7.8 3.1 3 3 0 0 1-.3 6H11V8.6Z"),
5381
5402
  /* @__PURE__ */ i("rect", { x: "8.6", y: "9.4", width: "1.3", height: "8.3", rx: ".65", fill: "currentColor" }),
5382
5403
  /* @__PURE__ */ i("rect", { x: "6.2", y: "10.6", width: "1.3", height: "7.1", rx: ".65", fill: "currentColor" }),
@@ -5414,8 +5435,8 @@ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
5414
5435
  ] }) }
5415
5436
  ], yu = 14, Tu = 4;
5416
5437
  function wu(t) {
5417
- const e = wi.length, n = [];
5418
- for (let r = 0; r < 11; r++) n.push(wi[(r + t * 7) % e]);
5438
+ const e = Ni.length, n = [];
5439
+ for (let r = 0; r < 11; r++) n.push(Ni[(r + t * 7) % e]);
5419
5440
  return n;
5420
5441
  }
5421
5442
  function vu({ t }) {
@@ -5439,14 +5460,14 @@ function Lu() {
5439
5460
  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: Tu }, (c, u) => l.map((d, M) => /* @__PURE__ */ i(vu, { t: d }, `${u}-${M}`))) }, o);
5440
5461
  }) }) });
5441
5462
  }
5442
- const da = {
5463
+ const la = {
5443
5464
  "signing-in": "Sign in to VocalStack in the window that opened…",
5444
5465
  consent: "Confirm in the VocalStack window…",
5445
5466
  looking: "Looking for your transcription of this video…",
5446
5467
  confirm: "Confirm in the VocalStack window…",
5447
5468
  checking: "Checking the link…",
5448
5469
  starting: "Starting the transcription…"
5449
- }, vi = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5470
+ }, yi = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
5450
5471
  function Tr(t) {
5451
5472
  try {
5452
5473
  return new URL(t).hostname.replace(/^www\./, "");
@@ -5455,12 +5476,12 @@ function Tr(t) {
5455
5476
  }
5456
5477
  }
5457
5478
  function ku(t, e) {
5458
- const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() => hu(t)), d = Je((f) => {
5479
+ const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() => hu(t)), d = Ke((f) => {
5459
5480
  if (n) return;
5460
5481
  r(!0), l(null);
5461
5482
  let m;
5462
5483
  try {
5463
- m = la(t, f, a);
5484
+ m = ia(t, f, a);
5464
5485
  } catch (y) {
5465
5486
  m = Promise.reject(y);
5466
5487
  }
@@ -5469,15 +5490,15 @@ function ku(t, e) {
5469
5490
  }).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
5470
5491
  r(!1), a(null);
5471
5492
  });
5472
- }, [t, n, e]), M = Je(() => d({ connect: !0 }), [d]), h = Je((f, m) => d({ url: f, ask: m }), [d]);
5493
+ }, [t, n, e]), M = Ke(() => d({ connect: !0 }), [d]), h = Ke((f, m) => d({ url: f, ask: m }), [d]);
5473
5494
  return { busy: n, status: s, err: o, connected: c, connect: M, start: h };
5474
5495
  }
5475
5496
  function ju(t) {
5476
5497
  return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
5477
5498
  }
5478
5499
  function zu({ poster: t, src: e }) {
5479
- const n = e ? Ki(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
5480
- return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && ju(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__ */ g(xe, { children: [
5500
+ const n = e ? Zi(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
5501
+ return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && ju(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__ */ g(Ce, { children: [
5481
5502
  /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
5482
5503
  /* @__PURE__ */ i(Lu, {})
5483
5504
  ] });
@@ -5485,8 +5506,8 @@ function zu({ poster: t, src: e }) {
5485
5506
  const Iu = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
5486
5507
  } };
5487
5508
  function Pn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
5488
- const l = Nu(t.prefs, t.set), c = ua(), u = k(null), [d, M] = L(!1);
5489
- Kt(() => {
5509
+ const l = Nu(t.prefs, t.set), c = oa(), u = k(null), [d, M] = L(!1);
5510
+ qt(() => {
5490
5511
  var j;
5491
5512
  const f = (j = u.current) == null ? void 0 : j.parentElement;
5492
5513
  if (!f) return;
@@ -5499,38 +5520,38 @@ function Pn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
5499
5520
  }, onNext: () => {
5500
5521
  }, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
5501
5522
  return /* @__PURE__ */ g("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
5502
- /* @__PURE__ */ i(oa, { page: s, picture: /* @__PURE__ */ i(zu, { poster: e, src: n }), title: r, desk: c, pos: Iu, 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: h, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Qr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
5523
+ /* @__PURE__ */ i(sa, { page: s, picture: /* @__PURE__ */ i(zu, { poster: e, src: n }), title: r, desk: c, pos: Iu, 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: h, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Qr(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
5503
5524
  } }),
5504
5525
  !l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
5505
5526
  ] });
5506
5527
  }
5507
- function ha({ connect: t, onClick: e, label: n }) {
5508
- return /* @__PURE__ */ g(xe, { children: [
5528
+ function ca({ connect: t, onClick: e, label: n }) {
5529
+ return /* @__PURE__ */ g(Ce, { children: [
5509
5530
  /* @__PURE__ */ g("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
5510
- t.busy ? /* @__PURE__ */ i(lt, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: X.link, size: 18, sw: 1.8 }),
5531
+ t.busy ? /* @__PURE__ */ i(ht, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: X.link, size: 18, sw: 1.8 }),
5511
5532
  /* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
5512
5533
  ] }),
5513
- t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: da[t.status ?? "checking"] }),
5534
+ t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: la[t.status ?? "checking"] }),
5514
5535
  t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
5515
5536
  ] });
5516
5537
  }
5517
5538
  function Ou({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
5518
5539
  const l = () => r.start(e, n);
5519
5540
  return /* @__PURE__ */ g(Pn, { idle: t, poster: a, src: e, title: Tr(e), page: s, onAct: l, children: [
5520
- /* @__PURE__ */ i(ha, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
5541
+ /* @__PURE__ */ i(ca, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
5521
5542
  !r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Tr(e)} with subtitles and spoken translations.` : `Connect to play ${Tr(e)} with subtitles and spoken translations.` }),
5522
5543
  o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
5523
5544
  ] });
5524
5545
  }
5525
5546
  function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
5526
- const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d = vi.test(u), M = () => {
5547
+ const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d = yi.test(u), M = () => {
5527
5548
  if (!d || e.busy) return;
5528
5549
  const m = /^https?:\/\//i.test(u) ? u : `https://${u}`;
5529
5550
  s(m), e.start(m, !1);
5530
5551
  };
5531
5552
  if (!e.connected)
5532
5553
  return /* @__PURE__ */ g(Pn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
5533
- /* @__PURE__ */ i(ha, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
5554
+ /* @__PURE__ */ i(ca, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
5534
5555
  !e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
5535
5556
  ] });
5536
5557
  const h = () => {
@@ -5538,7 +5559,7 @@ function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
5538
5559
  d ? M() : (m = l.current) == null || m.focus();
5539
5560
  }, f = (m) => {
5540
5561
  const y = m.trim();
5541
- if (!vi.test(y) || e.busy || y === c.current) return;
5562
+ if (!yi.test(y) || e.busy || y === c.current) return;
5542
5563
  c.current = y;
5543
5564
  const j = /^https?:\/\//i.test(y) ? y : `https://${y}`;
5544
5565
  s(j), e.start(j, !1);
@@ -5552,9 +5573,9 @@ function bu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
5552
5573
  const y = m.clipboardData.getData("text");
5553
5574
  y && (o(y.trim()), f(y), m.preventDefault());
5554
5575
  }, "aria-label": "Video link", autoFocus: !0 }),
5555
- e.busy && /* @__PURE__ */ i(lt, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
5576
+ e.busy && /* @__PURE__ */ i(ht, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
5556
5577
  ] }) }),
5557
- e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: da[e.status ?? "checking"] }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "YouTube, Vimeo, an mp3 or any video link. Press Enter or ▶ to play it here with subtitles and spoken translations." }),
5578
+ e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: la[e.status ?? "checking"] }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "YouTube, Vimeo, an mp3 or any video link. Press Enter or ▶ to play it here with subtitles and spoken translations." }),
5558
5579
  e.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: e.err })
5559
5580
  ] });
5560
5581
  }
@@ -5583,7 +5604,7 @@ function xu(t, e, n) {
5583
5604
  }
5584
5605
  let a = !0;
5585
5606
  s(void 0);
5586
- const o = new zi({ baseUrl: (n ?? Hi).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
5607
+ const o = new Li({ baseUrl: (n ?? Qi).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
5587
5608
  if (!l) {
5588
5609
  s(null);
5589
5610
  return;
@@ -5597,13 +5618,13 @@ function xu(t, e, n) {
5597
5618
  };
5598
5619
  }, [t, e, n]), r;
5599
5620
  }
5600
- const Su = 100, Li = (t) => t == null ? null : t ? "on" : "off";
5621
+ const Su = 100, Ti = (t) => t == null ? null : t ? "on" : "off";
5601
5622
  function Du(t) {
5602
5623
  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"));
5603
5624
  return {
5604
5625
  lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
5605
- labels: r(e == null ? void 0 : e.get("labels")) ?? Li(n.speakerLabels),
5606
- words: r(e == null ? void 0 : e.get("words")) ?? Li(n.wordHighlight),
5626
+ labels: r(e == null ? void 0 : e.get("labels")) ?? Ti(n.speakerLabels),
5627
+ words: r(e == null ? void 0 : e.get("words")) ?? Ti(n.wordHighlight),
5607
5628
  cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
5608
5629
  translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
5609
5630
  clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
@@ -5611,10 +5632,10 @@ function Du(t) {
5611
5632
  startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
5612
5633
  };
5613
5634
  }
5614
- const Wu = Ha(function(e, n) {
5635
+ const Wu = Ba(function(e, n) {
5615
5636
  var K;
5616
5637
  const r = k(null);
5617
- Wa(n, () => ({
5638
+ Va(n, () => ({
5618
5639
  seek: (v) => {
5619
5640
  var ie;
5620
5641
  return (ie = r.current) == null ? void 0 : ie.seek(v);
@@ -5650,7 +5671,7 @@ const Wu = Ha(function(e, n) {
5650
5671
  D(() => {
5651
5672
  c(null);
5652
5673
  }, [e.id, e.src]);
5653
- const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l, I = Wi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: S, error: B, reload: Y } = Il(I, s.id), ee = Ol(I, (C == null ? void 0 : C.recording.id) ?? null), z = ze(() => jl(I, ee), [I, ee]);
5674
+ const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l, O = Bi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: S, error: B, reload: Y } = Il(O, s.id), ee = Ol(O, (C == null ? void 0 : C.recording.id) ?? null), I = ze(() => jl(O, ee), [O, ee]);
5654
5675
  D(() => {
5655
5676
  var v;
5656
5677
  C && ((v = e.onSource) == null || v.call(e, C));
@@ -5658,16 +5679,16 @@ const Wu = Ha(function(e, n) {
5658
5679
  var v;
5659
5680
  B && ((v = e.onError) == null || v.call(e, B));
5660
5681
  }, [B]);
5661
- const F = ua(e.desk), A = (e.layout ?? "embed") === "embed", T = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), _ = Je((v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }), []), b = ku(T, _), te = k(null);
5662
- return D(() => (yi(A ? te.current : null), () => yi(null)), [A]), /* @__PURE__ */ i(wl, { value: z, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${A ? " 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(bu, { idle: f, connect: b, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Ou, { idle: f, src: j, ask: !l, connect: b, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? B && !C ? /* @__PURE__ */ i(Cu, { idle: f, message: B.message, onRetry: Y, page: !A }) : /* @__PURE__ */ i(Au, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: m === !0, handle: r, id: s.id, api: z, shared: C, gone: S, loadError: B, reread: Y, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
5682
+ const F = oa(e.desk), A = (e.layout ?? "embed") === "embed", T = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), _ = Ke((v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }), []), b = ku(T, _), te = k(null);
5683
+ return D(() => (pi(A ? te.current : null), () => pi(null)), [A]), /* @__PURE__ */ i(wl, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${A ? " 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(bu, { idle: f, connect: b, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Ou, { idle: f, src: j, ask: !l, connect: b, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? B && !C ? /* @__PURE__ */ i(Cu, { idle: f, message: B.message, onRetry: Y, page: !A }) : /* @__PURE__ */ i(Au, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: m === !0, handle: r, id: s.id, api: I, shared: C, gone: S, loadError: B, reread: Y, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
5663
5684
  });
5664
5685
  function Au(t) {
5665
- var vs, Ls, ks, js, zs, Is, Os, bs, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Bs, Vs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs;
5686
+ var vs, Ls, ks, js, zs, Is, Os, bs, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Bs, Vs, Hs, Ws, Fs, Zs, Gs, qs;
5666
5687
  const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => Du(t), []), u = (t.mode ?? "video") === "video", [d, M] = L(t.loadError);
5667
5688
  D(() => {
5668
5689
  t.loadError && M(t.loadError);
5669
5690
  }, [t.loadError]);
5670
- const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p, I] = Ec(), [C, S] = L(null), [B, Y] = L(u ? "listen" : "read"), [ee, z] = L(!1), F = k(null), A = k(/* @__PURE__ */ new Map()), [T, _] = L("main"), b = (w) => {
5691
+ const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p, O] = Ec(), [C, S] = L(null), [B, Y] = L(u ? "listen" : "read"), [ee, I] = L(!1), F = k(null), A = k(/* @__PURE__ */ new Map()), [T, _] = L("main"), b = (w) => {
5671
5692
  const me = document.querySelector(".vs-sheet--settings"), Pe = me == null ? void 0 : me.parentElement;
5672
5693
  me && Pe && T === "main" && w !== "main" && Pe.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Pe.getBoundingClientRect().top)}px`), _(w);
5673
5694
  };
@@ -5707,192 +5728,192 @@ function Au(t) {
5707
5728
  D(() => {
5708
5729
  !Be || !Me || Date.now() - ue.current < 1e4 || (ue.current = Date.now(), t.reread());
5709
5730
  }, [Be, Me, C == null ? void 0 : C.state, C == null ? void 0 : C.processedS, o]);
5710
- const ae = mr(($ == null ? void 0 : $.state) ?? ((Ls = n == null ? void 0 : n.job) == null ? void 0 : Ls.state) ?? (e.listen ? (v == null ? void 0 : v.state) === "finalized" ? "done" : v != null && v.state ? "transcribing" : void 0 : void 0)), fe = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (fe || ae === "cropping") && he.length === 0), U = fe ? ($ == null ? void 0 : $.pct) ?? 0 : 100, R = El(n == null ? void 0 : n.job, $) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((ks = ce.segments.values().next().value) == null ? void 0 : ks.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Is = (zs = (js = n == null ? void 0 : n.job) == null ? void 0 : js.source) == null ? void 0 : zs.name) == null ? void 0 : Is.trim()) || null, Oe = n ? ((Os = n.name) == null ? void 0 : Os.trim()) || de : null, Ne = !!((bs = n == null ? void 0 : n.job) != null && bs.hasAudio), Le = (Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.source, be = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ? lo(e.origin, ie, e.cred) : null, $e = !!Le && (Le.kind !== "url" || Le.bytes != null), at = Eu(He && $e ? He : null), st = He && (!$e || at === "yes") ? He : He && at === "unknown" ? null : ie && (n != null && n.allowDownload) && (be || Ne && $e) ? bn(e.origin, ie, "source", e.cred) : null, ft = he[he.length - 1], Ge = ft ? ((xs = ft.words[ft.words.length - 1]) == null ? void 0 : xs.end) ?? ft.start : 0, rt = u && fe ? Math.max(Ge, ($ == null ? void 0 : $.processedS) ?? 0) : null, ct = $c(st, (Ne || be) && !!(n != null && n.allowDownload), he, R, be ? ((Ds = (Ss = n == null ? void 0 : n.job) == null ? void 0 : Ss.crop) == null ? void 0 : Ds.startS) ?? 0 : 0, rt), Qe = ((Es = (As = n == null ? void 0 : n.job) == null ? void 0 : As.source) == null ? void 0 : Es.kind) === "url" ? Ki(n.job.source.url) : null, Xt = Ao(Qe), At = Pc(he, R, ((Ys = (_s = n == null ? void 0 : n.job) == null ? void 0 : _s.crop) == null ? void 0 : Ys.startS) ?? 0, rt), Xe = !!Qe, ut = Xe ? At.player : ct, ot = Fi(), wt = k(null), re = Wc({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: he, lenS: R, ended: !!ie && !fe, cred: e.cred, langs: ot, srcLang: q, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: Z, side: s && !te ? Hc : void 0, hearOriginal: V, timed: !!Qe, stockVoices: u && !Re, stickyPicker: u, pickerBusy: wt.current }), en = k(null);
5731
+ const ae = mr(($ == null ? void 0 : $.state) ?? ((Ls = n == null ? void 0 : n.job) == null ? void 0 : Ls.state) ?? (e.listen ? (v == null ? void 0 : v.state) === "finalized" ? "done" : v != null && v.state ? "transcribing" : void 0 : void 0)), fe = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (fe || ae === "cropping") && he.length === 0), U = fe ? ($ == null ? void 0 : $.pct) ?? 0 : 100, R = El(n == null ? void 0 : n.job, $) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((ks = ce.segments.values().next().value) == null ? void 0 : ks.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Is = (zs = (js = n == null ? void 0 : n.job) == null ? void 0 : js.source) == null ? void 0 : zs.name) == null ? void 0 : Is.trim()) || null, Oe = n ? ((Os = n.name) == null ? void 0 : Os.trim()) || de : null, Ne = !!((bs = n == null ? void 0 : n.job) != null && bs.hasAudio), Le = (Cs = n == null ? void 0 : n.job) == null ? void 0 : Cs.source, be = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ? ao(e.origin, ie, e.cred) : null, $e = !!Le && (Le.kind !== "url" || Le.bytes != null), ut = Eu(He && $e ? He : null), st = He && (!$e || ut === "yes") ? He : He && ut === "unknown" ? null : ie && (n != null && n.allowDownload) && (be || Ne && $e) ? bn(e.origin, ie, "source", e.cred) : null, pt = he[he.length - 1], Ge = pt ? ((xs = pt.words[pt.words.length - 1]) == null ? void 0 : xs.end) ?? pt.start : 0, rt = u && fe ? Math.max(Ge, ($ == null ? void 0 : $.processedS) ?? 0) : null, Mt = $c(st, (Ne || be) && !!(n != null && n.allowDownload), he, R, be ? ((Ds = (Ss = n == null ? void 0 : n.job) == null ? void 0 : Ss.crop) == null ? void 0 : Ds.startS) ?? 0 : 0, rt), it = bo((As = n == null ? void 0 : n.job) == null ? void 0 : As.source), Ve = it ? Zi(it) : null, un = Ao(Ve), St = Pc(he, R, ((_s = (Es = n == null ? void 0 : n.job) == null ? void 0 : Es.crop) == null ? void 0 : _s.startS) ?? 0, rt), Je = !!Ve, lt = Je ? St.player : Mt, at = Vi(), Jt = k(null), re = Wc({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: he, lenS: R, ended: !!ie && !fe, cred: e.cred, langs: at, srcLang: q, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: Z, side: s && !te ? Hc : void 0, hearOriginal: V, timed: !!Ve, stockVoices: u && !Re, stickyPicker: u, pickerBusy: Jt.current }), dn = k(null);
5711
5732
  D(() => {
5712
- !ie || en.current === J || (en.current = J, G(J));
5733
+ !ie || dn.current === J || (dn.current = J, G(J));
5713
5734
  }, [J, ie]);
5714
- const O = Xe ? At.player : re.on ? re.player : ut;
5735
+ const z = Je ? St.player : re.on ? re.player : lt;
5715
5736
  D(() => {
5716
- if (Xe) {
5737
+ if (Je) {
5717
5738
  re.player.pause();
5718
5739
  return;
5719
5740
  }
5720
- (re.on ? ut : re.player).pause();
5721
- }, [re.on, Xe]);
5722
- const dt = ze(() => he.filter((w) => w.sentenceId != null).map((w, me, Pe) => {
5741
+ (re.on ? lt : re.player).pause();
5742
+ }, [re.on, Je]);
5743
+ const Vn = ze(() => he.filter((w) => w.sentenceId != null).map((w, me, Pe) => {
5723
5744
  var We;
5724
5745
  return { sid: w.sentenceId, start: w.start, end: ((We = Pe[me + 1]) == null ? void 0 : We.start) ?? Qt(w, w.start, w.start + 4) };
5725
- }), [he]), Et = nl({ on: Xe && re.on, lines: dt, clips: re.clips, t: O.t, playing: O.playing, muted: O.muted }), Vt = !!J && (Ie || re.relang || re.on && Et.missing != null);
5726
- wt.current = Vt ? J : null, D(() => {
5727
- Xe && re.on && Et.sid != null && re.setNear(Et.sid);
5728
- }, [Et.sid, Xe, re.on]), Rc([ut, re.player], re.sampling);
5729
- const bt = k(null);
5746
+ }), [he]), Dt = nl({ on: Je && re.on, lines: Vn, clips: re.clips, t: z.t, playing: z.playing, muted: z.muted }), At = !!J && (Ie || re.relang || re.on && Dt.missing != null);
5747
+ Jt.current = At ? J : null, D(() => {
5748
+ Je && re.on && Dt.sid != null && re.setNear(Dt.sid);
5749
+ }, [Dt.sid, Je, re.on]), Rc([lt, re.player], re.sampling);
5750
+ const Et = k(null);
5730
5751
  D(() => {
5731
- fe && !O.playing && bt.current && (bt.current.scrollTop = bt.current.scrollHeight);
5752
+ fe && !z.playing && Et.current && (Et.current.scrollTop = Et.current.scrollHeight);
5732
5753
  }, [fe, he.length]);
5733
- const Vn = Gc(bt, he, m, j, y), _t = /* @__PURE__ */ i(Zc, { open: m, q: j, onQ: N, onClose: () => y(!1), hits: Vn, desk: s, inline: s }), qe = _o({ name: n == null ? void 0 : n.name, sourceName: (Rs = (Us = n == null ? void 0 : n.job) == null ? void 0 : Us.source) == null ? void 0 : Rs.name, ytTitle: Xt, url: (($s = (Ps = n == null ? void 0 : n.job) == null ? void 0 : Ps.source) == null ? void 0 : $s.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), ht = !!(n != null && n.allowDownload), vt = !!(n != null && n.allowExport), Lt = re.readLang, kt = Lt ? ((Qs = ot == null ? void 0 : ot.languages.find((w) => w.code === Lt)) == null ? void 0 : Qs.name) ?? Lt.toUpperCase() : null, Ht = async () => {
5754
+ const Vt = Gc(Et, he, m, j, y), hn = /* @__PURE__ */ i(Zc, { open: m, q: j, onQ: N, onClose: () => y(!1), hits: Vt, desk: s, inline: s }), qe = _o({ name: n == null ? void 0 : n.name, sourceName: (Us = (Ys = n == null ? void 0 : n.job) == null ? void 0 : Ys.source) == null ? void 0 : Us.name, ytTitle: un, url: ((Ps = (Rs = n == null ? void 0 : n.job) == null ? void 0 : Rs.source) == null ? void 0 : Ps.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), ot = !!(n != null && n.allowDownload), Xt = !!(n != null && n.allowExport), mt = re.readLang, gt = mt ? (($s = at == null ? void 0 : at.languages.find((w) => w.code === mt)) == null ? void 0 : $s.name) ?? mt.toUpperCase() : null, Ht = async () => {
5734
5755
  if (ie)
5735
5756
  try {
5736
- if (Lt && re.canSpeak) {
5737
- I(`Preparing ${qe} in ${kt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Ul(e, { recordingId: ie, lang: Lt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), I(`Downloading ${qe} in ${kt}.`);
5757
+ if (mt && re.canSpeak) {
5758
+ O(`Preparing ${qe} in ${gt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Ul(e, { recordingId: ie, lang: mt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), O(`Downloading ${qe} in ${gt}.`);
5738
5759
  return;
5739
5760
  }
5740
5761
  if (Ne) {
5741
- I(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await _l(bn(e.origin, ie, "delivery", e.cred)), I(`Downloading ${qe}.`);
5762
+ O(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await _l(bn(e.origin, ie, "delivery", e.cred)), O(`Downloading ${qe}.`);
5742
5763
  return;
5743
5764
  }
5744
- $r(bn(e.origin, ie, "source", e.cred)), I(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
5765
+ $r(bn(e.origin, ie, "source", e.cred)), O(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
5745
5766
  } catch (w) {
5746
- throw M(Ot(w)), w;
5767
+ throw M(jt(w)), w;
5747
5768
  }
5748
- }, Yt = (w) => {
5769
+ }, dt = (w) => {
5749
5770
  if (!ie) return;
5750
- const me = br.find((We) => We.key === w).name, Pe = kt ? ` in ${kt}` : "";
5751
- return Yl(e, ie, w, { lang: Lt }).then(() => I(fe ? `${me} exported${Pe} for the first ${he.length} segments — the rest is still transcribing.` : `${me} exported${Pe}.`)).catch((We) => {
5752
- throw M(Ot(We)), We;
5771
+ const me = br.find((We) => We.key === w).name, Pe = gt ? ` in ${gt}` : "";
5772
+ return Yl(e, ie, w, { lang: mt }).then(() => O(fe ? `${me} exported${Pe} for the first ${he.length} segments — the rest is still transcribing.` : `${me} exported${Pe}.`)).catch((We) => {
5773
+ throw M(jt(We)), We;
5753
5774
  });
5754
- }, Mt = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", tn = fe ? "var(--brand)" : "var(--ink-28)", it = Al($, he.length), Ct = O.has && (!re.relang || !!Qe), Ze = k(O);
5755
- Ze.current = O;
5756
- const Wt = `${J ?? ""}|${re.on ? "voice" : "source"}`, nn = k({ key: Wt, idx: 0, t: 0, playing: !1, until: 0 });
5775
+ }, en = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", tn = Al($, he.length), zt = z.has && (!re.relang || !!Ve), Ze = k(z);
5776
+ Ze.current = z;
5777
+ const _t = `${J ?? ""}|${re.on ? "voice" : "source"}`, wt = k({ key: _t, idx: 0, t: 0, playing: !1, until: 0 });
5757
5778
  D(() => {
5758
- const w = nn.current;
5759
- if (w.key !== Wt && (w.key = Wt, w.until = Date.now() + 15e3), !Xe) {
5779
+ const w = wt.current;
5780
+ if (w.key !== _t && (w.key = _t, w.until = Date.now() + 15e3), !Je) {
5760
5781
  if (!w.until) {
5761
- w.idx = O.idx, w.t = O.t, w.playing = O.playing;
5782
+ w.idx = z.idx, w.t = z.t, w.playing = z.playing;
5762
5783
  return;
5763
5784
  }
5764
5785
  if (Date.now() > w.until) {
5765
5786
  w.until = 0;
5766
5787
  return;
5767
5788
  }
5768
- !O.has || re.relang || (w.until = 0, Math.abs(O.t - w.t) > 0.5 && (O.seekFrac && O.dur > 0 ? O.seekFrac(w.t / O.dur) : O.seekRow(w.idx)), w.playing && !O.playing && B === "listen" && (Ke.current = !0, O.toggle()));
5789
+ !z.has || re.relang || (w.until = 0, Math.abs(z.t - w.t) > 0.5 && (z.seekFrac && z.dur > 0 ? z.seekFrac(w.t / z.dur) : z.seekRow(w.idx)), w.playing && !z.playing && B === "listen" && (et.current = !0, z.toggle()));
5769
5790
  }
5770
5791
  });
5771
- const pt = k(!1), Ke = k(!1);
5772
- u && (Ci.video = !0);
5773
- const [rn, Ut] = L(!1), [gn, Hn] = L(!1);
5792
+ const Yt = k(!1), et = k(!1);
5793
+ u && (Ii.video = !0);
5794
+ const [Mn, It] = L(!1), [Hn, Wn] = L(!1);
5774
5795
  D(() => {
5775
- if (!u || pt.current || !Ct || !te || Ye || t.autoplay === !1) return;
5776
- pt.current = !0;
5796
+ if (!u || Yt.current || !zt || !te || Ye || t.autoplay === !1) return;
5797
+ Yt.current = !0;
5777
5798
  const w = (We) => {
5778
- Ze.current.playing || Ke.current || (Ze.current.toggle(), We > 0 && setTimeout(() => w(We - 1), 1500));
5799
+ Ze.current.playing || et.current || (Ze.current.toggle(), We > 0 && setTimeout(() => w(We - 1), 1500));
5779
5800
  }, me = () => {
5780
- Ze.current.muted || Ze.current.toggleMute(), Ut(!0), w(3);
5801
+ Ze.current.muted || Ze.current.toggleMute(), It(!0), w(3);
5781
5802
  }, Pe = Ze.current;
5782
5803
  if (!Pe.autoplay || t.startMuted) {
5783
5804
  me();
5784
5805
  return;
5785
5806
  }
5786
5807
  Pe.autoplay().then((We) => {
5787
- We === !1 ? Ut(!0) : We == null && !Ke.current && me();
5808
+ We === !1 ? It(!0) : We == null && !et.current && me();
5788
5809
  });
5789
- }, [u, Ct, te, Ye]);
5790
- const xt = k(!1), Wn = () => {
5791
- rn && (Ut(!1), xt.current = !0, setTimeout(() => {
5792
- xt.current = !1;
5810
+ }, [u, zt, te, Ye]);
5811
+ const Ot = k(!1), Fn = () => {
5812
+ Mn && (It(!1), Ot.current = !0, setTimeout(() => {
5813
+ Ot.current = !1;
5793
5814
  }, 500), Ze.current.muted && Ze.current.toggleMute());
5794
- }, Fn = () => {
5795
- if (xt.current) {
5796
- xt.current = !1;
5815
+ }, gn = () => {
5816
+ if (Ot.current) {
5817
+ Ot.current = !1;
5797
5818
  return;
5798
5819
  }
5799
- Ut(!1), Ze.current.toggleMute();
5800
- }, Rt = () => {
5801
- if (xt.current) {
5802
- xt.current = !1;
5820
+ It(!1), Ze.current.toggleMute();
5821
+ }, Ut = () => {
5822
+ if (Ot.current) {
5823
+ Ot.current = !1;
5803
5824
  return;
5804
5825
  }
5805
- Ke.current = !0, Ze.current.toggle();
5806
- }, fn = (w) => /* @__PURE__ */ i(Ac, { player: O, size: w }), sn = !!ie && !fe, [an, P] = L(!1);
5826
+ et.current = !0, Ze.current.toggle();
5827
+ }, fn = (w) => /* @__PURE__ */ i(Ac, { player: z, size: w }), nn = !!ie && !fe, [P, xe] = L(!1);
5807
5828
  D(() => {
5808
5829
  if (!Ie) {
5809
- P(!1);
5830
+ xe(!1);
5810
5831
  return;
5811
5832
  }
5812
- const w = setTimeout(() => P(!0), 180);
5833
+ const w = setTimeout(() => xe(!0), 180);
5813
5834
  return () => clearTimeout(w);
5814
5835
  }, [Ie]);
5815
- const Ce = an ? Ae : J, Ve = ql(ie, J, he, ke), mt = dc(hc(v), ie, re.readLang), on = ht || vt, Ma = (((Vs = (Bs = n == null ? void 0 : n.job) == null ? void 0 : Bs.crop) == null ? void 0 : Vs.startS) ?? 0) + Gt(O, he), jt = B === "listen", Pt = jt && (!!Qe || u), ga = (w) => {
5816
- ut.pause(), re.player.pause(), Y(w), w === "read" && te && (un(!1), K(!1));
5836
+ const Qe = P ? Ae : J, bt = ql(ie, J, he, ke), Rt = dc(hc(v), ie, re.readLang), ua = ot || Xt, da = (((Bs = (Qs = n == null ? void 0 : n.job) == null ? void 0 : Qs.crop) == null ? void 0 : Bs.startS) ?? 0) + Zt(z, he), vt = B === "listen", Pt = vt && (!!Ve || u), ha = (w) => {
5837
+ lt.pause(), re.player.pause(), Y(w), w === "read" && te && (an(!1), K(!1));
5817
5838
  };
5818
5839
  D(() => {
5819
- jt || (ut.playing && ut.pause(), re.player.playing && re.player.pause());
5820
- }, [jt, ut.playing, re.player.playing]);
5821
- const Ue = re.barChip, Ft = Gi(Ue.label), Hr = /* @__PURE__ */ i(wr, { value: B, onChange: ga, bordered: !1, options: lu(Ft, !!Qe) }), Zt = [...sn ? [{ key: "summary", label: "Summary" }] : [], ...on ? [{ key: "export", label: "Export" }] : []], Wr = (w) => /* @__PURE__ */ g(xe, { children: [
5822
- w === "summary" && sn && /* @__PURE__ */ i(Mc, { s: mt }),
5823
- w === "export" && /* @__PURE__ */ i(uc, { audio: ht ? { name: qe, meta: Lt && re.canSpeak || Ne ? `MP3${R ? ` · ${It(R)}` : ""}` : "ORIGINAL AUDIO", onClick: Ht } : null, formats: vt, onExport: Yt })
5824
- ] }), fa = (w) => /* @__PURE__ */ i(Wl, { index: O.idx, total: Math.max(1, he.length), frac: O.dur > 0 ? Math.min(1, O.t / O.dur) : 0, glideMs: O.wordSync ? 0 : 220, atLabel: It(O.t), durLabel: It(O.dur), stepLabel: w ? `${O.idx + 1} / ${he.length}` : "", onSeek: re.relang ? Bc : O.seekRow, onSeekFrac: re.relang ? void 0 : O.seekFrac, onScrubStart: O.hold, onScrubEnd: O.release }), Fr = {
5840
+ vt || (lt.playing && lt.pause(), re.player.playing && re.player.pause());
5841
+ }, [vt, lt.playing, re.player.playing]);
5842
+ const Ue = re.barChip, Wt = Wi(Ue.label), Hr = /* @__PURE__ */ i(wr, { value: B, onChange: ha, bordered: !1, options: lu(Wt, !!Ve) }), Ft = [...nn ? [{ key: "summary", label: "Summary" }] : [], ...ua ? [{ key: "export", label: "Export" }] : []], Wr = (w) => /* @__PURE__ */ g(Ce, { children: [
5843
+ w === "summary" && nn && /* @__PURE__ */ i(Mc, { s: Rt }),
5844
+ w === "export" && /* @__PURE__ */ i(uc, { audio: ot ? { name: qe, meta: mt && re.canSpeak || Ne ? `MP3${R ? ` · ${kt(R)}` : ""}` : "ORIGINAL AUDIO", onClick: Ht } : null, formats: Xt, onExport: dt })
5845
+ ] }), Ma = (w) => /* @__PURE__ */ i(Wl, { index: z.idx, total: Math.max(1, he.length), frac: z.dur > 0 ? Math.min(1, z.t / z.dur) : 0, glideMs: z.wordSync ? 0 : 220, atLabel: kt(z.t), durLabel: kt(z.dur), stepLabel: w ? `${z.idx + 1} / ${he.length}` : "", onSeek: re.relang ? Bc : z.seekRow, onSeekFrac: re.relang ? void 0 : z.seekFrac, onScrubStart: z.hold, onScrubEnd: z.release }), Fr = {
5825
5846
  live: !1,
5826
5847
  atEdge: !1,
5827
5848
  edgeFrac: null,
5828
- readyFrac: rt != null && O.dur > 0 ? Math.min(1, rt / O.dur) : null,
5829
- pct: O.dur > 0 ? Math.min(100, Math.round(O.t / O.dur * 1e3) / 10) : 0,
5830
- atLabel: It(O.t),
5831
- labelAt: (w) => It(w * O.dur),
5832
- endLabel: It(O.dur),
5849
+ readyFrac: rt != null && z.dur > 0 ? Math.min(1, rt / z.dur) : null,
5850
+ pct: z.dur > 0 ? Math.min(100, Math.round(z.t / z.dur * 1e3) / 10) : 0,
5851
+ atLabel: kt(z.t),
5852
+ labelAt: (w) => kt(w * z.dur),
5853
+ endLabel: kt(z.dur),
5833
5854
  onSeek: (w) => {
5834
5855
  var me;
5835
- re.relang || (me = O.seekFrac) == null || me.call(O, w);
5856
+ re.relang || (me = z.seekFrac) == null || me.call(z, w);
5836
5857
  }
5837
- }, [pa, ma] = na(re.on && !!O.preparing && O.playing, 1500), Zn = re.on && ((Hs = O.error) == null ? void 0 : Hs.code) === "voice_not_started", Gn = re.canSpeak && !re.error && !Zn, pn = J ? ((Ws = ot == null ? void 0 : ot.languages.find((w) => w.code === J)) == null ? void 0 : Ws.name) ?? Ue.label : "", tt = te ? Oc({ lang: J, langName: pn, translating: Ie && !!J, translateFailed: Fe, voiceFailed: Zn, relang: re.relang, starting: re.on ? O.starting : null, slowLine: pa, lineSince: ma }) : null, qn = !!Qe && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Zr = !qn || !tt ? null : tt.kind === "translating" ? `Translating into ${pn || "the new language"}…` : `Preparing the ${pn || "translated"} voice…`, St = !qn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Gr = _r({ ...re.langList, keepOpen: !0, open: T === "lang", onClose: () => b("main") }), qr = $o(Q, re.on), Na = u && qr.bed && ht && ie && (!fe || st) ? ti(e.origin, ie, e.cred) : null, Kr = qo(Na, { t: Gt(O, he), playing: O.playing && !St && !(O.timed && O.preparing), muted: O.muted }), ya = u && qr.speech && ht && ie && (!fe || st) ? ti(e.origin, ie, e.cred, "speech") : null, Kn = $i(ya, { t: Gt(O, he), playing: !re.on && O.playing, muted: O.muted }), Jn = !re.on && Kn.on;
5858
+ }, [ga, fa] = Xi(re.on && !!z.preparing && z.playing, 1500), Zn = re.on && ((Vs = z.error) == null ? void 0 : Vs.code) === "voice_not_started", Gn = re.canSpeak && !re.error && !Zn, pn = J ? ((Hs = at == null ? void 0 : at.languages.find((w) => w.code === J)) == null ? void 0 : Hs.name) ?? Ue.label : "", tt = te ? Oc({ lang: J, langName: pn, translating: Ie && !!J, translateFailed: Fe, voiceFailed: Zn, relang: re.relang, starting: re.on ? z.starting : null, slowLine: ga, lineSince: fa }) : null, qn = !!Ve && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Zr = !qn || !tt ? null : tt.kind === "translating" ? `Translating into ${pn || "the new language"}…` : `Preparing the ${pn || "translated"} voice…`, Ct = !qn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Gr = _r({ ...re.langList, keepOpen: !0, open: T === "lang", onClose: () => b("main") }), qr = $o(Q, re.on), pa = u && qr.bed && ot && ie && (!fe || st) ? Js(e.origin, ie, e.cred) : null, Kr = qo(pa, { t: Zt(z, he), playing: z.playing && !Ct && !(z.timed && z.preparing), muted: z.muted }), ma = u && qr.speech && ot && ie && (!fe || st) ? Js(e.origin, ie, e.cred, "speech") : null, Kn = Ui(ma, { t: Zt(z, he), playing: !re.on && z.playing, muted: z.muted }), Jn = !re.on && Kn.on;
5838
5859
  D(() => {
5839
5860
  var w;
5840
- At.setVideoSound(!(Xe && (re.on || Jn))), (w = ct.silence) == null || w.call(ct, !Xe && Jn);
5841
- }, [Xe, re.on, Jn, st]);
5842
- const Xn = ht ? re.on ? Kr : Kn.state : "unavailable", er = we && Gn && !!J, Ta = er ? [`Translated${re.hasClone ? Re ? ", cloned voices" : ", synthetic voices" : ""}`, !Q && ht && Kr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : Q && Xn !== "unavailable" ? "Original speech, background removed" : "Original sound", wa = () => {
5861
+ St.setVideoSound(!(Je && (re.on || Jn))), (w = Mt.silence) == null || w.call(Mt, !Je && Jn);
5862
+ }, [Je, re.on, Jn, st]);
5863
+ const Xn = ot ? re.on ? Kr : Kn.state : "unavailable", er = we && Gn && !!J, Na = er ? [`Translated${re.hasClone ? Re ? ", cloned voices" : ", synthetic voices" : ""}`, !Q && ot && Kr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : Q && Xn !== "unavailable" ? "Original speech, background removed" : "Original sound", ya = () => {
5843
5864
  if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
5844
5865
  G(J);
5845
5866
  return;
5846
5867
  }
5847
- Ke.current = !0, O.toggle();
5848
- }, va = () => {
5849
- const w = O.idx;
5850
- O.pause(), Z(null), Ke.current = !0, ut.playRow(w);
5851
- }, Jr = { prevOn: O.idx > 0, nextOn: O.idx < he.length - 1, onPrev: O.prev, onNext: O.next, playing: O.playing, playable: Ct, playTitle: re.playTitle ?? (O.playing ? "Pause" : "Play"), onPlay: () => {
5852
- Ke.current = !0, O.toggle();
5853
- }, busy: re.relang && !Qe || St };
5854
- il(Ct && jt ? { playing: O.playing, toggle: () => {
5855
- Ke.current = !0, O.toggle();
5856
- }, next: O.next, prev: O.prev } : null, Oe);
5857
- const tr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, nr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", title: Vt ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": Vt || void 0, onClick: () => {
5858
- z(!1), Ue.onClick();
5868
+ et.current = !0, z.toggle();
5869
+ }, Ta = () => {
5870
+ const w = z.idx;
5871
+ z.pause(), Z(null), et.current = !0, lt.playRow(w);
5872
+ }, Jr = { prevOn: z.idx > 0, nextOn: z.idx < he.length - 1, onPrev: z.prev, onNext: z.next, playing: z.playing, playable: zt, playTitle: re.playTitle ?? (z.playing ? "Pause" : "Play"), onPlay: () => {
5873
+ et.current = !0, z.toggle();
5874
+ }, busy: re.relang && !Ve || Ct };
5875
+ il(zt && vt ? { playing: z.playing, toggle: () => {
5876
+ et.current = !0, z.toggle();
5877
+ }, next: z.next, prev: z.prev } : null, Oe);
5878
+ const tr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, nr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", title: At ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": At || void 0, onClick: () => {
5879
+ I(!1), Ue.onClick();
5859
5880
  }, style: { position: "relative" }, children: [
5860
5881
  /* @__PURE__ */ i("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
5861
- Vt && /* @__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(lt, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
5882
+ At && /* @__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(ht, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
5862
5883
  ] }) : /* @__PURE__ */ i(Yn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style: w }), Xr = { on: !1, title: "Voices", onClick: () => {
5863
- }, busy: re.voiceWaiting || St }, [La, ka] = L(!1);
5884
+ }, busy: re.voiceWaiting || Ct }, [wa, va] = L(!1);
5864
5885
  D(() => {
5865
- O.t > 0.3 && ka(!0);
5866
- }, [O.t]);
5867
- const ja = !Qe && u && ie && (n != null && n.allowDownload) && !fe ? /* @__PURE__ */ i(ri, { src: bn(e.origin, ie, "video", e.cred), t: Gt(O, he), playing: O.playing && !St, seekN: O.seekN, onToggle: O.has ? Rt : void 0 }, ie) : null, mn = !Qe && u && ((Zs = (Fs = n == null ? void 0 : n.job) == null ? void 0 : Fs.source) == null ? void 0 : Zs.kind) === "url" && bo(n.job.source.url) ? n.job.source.url : null, Nn = mn ? Ri(mn) : null, es = ze(() => Nn ? Do(Nn) : void 0, [Nn]), za = es ? /* @__PURE__ */ i(ri, { setup: es, seekOver: 1, t: Gt(O, he) + (((qs = (Gs = n == null ? void 0 : n.job) == null ? void 0 : Gs.crop) == null ? void 0 : qs.startS) ?? 0), playing: O.playing && !St, seekN: O.seekN, onToggle: O.has ? Rt : void 0 }, Nn) : mn ? /* @__PURE__ */ i(Co, { url: mn, t: Gt(O, he) + (((Js = (Ks = n == null ? void 0 : n.job) == null ? void 0 : Ks.crop) == null ? void 0 : Js.startS) ?? 0), playing: O.playing && !St, seekN: O.seekN, title: qe }) : null, Ia = O.has ? /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
5868
- /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: Rt, style: { cursor: "pointer" } }),
5869
- /* @__PURE__ */ i("div", { className: `txyt__paused${O.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Mn, { size: 44 }) }) })
5870
- ] }) : null, ts = Qe ? /* @__PURE__ */ g(xe, { children: [
5871
- /* @__PURE__ */ i(xc, { ytId: Qe, title: qe, t: Ma, playing: O.playing && !St, waiting: re.on && !!O.timed && !!O.preparing, seekN: O.seekN, onTime: (w) => {
5886
+ z.t > 0.3 && va(!0);
5887
+ }, [z.t]);
5888
+ const La = !Ve && u && ie && (n != null && n.allowDownload) && !fe ? /* @__PURE__ */ i(ei, { src: bn(e.origin, ie, "video", e.cred), t: Zt(z, he), playing: z.playing && !Ct, seekN: z.seekN, onToggle: z.has ? Ut : void 0 }, ie) : null, mn = !Ve && u && it && Io(it) ? it : null, Nn = mn ? _i(mn) : null, es = ze(() => Nn ? Do(Nn) : void 0, [Nn]), ka = es ? /* @__PURE__ */ i(ei, { setup: es, seekOver: 1, t: Zt(z, he) + (((Fs = (Ws = n == null ? void 0 : n.job) == null ? void 0 : Ws.crop) == null ? void 0 : Fs.startS) ?? 0), playing: z.playing && !Ct, seekN: z.seekN, onToggle: z.has ? Ut : void 0 }, Nn) : mn ? /* @__PURE__ */ i(Co, { url: mn, t: Zt(z, he) + (((Gs = (Zs = n == null ? void 0 : n.job) == null ? void 0 : Zs.crop) == null ? void 0 : Gs.startS) ?? 0), playing: z.playing && !Ct, seekN: z.seekN, title: qe }) : null, ja = z.has ? /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
5889
+ /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: Ut, style: { cursor: "pointer" } }),
5890
+ /* @__PURE__ */ i("div", { className: `txyt__paused${z.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) }) })
5891
+ ] }) : null, ts = Ve ? /* @__PURE__ */ g(Ce, { children: [
5892
+ /* @__PURE__ */ i(xc, { ytId: Ve, title: qe, t: da, playing: z.playing && !Ct, waiting: re.on && !!z.timed && !!z.preparing, seekN: z.seekN, onTime: (w) => {
5872
5893
  var me, Pe, We;
5873
- return (We = O.videoAt) == null ? void 0 : We.call(O, w - (((Pe = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Pe.startS) ?? 0));
5874
- }, onToggle: O.has ? Rt : void 0, onAd: Hn, lead: Xe ? At.lead : void 0 }),
5875
- /* @__PURE__ */ g("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: La ? 0 : 1 }, children: [
5876
- /* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Qe}/hqdefault.jpg)` } }),
5877
- /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Mn, { size: 44 }) })
5894
+ return (We = z.videoAt) == null ? void 0 : We.call(z, w - (((Pe = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Pe.startS) ?? 0));
5895
+ }, onToggle: z.has ? Ut : void 0, onAd: Wn, lead: Je ? St.lead : void 0 }),
5896
+ /* @__PURE__ */ g("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: wa ? 0 : 1 }, children: [
5897
+ /* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
5898
+ /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(cn, { size: 44 }) })
5878
5899
  ] })
5879
- ] }) : u ? /* @__PURE__ */ g(xe, { children: [
5900
+ ] }) : u ? /* @__PURE__ */ g(Ce, { children: [
5880
5901
  /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
5881
- Ia,
5882
- za,
5883
- ja
5884
- ] }) : null, ns = Pt && Qe && !te ? /* @__PURE__ */ i(gc, { ytId: Qe, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: ts, children: /* @__PURE__ */ i(su, { pos: Fr, transport: Jr, chip: nr({ ...tr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Xr, onFull: () => {
5885
- un(!0), K(!0);
5886
- }, copied: null }) }) : null, et = O.wordSync ? $l(he, O.idx, O.t) ? he[O.idx] : void 0 : he[O.idx];
5902
+ ja,
5903
+ ka,
5904
+ La
5905
+ ] }) : null, ns = Pt && Ve && !te ? /* @__PURE__ */ i(gc, { ytId: Ve, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: ts, children: /* @__PURE__ */ i(su, { pos: Fr, transport: Jr, chip: nr({ ...tr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Xr, onFull: () => {
5906
+ an(!0), K(!0);
5907
+ }, copied: null }) }) : null, Xe = z.wordSync ? $l(he, z.idx, z.t) ? he[z.idx] : void 0 : he[z.idx];
5887
5908
  for (const w of he) for (const [me, Pe] of Object.entries(w.translations)) Pe && A.current.set(`${w.sentenceId ?? w.start}|${me}`, Pe);
5888
- const rs = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, rr = (w, me) => !w || !me || w.language === me || !!rs(w, me), zt = rr(et, J) ? J : rr(et, F.current) ? F.current : J;
5889
- et && rr(et, zt) && (F.current = zt);
5890
- const ss = et && zt && et.language !== zt ? rs(et, zt) : null, Oa = et && ss && zt && !et.translations[zt] ? Object.assign([...he], { [O.idx]: { ...et, translations: { ...et.translations, [zt]: ss } } }) : he, yn = et ? ra(Oa, O.idx, zt) : [], Tn = Te ? Te === "on" : !u || re.on || !Ce || Ce === q, is = Tn ? mi(O, O.idx, yn) : null, as = yn.map((w, me) => ({ t: w.text, sp: me < yn.length - 1 ? " " : "", dim: is != null && me > is })), wn = pe ? pe === "on" : u ? !1 : yl(ce, he, v == null ? void 0 : v.settings), os = { lang: J, subtitles: Se, speakerLabels: wn, wordHighlight: Tn, translateAudio: we, voices: Re ? "cloned" : "synthetic", removeBackground: Q }, ba = JSON.stringify(os), vn = k(t.onSettingsChange);
5909
+ const rs = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, rr = (w, me) => !w || !me || w.language === me || !!rs(w, me), Lt = rr(Xe, J) ? J : rr(Xe, F.current) ? F.current : J;
5910
+ Xe && rr(Xe, Lt) && (F.current = Lt);
5911
+ const ss = Xe && Lt && Xe.language !== Lt ? rs(Xe, Lt) : null, za = Xe && ss && Lt && !Xe.translations[Lt] ? Object.assign([...he], { [z.idx]: { ...Xe, translations: { ...Xe.translations, [Lt]: ss } } }) : he, yn = Xe ? ea(za, z.idx, Lt) : [], Tn = Te ? Te === "on" : !u || re.on || !Qe || Qe === q, is = Tn ? gi(z, z.idx, yn) : null, as = yn.map((w, me) => ({ t: w.text, sp: me < yn.length - 1 ? " " : "", dim: is != null && me > is })), wn = pe ? pe === "on" : u ? !1 : yl(ce, he, v == null ? void 0 : v.settings), os = { lang: J, subtitles: Se, speakerLabels: wn, wordHighlight: Tn, translateAudio: we, voices: Re ? "cloned" : "synthetic", removeBackground: Q }, Ia = JSON.stringify(os), vn = k(t.onSettingsChange);
5891
5912
  vn.current = t.onSettingsChange, D(() => {
5892
5913
  var w;
5893
5914
  (w = vn.current) == null || w.call(vn, os);
5894
- }, [ba]);
5895
- const Ln = et && et.speaker >= 0 && wn ? Rr(ce, et.speaker) : null, [Ca, ls] = L(!1), [sr, cs] = L(null), [xa, us] = L(null), ir = k(void 0);
5915
+ }, [Ia]);
5916
+ const Ln = Xe && Xe.speaker >= 0 && wn ? Rr(ce, Xe.speaker) : null, [Oa, ls] = L(!1), [sr, cs] = L(null), [ba, us] = L(null), ir = k(void 0);
5896
5917
  D(() => () => window.clearTimeout(ir.current), []);
5897
5918
  const ar = k(void 0);
5898
5919
  D(() => () => window.clearTimeout(ar.current), []);
@@ -5901,37 +5922,37 @@ function Au(t) {
5901
5922
  const me = new URL(window.location.href);
5902
5923
  return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
5903
5924
  }, kn = k(l.startAt), or = (w) => {
5904
- if (O.seekFrac && O.dur > 0) {
5905
- O.seekFrac(Math.min(1, w / O.dur));
5925
+ if (z.seekFrac && z.dur > 0) {
5926
+ z.seekFrac(Math.min(1, w / z.dur));
5906
5927
  return;
5907
5928
  }
5908
5929
  let me = 0;
5909
5930
  for (let Pe = 0; Pe < he.length; Pe++) he[Pe].start <= w && (me = Pe);
5910
- O.seekRow(me);
5931
+ z.seekRow(me);
5911
5932
  }, hs = k(!1);
5912
5933
  D(() => {
5913
5934
  const w = kn.current;
5914
- w == null || hs.current || !O.has || he.length === 0 || (hs.current = !0, or(w));
5915
- }, [O.has, he.length]), D(() => {
5935
+ w == null || hs.current || !z.has || he.length === 0 || (hs.current = !0, or(w));
5936
+ }, [z.has, he.length]), D(() => {
5916
5937
  const w = kn.current;
5917
- w == null || !O.playing || (kn.current = null, Math.abs(O.t - w) > 2 && or(w));
5918
- }, [O.playing]);
5919
- const Sa = (w) => {
5920
- Ke.current = !0, kn.current = null, or(Math.max(0, w));
5938
+ w == null || !z.playing || (kn.current = null, Math.abs(z.t - w) > 2 && or(w));
5939
+ }, [z.playing]);
5940
+ const Ca = (w) => {
5941
+ et.current = !0, kn.current = null, or(Math.max(0, w));
5921
5942
  };
5922
5943
  t.handle.current = {
5923
- seek: (w) => Sa(w),
5944
+ seek: (w) => Ca(w),
5924
5945
  play: () => {
5925
- Ke.current = !0, jt && !Ze.current.playing && Ze.current.toggle();
5946
+ et.current = !0, vt && !Ze.current.playing && Ze.current.toggle();
5926
5947
  },
5927
5948
  pause: () => {
5928
- Ke.current = !0, Ze.current.pause();
5949
+ et.current = !0, Ze.current.pause();
5929
5950
  },
5930
5951
  toggle: () => {
5931
- Ke.current = !0, (jt || Ze.current.playing) && Ze.current.toggle();
5952
+ et.current = !0, (vt || Ze.current.playing) && Ze.current.toggle();
5932
5953
  },
5933
5954
  toggleMute: () => {
5934
- Ut(!1), Ze.current.toggleMute();
5955
+ It(!1), Ze.current.toggleMute();
5935
5956
  }
5936
5957
  }, D(() => () => {
5937
5958
  t.handle.current = null;
@@ -5944,37 +5965,37 @@ function Au(t) {
5944
5965
  const me = () => {
5945
5966
  const We = Ms.current;
5946
5967
  if (!We) return;
5947
- const Nt = Ze.current, gt = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: gs.current, muted: Nt.muted }, On = `${gt.t.toFixed(2)}|${gt.dur}|${gt.playing}|${gt.idx}|${gt.seekN}|${gt.lang}|${gt.muted}`;
5948
- On !== w && (w = On, We(gt));
5968
+ const Nt = Ze.current, ft = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: gs.current, muted: Nt.muted }, On = `${ft.t.toFixed(2)}|${ft.dur}|${ft.playing}|${ft.idx}|${ft.seekN}|${ft.lang}|${ft.muted}`;
5969
+ On !== w && (w = On, We(ft));
5949
5970
  };
5950
5971
  me();
5951
5972
  const Pe = window.setInterval(me, Su);
5952
5973
  return () => window.clearInterval(Pe);
5953
5974
  }, []);
5954
- const Da = () => t.onShare ? t.onShare() : Qr(ds(null), qe, () => {
5975
+ const xa = () => t.onShare ? t.onShare() : Qr(ds(null), qe, () => {
5955
5976
  window.clearTimeout(ar.current), ls(!0), ar.current = window.setTimeout(() => ls(!1), 2200);
5956
5977
  }), fs = (w, me, Pe) => {
5957
- const We = br.find((On) => On.key === w), Nt = sr === w, gt = xa === w;
5978
+ const We = br.find((On) => On.key === w), Nt = sr === w, ft = ba === w;
5958
5979
  return /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: sr && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
5959
- sr || (cs(w), Promise.resolve().then(() => Yt(w)).then(() => {
5980
+ sr || (cs(w), Promise.resolve().then(() => dt(w)).then(() => {
5960
5981
  us(w), window.clearTimeout(ir.current), ir.current = window.setTimeout(() => us(null), 1600);
5961
5982
  }).catch(() => {
5962
5983
  }).finally(() => cs(null)));
5963
5984
  }, children: [
5964
- Nt ? /* @__PURE__ */ i(lt, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: We.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
5985
+ Nt ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: We.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
5965
5986
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
5966
5987
  /* @__PURE__ */ i("div", { className: "srow__t", children: me }),
5967
5988
  /* @__PURE__ */ i("div", { className: "srow__s", children: Pe })
5968
5989
  ] }),
5969
- /* @__PURE__ */ i(oe, { d: gt ? X.check : X.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: gt ? "var(--brand)" : "var(--ink-62)" } })
5990
+ /* @__PURE__ */ i(oe, { d: ft ? X.check : X.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ft ? "var(--brand)" : "var(--ink-62)" } })
5970
5991
  ] });
5971
- }, Aa = /* @__PURE__ */ g("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
5992
+ }, Sa = /* @__PURE__ */ g("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
5972
5993
  " ",
5973
5994
  /* @__PURE__ */ g("button", { type: "button", onClick: () => b("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: [
5974
5995
  /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
5975
5996
  "Back"
5976
5997
  ] })
5977
- ] }), jn = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), Ea = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[T], zn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, lr = u ? /* @__PURE__ */ i(Jt, { open: ee, onClose: () => z(!1), title: Ea, titleNode: T === "main" ? void 0 : Aa, doneLabel: Ft.done, kind: T === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: T === "lang" ? /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
5998
+ ] }), jn = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), Da = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[T], zn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, lr = u ? /* @__PURE__ */ i(Kt, { open: ee, onClose: () => I(!1), title: Da, titleNode: T === "main" ? void 0 : Sa, doneLabel: Wt.done, kind: T === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: T === "lang" ? /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
5978
5999
  /* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Gr.search }),
5979
6000
  Gr.list
5980
6001
  ] }) : T === "subs" ? /* @__PURE__ */ g("div", { style: zn, children: [
@@ -6019,7 +6040,7 @@ function Au(t) {
6019
6040
  /* @__PURE__ */ i("div", { className: "srow__t", children: Un }),
6020
6041
  /* @__PURE__ */ i("div", { className: "srow__s", children: Po(Q, Xn, "video", re.on ? 0 : Kn.untilS) })
6021
6042
  ] }),
6022
- /* @__PURE__ */ i(Tt, { checked: Q && ht, onChange: H, label: Un, disabled: !ht || Xn === "unavailable" && !Q })
6043
+ /* @__PURE__ */ i(Tt, { checked: Q && ot, onChange: H, label: Un, disabled: !ot || Xn === "unavailable" && !Q })
6023
6044
  ] })
6024
6045
  ] }) : T === "export" ? /* @__PURE__ */ g("div", { style: zn, children: [
6025
6046
  fs("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
@@ -6043,28 +6064,28 @@ function Au(t) {
6043
6064
  x.audio && /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => b("audio"), children: [
6044
6065
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
6045
6066
  /* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
6046
- /* @__PURE__ */ i("div", { className: "srow__s", children: Ta })
6067
+ /* @__PURE__ */ i("div", { className: "srow__s", children: Na })
6047
6068
  ] }),
6048
6069
  jn
6049
6070
  ] }, "audio"),
6050
- x.export && vt && !!ie && /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => b("export"), children: [
6071
+ x.export && Xt && !!ie && /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", onClick: () => b("export"), children: [
6051
6072
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
6052
6073
  /* @__PURE__ */ g("div", { className: "srow__t", children: [
6053
6074
  "Export",
6054
- kt ? ` in ${kt}` : ""
6075
+ gt ? ` in ${gt}` : ""
6055
6076
  ] }),
6056
6077
  /* @__PURE__ */ i("div", { className: "srow__s", children: "Subtitles (SRT / VTT) or a PDF of the transcript" })
6057
6078
  ] }),
6058
6079
  jn
6059
6080
  ] }, "export")
6060
- ].filter(Boolean).flatMap((w, me) => me ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${me}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(Jt, { open: ee, onClose: () => z(!1), title: Ft.settings, doneLabel: Ft.done, drawer: s, children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
6061
- Ue.can && /* @__PURE__ */ g(xe, { children: [
6081
+ ].filter(Boolean).flatMap((w, me) => me ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${me}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(Kt, { open: ee, onClose: () => I(!1), title: Wt.settings, doneLabel: Wt.done, drawer: s, children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
6082
+ Ue.can && /* @__PURE__ */ g(Ce, { children: [
6062
6083
  /* @__PURE__ */ g("div", { className: "srow srow--tap", onClick: () => {
6063
- z(!1), Ue.onClick();
6084
+ I(!1), Ue.onClick();
6064
6085
  }, children: [
6065
6086
  /* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
6066
- /* @__PURE__ */ i("div", { className: "srow__t", children: Ft.langLabel }),
6067
- /* @__PURE__ */ i("div", { className: "srow__s", children: Ft.langCount })
6087
+ /* @__PURE__ */ i("div", { className: "srow__t", children: Wt.langLabel }),
6088
+ /* @__PURE__ */ i("div", { className: "srow__s", children: Wt.langCount })
6068
6089
  ] }),
6069
6090
  /* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Ue.flag }),
6070
6091
  re.original ? null : /* @__PURE__ */ i("span", { style: { fontSize: 14, fontWeight: 600, color: "var(--ink-96)" }, children: Ue.label }),
@@ -6073,21 +6094,21 @@ function Au(t) {
6073
6094
  /* @__PURE__ */ i("div", { className: "sdiv" })
6074
6095
  ] }),
6075
6096
  t.settingsExtra
6076
- ] }) }), Dt = te && Pt && (!!Qe || u) && /* @__PURE__ */ i(
6077
- oa,
6097
+ ] }) }), xt = te && Pt && (!!Ve || u) && /* @__PURE__ */ i(
6098
+ sa,
6078
6099
  {
6079
6100
  page: (t.layout ?? "embed") === "page",
6080
6101
  picture: ts,
6081
6102
  title: qe,
6082
6103
  desk: s,
6083
6104
  pos: Fr,
6084
- mute: { muted: O.muted, onToggle: Fn },
6105
+ mute: { muted: z.muted, onToggle: gn },
6085
6106
  cc: x.subtitles ? { on: Se, onToggle: () => ve((w) => !w) } : void 0,
6086
6107
  noFull: !x.fullscreen,
6087
- ad: gn,
6088
- wait: tt && !qn ? /* @__PURE__ */ i(Cc, { state: tt, line: St ? as.map((w) => w.t + w.sp).join("") : null, onRetry: wa, onOriginal: va }) : O.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
6108
+ ad: Hn,
6109
+ wait: tt && !qn ? /* @__PURE__ */ i(Cc, { state: tt, line: Ct ? as.map((w) => w.t + w.sp).join("") : null, onRetry: ya, onOriginal: Ta }) : z.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
6089
6110
  pct: fe ? Math.round(U) : null,
6090
- sub: Se && et ? { who: Ln ? Ur(ce, et.speaker) : null, color: Ln ? Ln.fg ?? `var(--lane-${Ln.lane})` : "#fff", words: as, cursor: mi(O, O.idx, yn) } : null,
6111
+ sub: Se && Xe ? { who: Ln ? Ur(ce, Xe.speaker) : null, color: Ln ? Ln.fg ?? `var(--lane-${Ln.lane})` : "#fff", words: as, cursor: gi(z, z.idx, yn) } : null,
6091
6112
  chip: nr(s ? tr : { ...tr, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
6092
6113
  transport: Jr,
6093
6114
  picker: re.sheets,
@@ -6095,66 +6116,66 @@ function Au(t) {
6095
6116
  voices: null,
6096
6117
  voicesBtn: u ? null : Xr,
6097
6118
  sheetOpen: re.sheetsOpen || ee,
6098
- onShare: u && x.share ? Da : void 0,
6119
+ onShare: u && x.share ? xa : void 0,
6099
6120
  onSettings: u && x.settings ? () => {
6100
- re.closePicker(), z((w) => !w);
6121
+ re.closePicker(), I((w) => !w);
6101
6122
  } : void 0,
6102
6123
  compact: !!t.compact,
6103
- paused: { title: qe, summary: mt.state === "ready" ? mt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: ds, at: O.t } : null },
6104
- copied: Ca ? /* @__PURE__ */ g("div", { className: "gfull__toast", "aria-live": "polite", children: [
6124
+ paused: { title: qe, summary: Rt.state === "ready" ? Rt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: ds, at: z.t } : null },
6125
+ copied: Oa ? /* @__PURE__ */ g("div", { className: "gfull__toast", "aria-live": "polite", children: [
6105
6126
  /* @__PURE__ */ i(oe, { d: X.check, size: 13, sw: 2 }),
6106
6127
  "Link copied"
6107
- ] }) : rn ? /* @__PURE__ */ g("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
6128
+ ] }) : Mn ? /* @__PURE__ */ g("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
6108
6129
  /* @__PURE__ */ i(oe, { d: X.volumeOff, size: 14, sw: 1.8 }),
6109
6130
  "Tap for sound"
6110
6131
  ] }) : Zr ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
6111
- /* @__PURE__ */ i(lt, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
6132
+ /* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
6112
6133
  Zr
6113
- ] }) : re.on && (Xe ? Et.missing != null : O.silent) ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
6114
- /* @__PURE__ */ i(lt, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
6134
+ ] }) : re.on && (Je ? Dt.missing != null : z.silent) ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
6135
+ /* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
6115
6136
  `${pn || "Translated"} voice is still being prepared · playing with subtitles`
6116
6137
  ] }) : null,
6117
6138
  onTouch: () => {
6118
- un(!0), Wn();
6139
+ an(!0), Fn();
6119
6140
  },
6120
6141
  onClose: u ? void 0 : () => {
6121
- un(!1), K(!1);
6142
+ an(!1), K(!1);
6122
6143
  }
6123
6144
  }
6124
6145
  );
6125
6146
  D(() => {
6126
- !u && te && !Pt && (un(!1), K(!1));
6147
+ !u && te && !Pt && (an(!1), K(!1));
6127
6148
  }, [u, te, Pt]);
6128
6149
  const ps = fe && /* @__PURE__ */ g("div", { className: `pubprog${s ? " pubprog--desk" : ""}${m ? " pubprog--find" : ""}`, children: [
6129
6150
  /* @__PURE__ */ g("div", { className: "pubprog__row", children: [
6130
6151
  /* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${U}%` }),
6131
6152
  !s && /* @__PURE__ */ i("div", { style: { flex: 1 } }),
6132
6153
  s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { flex: 1 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) }),
6133
- /* @__PURE__ */ i("span", { className: "s", children: it })
6154
+ /* @__PURE__ */ i("span", { className: "s", children: tn })
6134
6155
  ] }),
6135
6156
  !s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
6136
- ] }), cr = 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." }), ms = /* @__PURE__ */ i(Fc, { model: ce, rows: he, player: jt ? O : { ...O, playRow: O.seekRow }, tail: Mt, tailFg: tn, running: fe, desk: s, feedRef: bt, listener: !0, showLabels: wn, find: j, findOpen: !s && m, lang: Ce, warm: an, onVisible: Ve, wordHl: Tn }), ur = /* @__PURE__ */ i(Hl, { error: d ?? W ?? (Zn && te ? null : O.error) ?? re.error, onClose: () => {
6137
- M(null), ye(), O.clearError(), re.clearError();
6138
- } }), Ns = [R ? It(R) : null, q ? q.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), ys = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ g(xe, { children: [
6157
+ ] }), cr = 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." }), ms = /* @__PURE__ */ i(Fc, { model: ce, rows: he, player: vt ? z : { ...z, playRow: z.seekRow }, tail: en, tailFg: ct, running: fe, desk: s, feedRef: Et, listener: !0, showLabels: wn, find: j, findOpen: !s && m, lang: Qe, warm: P, onVisible: bt, wordHl: Tn }), ur = /* @__PURE__ */ i(Hl, { error: d ?? W ?? (Zn && te ? null : z.error) ?? re.error, onClose: () => {
6158
+ M(null), ye(), z.clearError(), re.clearError();
6159
+ } }), Ns = [R ? kt(R) : null, q ? q.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), ys = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ g(Ce, { children: [
6139
6160
  /* @__PURE__ */ g("div", { className: "ctrans__row", children: [
6140
6161
  /* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
6141
6162
  /* @__PURE__ */ g("div", { className: "ctrans__mid", children: [
6142
- /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: O.idx <= 0 ? 0.3 : 1 }, onClick: O.prev, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 16, sw: 1.8 }) }),
6143
- /* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : O.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (O.playing ? "Pause" : "Play"), disabled: !Ct, onClick: O.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: O.playing ? void 0 : { marginLeft: 2 }, children: O.playing ? Sc : Dc }) }),
6144
- /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: O.idx >= he.length - 1 ? 0.3 : 1 }, onClick: O.next, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 16, sw: 1.8 }) })
6163
+ /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: z.idx <= 0 ? 0.3 : 1 }, onClick: z.prev, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 16, sw: 1.8 }) }),
6164
+ /* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : z.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (z.playing ? "Pause" : "Play"), disabled: !zt, onClick: z.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: z.playing ? void 0 : { marginLeft: 2 }, children: z.playing ? Sc : Dc }) }),
6165
+ /* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: z.idx >= he.length - 1 ? 0.3 : 1 }, onClick: z.next, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 16, sw: 1.8 }) })
6145
6166
  ] }),
6146
6167
  /* @__PURE__ */ i("span", { className: "ctrans__mute", children: fn(36) })
6147
6168
  ] }),
6148
- /* @__PURE__ */ i("div", { className: "ctrans__scrub", children: fa(w) })
6149
- ] }) }), _a = mc("ga", { tabs: Zt, cur: h, pref: (Xs = Zt[0]) == null ? void 0 : Xs.key, onPick: f }), Ts = Math.max(0, Math.min(100, Math.round(U))), Ya = Ye && /* @__PURE__ */ g("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
6150
- Qe && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Qe}/hqdefault.jpg)` } }),
6151
- /* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(xe, { children: [
6169
+ /* @__PURE__ */ i("div", { className: "ctrans__scrub", children: Ma(w) })
6170
+ ] }) }), Aa = mc("ga", { tabs: Ft, cur: h, pref: (qs = Ft[0]) == null ? void 0 : qs.key, onPick: f }), Ts = Math.max(0, Math.min(100, Math.round(U))), Ea = Ye && /* @__PURE__ */ g("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
6171
+ Ve && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
6172
+ /* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(Ce, { children: [
6152
6173
  qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
6153
6174
  /* @__PURE__ */ i("div", { className: "gfull__holdpct", children: ae === "transcribing" ? `${Ts}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
6154
6175
  /* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ae === "transcribing" ? Ts : 0}%` } }) }),
6155
6176
  /* @__PURE__ */ g("div", { className: "gfull__holds", children: [
6156
6177
  ae === "transcribing" ? "Transcribing" : ae === "cropping" ? "Preparing the video" : "Waiting to start",
6157
- ae === "transcribing" && ($ != null && $.segmentsDone) ? ` · ${it.toLowerCase()}` : ""
6178
+ ae === "transcribing" && ($ != null && $.segmentsDone) ? ` · ${tn.toLowerCase()}` : ""
6158
6179
  ] }),
6159
6180
  /* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
6160
6181
  ] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
@@ -6163,21 +6184,21 @@ function Au(t) {
6163
6184
  var w;
6164
6185
  (w = In.current) == null || w.call(In, ws);
6165
6186
  }, [ws]);
6166
- const [Ua, dr] = L(!1), hr = !!Dt && !Ye && (Xe ? !!O.ended : !O.playing && O.dur > 0 && O.t >= O.dur - 0.5);
6187
+ const [_a, dr] = L(!1), hr = !!xt && !Ye && (Je ? !!z.ended : !z.playing && z.dur > 0 && z.t >= z.dur - 0.5);
6167
6188
  D(() => {
6168
6189
  hr || dr(!1);
6169
6190
  }, [hr]);
6170
- const Ra = t.endCard !== !1 && hr && !Ua && /* @__PURE__ */ i(pu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => dr(!0), onReplay: () => {
6171
- dr(!0), Ke.current = !0, O.seekFrac ? O.seekFrac(0) : O.seekRow(0), O.playing || O.toggle();
6191
+ const Ya = t.endCard !== !1 && hr && !_a && /* @__PURE__ */ i(pu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => dr(!0), onReplay: () => {
6192
+ dr(!0), et.current = !0, z.seekFrac ? z.seekFrac(0) : z.seekRow(0), z.playing || z.toggle();
6172
6193
  } });
6173
- if (u) return /* @__PURE__ */ g(xe, { children: [
6174
- r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) : Ya || Dt || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
6175
- Ra,
6194
+ if (u) return /* @__PURE__ */ g(Ce, { children: [
6195
+ r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) : Ea || xt || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
6196
+ Ya,
6176
6197
  ur
6177
6198
  ] });
6178
6199
  if (s) {
6179
- const w = jt && !Pt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: ys(!0) }), me = !r && (Zt.length > 0 || Pt || !!re.sidePanel || !!w);
6180
- return /* @__PURE__ */ g(xe, { children: [
6200
+ const w = vt && !Pt && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: ys(!0) }), me = !r && (Ft.length > 0 || Pt || !!re.sidePanel || !!w);
6201
+ return /* @__PURE__ */ g(Ce, { children: [
6181
6202
  /* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ g("div", { className: "gcolhead", children: [
6182
6203
  /* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ g("div", { className: "gcolhead__col", children: [
6183
6204
  /* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i($n, { dark: a, height: 20.38 }) }),
@@ -6191,7 +6212,7 @@ function Au(t) {
6191
6212
  /* @__PURE__ */ g("div", { className: "listenerlive listenerlive--cols listenerlive--pub", children: [
6192
6213
  /* @__PURE__ */ g("div", { className: "listenerlive__main", children: [
6193
6214
  cr,
6194
- !r && _t,
6215
+ !r && hn,
6195
6216
  ps,
6196
6217
  p && /* @__PURE__ */ i("div", { className: "pubflash", children: p }),
6197
6218
  !r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: ms }),
@@ -6203,41 +6224,41 @@ function Au(t) {
6203
6224
  me && /* @__PURE__ */ g(Tc, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
6204
6225
  !re.sidePanel && w,
6205
6226
  !re.sidePanel && ns,
6206
- !re.sidePanel && Zt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Nc, { col: _a, order: ["summary", "export"], onPick: f, grip: { summary: 40, export: 28 }, render: (Pe) => /* @__PURE__ */ i(ei, { panel: !0, children: Wr(Pe) }) }) }),
6227
+ !re.sidePanel && Ft.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Nc, { col: Aa, order: ["summary", "export"], onPick: f, grip: { summary: 40, export: 28 }, render: (Pe) => /* @__PURE__ */ i(Ks, { panel: !0, children: Wr(Pe) }) }) }),
6207
6228
  re.sidePanel
6208
6229
  ] })
6209
6230
  ] }),
6210
- !Dt && re.sheets,
6211
- !(u && Dt) && lr,
6212
- Dt,
6231
+ !xt && re.sheets,
6232
+ !(u && xt) && lr,
6233
+ xt,
6213
6234
  ur
6214
6235
  ] });
6215
6236
  }
6216
- const Pa = Zt.length > 0 && !m && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ g(ei, { panel: !0, children: [
6217
- /* @__PURE__ */ i(ea, { tabs: Zt, current: h, onPick: f, gap: h !== "none" }),
6237
+ const Ua = Ft.length > 0 && !m && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ g(Ks, { panel: !0, children: [
6238
+ /* @__PURE__ */ i(Ki, { tabs: Ft, current: h, onPick: f, gap: h !== "none" }),
6218
6239
  h !== "none" && Wr(h)
6219
6240
  ] }) });
6220
- return /* @__PURE__ */ g(xe, { children: [
6221
- /* @__PURE__ */ i(au, { dark: a, title: n ? qe : "", subline: n ? Ns : "", onOptions: () => z(!0), optionsActive: ee }),
6241
+ return /* @__PURE__ */ g(Ce, { children: [
6242
+ /* @__PURE__ */ i(au, { dark: a, title: n ? qe : "", subline: n ? Ns : "", onOptions: () => I(!0), optionsActive: ee }),
6222
6243
  cr,
6223
6244
  ps,
6224
- !r && Pa,
6245
+ !r && Ua,
6225
6246
  !r && ns,
6226
6247
  !r && /* @__PURE__ */ g("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
6227
- _t,
6248
+ hn,
6228
6249
  ms,
6229
6250
  p && /* @__PURE__ */ i("div", { className: "txflash", children: p })
6230
6251
  ] }),
6231
6252
  !r && /* @__PURE__ */ g("div", { className: "gbottom", "data-transport": "1", children: [
6232
- jt && !Pt && /* @__PURE__ */ i("div", { className: "pubctl", children: ys(!1) }),
6253
+ vt && !Pt && /* @__PURE__ */ i("div", { className: "pubctl", children: ys(!1) }),
6233
6254
  /* @__PURE__ */ g("div", { className: "gbottom__bar", children: [
6234
6255
  Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: nr({ width: 87 }, void 0) }),
6235
6256
  /* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Hr })
6236
6257
  ] })
6237
6258
  ] }),
6238
- !Dt && re.sheets,
6239
- !(u && Dt) && lr,
6240
- Dt,
6259
+ !xt && re.sheets,
6260
+ !(u && xt) && lr,
6261
+ xt,
6241
6262
  ur
6242
6263
  ] });
6243
6264
  }
@@ -6247,7 +6268,7 @@ function Eu(t) {
6247
6268
  if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
6248
6269
  let r = !0, s;
6249
6270
  const a = () => {
6250
- oo(t).then((o) => {
6271
+ io(t).then((o) => {
6251
6272
  r && (n({ url: t, ok: o }), o || (s = setTimeout(a, 3e3)));
6252
6273
  });
6253
6274
  };
@@ -6261,7 +6282,7 @@ function Fu({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
6261
6282
  }
6262
6283
  export {
6263
6284
  uc as ExportPanel,
6264
- oa as FullVideo,
6285
+ sa as FullVideo,
6265
6286
  su as MiniPlayer,
6266
6287
  Ac as MuteButton,
6267
6288
  Bc as NO_SEEK,
@@ -6273,7 +6294,7 @@ export {
6273
6294
  Un as REMOVE_BG_LABEL,
6274
6295
  Uo as REMOVE_BG_NOTE,
6275
6296
  Wl as ReplayScrub,
6276
- Ui as SITES,
6297
+ Ei as SITES,
6277
6298
  Fu as SiteIcon,
6278
6299
  ec as SpeakerCast,
6279
6300
  Mc as SummaryPanel,
@@ -6284,28 +6305,28 @@ export {
6284
6305
  tc as VoiceSheetBody,
6285
6306
  xc as YtFollow,
6286
6307
  Po as bedNote,
6287
- un as browserFull,
6288
- Lo as hostOfUrl,
6308
+ an as browserFull,
6309
+ wo as hostOfUrl,
6289
6310
  Qt as lineEnd,
6290
- ra as lineWords,
6291
- Gt as pictureT,
6311
+ ea as lineWords,
6312
+ Zt as pictureT,
6292
6313
  Dn as placePosition,
6293
6314
  An as realFull,
6294
6315
  Qu as setErrorReporter,
6295
- yi as setFullTarget,
6316
+ pi as setFullTarget,
6296
6317
  Bu as siteById,
6297
- ko as siteOf,
6318
+ vo as siteOf,
6298
6319
  zc as snapPosition,
6299
- mi as spokenWordOf,
6320
+ gi as spokenWordOf,
6300
6321
  $o as trackPlan,
6301
- Wi as useApi,
6322
+ Bi as useApi,
6302
6323
  ac as useArchiveVoice,
6303
6324
  qo as useBackgroundBed,
6304
6325
  Rc as useDuck,
6305
6326
  Gc as useFindPull,
6306
6327
  Ec as useFlash,
6307
6328
  Bt as usePlayerApi,
6308
- $i as useSeparatedTrack,
6329
+ Ui as useSeparatedTrack,
6309
6330
  dc as useSummaryIn,
6310
6331
  Sl as useTranscript,
6311
6332
  $c as useTxPlayer,