@fluencypassdevs/cycle 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/player-i18n.ts"],"names":[],"mappings":"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","file":"chunk-C6BQAAHX.js","sourcesContent":["import type { DefaultLayoutTranslations } from \"@vidstack/react/player/layouts/default\"\n\n/* ─── Supported locales ─── */\n\nexport type PlayerLocale =\n | \"pt-BR\"\n | \"en-US\"\n | \"en-GB\"\n | \"es-MX\"\n | \"es-ES\"\n | \"fr-FR\"\n | \"fr-CA\"\n | \"zh-CN\"\n | \"zh-TW\"\n | \"de-DE\"\n | \"it-IT\"\n | \"ja-JP\"\n | \"ko-KR\"\n\n/* ─── Desktop control labels (used by VideoPlayer custom controls) ─── */\n\nexport interface VideoDesktopLabels {\n play: string\n pause: string\n seekBackward: string\n seekForward: string\n mute: string\n unmute: string\n captionsOn: string\n captionsOff: string\n captions: string\n pip: string\n pipExit: string\n speed: string\n speedNormal: string\n quality: string\n qualityMenu: string\n fullscreen: string\n fullscreenExit: string\n live: string\n}\n\n/* ─── Complete locale bundle ─── */\n\nexport interface PlayerLocaleData {\n desktop: VideoDesktopLabels\n vidstack: DefaultLayoutTranslations\n}\n\n/* ─── Locale data ─── */\n\nconst ptBR: PlayerLocaleData = {\n desktop: {\n play: \"Reproduzir\",\n pause: \"Pausar\",\n seekBackward: \"Retroceder 10s\",\n seekForward: \"Avançar 10s\",\n mute: \"Silenciar\",\n unmute: \"Ativar som\",\n captionsOn: \"Desativar legendas\",\n captionsOff: \"Ativar legendas\",\n captions: \"Legendas\",\n pip: \"Picture-in-Picture\",\n pipExit: \"Sair do PiP\",\n speed: \"Velocidade\",\n speedNormal: \"Normal\",\n quality: \"Qualidade\",\n qualityMenu: \"Qualidade\",\n fullscreen: \"Tela cheia\",\n fullscreenExit: \"Sair da tela cheia\",\n live: \"Ao vivo\",\n },\n vidstack: {\n Announcements: \"Avisos\",\n Accessibility: \"Acessibilidade\",\n AirPlay: \"AirPlay\",\n Audio: \"Áudio\",\n Auto: \"Automático\",\n Boost: \"Amplificar\",\n Captions: \"Legendas\",\n \"Caption Styles\": \"Estilos de legenda\",\n \"Captions look like this\": \"Legendas ficam assim\",\n Chapters: \"Capítulos\",\n \"Closed-Captions Off\": \"Ativar legendas\",\n \"Closed-Captions On\": \"Desativar legendas\",\n Connected: \"Conectado\",\n Continue: \"Continuar\",\n Connecting: \"Conectando\",\n Default: \"Padrão\",\n Disabled: \"Desativado\",\n Disconnected: \"Desconectado\",\n \"Display Background\": \"Fundo da tela\",\n Download: \"Baixar\",\n \"Enter Fullscreen\": \"Tela cheia\",\n \"Enter PiP\": \"Picture-in-Picture\",\n \"Exit Fullscreen\": \"Sair da tela cheia\",\n \"Exit PiP\": \"Sair do PiP\",\n Font: \"Fonte\",\n Family: \"Família\",\n Fullscreen: \"Tela cheia\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Animações de teclado\",\n LIVE: \"AO VIVO\",\n Loop: \"Repetir\",\n Mute: \"Silenciar\",\n Normal: \"Normal\",\n Off: \"Desligado\",\n Pause: \"Pausar\",\n Play: \"Reproduzir\",\n Playback: \"Reprodução\",\n PiP: \"PiP\",\n Quality: \"Qualidade\",\n Replay: \"Repetir\",\n Reset: \"Redefinir\",\n \"Seek Backward\": \"Retroceder\",\n \"Seek Forward\": \"Avançar\",\n Seek: \"Buscar\",\n Settings: \"Configurações\",\n \"Skip To Live\": \"Ir para ao vivo\",\n Speed: \"Velocidade\",\n Size: \"Tamanho\",\n Color: \"Cor\",\n Opacity: \"Opacidade\",\n Shadow: \"Sombra\",\n Text: \"Texto\",\n \"Text Background\": \"Fundo do texto\",\n Track: \"Faixa\",\n Unmute: \"Ativar som\",\n Volume: \"Volume\",\n },\n}\n\nconst enUS: PlayerLocaleData = {\n desktop: {\n play: \"Play\",\n pause: \"Pause\",\n seekBackward: \"Rewind 10s\",\n seekForward: \"Forward 10s\",\n mute: \"Mute\",\n unmute: \"Unmute\",\n captionsOn: \"Disable captions\",\n captionsOff: \"Enable captions\",\n captions: \"Captions\",\n pip: \"Picture-in-Picture\",\n pipExit: \"Exit PiP\",\n speed: \"Speed\",\n speedNormal: \"Normal\",\n quality: \"Quality\",\n qualityMenu: \"Quality\",\n fullscreen: \"Fullscreen\",\n fullscreenExit: \"Exit fullscreen\",\n live: \"Live\",\n },\n vidstack: {\n Announcements: \"Announcements\",\n Accessibility: \"Accessibility\",\n AirPlay: \"AirPlay\",\n Audio: \"Audio\",\n Auto: \"Auto\",\n Boost: \"Boost\",\n Captions: \"Captions\",\n \"Caption Styles\": \"Caption Styles\",\n \"Captions look like this\": \"Captions look like this\",\n Chapters: \"Chapters\",\n \"Closed-Captions Off\": \"Closed-Captions Off\",\n \"Closed-Captions On\": \"Closed-Captions On\",\n Connected: \"Connected\",\n Continue: \"Continue\",\n Connecting: \"Connecting\",\n Default: \"Default\",\n Disabled: \"Disabled\",\n Disconnected: \"Disconnected\",\n \"Display Background\": \"Display Background\",\n Download: \"Download\",\n \"Enter Fullscreen\": \"Enter Fullscreen\",\n \"Enter PiP\": \"Enter PiP\",\n \"Exit Fullscreen\": \"Exit Fullscreen\",\n \"Exit PiP\": \"Exit PiP\",\n Font: \"Font\",\n Family: \"Family\",\n Fullscreen: \"Fullscreen\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Keyboard Animations\",\n LIVE: \"LIVE\",\n Loop: \"Loop\",\n Mute: \"Mute\",\n Normal: \"Normal\",\n Off: \"Off\",\n Pause: \"Pause\",\n Play: \"Play\",\n Playback: \"Playback\",\n PiP: \"PiP\",\n Quality: \"Quality\",\n Replay: \"Replay\",\n Reset: \"Reset\",\n \"Seek Backward\": \"Seek Backward\",\n \"Seek Forward\": \"Seek Forward\",\n Seek: \"Seek\",\n Settings: \"Settings\",\n \"Skip To Live\": \"Skip To Live\",\n Speed: \"Speed\",\n Size: \"Size\",\n Color: \"Color\",\n Opacity: \"Opacity\",\n Shadow: \"Shadow\",\n Text: \"Text\",\n \"Text Background\": \"Text Background\",\n Track: \"Track\",\n Unmute: \"Unmute\",\n Volume: \"Volume\",\n },\n}\n\nconst enGB: PlayerLocaleData = {\n desktop: { ...enUS.desktop },\n vidstack: { ...enUS.vidstack },\n}\n\nconst esMX: PlayerLocaleData = {\n desktop: {\n play: \"Reproducir\",\n pause: \"Pausar\",\n seekBackward: \"Retroceder 10s\",\n seekForward: \"Adelantar 10s\",\n mute: \"Silenciar\",\n unmute: \"Activar sonido\",\n captionsOn: \"Desactivar subtítulos\",\n captionsOff: \"Activar subtítulos\",\n captions: \"Subtítulos\",\n pip: \"Picture-in-Picture\",\n pipExit: \"Salir de PiP\",\n speed: \"Velocidad\",\n speedNormal: \"Normal\",\n quality: \"Calidad\",\n qualityMenu: \"Calidad\",\n fullscreen: \"Pantalla completa\",\n fullscreenExit: \"Salir de pantalla completa\",\n live: \"En vivo\",\n },\n vidstack: {\n Announcements: \"Anuncios\",\n Accessibility: \"Accesibilidad\",\n AirPlay: \"AirPlay\",\n Audio: \"Audio\",\n Auto: \"Automático\",\n Boost: \"Amplificar\",\n Captions: \"Subtítulos\",\n \"Caption Styles\": \"Estilos de subtítulos\",\n \"Captions look like this\": \"Los subtítulos se ven así\",\n Chapters: \"Capítulos\",\n \"Closed-Captions Off\": \"Activar subtítulos\",\n \"Closed-Captions On\": \"Desactivar subtítulos\",\n Connected: \"Conectado\",\n Continue: \"Continuar\",\n Connecting: \"Conectando\",\n Default: \"Predeterminado\",\n Disabled: \"Desactivado\",\n Disconnected: \"Desconectado\",\n \"Display Background\": \"Fondo de pantalla\",\n Download: \"Descargar\",\n \"Enter Fullscreen\": \"Pantalla completa\",\n \"Enter PiP\": \"Picture-in-Picture\",\n \"Exit Fullscreen\": \"Salir de pantalla completa\",\n \"Exit PiP\": \"Salir de PiP\",\n Font: \"Fuente\",\n Family: \"Familia\",\n Fullscreen: \"Pantalla completa\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Animaciones de teclado\",\n LIVE: \"EN VIVO\",\n Loop: \"Repetir\",\n Mute: \"Silenciar\",\n Normal: \"Normal\",\n Off: \"Desactivado\",\n Pause: \"Pausar\",\n Play: \"Reproducir\",\n Playback: \"Reproducción\",\n PiP: \"PiP\",\n Quality: \"Calidad\",\n Replay: \"Repetir\",\n Reset: \"Restablecer\",\n \"Seek Backward\": \"Retroceder\",\n \"Seek Forward\": \"Adelantar\",\n Seek: \"Buscar\",\n Settings: \"Configuración\",\n \"Skip To Live\": \"Ir a en vivo\",\n Speed: \"Velocidad\",\n Size: \"Tamaño\",\n Color: \"Color\",\n Opacity: \"Opacidad\",\n Shadow: \"Sombra\",\n Text: \"Texto\",\n \"Text Background\": \"Fondo del texto\",\n Track: \"Pista\",\n Unmute: \"Activar sonido\",\n Volume: \"Volumen\",\n },\n}\n\nconst esES: PlayerLocaleData = {\n desktop: { ...esMX.desktop },\n vidstack: { ...esMX.vidstack },\n}\n\nconst frFR: PlayerLocaleData = {\n desktop: {\n play: \"Lecture\",\n pause: \"Pause\",\n seekBackward: \"Reculer de 10s\",\n seekForward: \"Avancer de 10s\",\n mute: \"Couper le son\",\n unmute: \"Activer le son\",\n captionsOn: \"Désactiver les sous-titres\",\n captionsOff: \"Activer les sous-titres\",\n captions: \"Sous-titres\",\n pip: \"Picture-in-Picture\",\n pipExit: \"Quitter PiP\",\n speed: \"Vitesse\",\n speedNormal: \"Normal\",\n quality: \"Qualité\",\n qualityMenu: \"Qualité\",\n fullscreen: \"Plein écran\",\n fullscreenExit: \"Quitter le plein écran\",\n live: \"En direct\",\n },\n vidstack: {\n Announcements: \"Annonces\",\n Accessibility: \"Accessibilité\",\n AirPlay: \"AirPlay\",\n Audio: \"Audio\",\n Auto: \"Automatique\",\n Boost: \"Amplifier\",\n Captions: \"Sous-titres\",\n \"Caption Styles\": \"Styles des sous-titres\",\n \"Captions look like this\": \"Les sous-titres ressemblent à ceci\",\n Chapters: \"Chapitres\",\n \"Closed-Captions Off\": \"Activer les sous-titres\",\n \"Closed-Captions On\": \"Désactiver les sous-titres\",\n Connected: \"Connecté\",\n Continue: \"Continuer\",\n Connecting: \"Connexion\",\n Default: \"Par défaut\",\n Disabled: \"Désactivé\",\n Disconnected: \"Déconnecté\",\n \"Display Background\": \"Arrière-plan\",\n Download: \"Télécharger\",\n \"Enter Fullscreen\": \"Plein écran\",\n \"Enter PiP\": \"Picture-in-Picture\",\n \"Exit Fullscreen\": \"Quitter le plein écran\",\n \"Exit PiP\": \"Quitter PiP\",\n Font: \"Police\",\n Family: \"Famille\",\n Fullscreen: \"Plein écran\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Animations du clavier\",\n LIVE: \"EN DIRECT\",\n Loop: \"Boucle\",\n Mute: \"Couper le son\",\n Normal: \"Normal\",\n Off: \"Désactivé\",\n Pause: \"Pause\",\n Play: \"Lecture\",\n Playback: \"Lecture\",\n PiP: \"PiP\",\n Quality: \"Qualité\",\n Replay: \"Rejouer\",\n Reset: \"Réinitialiser\",\n \"Seek Backward\": \"Reculer\",\n \"Seek Forward\": \"Avancer\",\n Seek: \"Rechercher\",\n Settings: \"Paramètres\",\n \"Skip To Live\": \"Aller au direct\",\n Speed: \"Vitesse\",\n Size: \"Taille\",\n Color: \"Couleur\",\n Opacity: \"Opacité\",\n Shadow: \"Ombre\",\n Text: \"Texte\",\n \"Text Background\": \"Arrière-plan du texte\",\n Track: \"Piste\",\n Unmute: \"Activer le son\",\n Volume: \"Volume\",\n },\n}\n\nconst frCA: PlayerLocaleData = {\n desktop: { ...frFR.desktop },\n vidstack: { ...frFR.vidstack },\n}\n\nconst zhCN: PlayerLocaleData = {\n desktop: {\n play: \"播放\",\n pause: \"暂停\",\n seekBackward: \"后退10秒\",\n seekForward: \"前进10秒\",\n mute: \"静音\",\n unmute: \"取消静音\",\n captionsOn: \"关闭字幕\",\n captionsOff: \"开启字幕\",\n captions: \"字幕\",\n pip: \"画中画\",\n pipExit: \"退出画中画\",\n speed: \"播放速度\",\n speedNormal: \"正常\",\n quality: \"画质\",\n qualityMenu: \"画质\",\n fullscreen: \"全屏\",\n fullscreenExit: \"退出全屏\",\n live: \"直播\",\n },\n vidstack: {\n Announcements: \"公告\",\n Accessibility: \"无障碍\",\n AirPlay: \"AirPlay\",\n Audio: \"音频\",\n Auto: \"自动\",\n Boost: \"增强\",\n Captions: \"字幕\",\n \"Caption Styles\": \"字幕样式\",\n \"Captions look like this\": \"字幕效果预览\",\n Chapters: \"章节\",\n \"Closed-Captions Off\": \"开启字幕\",\n \"Closed-Captions On\": \"关闭字幕\",\n Connected: \"已连接\",\n Continue: \"继续\",\n Connecting: \"连接中\",\n Default: \"默认\",\n Disabled: \"已禁用\",\n Disconnected: \"已断开\",\n \"Display Background\": \"显示背景\",\n Download: \"下载\",\n \"Enter Fullscreen\": \"全屏\",\n \"Enter PiP\": \"画中画\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Exit PiP\": \"退出画中画\",\n Font: \"字体\",\n Family: \"字体族\",\n Fullscreen: \"全屏\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"键盘动画\",\n LIVE: \"直播\",\n Loop: \"循环\",\n Mute: \"静音\",\n Normal: \"正常\",\n Off: \"关闭\",\n Pause: \"暂停\",\n Play: \"播放\",\n Playback: \"播放\",\n PiP: \"画中画\",\n Quality: \"画质\",\n Replay: \"重播\",\n Reset: \"重置\",\n \"Seek Backward\": \"后退\",\n \"Seek Forward\": \"前进\",\n Seek: \"跳转\",\n Settings: \"设置\",\n \"Skip To Live\": \"跳转到直播\",\n Speed: \"播放速度\",\n Size: \"大小\",\n Color: \"颜色\",\n Opacity: \"透明度\",\n Shadow: \"阴影\",\n Text: \"文字\",\n \"Text Background\": \"文字背景\",\n Track: \"轨道\",\n Unmute: \"取消静音\",\n Volume: \"音量\",\n },\n}\n\nconst zhTW: PlayerLocaleData = {\n desktop: {\n play: \"播放\",\n pause: \"暫停\",\n seekBackward: \"倒退10秒\",\n seekForward: \"快進10秒\",\n mute: \"靜音\",\n unmute: \"取消靜音\",\n captionsOn: \"關閉字幕\",\n captionsOff: \"開啟字幕\",\n captions: \"字幕\",\n pip: \"子母畫面\",\n pipExit: \"退出子母畫面\",\n speed: \"播放速度\",\n speedNormal: \"正常\",\n quality: \"畫質\",\n qualityMenu: \"畫質\",\n fullscreen: \"全螢幕\",\n fullscreenExit: \"退出全螢幕\",\n live: \"直播\",\n },\n vidstack: {\n Announcements: \"公告\",\n Accessibility: \"無障礙\",\n AirPlay: \"AirPlay\",\n Audio: \"音訊\",\n Auto: \"自動\",\n Boost: \"增強\",\n Captions: \"字幕\",\n \"Caption Styles\": \"字幕樣式\",\n \"Captions look like this\": \"字幕效果預覽\",\n Chapters: \"章節\",\n \"Closed-Captions Off\": \"開啟字幕\",\n \"Closed-Captions On\": \"關閉字幕\",\n Connected: \"已連線\",\n Continue: \"繼續\",\n Connecting: \"連線中\",\n Default: \"預設\",\n Disabled: \"已停用\",\n Disconnected: \"已中斷\",\n \"Display Background\": \"顯示背景\",\n Download: \"下載\",\n \"Enter Fullscreen\": \"全螢幕\",\n \"Enter PiP\": \"子母畫面\",\n \"Exit Fullscreen\": \"退出全螢幕\",\n \"Exit PiP\": \"退出子母畫面\",\n Font: \"字型\",\n Family: \"字型族\",\n Fullscreen: \"全螢幕\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"鍵盤動畫\",\n LIVE: \"直播\",\n Loop: \"循環\",\n Mute: \"靜音\",\n Normal: \"正常\",\n Off: \"關閉\",\n Pause: \"暫停\",\n Play: \"播放\",\n Playback: \"播放\",\n PiP: \"子母畫面\",\n Quality: \"畫質\",\n Replay: \"重播\",\n Reset: \"重設\",\n \"Seek Backward\": \"倒退\",\n \"Seek Forward\": \"快進\",\n Seek: \"跳轉\",\n Settings: \"設定\",\n \"Skip To Live\": \"跳至直播\",\n Speed: \"播放速度\",\n Size: \"大小\",\n Color: \"顏色\",\n Opacity: \"透明度\",\n Shadow: \"陰影\",\n Text: \"文字\",\n \"Text Background\": \"文字背景\",\n Track: \"軌道\",\n Unmute: \"取消靜音\",\n Volume: \"音量\",\n },\n}\n\nconst deDE: PlayerLocaleData = {\n desktop: {\n play: \"Wiedergabe\",\n pause: \"Pause\",\n seekBackward: \"10s zurück\",\n seekForward: \"10s vor\",\n mute: \"Stummschalten\",\n unmute: \"Ton einschalten\",\n captionsOn: \"Untertitel deaktivieren\",\n captionsOff: \"Untertitel aktivieren\",\n captions: \"Untertitel\",\n pip: \"Bild-in-Bild\",\n pipExit: \"Bild-in-Bild beenden\",\n speed: \"Geschwindigkeit\",\n speedNormal: \"Normal\",\n quality: \"Qualität\",\n qualityMenu: \"Qualität\",\n fullscreen: \"Vollbild\",\n fullscreenExit: \"Vollbild beenden\",\n live: \"Live\",\n },\n vidstack: {\n Announcements: \"Ankündigungen\",\n Accessibility: \"Barrierefreiheit\",\n AirPlay: \"AirPlay\",\n Audio: \"Audio\",\n Auto: \"Automatisch\",\n Boost: \"Verstärken\",\n Captions: \"Untertitel\",\n \"Caption Styles\": \"Untertitelstile\",\n \"Captions look like this\": \"Untertitel sehen so aus\",\n Chapters: \"Kapitel\",\n \"Closed-Captions Off\": \"Untertitel aktivieren\",\n \"Closed-Captions On\": \"Untertitel deaktivieren\",\n Connected: \"Verbunden\",\n Continue: \"Weiter\",\n Connecting: \"Verbindung wird hergestellt\",\n Default: \"Standard\",\n Disabled: \"Deaktiviert\",\n Disconnected: \"Getrennt\",\n \"Display Background\": \"Hintergrund\",\n Download: \"Herunterladen\",\n \"Enter Fullscreen\": \"Vollbild\",\n \"Enter PiP\": \"Bild-in-Bild\",\n \"Exit Fullscreen\": \"Vollbild beenden\",\n \"Exit PiP\": \"Bild-in-Bild beenden\",\n Font: \"Schriftart\",\n Family: \"Familie\",\n Fullscreen: \"Vollbild\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Tastaturanimationen\",\n LIVE: \"LIVE\",\n Loop: \"Wiederholen\",\n Mute: \"Stummschalten\",\n Normal: \"Normal\",\n Off: \"Aus\",\n Pause: \"Pause\",\n Play: \"Wiedergabe\",\n Playback: \"Wiedergabe\",\n PiP: \"BiB\",\n Quality: \"Qualität\",\n Replay: \"Erneut abspielen\",\n Reset: \"Zurücksetzen\",\n \"Seek Backward\": \"Zurückspulen\",\n \"Seek Forward\": \"Vorspulen\",\n Seek: \"Suchen\",\n Settings: \"Einstellungen\",\n \"Skip To Live\": \"Zum Livestream\",\n Speed: \"Geschwindigkeit\",\n Size: \"Größe\",\n Color: \"Farbe\",\n Opacity: \"Deckkraft\",\n Shadow: \"Schatten\",\n Text: \"Text\",\n \"Text Background\": \"Texthintergrund\",\n Track: \"Spur\",\n Unmute: \"Ton einschalten\",\n Volume: \"Lautstärke\",\n },\n}\n\nconst itIT: PlayerLocaleData = {\n desktop: {\n play: \"Riproduci\",\n pause: \"Pausa\",\n seekBackward: \"Indietro 10s\",\n seekForward: \"Avanti 10s\",\n mute: \"Disattiva audio\",\n unmute: \"Attiva audio\",\n captionsOn: \"Disattiva sottotitoli\",\n captionsOff: \"Attiva sottotitoli\",\n captions: \"Sottotitoli\",\n pip: \"Picture-in-Picture\",\n pipExit: \"Esci da PiP\",\n speed: \"Velocità\",\n speedNormal: \"Normale\",\n quality: \"Qualità\",\n qualityMenu: \"Qualità\",\n fullscreen: \"Schermo intero\",\n fullscreenExit: \"Esci da schermo intero\",\n live: \"In diretta\",\n },\n vidstack: {\n Announcements: \"Annunci\",\n Accessibility: \"Accessibilità\",\n AirPlay: \"AirPlay\",\n Audio: \"Audio\",\n Auto: \"Automatico\",\n Boost: \"Amplifica\",\n Captions: \"Sottotitoli\",\n \"Caption Styles\": \"Stili sottotitoli\",\n \"Captions look like this\": \"I sottotitoli appaiono così\",\n Chapters: \"Capitoli\",\n \"Closed-Captions Off\": \"Attiva sottotitoli\",\n \"Closed-Captions On\": \"Disattiva sottotitoli\",\n Connected: \"Connesso\",\n Continue: \"Continua\",\n Connecting: \"Connessione\",\n Default: \"Predefinito\",\n Disabled: \"Disattivato\",\n Disconnected: \"Disconnesso\",\n \"Display Background\": \"Sfondo\",\n Download: \"Scarica\",\n \"Enter Fullscreen\": \"Schermo intero\",\n \"Enter PiP\": \"Picture-in-Picture\",\n \"Exit Fullscreen\": \"Esci da schermo intero\",\n \"Exit PiP\": \"Esci da PiP\",\n Font: \"Carattere\",\n Family: \"Famiglia\",\n Fullscreen: \"Schermo intero\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"Animazioni tastiera\",\n LIVE: \"IN DIRETTA\",\n Loop: \"Ripeti\",\n Mute: \"Disattiva audio\",\n Normal: \"Normale\",\n Off: \"Disattivato\",\n Pause: \"Pausa\",\n Play: \"Riproduci\",\n Playback: \"Riproduzione\",\n PiP: \"PiP\",\n Quality: \"Qualità\",\n Replay: \"Riproduci di nuovo\",\n Reset: \"Ripristina\",\n \"Seek Backward\": \"Indietro\",\n \"Seek Forward\": \"Avanti\",\n Seek: \"Cerca\",\n Settings: \"Impostazioni\",\n \"Skip To Live\": \"Vai alla diretta\",\n Speed: \"Velocità\",\n Size: \"Dimensione\",\n Color: \"Colore\",\n Opacity: \"Opacità\",\n Shadow: \"Ombra\",\n Text: \"Testo\",\n \"Text Background\": \"Sfondo del testo\",\n Track: \"Traccia\",\n Unmute: \"Attiva audio\",\n Volume: \"Volume\",\n },\n}\n\nconst jaJP: PlayerLocaleData = {\n desktop: {\n play: \"再生\",\n pause: \"一時停止\",\n seekBackward: \"10秒戻る\",\n seekForward: \"10秒進む\",\n mute: \"ミュート\",\n unmute: \"ミュート解除\",\n captionsOn: \"字幕をオフ\",\n captionsOff: \"字幕をオン\",\n captions: \"字幕\",\n pip: \"ピクチャーインピクチャー\",\n pipExit: \"PiPを終了\",\n speed: \"再生速度\",\n speedNormal: \"標準\",\n quality: \"画質\",\n qualityMenu: \"画質\",\n fullscreen: \"全画面\",\n fullscreenExit: \"全画面を終了\",\n live: \"ライブ\",\n },\n vidstack: {\n Announcements: \"お知らせ\",\n Accessibility: \"アクセシビリティ\",\n AirPlay: \"AirPlay\",\n Audio: \"音声\",\n Auto: \"自動\",\n Boost: \"ブースト\",\n Captions: \"字幕\",\n \"Caption Styles\": \"字幕スタイル\",\n \"Captions look like this\": \"字幕のプレビュー\",\n Chapters: \"チャプター\",\n \"Closed-Captions Off\": \"字幕をオン\",\n \"Closed-Captions On\": \"字幕をオフ\",\n Connected: \"接続済み\",\n Continue: \"続ける\",\n Connecting: \"接続中\",\n Default: \"デフォルト\",\n Disabled: \"無効\",\n Disconnected: \"切断済み\",\n \"Display Background\": \"表示背景\",\n Download: \"ダウンロード\",\n \"Enter Fullscreen\": \"全画面\",\n \"Enter PiP\": \"ピクチャーインピクチャー\",\n \"Exit Fullscreen\": \"全画面を終了\",\n \"Exit PiP\": \"PiPを終了\",\n Font: \"フォント\",\n Family: \"フォントファミリー\",\n Fullscreen: \"全画面\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"キーボードアニメーション\",\n LIVE: \"ライブ\",\n Loop: \"ループ\",\n Mute: \"ミュート\",\n Normal: \"標準\",\n Off: \"オフ\",\n Pause: \"一時停止\",\n Play: \"再生\",\n Playback: \"再生\",\n PiP: \"PiP\",\n Quality: \"画質\",\n Replay: \"もう一度再生\",\n Reset: \"リセット\",\n \"Seek Backward\": \"巻き戻し\",\n \"Seek Forward\": \"早送り\",\n Seek: \"シーク\",\n Settings: \"設定\",\n \"Skip To Live\": \"ライブへ移動\",\n Speed: \"再生速度\",\n Size: \"サイズ\",\n Color: \"色\",\n Opacity: \"不透明度\",\n Shadow: \"影\",\n Text: \"テキスト\",\n \"Text Background\": \"テキスト背景\",\n Track: \"トラック\",\n Unmute: \"ミュート解除\",\n Volume: \"音量\",\n },\n}\n\nconst koKR: PlayerLocaleData = {\n desktop: {\n play: \"재생\",\n pause: \"일시정지\",\n seekBackward: \"10초 뒤로\",\n seekForward: \"10초 앞으로\",\n mute: \"음소거\",\n unmute: \"음소거 해제\",\n captionsOn: \"자막 끄기\",\n captionsOff: \"자막 켜기\",\n captions: \"자막\",\n pip: \"화면 속 화면\",\n pipExit: \"PiP 종료\",\n speed: \"재생 속도\",\n speedNormal: \"보통\",\n quality: \"화질\",\n qualityMenu: \"화질\",\n fullscreen: \"전체 화면\",\n fullscreenExit: \"전체 화면 종료\",\n live: \"라이브\",\n },\n vidstack: {\n Announcements: \"공지\",\n Accessibility: \"접근성\",\n AirPlay: \"AirPlay\",\n Audio: \"오디오\",\n Auto: \"자동\",\n Boost: \"부스트\",\n Captions: \"자막\",\n \"Caption Styles\": \"자막 스타일\",\n \"Captions look like this\": \"자막 미리보기\",\n Chapters: \"챕터\",\n \"Closed-Captions Off\": \"자막 켜기\",\n \"Closed-Captions On\": \"자막 끄기\",\n Connected: \"연결됨\",\n Continue: \"계속\",\n Connecting: \"연결 중\",\n Default: \"기본값\",\n Disabled: \"비활성화\",\n Disconnected: \"연결 끊김\",\n \"Display Background\": \"배경 표시\",\n Download: \"다운로드\",\n \"Enter Fullscreen\": \"전체 화면\",\n \"Enter PiP\": \"화면 속 화면\",\n \"Exit Fullscreen\": \"전체 화면 종료\",\n \"Exit PiP\": \"PiP 종료\",\n Font: \"글꼴\",\n Family: \"글꼴 패밀리\",\n Fullscreen: \"전체 화면\",\n \"Google Cast\": \"Google Cast\",\n \"Keyboard Animations\": \"키보드 애니메이션\",\n LIVE: \"라이브\",\n Loop: \"반복\",\n Mute: \"음소거\",\n Normal: \"보통\",\n Off: \"끄기\",\n Pause: \"일시정지\",\n Play: \"재생\",\n Playback: \"재생\",\n PiP: \"PiP\",\n Quality: \"화질\",\n Replay: \"다시 재생\",\n Reset: \"초기화\",\n \"Seek Backward\": \"뒤로\",\n \"Seek Forward\": \"앞으로\",\n Seek: \"탐색\",\n Settings: \"설정\",\n \"Skip To Live\": \"라이브로 이동\",\n Speed: \"재생 속도\",\n Size: \"크기\",\n Color: \"색상\",\n Opacity: \"불투명도\",\n Shadow: \"그림자\",\n Text: \"텍스트\",\n \"Text Background\": \"텍스트 배경\",\n Track: \"트랙\",\n Unmute: \"음소거 해제\",\n Volume: \"볼륨\",\n },\n}\n\n/* ─── Locale registry ─── */\n\nexport const playerLocales: Record<PlayerLocale, PlayerLocaleData> = {\n \"pt-BR\": ptBR,\n \"en-US\": enUS,\n \"en-GB\": enGB,\n \"es-MX\": esMX,\n \"es-ES\": esES,\n \"fr-FR\": frFR,\n \"fr-CA\": frCA,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhTW,\n \"de-DE\": deDE,\n \"it-IT\": itIT,\n \"ja-JP\": jaJP,\n \"ko-KR\": koKR,\n}\n\n/* ─── Resolver functions ─── */\n\n/** Desktop label keys that map to Vidstack translation keys */\nconst desktopToVidstack: Record<keyof VideoDesktopLabels, (keyof DefaultLayoutTranslations)[]> = {\n play: [\"Play\"],\n pause: [\"Pause\"],\n seekBackward: [\"Seek Backward\"],\n seekForward: [\"Seek Forward\"],\n mute: [\"Mute\"],\n unmute: [\"Unmute\"],\n captionsOn: [\"Closed-Captions On\"],\n captionsOff: [\"Closed-Captions Off\"],\n captions: [\"Captions\"],\n pip: [\"PiP\", \"Enter PiP\"],\n pipExit: [\"Exit PiP\"],\n speed: [\"Speed\"],\n speedNormal: [\"Normal\"],\n quality: [\"Quality\"],\n qualityMenu: [],\n fullscreen: [\"Fullscreen\", \"Enter Fullscreen\"],\n fullscreenExit: [\"Exit Fullscreen\"],\n live: [\"LIVE\", \"Skip To Live\"],\n}\n\n/** Resolve VideoPlayer desktop labels: locale defaults + optional overrides */\nexport function resolveVideoLabels(\n locale: PlayerLocale,\n overrides?: Partial<VideoDesktopLabels>\n): VideoDesktopLabels {\n return { ...playerLocales[locale].desktop, ...overrides }\n}\n\n/** Resolve Vidstack translations: locale defaults + cascade from desktop label overrides */\nexport function resolveVidstackTranslations(\n locale: PlayerLocale,\n desktopOverrides?: Partial<VideoDesktopLabels>\n): DefaultLayoutTranslations {\n const base = { ...playerLocales[locale].vidstack }\n\n if (desktopOverrides) {\n for (const [key, value] of Object.entries(desktopOverrides) as [keyof VideoDesktopLabels, string][]) {\n if (value === undefined) continue\n const vidstackKeys = desktopToVidstack[key]\n for (const vk of vidstackKeys) {\n base[vk] = value\n }\n }\n }\n\n return base\n}\n\n/** Resolve AudioPlayer label: locale default + optional override */\nexport function resolveAudioSpeedNormal(\n locale: PlayerLocale,\n override?: string\n): string {\n return override ?? playerLocales[locale].desktop.speedNormal\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import { resolveAudioSpeedNormal } from './chunk-C6BQAAHX.js';
1
2
  import { CycleIcon } from './chunk-V7M2NHUO.js';
