@fluencypassdevs/cycle 1.4.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';
@@ -7,10 +8,7 @@ import '@vidstack/react/player/styles/base.css';
7
8
  import { RotateCcw, Play, Pause, RotateCw, Gauge, Check, VolumeX, Volume1, Volume2 } from 'lucide-react';
8
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
10
 
10
- var defaultAudioLabels = {
11
- speedNormal: "Normal"
12
- };
13
- var AudioLabelsContext = React.createContext(defaultAudioLabels);
11
+ var AudioLabelsContext = React.createContext({ speedNormal: "Normal" });
14
12
  function useAudioLabels() {
15
13
  return React.useContext(AudioLabelsContext);
16
14
  }
@@ -113,14 +111,15 @@ var AudioPlayer = React.forwardRef(
113
111
  loop = false,
114
112
  showSpeed = true,
115
113
  startTime,
114
+ locale = "pt-BR",
116
115
  labels,
117
116
  onTimeUpdate,
118
117
  onEnded,
119
118
  className
120
119
  }, ref) {
121
120
  const resolvedLabels = React.useMemo(
122
- () => __spreadValues(__spreadValues({}, defaultAudioLabels), labels),
123
- [labels]
121
+ () => ({ speedNormal: resolveAudioSpeedNormal(locale, labels == null ? void 0 : labels.speedNormal) }),
122
+ [locale, labels]
124
123
  );
125
124
  const player = React.useRef(null);
126
125
  React.useImperativeHandle(ref, () => ({
@@ -258,5 +257,5 @@ var AudioPlayer = React.forwardRef(
258
257
  );
259
258
 
260
259
  export { AudioPlayer };
261
- //# sourceMappingURL=chunk-QVOHJ6UN.js.map
262
- //# sourceMappingURL=chunk-QVOHJ6UN.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';
@@ -10,54 +11,12 @@ 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
12
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
12
13
 
13
- var defaultVideoLabels = {
14
- play: "Reproduzir",
15
- pause: "Pausar",
16
- seekBackward: "Retroceder 10s",
17
- seekForward: "Avan\xE7ar 10s",
18
- mute: "Silenciar",
19
- unmute: "Ativar som",
20
- captionsOn: "Desativar legendas",
21
- captionsOff: "Ativar legendas",
22
- captions: "Legendas",
23
- pip: "Picture-in-Picture",
24
- pipExit: "Sair do PiP",
25
- speed: "Velocidade",
26
- speedNormal: "Normal",
27
- quality: "Qualidade",
28
- qualityMenu: "Qualidade",
29
- fullscreen: "Tela cheia",
30
- fullscreenExit: "Sair da tela cheia",
31
- live: "Live"
32
- };
33
- var VideoLabelsContext = React.createContext(defaultVideoLabels);
14
+ var VideoLabelsContext = React.createContext(
15
+ resolveVideoLabels("pt-BR")
16
+ );
34
17
  function useVideoLabels() {
35
18
  return React.useContext(VideoLabelsContext);
36
19
  }
37
- function toVidstackTranslations(l) {
38
- return {
39
- Play: l.play,
40
- Pause: l.pause,
41
- "Seek Backward": l.seekBackward,
42
- "Seek Forward": l.seekForward,
43
- Mute: l.mute,
44
- Unmute: l.unmute,
45
- "Closed-Captions On": l.captionsOn,
46
- "Closed-Captions Off": l.captionsOff,
47
- Captions: l.captions,
48
- PiP: l.pip,
49
- "Enter PiP": l.pip,
50
- "Exit PiP": l.pipExit,
51
- Speed: l.speed,
52
- Normal: l.speedNormal,
53
- Quality: l.quality,
54
- Fullscreen: l.fullscreen,
55
- "Enter Fullscreen": l.fullscreen,
56
- "Exit Fullscreen": l.fullscreenExit,
57
- LIVE: l.live,
58
- "Skip To Live": l.live
59
- };
60
- }
61
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";
62
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";
63
22
  function ControlTooltip({ label, children }) {
@@ -409,18 +368,19 @@ var VideoPlayer = React.forwardRef(
409
368
  muted = false,
410
369
  loop = false,
411
370
  startTime,
371
+ locale = "pt-BR",
412
372
  labels,
413
373
  onTimeUpdate,
414
374
  onEnded,
415
375
  className
416
376
  }, ref) {
417
377
  const resolvedLabels = React.useMemo(
418
- () => __spreadValues(__spreadValues({}, defaultVideoLabels), labels),
419
- [labels]
378
+ () => resolveVideoLabels(locale, labels),
379
+ [locale, labels]
420
380
  );
421
381
  const vidstackTranslations = React.useMemo(
422
- () => toVidstackTranslations(resolvedLabels),
423
- [resolvedLabels]
382
+ () => resolveVidstackTranslations(locale, labels),
383
+ [locale, labels]
424
384
  );
425
385
  const player = React.useRef(null);
426
386
  React.useImperativeHandle(ref, () => ({
@@ -594,5 +554,5 @@ var VideoPlayer = React.forwardRef(
594
554
  );
595
555
 
596
556
  export { VideoPlayer };
597
- //# sourceMappingURL=chunk-RG6UQTYP.js.map
598
- //# sourceMappingURL=chunk-RG6UQTYP.js.map
557
+ //# sourceMappingURL=chunk-V3CBOIGK.js.map
558
+ //# sourceMappingURL=chunk-V3CBOIGK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/video-player.tsx"],"names":["forwardRef","CaptionsIcon","VideoPlayer","_a"],"mappings":"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","file":"chunk-V3CBOIGK.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport {\n MediaPlayer,\n MediaProvider,\n Poster,\n Controls,\n Gesture,\n TimeSlider,\n VolumeSlider,\n Time,\n PlayButton,\n MuteButton,\n FullscreenButton,\n CaptionButton,\n PIPButton,\n SeekButton,\n Captions,\n Spinner,\n Track,\n Tooltip,\n Menu,\n LiveButton,\n MediaAnnouncer,\n useMediaState,\n useMediaRemote,\n useVideoQualityOptions,\n useCaptionOptions,\n type MediaPlayerInstance,\n} from \"@vidstack/react\"\n// Desktop-only controls use the above. Mobile uses DefaultVideoLayout below.\nimport {\n DefaultVideoLayout,\n defaultLayoutIcons,\n} from \"@vidstack/react/player/layouts/default\"\nimport \"@vidstack/react/player/styles/base.css\"\nimport \"@vidstack/react/player/styles/default/theme.css\"\nimport \"@vidstack/react/player/styles/default/layouts/video.css\"\nimport {\n Play,\n Pause,\n Volume2,\n VolumeX,\n Volume1,\n Maximize,\n Minimize,\n Captions as CaptionsIcon,\n CaptionsOff,\n PictureInPicture2,\n RotateCcw,\n RotateCw,\n Gauge,\n Settings,\n Check,\n} from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { cn } from \"@/lib/utils\"\nimport {\n type PlayerLocale,\n type VideoDesktopLabels,\n resolveVideoLabels,\n resolveVidstackTranslations,\n} from \"@/components/ui/player-i18n\"\n\n/* ─── Types ─── */\n\nexport interface CaptionTrack {\n /** URL do arquivo VTT de legenda */\n src: string\n /** Codigo do idioma (BCP 47, ex: \"pt-BR\", \"en\", \"es\") */\n language: string\n /** Label exibido no seletor de legendas (ex: \"Portugues\", \"English\") */\n label: string\n /** Se true, esta faixa sera ativada por padrao */\n default?: boolean\n}\n\nexport interface VideoPlayerRef {\n play(): void\n pause(): void\n readonly currentTime: number\n readonly duration: number\n}\n\n/** @deprecated Use `Partial<VideoDesktopLabels>` — kept for backward compatibility */\nexport type VideoPlayerLabels = Partial<VideoDesktopLabels>\n\nexport interface VideoPlayerProps {\n /** URL do video (mp4, webm, m3u8 para HLS) */\n src: string\n /** URL da imagem de poster */\n poster?: string\n /** Alt text do poster */\n posterAlt?: string\n /** URL do arquivo de thumbnails (VTT sprite sheet) */\n thumbnails?: string\n /** URL do arquivo VTT de chapters (marcadores de seção no timeline) */\n chapters?: string\n /** Faixas de legenda/subtitles (VTT). Suporta multiplos idiomas. */\n captions?: CaptionTrack[]\n /** Exibir spinner durante buffering (default: true) */\n showBuffering?: boolean\n /** Habilitar anuncios de acessibilidade para screen readers (default: true) */\n announcer?: boolean\n /** Iniciar automaticamente */\n autoPlay?: boolean\n /** Iniciar mutado */\n muted?: boolean\n /** Repetir ao terminar */\n loop?: 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?: VideoPlayerLabels\n /** Callback com progresso do video (currentTime em segundos, duration em segundos) */\n onTimeUpdate?: (currentTime: number, duration: number) => void\n /** Callback disparado quando o video termina */\n onEnded?: () => void\n className?: string\n}\n\n/* ─── Labels context ─── */\n\nconst VideoLabelsContext = React.createContext<VideoDesktopLabels>(\n resolveVideoLabels(\"pt-BR\")\n)\nfunction useVideoLabels() {\n return React.useContext(VideoLabelsContext)\n}\n\n/* ─── Shared styles ─── */\n\nconst controlBtnClass =\n \"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\"\n\nconst tooltipClass =\n \"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\"\n\n/** Wraps a control button with a Vidstack tooltip. Desktop only (no hover on mobile). */\nfunction ControlTooltip({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>{children}</Tooltip.Trigger>\n <Tooltip.Content className={tooltipClass} placement=\"top\">\n {label}\n </Tooltip.Content>\n </Tooltip.Root>\n )\n}\n\n/** Play, Pause e Volume usam icones filled (solid) no player — igual YouTube */\nconst filledIconClass = \"text-white fill-current !stroke-transparent\"\n\n/* ─── Sub-components (controles customizados) ─── */\n\nfunction PlayOverlay() {\n const isPaused = useMediaState(\"paused\")\n const hasStarted = useMediaState(\"started\")\n\n if (!isPaused && hasStarted) return null\n\n return (\n <PlayButton className=\"absolute inset-0 z-10 flex cursor-pointer items-center justify-center bg-black/30 transition-opacity\">\n <div className=\"flex size-16 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm transition-transform hover:scale-110\">\n <CycleIcon icon={Play} size=\"lg\" decorative className={cn(filledIconClass, \"ml-1\")} />\n </div>\n </PlayButton>\n )\n}\n\nfunction PlayControl() {\n const isPaused = useMediaState(\"paused\")\n const l = useVideoLabels()\n return (\n <ControlTooltip label={isPaused ? l.play : l.pause}>\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 </ControlTooltip>\n )\n}\n\nfunction SeekBackwardControl() {\n const l = useVideoLabels()\n return (\n <ControlTooltip label={l.seekBackward}>\n <SeekButton className={controlBtnClass} seconds={-10}>\n <CycleIcon icon={RotateCcw} size=\"sm\" decorative className=\"text-white\" />\n </SeekButton>\n </ControlTooltip>\n )\n}\n\nfunction SeekForwardControl() {\n const l = useVideoLabels()\n return (\n <ControlTooltip label={l.seekForward}>\n <SeekButton className={controlBtnClass} seconds={10}>\n <CycleIcon icon={RotateCw} size=\"sm\" decorative className=\"text-white\" />\n </SeekButton>\n </ControlTooltip>\n )\n}\n\nfunction MuteControl() {\n const volume = useMediaState(\"volume\")\n const isMuted = useMediaState(\"muted\")\n const l = useVideoLabels()\n\n const Icon = isMuted || volume === 0 ? VolumeX : volume < 0.5 ? Volume1 : Volume2\n const label = isMuted || volume === 0 ? l.unmute : l.mute\n\n return (\n <ControlTooltip label={label}>\n <MuteButton className={controlBtnClass}>\n <CycleIcon icon={Icon} size=\"sm\" decorative className={filledIconClass} />\n </MuteButton>\n </ControlTooltip>\n )\n}\n\nfunction VolumeControl() {\n return (\n <VolumeSlider.Root className=\"group relative hidden h-9 w-20 shrink-0 cursor-pointer touch-none select-none items-center outline-none @[480px]:inline-flex\">\n <VolumeSlider.Track className=\"relative h-[4px] w-full rounded-full bg-white/30\">\n <VolumeSlider.TrackFill className=\"absolute h-full w-[var(--slider-fill)] rounded-full bg-white\" />\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-white opacity-0 transition-opacity group-data-[active]:opacity-100 group-data-[dragging]:opacity-100\" />\n </VolumeSlider.Root>\n )\n}\n\nfunction BufferingIndicator() {\n return (\n <div className=\"pointer-events-none absolute inset-0 z-[35] flex items-center justify-center media-buffering:opacity-100 media-can-play:opacity-0 opacity-0 transition-opacity duration-300\">\n <Spinner.Root className=\"size-16 text-white\" size={64}>\n <Spinner.Track className=\"opacity-25\" width={4} />\n <Spinner.TrackFill className=\"opacity-75\" width={4} />\n </Spinner.Root>\n </div>\n )\n}\n\nfunction SeekBar({ thumbnails, chapters }: { thumbnails?: string; chapters?: boolean }) {\n const trackContent = (\n <>\n <TimeSlider.Track className=\"relative h-[4px] w-full rounded-full bg-white/30\">\n <TimeSlider.Progress className=\"absolute h-full w-[var(--slider-progress)] rounded-full bg-white/50\" />\n <TimeSlider.TrackFill className=\"absolute h-full w-[var(--slider-fill)] rounded-full bg-white\" />\n </TimeSlider.Track>\n </>\n )\n\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 {chapters ? (\n <TimeSlider.Chapters className=\"relative flex w-full items-center\">\n {(cues, forwardRef) =>\n cues.map((cue) => (\n <div\n className=\"relative flex h-full w-full items-center last:mr-0 mr-0.5\"\n key={cue.startTime}\n ref={forwardRef}\n >\n {trackContent}\n </div>\n ))\n }\n </TimeSlider.Chapters>\n ) : (\n trackContent\n )}\n\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-white opacity-0 transition-opacity group-data-[active]:opacity-100 group-data-[dragging]:opacity-100\" />\n\n {/* Thumbnail preview on hover */}\n {thumbnails && (\n <TimeSlider.Preview className=\"pointer-events-none flex flex-col items-center gap-1 opacity-0 transition-opacity duration-200 data-[visible]:opacity-100\">\n <TimeSlider.Thumbnail.Root\n src={thumbnails}\n className=\"block h-[var(--thumbnail-height)] max-h-[160px] min-h-[80px] w-[var(--thumbnail-width)] min-w-[120px] max-w-[200px] overflow-hidden rounded-md border-2 border-white bg-black\"\n >\n <TimeSlider.Thumbnail.Img />\n </TimeSlider.Thumbnail.Root>\n {chapters && <TimeSlider.ChapterTitle className=\"text-[11px] text-white/80\" />}\n <TimeSlider.Value className=\"rounded bg-black/80 px-1.5 py-0.5 text-[11px] font-mono text-white\" />\n </TimeSlider.Preview>\n )}\n\n {/* Time preview (no thumbnails) */}\n {!thumbnails && (\n <TimeSlider.Preview className=\"pointer-events-none flex flex-col items-center opacity-0 transition-opacity duration-200 data-[visible]:opacity-100\">\n {chapters && <TimeSlider.ChapterTitle className=\"text-[11px] text-white/80 mb-0.5\" />}\n <TimeSlider.Value className=\"rounded bg-black/80 px-1.5 py-0.5 text-[11px] font-mono text-white\" />\n </TimeSlider.Preview>\n )}\n </TimeSlider.Root>\n )\n}\n\nfunction TimeDisplay() {\n return (\n <div className=\"flex shrink-0 items-center gap-1 text-xs font-mono text-white/80 tabular-nums whitespace-nowrap\">\n <Time type=\"current\" />\n <span>/</span>\n <Time type=\"duration\" />\n </div>\n )\n}\n\nfunction CaptionControl() {\n const track = useMediaState(\"textTrack\")\n const hasCaptions = useMediaState(\"hasCaptions\")\n const options = useCaptionOptions()\n const l = useVideoLabels()\n\n // Single track or none: simple toggle button (native CaptionButton behavior)\n if (options.length <= 2) {\n return (\n <ControlTooltip label={track ? l.captionsOn : l.captionsOff}>\n <CaptionButton className={cn(controlBtnClass, !hasCaptions && \"opacity-50 pointer-events-none\")}>\n {track ? (\n <CycleIcon icon={CaptionsIcon} size=\"sm\" decorative className=\"text-white\" />\n ) : (\n <CycleIcon icon={CaptionsOff} size=\"sm\" decorative className=\"text-white\" />\n )}\n </CaptionButton>\n </ControlTooltip>\n )\n }\n\n // Multiple tracks: menu with language selection (native Vidstack Menu behavior)\n return (\n <Menu.Root>\n <ControlTooltip label={l.captions}>\n <Menu.Button className={controlBtnClass}>\n {track ? (\n <CycleIcon icon={CaptionsIcon} size=\"sm\" decorative className=\"text-white\" />\n ) : (\n <CycleIcon icon={CaptionsOff} size=\"sm\" decorative className=\"text-white\" />\n )}\n </Menu.Button>\n </ControlTooltip>\n\n <Menu.Content\n 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\"\n placement=\"top\"\n >\n <p className=\"px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50\">\n {l.captions}\n </p>\n <Menu.RadioGroup value={options.selectedValue}>\n {options.map((option) => (\n <Menu.Radio\n key={option.value}\n value={option.value}\n onSelect={option.select}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm text-white/80 transition-colors hover:bg-white/10 hover:text-white cursor-pointer\",\n option.selected && \"text-white font-medium\"\n )}\n >\n <span className=\"size-4 flex items-center justify-center\">\n {option.selected && <CycleIcon icon={Check} size=\"2xs\" decorative className=\"text-white\" />}\n </span>\n <span>{option.label}</span>\n </Menu.Radio>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu.Root>\n )\n}\n\nfunction PIPControl() {\n const isPIP = useMediaState(\"pictureInPicture\")\n const canPIP = useMediaState(\"canPictureInPicture\")\n const l = useVideoLabels()\n\n if (!canPIP) return null\n\n return (\n <ControlTooltip label={isPIP ? l.pipExit : l.pip}>\n <PIPButton className={controlBtnClass}>\n <CycleIcon icon={PictureInPicture2} size=\"sm\" decorative className={cn(\"text-white\", isPIP && \"text-white/100\")} />\n </PIPButton>\n </ControlTooltip>\n )\n}\n\nfunction SpeedControl() {\n const playbackRate = useMediaState(\"playbackRate\")\n const remote = useMediaRemote()\n const [open, setOpen] = React.useState(false)\n const l = useVideoLabels()\n\n const rates = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]\n\n return (\n <div className=\"relative\">\n <ControlTooltip label={l.speed}>\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className={controlBtnClass}\n >\n {playbackRate === 1 ? (\n <CycleIcon icon={Gauge} size=\"sm\" decorative className=\"text-white\" />\n ) : (\n <span className=\"text-xs font-mono font-semibold text-white\">{playbackRate}x</span>\n )}\n </button>\n </ControlTooltip>\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-white/10 bg-black/90 backdrop-blur-md p-1 shadow-xl\">\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-white/80 transition-colors hover:bg-white/10 hover:text-white\",\n playbackRate === rate && \"text-white 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-white\" />}\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\nfunction QualityControl() {\n const options = useVideoQualityOptions({ auto: true, sort: \"descending\" })\n const [open, setOpen] = React.useState(false)\n const l = useVideoLabels()\n\n const currentLabel = options.selectedValue === \"auto\"\n ? `Auto${options.selectedQuality ? ` (${options.selectedQuality.height}p)` : \"\"}`\n : options.selectedQuality\n ? `${options.selectedQuality.height}p`\n : \"Auto\"\n\n if (options.disabled) return null\n\n return (\n <div className=\"relative\">\n <ControlTooltip label={l.quality}>\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className={controlBtnClass}\n >\n <CycleIcon icon={Settings} size=\"sm\" decorative className=\"text-white\" />\n </button>\n </ControlTooltip>\n\n {open && (\n <>\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-[140px] rounded-lg border border-white/10 bg-black/90 backdrop-blur-md p-1 shadow-xl\">\n <p className=\"px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-white/50\">\n {l.qualityMenu}\n </p>\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => {\n option.select()\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-white/80 transition-colors hover:bg-white/10 hover:text-white\",\n option.selected && \"text-white font-medium\"\n )}\n >\n <span className=\"size-4 flex items-center justify-center\">\n {option.selected && <CycleIcon icon={Check} size=\"2xs\" decorative className=\"text-white\" />}\n </span>\n <span className=\"font-mono\">{option.label}</span>\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n )\n}\n\nfunction FullscreenControl() {\n const isFullscreen = useMediaState(\"fullscreen\")\n const l = useVideoLabels()\n return (\n <ControlTooltip label={isFullscreen ? l.fullscreenExit : l.fullscreen}>\n <FullscreenButton className={controlBtnClass}>\n {isFullscreen ? (\n <CycleIcon icon={Minimize} size=\"sm\" decorative className=\"text-white\" />\n ) : (\n <CycleIcon icon={Maximize} size=\"sm\" decorative className=\"text-white\" />\n )}\n </FullscreenButton>\n </ControlTooltip>\n )\n}\n\nfunction LiveIndicator() {\n const isLive = useMediaState(\"live\")\n const isLiveEdge = useMediaState(\"liveEdge\")\n const l = useVideoLabels()\n\n if (!isLive) return null\n\n return (\n <LiveButton\n className={cn(\n \"inline-flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs font-semibold uppercase tracking-wider transition-colors\",\n isLiveEdge\n ? \"text-destructive\"\n : \"text-white/60 hover:text-white\"\n )}\n >\n <span\n className={cn(\n \"size-2 rounded-full\",\n isLiveEdge ? \"bg-destructive animate-pulse\" : \"bg-white/40\"\n )}\n />\n {l.live}\n </LiveButton>\n )\n}\n\n\n/* ─── Gesture helpers ─── */\n\ntype SeekDirection = \"backward\" | \"forward\"\n\nconst DOUBLE_TAP_THRESHOLD = 300\n\n/** Double-tap left/right edges to seek ±10s. z-10 so it doesn't block controls (z-20). */\nfunction SeekGestureZone({\n side,\n onSeekFeedback,\n}: {\n side: \"left\" | \"right\"\n onSeekFeedback: (direction: SeekDirection) => void\n}) {\n const remote = useMediaRemote()\n const currentTime = useMediaState(\"currentTime\")\n const lastTapRef = React.useRef(0)\n\n const handlePointerUp = React.useCallback(\n (e: React.PointerEvent) => {\n const now = Date.now()\n const delta = now - lastTapRef.current\n lastTapRef.current = now\n\n if (delta < DOUBLE_TAP_THRESHOLD) {\n e.stopPropagation()\n const seconds = side === \"left\" ? -10 : 10\n remote.seek(currentTime + seconds)\n onSeekFeedback(side === \"left\" ? \"backward\" : \"forward\")\n }\n },\n [remote, currentTime, side, onSeekFeedback]\n )\n\n return (\n <div\n className={cn(\n \"absolute top-0 z-10 block h-full w-1/5\",\n side === \"left\" ? \"left-0\" : \"right-0\"\n )}\n onPointerUp={handlePointerUp}\n />\n )\n}\n\nfunction SeekFeedbackOverlay({\n direction,\n visible,\n seconds,\n}: {\n direction: SeekDirection\n visible: boolean\n seconds: number\n}) {\n const isBackward = direction === \"backward\"\n\n return (\n <div\n className={cn(\n \"pointer-events-none absolute top-0 z-[35] flex h-full w-2/5 items-center transition-opacity duration-200\",\n isBackward ? \"left-0 justify-center\" : \"right-0 justify-center\",\n visible ? \"opacity-100\" : \"opacity-0\"\n )}\n >\n <div\n className={cn(\n \"flex flex-col items-center gap-1 transition-transform duration-300\",\n visible ? \"scale-100\" : \"scale-75\"\n )}\n >\n <div className=\"flex size-12 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm\">\n <CycleIcon\n icon={isBackward ? RotateCcw : RotateCw}\n size=\"sm\"\n decorative\n className=\"text-white\"\n />\n </div>\n <span className=\"text-xs font-semibold text-white drop-shadow-md\">\n {seconds}s\n </span>\n </div>\n </div>\n )\n}\n\n\n/* ─── Hook: detect desktop via pointer capability ─── */\n/* Uses pointer: fine (mouse/trackpad) instead of viewport width.\n This way mobile devices keep the touch-optimized DefaultVideoLayout\n even when fullscreen in landscape exceeds the sm breakpoint. */\n\nfunction useIsDesktop() {\n const [isDesktop, setIsDesktop] = React.useState(false)\n\n React.useEffect(() => {\n const mq = window.matchMedia(\"(pointer: fine)\")\n setIsDesktop(mq.matches)\n const handler = (e: MediaQueryListEvent) => setIsDesktop(e.matches)\n mq.addEventListener(\"change\", handler)\n return () => mq.removeEventListener(\"change\", handler)\n }, [])\n\n return isDesktop\n}\n\n/* ─── Main component ─── */\n\nexport const VideoPlayer = React.forwardRef<VideoPlayerRef, VideoPlayerProps>(\n function VideoPlayer(\n {\n src,\n poster,\n posterAlt = \"\",\n thumbnails,\n chapters,\n captions,\n showBuffering = true,\n announcer = true,\n autoPlay = false,\n muted = false,\n loop = false,\n startTime,\n locale = \"pt-BR\",\n labels,\n onTimeUpdate,\n onEnded,\n className,\n },\n ref\n ) {\n const resolvedLabels = React.useMemo(\n () => resolveVideoLabels(locale, labels),\n [locale, labels]\n )\n const vidstackTranslations = React.useMemo(\n () => resolveVidstackTranslations(locale, labels),\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 const isDesktop = useIsDesktop()\n\n // Seek feedback state with accumulation (like YouTube)\n const [seekFeedback, setSeekFeedback] = React.useState<SeekDirection | null>(null)\n const [seekAccumulated, setSeekAccumulated] = React.useState(0)\n const feedbackTimeout = React.useRef<ReturnType<typeof setTimeout>>(undefined)\n\n const handleSeekFeedback = React.useCallback((direction: SeekDirection) => {\n clearTimeout(feedbackTimeout.current)\n\n setSeekFeedback((prev) => {\n if (prev === direction) {\n setSeekAccumulated((s) => s + 10)\n } else {\n setSeekAccumulated(10)\n }\n return direction\n })\n\n feedbackTimeout.current = setTimeout(() => {\n setSeekFeedback(null)\n setSeekAccumulated(0)\n }, 700)\n }, [])\n\n // Mobile: listen for seek requests from DefaultVideoLayout gestures\n React.useEffect(() => {\n const el = player.current?.el\n if (!el || isDesktop) return\n\n const handler = (e: Event) => {\n const seekTo = (e as CustomEvent<number>).detail\n const current = player.current?.currentTime ?? 0\n const delta = seekTo - current\n // Only show feedback for gesture seeks (~±10s), not slider scrubs\n if (Math.abs(Math.abs(delta) - 10) < 2) {\n handleSeekFeedback(delta < 0 ? \"backward\" : \"forward\")\n }\n }\n\n el.addEventListener(\"media-seek-request\", handler)\n return () => el.removeEventListener(\"media-seek-request\", handler)\n }, [isDesktop, handleSeekFeedback])\n\n React.useEffect(() => {\n return () => clearTimeout(feedbackTimeout.current)\n }, [])\n\n return (\n <VideoLabelsContext.Provider value={resolvedLabels}>\n <MediaPlayer\n ref={player}\n src={src}\n autoPlay={autoPlay}\n muted={muted}\n loop={loop}\n playsInline\n crossOrigin=\"\"\n className={cn(\n \"group relative aspect-video w-full overflow-hidden bg-black text-white\",\n isDesktop ? \"rounded-[16px]\" : \"rounded-none\",\n className\n )}\n {...playerEvents}\n >\n <MediaProvider>\n {poster && (\n <Poster\n className={cn(\"absolute inset-0 block h-full w-full object-cover opacity-0 transition-opacity data-[visible]:opacity-100\", isDesktop && \"rounded-[16px]\")}\n src={poster}\n alt={posterAlt}\n />\n )}\n\n {/* ─── Chapters track (VTT) ─── */}\n {chapters && (\n <Track\n src={chapters}\n kind=\"chapters\"\n language=\"en\"\n default\n />\n )}\n\n {/* ─── Caption/subtitle tracks (VTT) ─── */}\n {captions?.map((track) => (\n <Track\n key={track.language}\n src={track.src}\n kind=\"subtitles\"\n language={track.language}\n label={track.label}\n default={track.default}\n />\n ))}\n </MediaProvider>\n\n {/* ─── Accessibility: screen reader announcements ─── */}\n {announcer && <MediaAnnouncer />}\n\n {/* ─── Buffering spinner ─── */}\n {showBuffering && <BufferingIndicator />}\n\n {/* ─── Seek feedback indicators (both mobile & desktop) ─── */}\n <SeekFeedbackOverlay direction=\"backward\" visible={seekFeedback === \"backward\"} seconds={seekAccumulated} />\n <SeekFeedbackOverlay direction=\"forward\" visible={seekFeedback === \"forward\"} seconds={seekAccumulated} />\n\n {/* ─── MOBILE: Vidstack DefaultVideoLayout (touch, gestos, menus nativos) ─── */}\n {!isDesktop && (\n <DefaultVideoLayout\n icons={defaultLayoutIcons}\n thumbnails={thumbnails}\n colorScheme=\"dark\"\n translations={vidstackTranslations}\n />\n )}\n\n {/* ─── DESKTOP: Controles customizados do Cycle Design ─── */}\n {isDesktop && (\n <>\n {/* Captions overlay */}\n <Captions className=\"absolute inset-x-0 bottom-8 z-10 flex flex-col items-center select-none break-words text-center transition-[bottom] duration-200 ease-in-out group-data-[started]:group-hover:bottom-[72px] group-data-[paused]:bottom-[72px] media-preview:opacity-0 [&>[data-part=cue]]:inline [&>[data-part=cue]]:rounded-md [&>[data-part=cue]]:bg-black/95 [&>[data-part=cue]]:px-4 [&>[data-part=cue]]:py-1.5 [&>[data-part=cue]]:text-[15px] [&>[data-part=cue]]:leading-snug [&>[data-part=cue]]:text-white [&>[data-part=cue]]:drop-shadow-[0_1px_3px_rgba(0,0,0,0.8)]\" />\n\n {/* Play overlay (paused state — big play button) */}\n <PlayOverlay />\n\n {/* Gestures: click to pause, double-click fullscreen */}\n <Gesture className=\"absolute inset-0 z-0 block h-full w-full\" event=\"pointerup\" action=\"toggle:paused\" />\n <Gesture className=\"absolute inset-0 z-0 block h-full w-full\" event=\"dblpointerup\" action=\"toggle:fullscreen\" />\n\n {/* Double-tap seek zones on edges */}\n <SeekGestureZone side=\"left\" onSeekFeedback={handleSeekFeedback} />\n <SeekGestureZone side=\"right\" onSeekFeedback={handleSeekFeedback} />\n\n {/* Controls overlay (hover to show) */}\n <Controls.Root className=\"absolute inset-0 z-20 flex h-full w-full flex-col bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 transition-opacity duration-200 group-data-[started]:group-hover:opacity-100 group-data-[paused]:opacity-100\">\n <div className=\"flex-1\" />\n\n {/* Seek bar */}\n <Controls.Group className=\"flex w-full items-center px-3\">\n <SeekBar thumbnails={thumbnails} chapters={!!chapters} />\n </Controls.Group>\n\n {/* Bottom bar */}\n <Controls.Group className=\"@container flex w-full items-center gap-1 px-2 pb-2\">\n <PlayControl />\n <SeekBackwardControl />\n <SeekForwardControl />\n <MuteControl />\n <VolumeControl />\n <TimeDisplay />\n <LiveIndicator />\n\n <div className=\"flex-1\" />\n\n <CaptionControl />\n <SpeedControl />\n <QualityControl />\n <PIPControl />\n <FullscreenControl />\n </Controls.Group>\n </Controls.Root>\n </>\n )}\n </MediaPlayer>\n </VideoLabelsContext.Provider>\n )\n }\n)\n"]}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export { LikeDislike, LikeDislikeProps, LikeDislikeValue, likeDislikeVariants }
28
28
  export { LiveWaiting, LiveWaitingProps } from './ui/live-waiting.js';
29
29
  export { AudioPlayer, AudioPlayerLabels, AudioPlayerProps, AudioPlayerRef } from './ui/audio-player.js';
30
30
  export { CaptionTrack, VideoPlayer, VideoPlayerLabels, VideoPlayerProps, VideoPlayerRef } from './ui/video-player.js';
31
+ export { PlayerLocale, PlayerLocaleData, VideoDesktopLabels, playerLocales } from './ui/player-i18n.js';
31
32
  export { Toaster, cycleToast } from './ui/sonner.js';
32
33
  export { Alert, AlertAction, AlertClose, AlertDescription, AlertProps, AlertTitle, alertVariants } from './ui/alert.js';
33
34
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './ui/alert-dialog.js';
@@ -49,6 +50,7 @@ import 'react/jsx-runtime';
49
50
  import 'class-variance-authority/types';
50
51
  import 'class-variance-authority';
51
52
  import 'radix-ui';
53
+ import '@vidstack/react/player/layouts/default';
52
54
  import 'sonner';
53
55
  import 'react-resizable-panels';
54
56
  import 'vaul';
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-NOMLQHZS.js';
1
2
  export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from './chunk-66CU7J2I.js';
2
3
  export { FluencypassIcon, FluencypassLogo } from './chunk-5LZHXNBV.js';
4
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-IGMII4BK.js';
3
5
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './chunk-PY2BIZNB.js';
4
6
  export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from './chunk-F2Q3E2ZM.js';
5
7
  export { Skeleton } from './chunk-2EKU7RP4.js';
@@ -7,15 +9,14 @@ export { Spinner } from './chunk-5XNYJECW.js';
7
9
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-5NKTYXWQ.js';
8
10
  export { Fab, fabVariants } from './chunk-7NFHHOAE.js';
9
11
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-YJ4U7ISM.js';
10
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-NOMLQHZS.js';
11
- export { AudioPlayer } from './chunk-QVOHJ6UN.js';
12
- export { VideoPlayer } from './chunk-RG6UQTYP.js';
12
+ export { AudioPlayer } from './chunk-DCNZ2DRR.js';
13
+ export { VideoPlayer } from './chunk-V3CBOIGK.js';
14
+ export { playerLocales } from './chunk-C6BQAAHX.js';
13
15
  export { Toaster, cycleToast } from './chunk-ELZCZ6ZH.js';
14
16
  export { Alert, AlertAction, AlertClose, AlertDescription, AlertTitle, alertVariants } from './chunk-7ZXAU2CD.js';
15
17
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-3EFI7PYC.js';
16
18
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './chunk-SZUWVHP4.js';
17
19
  export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from './chunk-EF6FQT4Y.js';
18
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-IGMII4BK.js';
19
20
  export { ProgressStage } from './chunk-NYJMA2T7.js';
20
21
  export { ProgressDot, dotVariants, progressDotVariants } from './chunk-ZTANTDKS.js';
21
22
  export { FileCard, fileCardVariants } from './chunk-JMNMW54C.js';
@@ -1,4 +1,6 @@
1
1
  import * as React from 'react';
2
+ import { PlayerLocale } from './player-i18n.js';
3
+ import '@vidstack/react/player/layouts/default';
2
4
 
3
5
  interface AudioPlayerRef {
4
6
  play(): void;
@@ -7,7 +9,7 @@ interface AudioPlayerRef {
7
9
  readonly duration: number;
8
10
  }
9
11
  interface AudioPlayerLabels {
10
- /** Label da velocidade normal no menu (default: "Normal") */
12
+ /** Label da velocidade normal no menu (default depende do locale) */
11
13
  speedNormal?: string;
12
14
  }
13
15
  interface AudioPlayerProps {
@@ -35,7 +37,9 @@ interface AudioPlayerProps {
35
37
  showSpeed?: boolean;
36
38
  /** Tempo inicial em segundos — usado para retomar de onde o usuario parou (resume position) */
37
39
  startTime?: number;
38
- /** Labels para i18n permite traduzir os textos dos controles */
40
+ /** Idioma dos controles (default: "pt-BR"). 13 locales pre-configurados. */
41
+ locale?: PlayerLocale;
42
+ /** Overrides pontuais de labels — aplicados em cima do locale selecionado */
39
43
  labels?: AudioPlayerLabels;
40
44
  /** Callback com progresso do audio (currentTime em segundos, duration em segundos) */
41
45
  onTimeUpdate?: (currentTime: number, duration: number) => void;
@@ -1,4 +1,5 @@
1
- export { AudioPlayer } from '../chunk-QVOHJ6UN.js';
1
+ export { AudioPlayer } from '../chunk-DCNZ2DRR.js';
2
+ import '../chunk-C6BQAAHX.js';
2
3
  import '../chunk-JPEDYOV7.js';
3
4
  import '../chunk-V7M2NHUO.js';
4
5
  import '../chunk-TYCPXAXF.js';
@@ -4,8 +4,8 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "progress" | "muted" | "success" | "progress-completed" | null | undefined;
8
- size?: "sm" | "lg" | "default" | null | undefined;
7
+ variant?: "link" | "progress" | "default" | "outline" | "destructive" | "secondary" | "ghost" | "muted" | "success" | "progress-completed" | null | undefined;
8
+ size?: "sm" | "default" | "lg" | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  interface BadgeProps extends React.ComponentProps<"span">, VariantProps<typeof badgeVariants> {
11
11
  asChild?: boolean;
@@ -4,8 +4,8 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const buttonVariants: (props?: ({
7
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
8
- size?: "xs" | "sm" | "lg" | "icon" | "default" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
7
+ variant?: "link" | "default" | "outline" | "destructive" | "secondary" | "ghost" | null | undefined;
8
+ size?: "sm" | "default" | "lg" | "xs" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  interface ButtonProps extends React.ComponentProps<"button">, VariantProps<typeof buttonVariants> {
11
11
  asChild?: boolean;
@@ -5,7 +5,7 @@ import { Checkbox as Checkbox$1 } from 'radix-ui';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
 
7
7
  declare const checkboxVariants: (props?: ({
8
- size?: "sm" | "lg" | "default" | null | undefined;
8
+ size?: "sm" | "default" | "lg" | null | undefined;
9
9
  variant?: "default" | "circular" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
11
  interface CheckboxProps extends React.ComponentProps<typeof Checkbox$1.Root>, VariantProps<typeof checkboxVariants> {
@@ -5,7 +5,7 @@ import { VariantProps } from 'class-variance-authority';
5
5
  declare function Empty({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
6
6
  declare function EmptyHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
7
7
  declare const emptyMediaVariants: (props?: ({
8
- variant?: "icon" | "default" | null | undefined;
8
+ variant?: "default" | "icon" | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  declare function EmptyMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): react_jsx_runtime.JSX.Element;
11
11
  declare function EmptyTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;