2
3
  import { cn } from './chunk-TYCPXAXF.js';
3
4
  import { __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
@@ -5,8 +6,12 @@ import * as React from 'react';
5
6
  import { MediaPlayer, MediaProvider, Time, TimeSlider, SeekButton, useMediaState, PlayButton, useMediaRemote, MuteButton, VolumeSlider } from '@vidstack/react';
6
7
  import '@vidstack/react/player/styles/base.css';
7
8
  import { RotateCcw, Play, Pause, RotateCw, Gauge, Check, VolumeX, Volume1, Volume2 } from 'lucide-react';
8
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
10
 
11
+ var AudioLabelsContext = React.createContext({ speedNormal: "Normal" });
12
+ function useAudioLabels() {
13
+ return React.useContext(AudioLabelsContext);
14
+ }
10
15
  var controlBtnClass = "group/btn inline-flex size-9 cursor-pointer items-center justify-center rounded-md text-foreground outline-none transition-colors hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring group-data-[filled]:text-primary-foreground group-data-[filled]:hover:bg-primary-foreground/10";
11
16
  var filledIconClass = "fill-current !stroke-transparent text-foreground group-data-[filled]:text-primary-foreground";
12
17
  var outlineIconClass = "text-foreground group-data-[filled]:text-primary-foreground";
@@ -53,6 +58,7 @@ function AudioSpeedControl() {
53
58
  const playbackRate = useMediaState("playbackRate");
54
59
  const remote = useMediaRemote();
55
60
  const [open, setOpen] = React.useState(false);
61
+ const l = useAudioLabels();
56
62
  const rates = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
57
63
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
58
64
  /* @__PURE__ */ jsx(
@@ -83,7 +89,7 @@ function AudioSpeedControl() {
83
89
  ),
84
90
  children: [
85
91
  /* @__PURE__ */ jsx("span", { className: "size-4 flex items-center justify-center", children: playbackRate === rate && /* @__PURE__ */ jsx(CycleIcon, { icon: Check, size: "2xs", decorative: true, className: "text-popover-foreground" }) }),
86
- /* @__PURE__ */ jsx("span", { className: "font-mono", children: rate === 1 ? "Normal" : `${rate}x` })
92
+ /* @__PURE__ */ jsx("span", { className: "font-mono", children: rate === 1 ? l.speedNormal : `${rate}x` })
87
93
  ]
88
94
  },
89
95
  rate
@@ -105,10 +111,16 @@ var AudioPlayer = React.forwardRef(
105
111
  loop = false,
106
112
  showSpeed = true,
107
113
  startTime,
114
+ locale = "pt-BR",
115
+ labels,
108
116
  onTimeUpdate,
109
117
  onEnded,
110
118
  className
111
119
  }, ref) {
120
+ const resolvedLabels = React.useMemo(
121
+ () => ({ speedNormal: resolveAudioSpeedNormal(locale, labels == null ? void 0 : labels.speedNormal) }),
122
+ [locale, labels]
123
+ );
112
124
  const player = React.useRef(null);
113
125
  React.useImperativeHandle(ref, () => ({
114
126
  play() {
@@ -150,7 +162,7 @@ var AudioPlayer = React.forwardRef(
150
162
  onCanPlay: handleCanPlay
151
163
  }, onTimeUpdate ? { onTimeUpdate: handleTimeUpdate } : {}), onEnded ? { onEnded: handleEnded } : {});
152
164
  if (variant === "card") {
153
- return /* @__PURE__ */ jsxs(
165
+ return /* @__PURE__ */ jsx(AudioLabelsContext.Provider, { value: resolvedLabels, children: /* @__PURE__ */ jsxs(
154
166
  MediaPlayer,
155
167
  __spreadProps(__spreadValues({
156
168
  ref: player,
@@ -210,9 +222,9 @@ var AudioPlayer = React.forwardRef(
210
222
  ] })
211
223
  ]
212
224
  })
213
- );
225
+ ) });
214
226
  }
215
- return /* @__PURE__ */ jsxs(
227
+ return /* @__PURE__ */ jsx(AudioLabelsContext.Provider, { value: resolvedLabels, children: /* @__PURE__ */ jsxs(
216
228
  MediaPlayer,
217
229
  __spreadProps(__spreadValues({
218
230
  ref: player,
@@ -240,10 +252,10 @@ var AudioPlayer = React.forwardRef(
240
252
  /* @__PURE__ */ jsx(AudioVolumeControl, {})
241
253
  ]
242
254
  })
243
- );
255
+ ) });
244
256
  }
245
257
  );
246
258
 
247
259
  export { AudioPlayer };
248
- //# sourceMappingURL=chunk-VSRZM7CU.js.map
249
- //# sourceMappingURL=chunk-VSRZM7CU.js.map
260
+ //# sourceMappingURL=chunk-DCNZ2DRR.js.map
261
+ //# sourceMappingURL=chunk-DCNZ2DRR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/audio-player.tsx"],"names":["AudioPlayer"],"mappings":"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","file":"chunk-DCNZ2DRR.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport {\n MediaPlayer,\n MediaProvider,\n TimeSlider,\n VolumeSlider,\n Time,\n PlayButton,\n MuteButton,\n SeekButton,\n useMediaState,\n useMediaRemote,\n type MediaPlayerInstance,\n} from \"@vidstack/react\"\nimport \"@vidstack/react/player/styles/base.css\"\nimport {\n Play,\n Pause,\n Volume2,\n VolumeX,\n Volume1,\n RotateCcw,\n RotateCw,\n Gauge,\n Check,\n} from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { cn } from \"@/lib/utils\"\nimport { type PlayerLocale, resolveAudioSpeedNormal } from \"@/components/ui/player-i18n\"\n\n/* ─── Types ─── */\n\nexport interface AudioPlayerRef {\n play(): void\n pause(): void\n readonly currentTime: number\n readonly duration: number\n}\n\nexport interface AudioPlayerLabels {\n /** Label da velocidade normal no menu (default depende do locale) */\n speedNormal?: string\n}\n\nexport interface AudioPlayerProps {\n /** URL do audio (mp3, ogg, m3u8) */\n src: string\n /** Nome da track/aula */\n title: string\n /** Subtitulo / nome do curso */\n subtitle?: string\n /** URL da imagem de capa (variante card) */\n coverArt?: string\n /** Alt text da imagem de capa */\n coverArtAlt?: string\n /** Variante de layout */\n variant?: \"default\" | \"card\"\n /** Icones, textos e sliders em primary-foreground — usar com .theme-* */\n filled?: boolean\n /** Iniciar automaticamente */\n autoPlay?: boolean\n /** Iniciar mutado */\n muted?: boolean\n /** Repetir ao terminar */\n loop?: boolean\n /** Exibir controle de velocidade (default: true — EdTech) */\n showSpeed?: boolean\n /** Tempo inicial em segundos — usado para retomar de onde o usuario parou (resume position) */\n startTime?: number\n /** Idioma dos controles (default: \"pt-BR\"). 13 locales pre-configurados. */\n locale?: PlayerLocale\n /** Overrides pontuais de labels — aplicados em cima do locale selecionado */\n labels?: AudioPlayerLabels\n /** Callback com progresso do audio (currentTime em segundos, duration em segundos) */\n onTimeUpdate?: (currentTime: number, duration: number) => void\n /** Callback disparado quando o audio termina */\n onEnded?: () => void\n className?: string\n}\n\n/* ─── Labels context ─── */\n\nconst AudioLabelsContext = React.createContext<{ speedNormal: string }>({ speedNormal: \"Normal\" })\nfunction useAudioLabels() {\n return React.useContext(AudioLabelsContext)\n}\n\n/* ─── Shared styles ─── */\n\nconst controlBtnClass =\n \"group/btn inline-flex size-9 cursor-pointer items-center justify-center rounded-md text-foreground outline-none transition-colors hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring group-data-[filled]:text-primary-foreground group-data-[filled]:hover:bg-primary-foreground/10\"\n\n/** Play, Pause e Volume usam icones filled (solid) — igual YouTube */\nconst filledIconClass =\n \"fill-current !stroke-transparent text-foreground group-data-[filled]:text-primary-foreground\"\n\nconst outlineIconClass =\n \"text-foreground group-data-[filled]:text-primary-foreground\"\n\n/* ─── Sub-components ─── */\n\nfunction AudioPlayControl() {\n const isPaused = useMediaState(\"paused\")\n return (\n <PlayButton className={controlBtnClass}>\n {isPaused ? (\n <CycleIcon icon={Play} size=\"sm\" decorative className={filledIconClass} />\n ) : (\n <CycleIcon icon={Pause} size=\"sm\" decorative className={filledIconClass} />\n )}\n </PlayButton>\n )\n}\n\nfunction AudioSeekBackwardControl() {\n return (\n <SeekButton className={controlBtnClass} seconds={-10}>\n <CycleIcon icon={RotateCcw} size=\"sm\" decorative className={outlineIconClass} />\n </SeekButton>\n )\n}\n\nfunction AudioSeekForwardControl() {\n return (\n <SeekButton className={controlBtnClass} seconds={10}>\n <CycleIcon icon={RotateCw} size=\"sm\" decorative className={outlineIconClass} />\n </SeekButton>\n )\n}\n\nfunction AudioMuteControl() {\n const volume = useMediaState(\"volume\")\n const isMuted = useMediaState(\"muted\")\n\n const Icon = isMuted || volume === 0 ? VolumeX : volume < 0.5 ? Volume1 : Volume2\n\n return (\n <MuteButton className={controlBtnClass}>\n <CycleIcon icon={Icon} size=\"sm\" decorative className={filledIconClass} />\n </MuteButton>\n )\n}\n\nfunction AudioVolumeControl() {\n return (\n <VolumeSlider.Root className=\"group relative hidden h-9 w-20 cursor-pointer touch-none select-none items-center outline-none sm:inline-flex\">\n <VolumeSlider.Track className=\"relative h-[4px] w-full rounded-full bg-accent group-data-[filled]/root:bg-primary-foreground/30\">\n <VolumeSlider.TrackFill className=\"absolute h-full w-[var(--slider-fill)] rounded-full bg-primary group-data-[filled]/root:bg-primary-foreground\" />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb className=\"absolute left-[var(--slider-fill)] top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary opacity-0 transition-opacity group-data-[active]:opacity-100 group-data-[dragging]:opacity-100 group-data-[filled]/root:bg-primary-foreground\" />\n </VolumeSlider.Root>\n )\n}\n\nfunction AudioSeekBar() {\n return (\n <TimeSlider.Root className=\"group relative inline-flex h-9 w-full cursor-pointer touch-none select-none items-center outline-none\">\n <TimeSlider.Track className=\"relative h-[4px] w-full rounded-full bg-accent group-data-[filled]/root:bg-primary-foreground/30\">\n <TimeSlider.Progress className=\"absolute h-full w-[var(--slider-progress)] rounded-full bg-accent-foreground/20 group-data-[filled]/root:bg-primary-foreground/20\" />\n <TimeSlider.TrackFill className=\"absolute h-full w-[var(--slider-fill)] rounded-full bg-primary group-data-[filled]/root:bg-primary-foreground\" />\n </TimeSlider.Track>\n <TimeSlider.Thumb className=\"absolute left-[var(--slider-fill)] top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary opacity-0 transition-opacity group-data-[active]:opacity-100 group-data-[dragging]:opacity-100 group-data-[filled]/root:bg-primary-foreground\" />\n\n {/* Time preview on hover */}\n <TimeSlider.Preview className=\"pointer-events-none flex flex-col items-center opacity-0 transition-opacity duration-200 data-[visible]:opacity-100\">\n <TimeSlider.Value className=\"rounded bg-popover px-1.5 py-0.5 text-[11px] font-mono text-popover-foreground border border-border shadow-sm\" />\n </TimeSlider.Preview>\n </TimeSlider.Root>\n )\n}\n\nfunction AudioTimeDisplay() {\n return (\n <div className=\"flex items-center gap-1 text-xs font-mono text-muted-foreground tabular-nums group-data-[filled]:text-primary-foreground/80\">\n <Time type=\"current\" />\n <span>/</span>\n <Time type=\"duration\" />\n </div>\n )\n}\n\nfunction AudioSpeedControl() {\n const playbackRate = useMediaState(\"playbackRate\")\n const remote = useMediaRemote()\n const [open, setOpen] = React.useState(false)\n const l = useAudioLabels()\n\n const rates = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]\n\n return (\n <div className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className={controlBtnClass}\n >\n {playbackRate === 1 ? (\n <CycleIcon icon={Gauge} size=\"sm\" decorative className={outlineIconClass} />\n ) : (\n <span className=\"text-xs font-mono font-semibold text-foreground group-data-[filled]:text-primary-foreground\">{playbackRate}x</span>\n )}\n </button>\n\n {open && (\n <>\n {/* Backdrop to close */}\n <div className=\"fixed inset-0 z-40\" onClick={() => setOpen(false)} />\n\n <div className=\"absolute bottom-full right-0 z-50 mb-2 min-w-[120px] rounded-lg border border-border bg-popover p-1 shadow-lg\">\n {rates.map((rate) => (\n <button\n key={rate}\n type=\"button\"\n onClick={() => {\n remote.changePlaybackRate(rate)\n setOpen(false)\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm text-popover-foreground/80 transition-colors hover:bg-accent hover:text-popover-foreground\",\n playbackRate === rate && \"text-popover-foreground font-medium\"\n )}\n >\n <span className=\"size-4 flex items-center justify-center\">\n {playbackRate === rate && <CycleIcon icon={Check} size=\"2xs\" decorative className=\"text-popover-foreground\" />}\n </span>\n <span className=\"font-mono\">{rate === 1 ? l.speedNormal : `${rate}x`}</span>\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n )\n}\n\n/* ─── Main component ─── */\n\nexport const AudioPlayer = React.forwardRef<AudioPlayerRef, AudioPlayerProps>(\n function AudioPlayer(\n {\n src,\n title,\n subtitle,\n coverArt,\n coverArtAlt = \"\",\n variant = \"default\",\n filled = false,\n autoPlay = false,\n muted = false,\n loop = false,\n showSpeed = true,\n startTime,\n locale = \"pt-BR\",\n labels,\n onTimeUpdate,\n onEnded,\n className,\n },\n ref\n ) {\n const resolvedLabels = React.useMemo(\n () => ({ speedNormal: resolveAudioSpeedNormal(locale, labels?.speedNormal) }),\n [locale, labels]\n )\n const player = React.useRef<MediaPlayerInstance>(null)\n\n React.useImperativeHandle(ref, () => ({\n play() {\n player.current?.play()\n },\n pause() {\n player.current?.pause()\n },\n get currentTime() {\n return player.current?.currentTime ?? 0\n },\n get duration() {\n return player.current?.duration ?? 0\n },\n }))\n\n const handleTimeUpdate = React.useCallback(\n (detail: { currentTime: number }) => {\n if (onTimeUpdate && player.current) {\n onTimeUpdate(detail.currentTime, player.current.duration)\n }\n },\n [onTimeUpdate]\n )\n\n const handleEnded = React.useCallback(() => {\n onEnded?.()\n }, [onEnded])\n\n // Resume position: seek to startTime once the player is ready\n const hasAppliedStartTime = React.useRef(false)\n const handleCanPlay = React.useCallback(() => {\n if (startTime && startTime > 0 && !hasAppliedStartTime.current && player.current) {\n player.current.currentTime = startTime\n hasAppliedStartTime.current = true\n }\n }, [startTime])\n\n const playerEvents = {\n onCanPlay: handleCanPlay,\n ...(onTimeUpdate ? { onTimeUpdate: handleTimeUpdate } : {}),\n ...(onEnded ? { onEnded: handleEnded } : {}),\n }\n\n if (variant === \"card\") {\n return (\n <AudioLabelsContext.Provider value={resolvedLabels}>\n <MediaPlayer\n ref={player}\n src={src}\n autoPlay={autoPlay}\n muted={muted}\n loop={loop}\n viewType=\"audio\"\n data-filled={filled ? \"\" : undefined}\n style={filled ? { '--primary-foreground': 'var(--secondary-foreground)' } as Record<string, string> : undefined}\n className={cn(\n \"group/root group !block w-full rounded-xl border border-border bg-card p-4 shadow-sm md:p-6\",\n className\n )}\n {...playerEvents}\n >\n <MediaProvider className=\"!hidden\" />\n\n {/* Top: cover art + text */}\n <div className=\"flex gap-4 mb-4 md:gap-5 md:mb-6\">\n {coverArt && (\n <img\n src={coverArt}\n alt={coverArtAlt}\n className=\"size-16 shrink-0 rounded-lg object-cover bg-muted md:size-24 md:rounded-xl\"\n />\n )}\n <div className=\"flex min-w-0 flex-col justify-center\">\n <p className={cn(\n \"truncate heading-md md:heading-xl\",\n filled ? \"text-primary-foreground\" : \"text-card-foreground\"\n )}>{title}</p>\n {subtitle && (\n <p className={cn(\n \"truncate body-md md:body-lg\",\n filled ? \"text-primary-foreground/70\" : \"text-muted-foreground\"\n )}>{subtitle}</p>\n )}\n </div>\n </div>\n\n {/* Seek bar */}\n <div className=\"flex w-full items-center\">\n <AudioSeekBar />\n </div>\n\n {/* Time */}\n <div className=\"flex items-center justify-between px-0.5 -mt-1 mb-1 md:mb-2\">\n <div className={cn(\n \"text-[11px] font-mono tabular-nums md:text-xs\",\n filled ? \"text-primary-foreground/80\" : \"text-muted-foreground\"\n )}>\n <Time type=\"current\" />\n </div>\n <div className={cn(\n \"text-[11px] font-mono tabular-nums md:text-xs\",\n filled ? \"text-primary-foreground/80\" : \"text-muted-foreground\"\n )}>\n <Time type=\"duration\" />\n </div>\n </div>\n\n {/* Controls */}\n <div className=\"flex items-center gap-1 md:gap-2\">\n <AudioSeekBackwardControl />\n <AudioPlayControl />\n <AudioSeekForwardControl />\n\n <div className=\"flex-1\" />\n\n {showSpeed && <AudioSpeedControl />}\n <AudioMuteControl />\n <AudioVolumeControl />\n </div>\n </MediaPlayer>\n </AudioLabelsContext.Provider>\n )\n }\n\n // Default variant (compact bar)\n return (\n <AudioLabelsContext.Provider value={resolvedLabels}>\n <MediaPlayer\n ref={player}\n src={src}\n autoPlay={autoPlay}\n muted={muted}\n loop={loop}\n viewType=\"audio\"\n data-filled={filled ? \"\" : undefined}\n style={filled ? { '--primary-foreground': 'var(--secondary-foreground)' } as Record<string, string> : undefined}\n className={cn(\n \"group/root group !flex w-full items-center gap-1.5 rounded-xl border border-border bg-card px-2 py-1.5 shadow-sm\",\n className\n )}\n {...playerEvents}\n >\n <MediaProvider className=\"!hidden\" />\n\n {/* Left controls */}\n <AudioSeekBackwardControl />\n <AudioPlayControl />\n <AudioSeekForwardControl />\n\n {/* Seek bar */}\n <div className=\"flex-1 px-1\">\n <AudioSeekBar />\n </div>\n\n {/* Time */}\n <AudioTimeDisplay />\n\n {/* Right controls */}\n {showSpeed && <AudioSpeedControl />}\n <AudioMuteControl />\n <AudioVolumeControl />\n </MediaPlayer>\n </AudioLabelsContext.Provider>\n )\n }\n)\n"]}
@@ -1,3 +1,4 @@
1
+ import { resolveVideoLabels, resolveVidstackTranslations } from './chunk-C6BQAAHX.js';
1
2
  import { CycleIcon } from './chunk-V7M2NHUO.js';
2
3
  import { cn } from './chunk-TYCPXAXF.js';
3
4
  import { __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
@@ -8,8 +9,14 @@ import '@vidstack/react/player/styles/base.css';
8
9
  import '@vidstack/react/player/styles/default/theme.css';
9
10
  import '@vidstack/react/player/styles/default/layouts/video.css';
10
11
  import { RotateCcw, RotateCw, Play, Pause, VolumeX, Volume1, Volume2, Captions as Captions$1, CaptionsOff, Check, Gauge, Settings, PictureInPicture2, Minimize, Maximize } from 'lucide-react';
11
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
12
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
12
13
 
14
+ var VideoLabelsContext = React.createContext(
15
+ resolveVideoLabels("pt-BR")
16
+ );
17
+ function useVideoLabels() {
18
+ return React.useContext(VideoLabelsContext);
19
+ }
13
20
  var controlBtnClass = "group inline-flex size-9 cursor-pointer items-center justify-center rounded-md text-white outline-none transition-colors hover:bg-white/20 focus-visible:ring-2 focus-visible:ring-white/50";
14
21
  var tooltipClass = "z-50 rounded bg-black/90 px-2 py-1 text-xs font-medium text-white shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0";
15
22
  function ControlTooltip({ label, children }) {
@@ -27,19 +34,23 @@ function PlayOverlay() {
27
34
  }
28
35
  function PlayControl() {
29
36
  const isPaused = useMediaState("paused");
30
- return /* @__PURE__ */ jsx(ControlTooltip, { label: isPaused ? "Reproduzir" : "Pausar", children: /* @__PURE__ */ jsx(PlayButton, { className: controlBtnClass, children: isPaused ? /* @__PURE__ */ jsx(CycleIcon, { icon: Play, size: "sm", decorative: true, className: filledIconClass }) : /* @__PURE__ */ jsx(CycleIcon, { icon: Pause, size: "sm", decorative: true, className: filledIconClass }) }) });
37
+ const l = useVideoLabels();
38
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: isPaused ? l.play : l.pause, children: /* @__PURE__ */ jsx(PlayButton, { className: controlBtnClass, children: isPaused ? /* @__PURE__ */ jsx(CycleIcon, { icon: Play, size: "sm", decorative: true, className: filledIconClass }) : /* @__PURE__ */ jsx(CycleIcon, { icon: Pause, size: "sm", decorative: true, className: filledIconClass }) }) });
31
39
  }
32
40
  function SeekBackwardControl() {
33
- return /* @__PURE__ */ jsx(ControlTooltip, { label: "Retroceder 10s", children: /* @__PURE__ */ jsx(SeekButton, { className: controlBtnClass, seconds: -10, children: /* @__PURE__ */ jsx(CycleIcon, { icon: RotateCcw, size: "sm", decorative: true, className: "text-white" }) }) });
41
+ const l = useVideoLabels();
42
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: l.seekBackward, children: /* @__PURE__ */ jsx(SeekButton, { className: controlBtnClass, seconds: -10, children: /* @__PURE__ */ jsx(CycleIcon, { icon: RotateCcw, size: "sm", decorative: true, className: "text-white" }) }) });
34
43
  }
35
44
  function SeekForwardControl() {
36
- return /* @__PURE__ */ jsx(ControlTooltip, { label: "Avan\xE7ar 10s", children: /* @__PURE__ */ jsx(SeekButton, { className: controlBtnClass, seconds: 10, children: /* @__PURE__ */ jsx(CycleIcon, { icon: RotateCw, size: "sm", decorative: true, className: "text-white" }) }) });
45
+ const l = useVideoLabels();
46
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: l.seekForward, children: /* @__PURE__ */ jsx(SeekButton, { className: controlBtnClass, seconds: 10, children: /* @__PURE__ */ jsx(CycleIcon, { icon: RotateCw, size: "sm", decorative: true, className: "text-white" }) }) });
37
47
  }
38
48
  function MuteControl() {
39
49
  const volume = useMediaState("volume");
40
50
  const isMuted = useMediaState("muted");
51
+ const l = useVideoLabels();
41
52
  const Icon = isMuted || volume === 0 ? VolumeX : volume < 0.5 ? Volume1 : Volume2;
42
- const label = isMuted || volume === 0 ? "Ativar som" : "Silenciar";
53
+ const label = isMuted || volume === 0 ? l.unmute : l.mute;
43
54
  return /* @__PURE__ */ jsx(ControlTooltip, { label, children: /* @__PURE__ */ jsx(MuteButton, { className: controlBtnClass, children: /* @__PURE__ */ jsx(CycleIcon, { icon: Icon, size: "sm", decorative: true, className: filledIconClass }) }) });
44
55
  }
45
56
  function VolumeControl() {
@@ -99,18 +110,19 @@ function CaptionControl() {
99
110
  const track = useMediaState("textTrack");
100
111
  const hasCaptions = useMediaState("hasCaptions");
101
112
  const options = useCaptionOptions();
113
+ const l = useVideoLabels();
102
114
  if (options.length <= 2) {
103
- return /* @__PURE__ */ jsx(ControlTooltip, { label: track ? "Desativar legendas" : "Ativar legendas", children: /* @__PURE__ */ jsx(CaptionButton, { className: cn(controlBtnClass, !hasCaptions && "opacity-50 pointer-events-none"), children: track ? /* @__PURE__ */ jsx(CycleIcon, { icon: Captions$1, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: CaptionsOff, size: "sm", decorative: true, className: "text-white" }) }) });
115
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: track ? l.captionsOn : l.captionsOff, children: /* @__PURE__ */ jsx(CaptionButton, { className: cn(controlBtnClass, !hasCaptions && "opacity-50 pointer-events-none"), children: track ? /* @__PURE__ */ jsx(CycleIcon, { icon: Captions$1, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: CaptionsOff, size: "sm", decorative: true, className: "text-white" }) }) });
104
116
  }
105
117
  return /* @__PURE__ */ jsxs(Menu.Root, { children: [
106
- /* @__PURE__ */ jsx(ControlTooltip, { label: "Legendas", children: /* @__PURE__ */ jsx(Menu.Button, { className: controlBtnClass, children: track ? /* @__PURE__ */ jsx(CycleIcon, { icon: Captions$1, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: CaptionsOff, size: "sm", decorative: true, className: "text-white" }) }) }),
118
+ /* @__PURE__ */ jsx(ControlTooltip, { label: l.captions, children: /* @__PURE__ */ jsx(Menu.Button, { className: controlBtnClass, children: track ? /* @__PURE__ */ jsx(CycleIcon, { icon: Captions$1, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: CaptionsOff, size: "sm", decorative: true, className: "text-white" }) }) }),
107
119
  /* @__PURE__ */ jsxs(
108
120
  Menu.Content,
109
121
  {
110
122
  className: "absolute bottom-full right-0 z-50 mb-2 min-w-[140px] rounded-lg border border-white/10 bg-black/90 backdrop-blur-md p-1 shadow-xl",
111
123
  placement: "top",
112
124
  children: [
113
- /* @__PURE__ */ jsx("p", { className: "px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50", children: "Legendas" }),
125
+ /* @__PURE__ */ jsx("p", { className: "px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50", children: l.captions }),
114
126
  /* @__PURE__ */ jsx(Menu.RadioGroup, { value: options.selectedValue, children: options.map((option) => /* @__PURE__ */ jsxs(
115
127
  Menu.Radio,
116
128
  {
@@ -135,16 +147,18 @@ function CaptionControl() {
135
147
  function PIPControl() {
136
148
  const isPIP = useMediaState("pictureInPicture");
137
149
  const canPIP = useMediaState("canPictureInPicture");
150
+ const l = useVideoLabels();
138
151
  if (!canPIP) return null;
139
- return /* @__PURE__ */ jsx(ControlTooltip, { label: isPIP ? "Sair do PiP" : "Picture-in-Picture", children: /* @__PURE__ */ jsx(PIPButton, { className: controlBtnClass, children: /* @__PURE__ */ jsx(CycleIcon, { icon: PictureInPicture2, size: "sm", decorative: true, className: cn("text-white", isPIP && "text-white/100") }) }) });
152
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: isPIP ? l.pipExit : l.pip, children: /* @__PURE__ */ jsx(PIPButton, { className: controlBtnClass, children: /* @__PURE__ */ jsx(CycleIcon, { icon: PictureInPicture2, size: "sm", decorative: true, className: cn("text-white", isPIP && "text-white/100") }) }) });
140
153
  }
141
154
  function SpeedControl() {
142
155
  const playbackRate = useMediaState("playbackRate");
143
156
  const remote = useMediaRemote();
144
157
  const [open, setOpen] = React.useState(false);
158
+ const l = useVideoLabels();
145
159
  const rates = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
146
160
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
147
- /* @__PURE__ */ jsx(ControlTooltip, { label: "Velocidade", children: /* @__PURE__ */ jsx(
161
+ /* @__PURE__ */ jsx(ControlTooltip, { label: l.speed, children: /* @__PURE__ */ jsx(
148
162
  "button",
149
163
  {
150
164
  type: "button",
@@ -172,7 +186,7 @@ function SpeedControl() {
172
186
  ),
173
187
  children: [
174
188
  /* @__PURE__ */ jsx("span", { className: "size-4 flex items-center justify-center", children: playbackRate === rate && /* @__PURE__ */ jsx(CycleIcon, { icon: Check, size: "2xs", decorative: true, className: "text-white" }) }),
175
- /* @__PURE__ */ jsx("span", { className: "font-mono", children: rate === 1 ? "Normal" : `${rate}x` })
189
+ /* @__PURE__ */ jsx("span", { className: "font-mono", children: rate === 1 ? l.speedNormal : `${rate}x` })
176
190
  ]
177
191
  },
178
192
  rate
@@ -183,10 +197,11 @@ function SpeedControl() {
183
197
  function QualityControl() {
184
198
  const options = useVideoQualityOptions({ auto: true, sort: "descending" });
185
199
  const [open, setOpen] = React.useState(false);
200
+ const l = useVideoLabels();
186
201
  options.selectedValue === "auto" ? `Auto${options.selectedQuality ? ` (${options.selectedQuality.height}p)` : ""}` : options.selectedQuality ? `${options.selectedQuality.height}p` : "Auto";
187
202
  if (options.disabled) return null;
188
203
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
189
- /* @__PURE__ */ jsx(ControlTooltip, { label: "Qualidade", children: /* @__PURE__ */ jsx(
204
+ /* @__PURE__ */ jsx(ControlTooltip, { label: l.quality, children: /* @__PURE__ */ jsx(
190
205
  "button",
191
206
  {
192
207
  type: "button",
@@ -198,7 +213,7 @@ function QualityControl() {
198
213
  open && /* @__PURE__ */ jsxs(Fragment, { children: [
199
214
  /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-40", onClick: () => setOpen(false) }),
200
215
  /* @__PURE__ */ jsxs("div", { className: "absolute bottom-full right-0 z-50 mb-2 min-w-[140px] rounded-lg border border-white/10 bg-black/90 backdrop-blur-md p-1 shadow-xl", children: [
201
- /* @__PURE__ */ jsx("p", { className: "px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50", children: "Qualidade" }),
216
+ /* @__PURE__ */ jsx("p", { className: "px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50", children: l.qualityMenu }),
202
217
  options.map((option) => /* @__PURE__ */ jsxs(
203
218
  "button",
204
219
  {
@@ -224,11 +239,13 @@ function QualityControl() {
224
239
  }
225
240
  function FullscreenControl() {
226
241
  const isFullscreen = useMediaState("fullscreen");
227
- return /* @__PURE__ */ jsx(ControlTooltip, { label: isFullscreen ? "Sair da tela cheia" : "Tela cheia", children: /* @__PURE__ */ jsx(FullscreenButton, { className: controlBtnClass, children: isFullscreen ? /* @__PURE__ */ jsx(CycleIcon, { icon: Minimize, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: Maximize, size: "sm", decorative: true, className: "text-white" }) }) });
242
+ const l = useVideoLabels();
243
+ return /* @__PURE__ */ jsx(ControlTooltip, { label: isFullscreen ? l.fullscreenExit : l.fullscreen, children: /* @__PURE__ */ jsx(FullscreenButton, { className: controlBtnClass, children: isFullscreen ? /* @__PURE__ */ jsx(CycleIcon, { icon: Minimize, size: "sm", decorative: true, className: "text-white" }) : /* @__PURE__ */ jsx(CycleIcon, { icon: Maximize, size: "sm", decorative: true, className: "text-white" }) }) });
228
244
  }
229
245
  function LiveIndicator() {
230
246
  const isLive = useMediaState("live");
231
247
  const isLiveEdge = useMediaState("liveEdge");
248
+ const l = useVideoLabels();
232
249
  if (!isLive) return null;
233
250
  return /* @__PURE__ */ jsxs(
234
251
  LiveButton,
@@ -247,7 +264,7 @@ function LiveIndicator() {
247
264
  )
248
265
  }
249
266
  ),
250
- "Live"
267
+ l.live
251
268
  ]
252
269
  }
253
270
  );
@@ -351,10 +368,20 @@ var VideoPlayer = React.forwardRef(
351
368
  muted = false,
352
369
  loop = false,
353
370
  startTime,
371
+ locale = "pt-BR",
372
+ labels,
354
373
  onTimeUpdate,
355
374
  onEnded,
356
375
  className
357
376
  }, ref) {
377
+ const resolvedLabels = React.useMemo(
378
+ () => resolveVideoLabels(locale, labels),
379
+ [locale, labels]
380
+ );
381
+ const vidstackTranslations = React.useMemo(
382
+ () => resolveVidstackTranslations(locale, labels),
383
+ [locale, labels]
384
+ );
358
385
  const player = React.useRef(null);
359
386
  React.useImperativeHandle(ref, () => ({
360
387
  play() {
@@ -433,7 +460,7 @@ var VideoPlayer = React.forwardRef(
433
460
  React.useEffect(() => {
434
461
  return () => clearTimeout(feedbackTimeout.current);
435
462
  }, []);
436
- return /* @__PURE__ */ jsxs(
463
+ return /* @__PURE__ */ jsx(VideoLabelsContext.Provider, { value: resolvedLabels, children: /* @__PURE__ */ jsxs(
437
464
  MediaPlayer,
438
465
  __spreadProps(__spreadValues({
439
466
  ref: player,
@@ -489,7 +516,8 @@ var VideoPlayer = React.forwardRef(
489
516
  {
490
517
  icons: defaultLayoutIcons,
491
518
  thumbnails,
492
- colorScheme: "dark"
519
+ colorScheme: "dark",
520
+ translations: vidstackTranslations
493
521
  }
494
522
  ),
495
523
  isDesktop && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -521,10 +549,10 @@ var VideoPlayer = React.forwardRef(
521
549
  ] })
522
550
  ]
523
551
  })
524
- );
552
+ ) });
525
553
  }
526
554
  );
527
555
 
528
556
  export { VideoPlayer };
529
- //# sourceMappingURL=chunk-C4C5MWPO.js.map
530
- //# sourceMappingURL=chunk-C4C5MWPO.js.map
557
+ //# sourceMappingURL=chunk-V3CBOIGK.js.map
558
+ //# sourceMappingURL=chunk-V3CBOIGK.js.map