@sesionario/blocks 1.37.0 → 1.38.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/livo.cjs CHANGED
@@ -57,6 +57,10 @@ var studio_labels_en_default = {
57
57
  screenBusy: "Someone else is already sharing their screen",
58
58
  endedTitle: "This studio session has ended",
59
59
  endedDescription: "The host stopped the stream.",
60
+ linkExpiredTitle: "This studio link is no longer valid",
61
+ linkExpiredDescription: "It is invalid or has expired. Open the studio again from the stream to get a new link.",
62
+ openFailedTitle: "Could not open the studio",
63
+ openFailedDescription: "Something went wrong while opening the studio.",
60
64
  endedAction: "Back",
61
65
  rejoin: "Rejoin studio",
62
66
  duplicateTitle: "Studio is already open",
@@ -221,6 +225,10 @@ var studio_labels_es_default = {
221
225
  screenBusy: "Alguien m\xE1s ya est\xE1 compartiendo su pantalla",
222
226
  endedTitle: "Esta sesi\xF3n de estudio termin\xF3",
223
227
  endedDescription: "El anfitri\xF3n detuvo la transmisi\xF3n.",
228
+ linkExpiredTitle: "Este enlace del estudio ya no es v\xE1lido",
229
+ linkExpiredDescription: "No es v\xE1lido o expir\xF3. Abre el estudio de nuevo desde la transmisi\xF3n para obtener un enlace nuevo.",
230
+ openFailedTitle: "No se pudo abrir el estudio",
231
+ openFailedDescription: "Algo sali\xF3 mal al abrir el estudio.",
224
232
  endedAction: "Volver",
225
233
  rejoin: "Volver al estudio",
226
234
  duplicateTitle: "El estudio ya est\xE1 abierto",
package/dist/livo.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/livo/locale.ts","../src/livo/studio-labels-en.json","../src/livo/studio-labels-es.json","../src/livo/catalogs.ts","../src/livo/studio-labels.ts","../src/livo/embed-theme.ts","../src/livo/livo-labels.ts"],"names":[],"mappings":"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","file":"livo.cjs","sourcesContent":["export type LivoLocale = \"es\" | \"en\";\n\nexport function resolveLivoLocale(locale?: string): LivoLocale {\n\treturn locale?.toLowerCase().startsWith(\"en\") ? \"en\" : \"es\";\n}\n","{\n\t\"live\": \"LIVE\",\n\t\"preview\": \"Preview\",\n\t\"waiting\": \"Waiting to join\",\n\t\"waitingHost\": \"Waiting for the host to let you in\",\n\t\"admit\": \"Admit\",\n\t\"deny\": \"Deny\",\n\t\"denied\": \"Guest declined\",\n\t\"denyError\": \"Could not decline that guest\",\n\t\"rejectedTitle\": \"The host declined your request\",\n\t\"rejectedDescription\": \"You can ask to join again if the studio is still open.\",\n\t\"rejectedAction\": \"Ask to join again\",\n\t\"kick\": \"Remove\",\n\t\"camera\": \"Camera\",\n\t\"screen\": \"Screen\",\n\t\"mute\": \"Mute\",\n\t\"unmute\": \"Unmute\",\n\t\"copyLink\": \"Copy guest link\",\n\t\"shareLink\": \"Share guest link\",\n\t\"shareGuestText\": \"Join the studio for {title}\",\n\t\"shareFailed\": \"Could not share the guest link\",\n\t\"copied\": \"Guest link copied\",\n\t\"publish\": \"Go live\",\n\t\"publishTitle\": \"Go live?\",\n\t\"publishDescription\": \"Viewers will see this studio on the public player.\",\n\t\"publishConfirm\": \"Go live\",\n\t\"publishPending\": \"Going on air…\",\n\t\"stop\": \"Stop\",\n\t\"stopTitle\": \"Stop this broadcast?\",\n\t\"stopDescription\": \"Viewers will lose the live feed. Guests will be disconnected.\",\n\t\"stopConfirm\": \"Stop stream\",\n\t\"fullscreen\": \"Fullscreen\",\n\t\"publishError\": \"Could not go live\",\n\t\"stopError\": \"Could not stop the stream\",\n\t\"published\": \"Going live\",\n\t\"stopped\": \"Stream stopped\",\n\t\"cameraDevice\": \"Camera\",\n\t\"micDevice\": \"Microphone\",\n\t\"speakerDevice\": \"Speaker\",\n\t\"preflightCamera\": \"Camera\",\n\t\"preflightMic\": \"Microphone\",\n\t\"knock\": \"{name} is waiting to join\",\n\t\"egressLost\": \"Reconnect studio\",\n\t\"livestreamStarting\": \"Initializing…\",\n\t\"livestreamSending\": \"Initializing…\",\n\t\"livestreamInitializing\": \"Initializing…\",\n\t\"livestreamRetry\": \"Retry egress\",\n\t\"livestreamError\": \"Could not start RTMP egress\",\n\t\"screenBusy\": \"Someone else is already sharing their screen\",\n\t\"endedTitle\": \"This studio session has ended\",\n\t\"endedDescription\": \"The host stopped the stream.\",\n\t\"endedAction\": \"Back\",\n\t\"rejoin\": \"Rejoin studio\",\n\t\"duplicateTitle\": \"Studio is already open\",\n\t\"duplicateDescription\": \"This studio is already open in another window.\",\n\t\"duplicateDescriptionNoTakeover\": \"This studio is already open in another window. Close that window to continue here.\",\n\t\"duplicateAction\": \"Continue here\",\n\t\"duplicateTakenOver\": \"This session moved to another window.\",\n\t\"joinBusy\": \"Too many join attempts. Try again in a moment.\",\n\t\"cameraError\": \"Could not enable the camera\",\n\t\"screenError\": \"Could not share the screen\",\n\t\"leave\": \"Leave studio\",\n\t\"leaveTitle\": \"Leave this studio?\",\n\t\"leaveDescription\": \"You will disconnect from the host and other guests.\",\n\t\"leaveConfirm\": \"Leave\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Send\",\n\t\"chatPlaceholder\": \"Message\",\n\t\"chatError\": \"Could not send the message\",\n\t\"settings\": \"Settings\",\n\t\"settingsTitle\": \"Settings\",\n\t\"settingsDescription\": \"Name, audio, and video settings\",\n\t\"guestName\": \"Your name\",\n\t\"displayNameSave\": \"Save\",\n\t\"displayNameSaved\": \"Display name updated\",\n\t\"displayNameError\": \"Could not update your display name\",\n\t\"testSpeaker\": \"Test\",\n\t\"testSpeakerError\": \"Could not play the speaker test\",\n\t\"cameraOff\": \"Camera is off\",\n\t\"micLevel\": \"Microphone level\",\n\t\"share\": \"Copy player link\",\n\t\"shareCopied\": \"Player link copied\",\n\t\"stopCamera\": \"Stop camera\",\n\t\"stopScreen\": \"Stop screen share\",\n\t\"hostMutedYou\": \"The host muted you\",\n\t\"hostStoppedYourCamera\": \"The host turned off your camera\",\n\t\"hostStoppedYourScreen\": \"The host stopped your screen share\",\n\t\"hostMediaError\": \"Could not change that guest's media\",\n\t\"tileMenu\": \"Guest controls\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Close picture-in-picture\",\n\t\"backToStudio\": \"Back to studio\",\n\t\"pipTitle\": \"Studio\",\n\t\"pipError\": \"Could not open picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Screen sharing is not available on this device\",\n\t\"screenNotAllowed\": \"You do not have permission to share your screen\",\n\t\"askToShare\": \"Ask to share\",\n\t\"shareRequested\": \"Requested\",\n\t\"cancelShareRequest\": \"Cancel request\",\n\t\"shareRequestSent\": \"Asked the host to share your screen\",\n\t\"shareRequestFrom\": \"{name} wants to share their screen\",\n\t\"approve\": \"Approve\",\n\t\"shareApproved\": \"The host approved your screen share\",\n\t\"shareDenied\": \"The host declined your screen share\",\n\t\"shareRequestError\": \"Could not ask the host to share\",\n\t\"shareRequestTimeout\": \"No response from the host\",\n\t\"shareRespondError\": \"Could not respond to that share request\",\n\t\"goOffAir\": \"Go off air\",\n\t\"goOnAir\": \"Go on air\",\n\t\"takeOffAir\": \"Take off air\",\n\t\"bringOnAir\": \"Bring on air\",\n\t\"offAir\": \"Off air\",\n\t\"offAirCount\": \"Off air ({count})\",\n\t\"offAirBanner\": \"You are off camera. Your microphone is still live.\",\n\t\"offAirLastVisible\": \"At least one participant must stay on air while you are live\",\n\t\"offAirHidden\": \"Taken off air\",\n\t\"offAirShown\": \"Back on air\",\n\t\"offAirError\": \"Could not change on-air state\",\n\t\"takeOffAirTitle\": \"Take this guest off air?\",\n\t\"takeOffAirDescription\": \"They stay in the studio but stop publishing camera, mic, and screen.\",\n\t\"takeOffAirConfirm\": \"Take off air\",\n\t\"admitAsPanelist\": \"Admit as panelist\",\n\t\"admitAsAudience\": \"Admit as audience\",\n\t\"admitAllPanelists\": \"Admit all as panelists\",\n\t\"admitAllAudience\": \"Admit all as audience\",\n\t\"askToGoOnAir\": \"Ask to go on air\",\n\t\"stageRequested\": \"Asked to go on air\",\n\t\"stageRequests\": \"Stage requests\",\n\t\"people\": \"People\",\n\t\"panelists\": \"Panelists\",\n\t\"audience\": \"Audience\",\n\t\"noWaiting\": \"No one is waiting\",\n\t\"noPanelists\": \"No panelists\",\n\t\"noAudience\": \"No audience\",\n\t\"closePanel\": \"Close\",\n\t\"muteChat\": \"Mute chat\",\n\t\"allowChat\": \"Allow chat\",\n\t\"pin\": \"Pin on stage\",\n\t\"unpin\": \"Unpin\",\n\t\"pinnedToast\": \"You are pinned on stage\",\n\t\"unpinnedToast\": \"You are no longer pinned\",\n\t\"pinError\": \"Could not pin that participant\",\n\t\"kickTitle\": \"Remove this guest from the studio?\",\n\t\"kickDescription\": \"They will be disconnected.\",\n\t\"kickConfirm\": \"Remove\",\n\t\"kickError\": \"Could not remove that guest\",\n\t\"stageError\": \"Could not change stage access\",\n\t\"stageDisabled\": \"This guest link cannot join the stage.\",\n\t\"stageGrantNoEffect\": \"That guest stayed in the audience.\",\n\t\"stageOverflow\": \"+{count} more\",\n\t\"chatEveryone\": \"Everyone\",\n\t\"chatEdited\": \"Edited\",\n\t\"chatPinned\": \"Pinned message\",\n\t\"chatLoadOlder\": \"Load earlier messages\",\n\t\"chatRateLimited\": \"You are sending messages too quickly\",\n\t\"chatDelete\": \"Delete\",\n\t\"chatEdit\": \"Edit\",\n\t\"chatPin\": \"Pin message\",\n\t\"chatUnpin\": \"Unpin message\",\n\t\"chatSave\": \"Save\",\n\t\"waitingSkeleton\": \"Loading waiting room\"\n}\n","{\n\t\"live\": \"EN VIVO\",\n\t\"preview\": \"Vista previa\",\n\t\"waiting\": \"Esperando para unirte\",\n\t\"waitingHost\": \"Esperando a que el anfitrión te deje entrar\",\n\t\"admit\": \"Admitir\",\n\t\"deny\": \"Rechazar\",\n\t\"denied\": \"Invitado rechazado\",\n\t\"denyError\": \"No se pudo rechazar a ese invitado\",\n\t\"rejectedTitle\": \"El anfitrión rechazó tu solicitud\",\n\t\"rejectedDescription\": \"Puedes pedir unirte de nuevo si el estudio sigue abierto.\",\n\t\"rejectedAction\": \"Pedir unirme de nuevo\",\n\t\"kick\": \"Quitar\",\n\t\"camera\": \"Cámara\",\n\t\"screen\": \"Pantalla\",\n\t\"mute\": \"Silenciar\",\n\t\"unmute\": \"Activar audio\",\n\t\"copyLink\": \"Copiar enlace de invitado\",\n\t\"shareLink\": \"Compartir enlace de invitado\",\n\t\"shareGuestText\": \"Únete al estudio de {title}\",\n\t\"shareFailed\": \"No se pudo compartir el enlace de invitado\",\n\t\"copied\": \"Enlace de invitado copiado\",\n\t\"publish\": \"Salir al aire\",\n\t\"publishTitle\": \"¿Salir al aire?\",\n\t\"publishDescription\": \"Las y los espectadores verán este estudio en el reproductor público.\",\n\t\"publishConfirm\": \"Salir al aire\",\n\t\"publishPending\": \"Saliendo al aire…\",\n\t\"stop\": \"Detener\",\n\t\"stopTitle\": \"¿Detener esta transmisión?\",\n\t\"stopDescription\": \"Las y los espectadores perderán la señal en vivo. Los invitados se desconectarán.\",\n\t\"stopConfirm\": \"Detener transmisión\",\n\t\"fullscreen\": \"Pantalla completa\",\n\t\"publishError\": \"No se pudo salir al aire\",\n\t\"stopError\": \"No se pudo detener la transmisión\",\n\t\"published\": \"Saliendo al aire\",\n\t\"stopped\": \"Transmisión detenida\",\n\t\"cameraDevice\": \"Cámara\",\n\t\"micDevice\": \"Micrófono\",\n\t\"speakerDevice\": \"Altavoz\",\n\t\"preflightCamera\": \"Cámara\",\n\t\"preflightMic\": \"Micrófono\",\n\t\"knock\": \"{name} espera para unirse\",\n\t\"egressLost\": \"Reconectar estudio\",\n\t\"livestreamStarting\": \"Inicializando…\",\n\t\"livestreamSending\": \"Inicializando…\",\n\t\"livestreamInitializing\": \"Inicializando…\",\n\t\"livestreamRetry\": \"Reintentar salida\",\n\t\"livestreamError\": \"No se pudo iniciar la salida RTMP\",\n\t\"screenBusy\": \"Alguien más ya está compartiendo su pantalla\",\n\t\"endedTitle\": \"Esta sesión de estudio terminó\",\n\t\"endedDescription\": \"El anfitrión detuvo la transmisión.\",\n\t\"endedAction\": \"Volver\",\n\t\"rejoin\": \"Volver al estudio\",\n\t\"duplicateTitle\": \"El estudio ya está abierto\",\n\t\"duplicateDescription\": \"Este estudio ya está abierto en otra ventana.\",\n\t\"duplicateDescriptionNoTakeover\": \"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\"duplicateAction\": \"Continuar aquí\",\n\t\"duplicateTakenOver\": \"Esta sesión se movió a otra ventana.\",\n\t\"joinBusy\": \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\"cameraError\": \"No se pudo activar la cámara\",\n\t\"screenError\": \"No se pudo compartir la pantalla\",\n\t\"leave\": \"Salir del estudio\",\n\t\"leaveTitle\": \"¿Salir de este estudio?\",\n\t\"leaveDescription\": \"Te desconectarás del anfitrión y de los demás invitados.\",\n\t\"leaveConfirm\": \"Salir\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Enviar\",\n\t\"chatPlaceholder\": \"Mensaje\",\n\t\"chatError\": \"No se pudo enviar el mensaje\",\n\t\"settings\": \"Ajustes\",\n\t\"settingsTitle\": \"Ajustes\",\n\t\"settingsDescription\": \"Nombre, audio y video\",\n\t\"guestName\": \"Tu nombre\",\n\t\"displayNameSave\": \"Guardar\",\n\t\"displayNameSaved\": \"Nombre actualizado\",\n\t\"displayNameError\": \"No se pudo actualizar tu nombre\",\n\t\"testSpeaker\": \"Probar\",\n\t\"testSpeakerError\": \"No se pudo reproducir la prueba de altavoz\",\n\t\"cameraOff\": \"Cámara apagada\",\n\t\"micLevel\": \"Nivel del micrófono\",\n\t\"share\": \"Copiar enlace del reproductor\",\n\t\"shareCopied\": \"Enlace del reproductor copiado\",\n\t\"stopCamera\": \"Apagar cámara\",\n\t\"stopScreen\": \"Dejar de compartir pantalla\",\n\t\"hostMutedYou\": \"El anfitrión te silenció\",\n\t\"hostStoppedYourCamera\": \"El anfitrión apagó tu cámara\",\n\t\"hostStoppedYourScreen\": \"El anfitrión detuvo tu compartir pantalla\",\n\t\"hostMediaError\": \"No se pudo cambiar el medio de ese invitado\",\n\t\"tileMenu\": \"Controles de invitado\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Cerrar picture-in-picture\",\n\t\"backToStudio\": \"Volver al estudio\",\n\t\"pipTitle\": \"Estudio\",\n\t\"pipError\": \"No se pudo abrir picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Compartir pantalla no está disponible en este dispositivo\",\n\t\"screenNotAllowed\": \"No tienes permiso para compartir tu pantalla\",\n\t\"askToShare\": \"Pedir compartir\",\n\t\"shareRequested\": \"Solicitado\",\n\t\"cancelShareRequest\": \"Cancelar solicitud\",\n\t\"shareRequestSent\": \"Le pediste al anfitrión compartir tu pantalla\",\n\t\"shareRequestFrom\": \"{name} quiere compartir su pantalla\",\n\t\"approve\": \"Aprobar\",\n\t\"shareApproved\": \"El anfitrión aprobó tu compartir pantalla\",\n\t\"shareDenied\": \"El anfitrión rechazó tu compartir pantalla\",\n\t\"shareRequestError\": \"No se pudo pedir compartir pantalla\",\n\t\"shareRequestTimeout\": \"El anfitrión no respondió\",\n\t\"shareRespondError\": \"No se pudo responder a esa solicitud\",\n\t\"goOffAir\": \"Salir del aire\",\n\t\"goOnAir\": \"Entrar al aire\",\n\t\"takeOffAir\": \"Quitar del aire\",\n\t\"bringOnAir\": \"Poner al aire\",\n\t\"offAir\": \"Fuera del aire\",\n\t\"offAirCount\": \"Fuera del aire ({count})\",\n\t\"offAirBanner\": \"Estás fuera de cámara. Tu micrófono sigue activo.\",\n\t\"offAirLastVisible\": \"Al menos una persona debe quedarse al aire mientras estás en vivo\",\n\t\"offAirHidden\": \"Fuera del aire\",\n\t\"offAirShown\": \"De nuevo al aire\",\n\t\"offAirError\": \"No se pudo cambiar el estado al aire\",\n\t\"takeOffAirTitle\": \"¿Quitar a este invitado del aire?\",\n\t\"takeOffAirDescription\": \"Sigue en el estudio, pero deja de publicar cámara, micrófono y pantalla.\",\n\t\"takeOffAirConfirm\": \"Quitar del aire\",\n\t\"admitAsPanelist\": \"Admitir como panelista\",\n\t\"admitAsAudience\": \"Admitir como audiencia\",\n\t\"admitAllPanelists\": \"Admitir a todos como panelistas\",\n\t\"admitAllAudience\": \"Admitir a todos como audiencia\",\n\t\"askToGoOnAir\": \"Pedir entrar al aire\",\n\t\"stageRequested\": \"Pidió entrar al aire\",\n\t\"stageRequests\": \"Solicitudes de escenario\",\n\t\"people\": \"Personas\",\n\t\"panelists\": \"Panelistas\",\n\t\"audience\": \"Audiencia\",\n\t\"noWaiting\": \"Nadie espera\",\n\t\"noPanelists\": \"Sin panelistas\",\n\t\"noAudience\": \"Sin audiencia\",\n\t\"closePanel\": \"Cerrar\",\n\t\"muteChat\": \"Silenciar chat\",\n\t\"allowChat\": \"Permitir chat\",\n\t\"pin\": \"Fijar en escenario\",\n\t\"unpin\": \"Desfijar\",\n\t\"pinnedToast\": \"Estás fijado en el escenario\",\n\t\"unpinnedToast\": \"Ya no estás fijado\",\n\t\"pinError\": \"No se pudo fijar a esa persona\",\n\t\"kickTitle\": \"¿Quitar a este invitado del estudio?\",\n\t\"kickDescription\": \"Se desconectará.\",\n\t\"kickConfirm\": \"Quitar\",\n\t\"kickError\": \"No se pudo quitar a ese invitado\",\n\t\"stageError\": \"No se pudo cambiar el acceso al escenario\",\n\t\"stageDisabled\": \"Este enlace de invitado no puede unirse al escenario.\",\n\t\"stageGrantNoEffect\": \"Ese invitado se quedó en la audiencia.\",\n\t\"stageOverflow\": \"+{count} más\",\n\t\"chatEveryone\": \"Todos\",\n\t\"chatEdited\": \"Editado\",\n\t\"chatPinned\": \"Mensaje fijado\",\n\t\"chatLoadOlder\": \"Cargar mensajes anteriores\",\n\t\"chatRateLimited\": \"Estás enviando mensajes demasiado rápido\",\n\t\"chatDelete\": \"Eliminar\",\n\t\"chatEdit\": \"Editar\",\n\t\"chatPin\": \"Fijar mensaje\",\n\t\"chatUnpin\": \"Desfijar mensaje\",\n\t\"chatSave\": \"Guardar\",\n\t\"waitingSkeleton\": \"Cargando sala de espera\"\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\n\nexport type SesionarioLobbyLabels = {\n\ttitle: string;\n\thint: string;\n\tname: string;\n\tjoin: string;\n\twaitingForHost: string;\n\tcamera: string;\n\tmic: string;\n\tcameraDevice?: string;\n\tmicDevice?: string;\n\tspeakerDevice?: string;\n\ttestSpeaker?: string;\n\ttestSpeakerError?: string;\n\tcameraOff?: string;\n\tjoinError: string;\n\tjoinBusy: string;\n\tendedTitle: string;\n};\n\nconst LOBBY: Record<LivoLocale, SesionarioLobbyLabels> = {\n\ten: {\n\t\ttitle: \"Get ready to join\",\n\t\thint: \"Set your camera and microphone, then join when you are ready.\",\n\t\tname: \"Your name\",\n\t\tjoin: \"Join\",\n\t\twaitingForHost: \"Waiting for the host to open the studio\",\n\t\tcamera: \"Camera\",\n\t\tmic: \"Microphone\",\n\t\tcameraDevice: \"Camera\",\n\t\tmicDevice: \"Microphone\",\n\t\tspeakerDevice: \"Speaker\",\n\t\ttestSpeaker: \"Test\",\n\t\ttestSpeakerError: \"Could not play the speaker test\",\n\t\tcameraOff: \"Camera is off\",\n\t\tjoinError: \"Could not join studio\",\n\t\tjoinBusy: \"Too many join attempts. Try again in a moment.\",\n\t\tendedTitle: \"This studio session has ended\",\n\t},\n\tes: {\n\t\ttitle: \"Prepárate para unirte\",\n\t\thint: \"Configura tu cámara y micrófono, y únete cuando estés listo.\",\n\t\tname: \"Tu nombre\",\n\t\tjoin: \"Unirme\",\n\t\twaitingForHost: \"Esperando a que el anfitrión abra el estudio\",\n\t\tcamera: \"Cámara\",\n\t\tmic: \"Micrófono\",\n\t\tcameraDevice: \"Cámara\",\n\t\tmicDevice: \"Micrófono\",\n\t\tspeakerDevice: \"Altavoz\",\n\t\ttestSpeaker: \"Probar\",\n\t\ttestSpeakerError: \"No se pudo reproducir la prueba de altavoz\",\n\t\tcameraOff: \"Cámara apagada\",\n\t\tjoinError: \"No se pudo unir al estudio\",\n\t\tjoinBusy: \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\tendedTitle: \"Esta sesión de estudio terminó\",\n\t},\n};\n\nexport type SesionarioWindowGateLabels = {\n\tduplicateTitle: string;\n\tduplicateDescription: string;\n\tduplicateDescriptionNoTakeover: string;\n\tduplicateTakenOver: string;\n\tduplicateAction: string;\n};\n\nconst WINDOW_GATE: Record<LivoLocale, SesionarioWindowGateLabels> = {\n\ten: {\n\t\tduplicateTitle: \"Studio is already open\",\n\t\tduplicateDescription: \"This studio is already open in another window.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"This studio is already open in another window. Close that window to continue here.\",\n\t\tduplicateTakenOver: \"This session moved to another window.\",\n\t\tduplicateAction: \"Continue here\",\n\t},\n\tes: {\n\t\tduplicateTitle: \"El estudio ya está abierto\",\n\t\tduplicateDescription: \"Este estudio ya está abierto en otra ventana.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\tduplicateTakenOver: \"Esta sesión se movió a otra ventana.\",\n\t\tduplicateAction: \"Continuar aquí\",\n\t},\n};\n\nexport type SesionarioPlayerLabels = {\n\tplay: string;\n\tpause: string;\n\tmute: string;\n\tunmute: string;\n\tenterFullscreen: string;\n\texitFullscreen: string;\n\tpictureInPicture: string;\n\tcast: string;\n\tsettings: string;\n\tmore: string;\n\tback: string;\n\tquality: string;\n\tauto: string;\n\tspeed: string;\n\tlive: string;\n\tgoLive: string;\n\ttapToUnmute: string;\n\tloading: string;\n\twaiting: string;\n\tretry: string;\n\terrorUnavailable: string;\n\terrorNetwork: string;\n\terrorMedia: string;\n\terrorUnsupported: string;\n\terrorGeneric: string;\n\tcaptions: string;\n\tcaptionsOff: string;\n\tcaptionsEn: string;\n\tcaptionsEs: string;\n\tcaptionsPt: string;\n};\n\nconst PLAYER: Record<LivoLocale, SesionarioPlayerLabels> = {\n\ten: {\n\t\tplay: \"Play\",\n\t\tpause: \"Pause\",\n\t\tmute: \"Mute\",\n\t\tunmute: \"Unmute\",\n\t\tenterFullscreen: \"Fullscreen\",\n\t\texitFullscreen: \"Exit fullscreen\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Cast\",\n\t\tsettings: \"Settings\",\n\t\tmore: \"More\",\n\t\tback: \"Back\",\n\t\tquality: \"Quality\",\n\t\tauto: \"Auto\",\n\t\tspeed: \"Speed\",\n\t\tlive: \"LIVE\",\n\t\tgoLive: \"Go to live\",\n\t\ttapToUnmute: \"Tap to unmute\",\n\t\tloading: \"Loading\",\n\t\twaiting: \"Waiting\",\n\t\tretry: \"Retry\",\n\t\terrorUnavailable: \"This video is unavailable\",\n\t\terrorNetwork: \"Network error. Try again.\",\n\t\terrorMedia: \"Could not play this video\",\n\t\terrorUnsupported: \"This video cannot be played on this device\",\n\t\terrorGeneric: \"Playback error\",\n\t\tcaptions: \"Captions\",\n\t\tcaptionsOff: \"Off\",\n\t\tcaptionsEn: \"English\",\n\t\tcaptionsEs: \"Spanish\",\n\t\tcaptionsPt: \"Portuguese\",\n\t},\n\tes: {\n\t\tplay: \"Reproducir\",\n\t\tpause: \"Pausar\",\n\t\tmute: \"Silenciar\",\n\t\tunmute: \"Activar audio\",\n\t\tenterFullscreen: \"Pantalla completa\",\n\t\texitFullscreen: \"Salir de pantalla completa\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Transmitir\",\n\t\tsettings: \"Ajustes\",\n\t\tmore: \"Más\",\n\t\tback: \"Atrás\",\n\t\tquality: \"Calidad\",\n\t\tauto: \"Automática\",\n\t\tspeed: \"Velocidad\",\n\t\tlive: \"EN VIVO\",\n\t\tgoLive: \"Ir al vivo\",\n\t\ttapToUnmute: \"Toca para activar el audio\",\n\t\tloading: \"Cargando\",\n\t\twaiting: \"Esperando\",\n\t\tretry: \"Reintentar\",\n\t\terrorUnavailable: \"Este video no está disponible\",\n\t\terrorNetwork: \"Error de red. Inténtalo de nuevo.\",\n\t\terrorMedia: \"No se pudo reproducir este video\",\n\t\terrorUnsupported: \"Este video no se puede reproducir en este dispositivo\",\n\t\terrorGeneric: \"Error de reproducción\",\n\t\tcaptions: \"Subtítulos\",\n\t\tcaptionsOff: \"Desactivados\",\n\t\tcaptionsEn: \"Inglés\",\n\t\tcaptionsEs: \"Español\",\n\t\tcaptionsPt: \"Portugués\",\n\t},\n};\n\nexport type SesionarioWaitingLabels = {\n\twaiting: string;\n\tstartingSoon: string;\n\tvodWaiting: string;\n\tavailableSoon: string;\n\tloading: string;\n\tstartsIn: (time: string) => string;\n\tavailableIn: (time: string) => string;\n};\n\nconst WAITING: Record<LivoLocale, SesionarioWaitingLabels> = {\n\ten: {\n\t\twaiting: \"Waiting\",\n\t\tstartingSoon: \"Starting soon\",\n\t\tvodWaiting: \"Waiting for this video to become available.\",\n\t\tavailableSoon: \"Available soon\",\n\t\tloading: \"Loading playback\",\n\t\tstartsIn: (time) => `Starts in ${time}`,\n\t\tavailableIn: (time) => `Available in ${time}`,\n\t},\n\tes: {\n\t\twaiting: \"Esperando\",\n\t\tstartingSoon: \"Empieza pronto\",\n\t\tvodWaiting: \"Esperando a que este video esté disponible.\",\n\t\tavailableSoon: \"Disponible pronto\",\n\t\tloading: \"Cargando reproducción\",\n\t\tstartsIn: (time) => `Empieza en ${time}`,\n\t\tavailableIn: (time) => `Disponible en ${time}`,\n\t},\n};\n\nexport type SesionarioCommunityLabels = {\n\tcomments: string;\n\tqa: string;\n\tcomposer: string;\n\tquestionComposer: string;\n\treply: string;\n\tsend: string;\n\tname: string;\n\tnamePlaceholder: string;\n\tpostingAs: string;\n\teditName: string;\n\tsaveName: string;\n\tclosed: string;\n\tqaClosed: string;\n\temptyComments: string;\n\temptyQuestions: string;\n\tjumpToLatest: string;\n\tpinned: string;\n\tlive: string;\n\tpin: string;\n\tunpin: string;\n\thide: string;\n\tunhide: string;\n\tremove: string;\n\thighlight: string;\n\tdismiss: string;\n\tanswer: string;\n\tupvote: string;\n\tsettings: string;\n\tcommentsEnabled: string;\n\tcommentsAfterEnd: string;\n\tqaEnabled: string;\n\tcommentsHelp: string;\n\tcommentsAfterEndHelp: string;\n\tqaHelp: string;\n};\n\nconst COMMUNITY: Record<LivoLocale, SesionarioCommunityLabels> = {\n\ten: {\n\t\tcomments: \"Comments\",\n\t\tqa: \"Q&A\",\n\t\tcomposer: \"Write a comment\",\n\t\tquestionComposer: \"Ask a question\",\n\t\treply: \"Reply\",\n\t\tsend: \"Send\",\n\t\tname: \"Display name\",\n\t\tnamePlaceholder: \"Your name\",\n\t\tpostingAs: \"Posting as {name}\",\n\t\teditName: \"Edit name\",\n\t\tsaveName: \"Save\",\n\t\tclosed: \"Comments are closed\",\n\t\tqaClosed: \"Q&A is closed\",\n\t\temptyComments: \"No comments yet\",\n\t\temptyQuestions: \"No questions yet\",\n\t\tjumpToLatest: \"Jump to latest\",\n\t\tpinned: \"Pinned\",\n\t\tlive: \"Live\",\n\t\tpin: \"Pin\",\n\t\tunpin: \"Unpin\",\n\t\thide: \"Hide\",\n\t\tunhide: \"Unhide\",\n\t\tremove: \"Delete\",\n\t\thighlight: \"Highlight\",\n\t\tdismiss: \"Dismiss\",\n\t\tanswer: \"Answer\",\n\t\tupvote: \"Upvote\",\n\t\tsettings: \"Community\",\n\t\tcommentsEnabled: \"Comments\",\n\t\tcommentsAfterEnd: \"Keep comments open after the event\",\n\t\tqaEnabled: \"Live Q&A\",\n\t\tcommentsHelp: \"Viewers can comment on this video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"When off, comments close as soon as the live event ends.\",\n\t\tqaHelp: \"Questions are only accepted while the event is live.\",\n\t},\n\tes: {\n\t\tcomments: \"Comentarios\",\n\t\tqa: \"Preguntas\",\n\t\tcomposer: \"Escribe un comentario\",\n\t\tquestionComposer: \"Haz una pregunta\",\n\t\treply: \"Responder\",\n\t\tsend: \"Enviar\",\n\t\tname: \"Nombre para mostrar\",\n\t\tnamePlaceholder: \"Tu nombre\",\n\t\tpostingAs: \"Publicando como {name}\",\n\t\teditName: \"Editar nombre\",\n\t\tsaveName: \"Guardar\",\n\t\tclosed: \"Los comentarios están cerrados\",\n\t\tqaClosed: \"Las preguntas están cerradas\",\n\t\temptyComments: \"Aún no hay comentarios\",\n\t\temptyQuestions: \"Aún no hay preguntas\",\n\t\tjumpToLatest: \"Ir al más reciente\",\n\t\tpinned: \"Fijado\",\n\t\tlive: \"En vivo\",\n\t\tpin: \"Fijar\",\n\t\tunpin: \"Desfijar\",\n\t\thide: \"Ocultar\",\n\t\tunhide: \"Mostrar\",\n\t\tremove: \"Eliminar\",\n\t\thighlight: \"Destacar\",\n\t\tdismiss: \"Descartar\",\n\t\tanswer: \"Responder\",\n\t\tupvote: \"Votar\",\n\t\tsettings: \"Comunidad\",\n\t\tcommentsEnabled: \"Comentarios\",\n\t\tcommentsAfterEnd: \"Mantener comentarios abiertos después del evento\",\n\t\tqaEnabled: \"Preguntas en vivo\",\n\t\tcommentsHelp: \"Las y los espectadores pueden comentar este video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"Si está desactivado, los comentarios se cierran al terminar el evento en vivo.\",\n\t\tqaHelp: \"Las preguntas solo se aceptan mientras el evento está en vivo.\",\n\t},\n};\n\nexport function sesionarioPlayerLabels(\n\tlocale?: string,\n): SesionarioPlayerLabels {\n\treturn PLAYER[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWaitingLabels(\n\tlocale?: string,\n): SesionarioWaitingLabels {\n\treturn WAITING[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioCommunityLabels(\n\tlocale?: string,\n): SesionarioCommunityLabels {\n\treturn COMMUNITY[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWindowGateLabels(\n\tlocale?: string,\n): SesionarioWindowGateLabels {\n\treturn WINDOW_GATE[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioLobbyLabels(locale?: string): SesionarioLobbyLabels {\n\treturn LOBBY[resolveLivoLocale(locale)];\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport en from \"./studio-labels-en.json\";\nimport es from \"./studio-labels-es.json\";\n\nconst catalogs: Record<LivoLocale, Record<string, string>> = {\n\ten: en as Record<string, string>,\n\tes: es as Record<string, string>,\n};\n\nexport function interpolateSesionarioStudioLabel(\n\tkey: string,\n\tvalues?: Record<string, string>,\n\tlocale: LivoLocale = \"es\",\n): string {\n\tlet text = catalogs[locale][key] ?? catalogs.en[key] ?? key;\n\tif (values) {\n\t\tfor (const [name, value] of Object.entries(values)) {\n\t\t\ttext = text.replaceAll(`{${name}}`, value);\n\t\t}\n\t}\n\treturn text;\n}\n\n/** Alias used by unit tests and local copies in admin/app. */\nexport const interpolateStudioLabel = interpolateSesionarioStudioLabel;\n\n/**\n * Catalog interpolator for `@livo-tv/sdk/studio` `studioRoomLabels`.\n * Consuming apps wrap: `studioRoomLabels(sesionarioStudioLabelFn(\"es\"))`.\n */\nexport function sesionarioStudioLabelFn(locale?: string) {\n\tconst resolved = resolveLivoLocale(locale);\n\treturn (key: string, values?: Record<string, string>) =>\n\t\tinterpolateSesionarioStudioLabel(key, values, resolved);\n}\n\nexport function sesionarioStudioLabels(locale?: string) {\n\treturn sesionarioStudioLabelFn(locale);\n}\n\nexport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\n","/**\n * Shared EmbedTheme for native `@livo-tv/sdk` surfaces (LivoPlayer, studio).\n * Built from Sesionario shadcn CSS variables so admin and app match the shell.\n */\nexport type SesionarioEmbedTheme = {\n\tprimary: string;\n\taccent: string;\n\tbackground: string;\n\tforeground: string;\n\tradius: string;\n\tfontFamily: string;\n\tmode?: \"light\" | \"dark\";\n};\n\nconst FALLBACK: SesionarioEmbedTheme = {\n\tbackground: \"oklch(1 0 0)\",\n\tforeground: \"oklch(0.145 0 0)\",\n\tprimary: \"oklch(0.4824 0.1149 242.2039)\",\n\taccent: \"oklch(0.4824 0.1149 242.2039)\",\n\tradius: \"0.625rem\",\n\tfontFamily: \"ui-sans-serif, system-ui, sans-serif\",\n};\n\nfunction cssVar(name: string, fallback: string): string {\n\tif (typeof document === \"undefined\") return fallback;\n\tconst value = getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim();\n\treturn value || fallback;\n}\n\nexport function sesionarioEmbedTheme(): SesionarioEmbedTheme {\n\tconst dark =\n\t\ttypeof document !== \"undefined\" &&\n\t\tdocument.documentElement.classList.contains(\"dark\");\n\treturn {\n\t\tbackground: cssVar(\"--background\", FALLBACK.background),\n\t\tforeground: cssVar(\"--foreground\", FALLBACK.foreground),\n\t\tprimary: cssVar(\"--primary\", FALLBACK.primary),\n\t\taccent: cssVar(\"--accent\", FALLBACK.accent),\n\t\tradius: cssVar(\"--radius\", FALLBACK.radius),\n\t\tfontFamily: cssVar(\"--font-sans\", FALLBACK.fontFamily),\n\t\t...(dark ? { mode: \"dark\" as const } : {}),\n\t};\n}\n","import { sesionarioEmbedTheme } from \"./embed-theme\";\nimport type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\nimport { sesionarioStudioLabelFn } from \"./studio-labels\";\n\nexport function livoLabels(locale?: string) {\n\tconst resolved: LivoLocale = resolveLivoLocale(locale);\n\treturn {\n\t\tlocale: resolved,\n\t\ttheme: sesionarioEmbedTheme(),\n\t\tstudioLabelFn: sesionarioStudioLabelFn(resolved),\n\t\tlobbyLabels: sesionarioLobbyLabels(resolved),\n\t\twindowGateLabels: sesionarioWindowGateLabels(resolved),\n\t\tplayerLabels: sesionarioPlayerLabels(resolved),\n\t\twaitingLabels: sesionarioWaitingLabels(resolved),\n\t\tcommunityLabels: sesionarioCommunityLabels(resolved),\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../src/livo/locale.ts","../src/livo/studio-labels-en.json","../src/livo/studio-labels-es.json","../src/livo/catalogs.ts","../src/livo/studio-labels.ts","../src/livo/embed-theme.ts","../src/livo/livo-labels.ts"],"names":[],"mappings":"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","file":"livo.cjs","sourcesContent":["export type LivoLocale = \"es\" | \"en\";\n\nexport function resolveLivoLocale(locale?: string): LivoLocale {\n\treturn locale?.toLowerCase().startsWith(\"en\") ? \"en\" : \"es\";\n}\n","{\n\t\"live\": \"LIVE\",\n\t\"preview\": \"Preview\",\n\t\"waiting\": \"Waiting to join\",\n\t\"waitingHost\": \"Waiting for the host to let you in\",\n\t\"admit\": \"Admit\",\n\t\"deny\": \"Deny\",\n\t\"denied\": \"Guest declined\",\n\t\"denyError\": \"Could not decline that guest\",\n\t\"rejectedTitle\": \"The host declined your request\",\n\t\"rejectedDescription\": \"You can ask to join again if the studio is still open.\",\n\t\"rejectedAction\": \"Ask to join again\",\n\t\"kick\": \"Remove\",\n\t\"camera\": \"Camera\",\n\t\"screen\": \"Screen\",\n\t\"mute\": \"Mute\",\n\t\"unmute\": \"Unmute\",\n\t\"copyLink\": \"Copy guest link\",\n\t\"shareLink\": \"Share guest link\",\n\t\"shareGuestText\": \"Join the studio for {title}\",\n\t\"shareFailed\": \"Could not share the guest link\",\n\t\"copied\": \"Guest link copied\",\n\t\"publish\": \"Go live\",\n\t\"publishTitle\": \"Go live?\",\n\t\"publishDescription\": \"Viewers will see this studio on the public player.\",\n\t\"publishConfirm\": \"Go live\",\n\t\"publishPending\": \"Going on air…\",\n\t\"stop\": \"Stop\",\n\t\"stopTitle\": \"Stop this broadcast?\",\n\t\"stopDescription\": \"Viewers will lose the live feed. Guests will be disconnected.\",\n\t\"stopConfirm\": \"Stop stream\",\n\t\"fullscreen\": \"Fullscreen\",\n\t\"publishError\": \"Could not go live\",\n\t\"stopError\": \"Could not stop the stream\",\n\t\"published\": \"Going live\",\n\t\"stopped\": \"Stream stopped\",\n\t\"cameraDevice\": \"Camera\",\n\t\"micDevice\": \"Microphone\",\n\t\"speakerDevice\": \"Speaker\",\n\t\"preflightCamera\": \"Camera\",\n\t\"preflightMic\": \"Microphone\",\n\t\"knock\": \"{name} is waiting to join\",\n\t\"egressLost\": \"Reconnect studio\",\n\t\"livestreamStarting\": \"Initializing…\",\n\t\"livestreamSending\": \"Initializing…\",\n\t\"livestreamInitializing\": \"Initializing…\",\n\t\"livestreamRetry\": \"Retry egress\",\n\t\"livestreamError\": \"Could not start RTMP egress\",\n\t\"screenBusy\": \"Someone else is already sharing their screen\",\n\t\"endedTitle\": \"This studio session has ended\",\n\t\"endedDescription\": \"The host stopped the stream.\",\n\t\"linkExpiredTitle\": \"This studio link is no longer valid\",\n\t\"linkExpiredDescription\": \"It is invalid or has expired. Open the studio again from the stream to get a new link.\",\n\t\"openFailedTitle\": \"Could not open the studio\",\n\t\"openFailedDescription\": \"Something went wrong while opening the studio.\",\n\t\"endedAction\": \"Back\",\n\t\"rejoin\": \"Rejoin studio\",\n\t\"duplicateTitle\": \"Studio is already open\",\n\t\"duplicateDescription\": \"This studio is already open in another window.\",\n\t\"duplicateDescriptionNoTakeover\": \"This studio is already open in another window. Close that window to continue here.\",\n\t\"duplicateAction\": \"Continue here\",\n\t\"duplicateTakenOver\": \"This session moved to another window.\",\n\t\"joinBusy\": \"Too many join attempts. Try again in a moment.\",\n\t\"cameraError\": \"Could not enable the camera\",\n\t\"screenError\": \"Could not share the screen\",\n\t\"leave\": \"Leave studio\",\n\t\"leaveTitle\": \"Leave this studio?\",\n\t\"leaveDescription\": \"You will disconnect from the host and other guests.\",\n\t\"leaveConfirm\": \"Leave\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Send\",\n\t\"chatPlaceholder\": \"Message\",\n\t\"chatError\": \"Could not send the message\",\n\t\"settings\": \"Settings\",\n\t\"settingsTitle\": \"Settings\",\n\t\"settingsDescription\": \"Name, audio, and video settings\",\n\t\"guestName\": \"Your name\",\n\t\"displayNameSave\": \"Save\",\n\t\"displayNameSaved\": \"Display name updated\",\n\t\"displayNameError\": \"Could not update your display name\",\n\t\"testSpeaker\": \"Test\",\n\t\"testSpeakerError\": \"Could not play the speaker test\",\n\t\"cameraOff\": \"Camera is off\",\n\t\"micLevel\": \"Microphone level\",\n\t\"share\": \"Copy player link\",\n\t\"shareCopied\": \"Player link copied\",\n\t\"stopCamera\": \"Stop camera\",\n\t\"stopScreen\": \"Stop screen share\",\n\t\"hostMutedYou\": \"The host muted you\",\n\t\"hostStoppedYourCamera\": \"The host turned off your camera\",\n\t\"hostStoppedYourScreen\": \"The host stopped your screen share\",\n\t\"hostMediaError\": \"Could not change that guest's media\",\n\t\"tileMenu\": \"Guest controls\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Close picture-in-picture\",\n\t\"backToStudio\": \"Back to studio\",\n\t\"pipTitle\": \"Studio\",\n\t\"pipError\": \"Could not open picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Screen sharing is not available on this device\",\n\t\"screenNotAllowed\": \"You do not have permission to share your screen\",\n\t\"askToShare\": \"Ask to share\",\n\t\"shareRequested\": \"Requested\",\n\t\"cancelShareRequest\": \"Cancel request\",\n\t\"shareRequestSent\": \"Asked the host to share your screen\",\n\t\"shareRequestFrom\": \"{name} wants to share their screen\",\n\t\"approve\": \"Approve\",\n\t\"shareApproved\": \"The host approved your screen share\",\n\t\"shareDenied\": \"The host declined your screen share\",\n\t\"shareRequestError\": \"Could not ask the host to share\",\n\t\"shareRequestTimeout\": \"No response from the host\",\n\t\"shareRespondError\": \"Could not respond to that share request\",\n\t\"goOffAir\": \"Go off air\",\n\t\"goOnAir\": \"Go on air\",\n\t\"takeOffAir\": \"Take off air\",\n\t\"bringOnAir\": \"Bring on air\",\n\t\"offAir\": \"Off air\",\n\t\"offAirCount\": \"Off air ({count})\",\n\t\"offAirBanner\": \"You are off camera. Your microphone is still live.\",\n\t\"offAirLastVisible\": \"At least one participant must stay on air while you are live\",\n\t\"offAirHidden\": \"Taken off air\",\n\t\"offAirShown\": \"Back on air\",\n\t\"offAirError\": \"Could not change on-air state\",\n\t\"takeOffAirTitle\": \"Take this guest off air?\",\n\t\"takeOffAirDescription\": \"They stay in the studio but stop publishing camera, mic, and screen.\",\n\t\"takeOffAirConfirm\": \"Take off air\",\n\t\"admitAsPanelist\": \"Admit as panelist\",\n\t\"admitAsAudience\": \"Admit as audience\",\n\t\"admitAllPanelists\": \"Admit all as panelists\",\n\t\"admitAllAudience\": \"Admit all as audience\",\n\t\"askToGoOnAir\": \"Ask to go on air\",\n\t\"stageRequested\": \"Asked to go on air\",\n\t\"stageRequests\": \"Stage requests\",\n\t\"people\": \"People\",\n\t\"panelists\": \"Panelists\",\n\t\"audience\": \"Audience\",\n\t\"noWaiting\": \"No one is waiting\",\n\t\"noPanelists\": \"No panelists\",\n\t\"noAudience\": \"No audience\",\n\t\"closePanel\": \"Close\",\n\t\"muteChat\": \"Mute chat\",\n\t\"allowChat\": \"Allow chat\",\n\t\"pin\": \"Pin on stage\",\n\t\"unpin\": \"Unpin\",\n\t\"pinnedToast\": \"You are pinned on stage\",\n\t\"unpinnedToast\": \"You are no longer pinned\",\n\t\"pinError\": \"Could not pin that participant\",\n\t\"kickTitle\": \"Remove this guest from the studio?\",\n\t\"kickDescription\": \"They will be disconnected.\",\n\t\"kickConfirm\": \"Remove\",\n\t\"kickError\": \"Could not remove that guest\",\n\t\"stageError\": \"Could not change stage access\",\n\t\"stageDisabled\": \"This guest link cannot join the stage.\",\n\t\"stageGrantNoEffect\": \"That guest stayed in the audience.\",\n\t\"stageOverflow\": \"+{count} more\",\n\t\"chatEveryone\": \"Everyone\",\n\t\"chatEdited\": \"Edited\",\n\t\"chatPinned\": \"Pinned message\",\n\t\"chatLoadOlder\": \"Load earlier messages\",\n\t\"chatRateLimited\": \"You are sending messages too quickly\",\n\t\"chatDelete\": \"Delete\",\n\t\"chatEdit\": \"Edit\",\n\t\"chatPin\": \"Pin message\",\n\t\"chatUnpin\": \"Unpin message\",\n\t\"chatSave\": \"Save\",\n\t\"waitingSkeleton\": \"Loading waiting room\"\n}\n","{\n\t\"live\": \"EN VIVO\",\n\t\"preview\": \"Vista previa\",\n\t\"waiting\": \"Esperando para unirte\",\n\t\"waitingHost\": \"Esperando a que el anfitrión te deje entrar\",\n\t\"admit\": \"Admitir\",\n\t\"deny\": \"Rechazar\",\n\t\"denied\": \"Invitado rechazado\",\n\t\"denyError\": \"No se pudo rechazar a ese invitado\",\n\t\"rejectedTitle\": \"El anfitrión rechazó tu solicitud\",\n\t\"rejectedDescription\": \"Puedes pedir unirte de nuevo si el estudio sigue abierto.\",\n\t\"rejectedAction\": \"Pedir unirme de nuevo\",\n\t\"kick\": \"Quitar\",\n\t\"camera\": \"Cámara\",\n\t\"screen\": \"Pantalla\",\n\t\"mute\": \"Silenciar\",\n\t\"unmute\": \"Activar audio\",\n\t\"copyLink\": \"Copiar enlace de invitado\",\n\t\"shareLink\": \"Compartir enlace de invitado\",\n\t\"shareGuestText\": \"Únete al estudio de {title}\",\n\t\"shareFailed\": \"No se pudo compartir el enlace de invitado\",\n\t\"copied\": \"Enlace de invitado copiado\",\n\t\"publish\": \"Salir al aire\",\n\t\"publishTitle\": \"¿Salir al aire?\",\n\t\"publishDescription\": \"Las y los espectadores verán este estudio en el reproductor público.\",\n\t\"publishConfirm\": \"Salir al aire\",\n\t\"publishPending\": \"Saliendo al aire…\",\n\t\"stop\": \"Detener\",\n\t\"stopTitle\": \"¿Detener esta transmisión?\",\n\t\"stopDescription\": \"Las y los espectadores perderán la señal en vivo. Los invitados se desconectarán.\",\n\t\"stopConfirm\": \"Detener transmisión\",\n\t\"fullscreen\": \"Pantalla completa\",\n\t\"publishError\": \"No se pudo salir al aire\",\n\t\"stopError\": \"No se pudo detener la transmisión\",\n\t\"published\": \"Saliendo al aire\",\n\t\"stopped\": \"Transmisión detenida\",\n\t\"cameraDevice\": \"Cámara\",\n\t\"micDevice\": \"Micrófono\",\n\t\"speakerDevice\": \"Altavoz\",\n\t\"preflightCamera\": \"Cámara\",\n\t\"preflightMic\": \"Micrófono\",\n\t\"knock\": \"{name} espera para unirse\",\n\t\"egressLost\": \"Reconectar estudio\",\n\t\"livestreamStarting\": \"Inicializando…\",\n\t\"livestreamSending\": \"Inicializando…\",\n\t\"livestreamInitializing\": \"Inicializando…\",\n\t\"livestreamRetry\": \"Reintentar salida\",\n\t\"livestreamError\": \"No se pudo iniciar la salida RTMP\",\n\t\"screenBusy\": \"Alguien más ya está compartiendo su pantalla\",\n\t\"endedTitle\": \"Esta sesión de estudio terminó\",\n\t\"endedDescription\": \"El anfitrión detuvo la transmisión.\",\n\t\"linkExpiredTitle\": \"Este enlace del estudio ya no es válido\",\n\t\"linkExpiredDescription\": \"No es válido o expiró. Abre el estudio de nuevo desde la transmisión para obtener un enlace nuevo.\",\n\t\"openFailedTitle\": \"No se pudo abrir el estudio\",\n\t\"openFailedDescription\": \"Algo salió mal al abrir el estudio.\",\n\t\"endedAction\": \"Volver\",\n\t\"rejoin\": \"Volver al estudio\",\n\t\"duplicateTitle\": \"El estudio ya está abierto\",\n\t\"duplicateDescription\": \"Este estudio ya está abierto en otra ventana.\",\n\t\"duplicateDescriptionNoTakeover\": \"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\"duplicateAction\": \"Continuar aquí\",\n\t\"duplicateTakenOver\": \"Esta sesión se movió a otra ventana.\",\n\t\"joinBusy\": \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\"cameraError\": \"No se pudo activar la cámara\",\n\t\"screenError\": \"No se pudo compartir la pantalla\",\n\t\"leave\": \"Salir del estudio\",\n\t\"leaveTitle\": \"¿Salir de este estudio?\",\n\t\"leaveDescription\": \"Te desconectarás del anfitrión y de los demás invitados.\",\n\t\"leaveConfirm\": \"Salir\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Enviar\",\n\t\"chatPlaceholder\": \"Mensaje\",\n\t\"chatError\": \"No se pudo enviar el mensaje\",\n\t\"settings\": \"Ajustes\",\n\t\"settingsTitle\": \"Ajustes\",\n\t\"settingsDescription\": \"Nombre, audio y video\",\n\t\"guestName\": \"Tu nombre\",\n\t\"displayNameSave\": \"Guardar\",\n\t\"displayNameSaved\": \"Nombre actualizado\",\n\t\"displayNameError\": \"No se pudo actualizar tu nombre\",\n\t\"testSpeaker\": \"Probar\",\n\t\"testSpeakerError\": \"No se pudo reproducir la prueba de altavoz\",\n\t\"cameraOff\": \"Cámara apagada\",\n\t\"micLevel\": \"Nivel del micrófono\",\n\t\"share\": \"Copiar enlace del reproductor\",\n\t\"shareCopied\": \"Enlace del reproductor copiado\",\n\t\"stopCamera\": \"Apagar cámara\",\n\t\"stopScreen\": \"Dejar de compartir pantalla\",\n\t\"hostMutedYou\": \"El anfitrión te silenció\",\n\t\"hostStoppedYourCamera\": \"El anfitrión apagó tu cámara\",\n\t\"hostStoppedYourScreen\": \"El anfitrión detuvo tu compartir pantalla\",\n\t\"hostMediaError\": \"No se pudo cambiar el medio de ese invitado\",\n\t\"tileMenu\": \"Controles de invitado\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Cerrar picture-in-picture\",\n\t\"backToStudio\": \"Volver al estudio\",\n\t\"pipTitle\": \"Estudio\",\n\t\"pipError\": \"No se pudo abrir picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Compartir pantalla no está disponible en este dispositivo\",\n\t\"screenNotAllowed\": \"No tienes permiso para compartir tu pantalla\",\n\t\"askToShare\": \"Pedir compartir\",\n\t\"shareRequested\": \"Solicitado\",\n\t\"cancelShareRequest\": \"Cancelar solicitud\",\n\t\"shareRequestSent\": \"Le pediste al anfitrión compartir tu pantalla\",\n\t\"shareRequestFrom\": \"{name} quiere compartir su pantalla\",\n\t\"approve\": \"Aprobar\",\n\t\"shareApproved\": \"El anfitrión aprobó tu compartir pantalla\",\n\t\"shareDenied\": \"El anfitrión rechazó tu compartir pantalla\",\n\t\"shareRequestError\": \"No se pudo pedir compartir pantalla\",\n\t\"shareRequestTimeout\": \"El anfitrión no respondió\",\n\t\"shareRespondError\": \"No se pudo responder a esa solicitud\",\n\t\"goOffAir\": \"Salir del aire\",\n\t\"goOnAir\": \"Entrar al aire\",\n\t\"takeOffAir\": \"Quitar del aire\",\n\t\"bringOnAir\": \"Poner al aire\",\n\t\"offAir\": \"Fuera del aire\",\n\t\"offAirCount\": \"Fuera del aire ({count})\",\n\t\"offAirBanner\": \"Estás fuera de cámara. Tu micrófono sigue activo.\",\n\t\"offAirLastVisible\": \"Al menos una persona debe quedarse al aire mientras estás en vivo\",\n\t\"offAirHidden\": \"Fuera del aire\",\n\t\"offAirShown\": \"De nuevo al aire\",\n\t\"offAirError\": \"No se pudo cambiar el estado al aire\",\n\t\"takeOffAirTitle\": \"¿Quitar a este invitado del aire?\",\n\t\"takeOffAirDescription\": \"Sigue en el estudio, pero deja de publicar cámara, micrófono y pantalla.\",\n\t\"takeOffAirConfirm\": \"Quitar del aire\",\n\t\"admitAsPanelist\": \"Admitir como panelista\",\n\t\"admitAsAudience\": \"Admitir como audiencia\",\n\t\"admitAllPanelists\": \"Admitir a todos como panelistas\",\n\t\"admitAllAudience\": \"Admitir a todos como audiencia\",\n\t\"askToGoOnAir\": \"Pedir entrar al aire\",\n\t\"stageRequested\": \"Pidió entrar al aire\",\n\t\"stageRequests\": \"Solicitudes de escenario\",\n\t\"people\": \"Personas\",\n\t\"panelists\": \"Panelistas\",\n\t\"audience\": \"Audiencia\",\n\t\"noWaiting\": \"Nadie espera\",\n\t\"noPanelists\": \"Sin panelistas\",\n\t\"noAudience\": \"Sin audiencia\",\n\t\"closePanel\": \"Cerrar\",\n\t\"muteChat\": \"Silenciar chat\",\n\t\"allowChat\": \"Permitir chat\",\n\t\"pin\": \"Fijar en escenario\",\n\t\"unpin\": \"Desfijar\",\n\t\"pinnedToast\": \"Estás fijado en el escenario\",\n\t\"unpinnedToast\": \"Ya no estás fijado\",\n\t\"pinError\": \"No se pudo fijar a esa persona\",\n\t\"kickTitle\": \"¿Quitar a este invitado del estudio?\",\n\t\"kickDescription\": \"Se desconectará.\",\n\t\"kickConfirm\": \"Quitar\",\n\t\"kickError\": \"No se pudo quitar a ese invitado\",\n\t\"stageError\": \"No se pudo cambiar el acceso al escenario\",\n\t\"stageDisabled\": \"Este enlace de invitado no puede unirse al escenario.\",\n\t\"stageGrantNoEffect\": \"Ese invitado se quedó en la audiencia.\",\n\t\"stageOverflow\": \"+{count} más\",\n\t\"chatEveryone\": \"Todos\",\n\t\"chatEdited\": \"Editado\",\n\t\"chatPinned\": \"Mensaje fijado\",\n\t\"chatLoadOlder\": \"Cargar mensajes anteriores\",\n\t\"chatRateLimited\": \"Estás enviando mensajes demasiado rápido\",\n\t\"chatDelete\": \"Eliminar\",\n\t\"chatEdit\": \"Editar\",\n\t\"chatPin\": \"Fijar mensaje\",\n\t\"chatUnpin\": \"Desfijar mensaje\",\n\t\"chatSave\": \"Guardar\",\n\t\"waitingSkeleton\": \"Cargando sala de espera\"\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\n\nexport type SesionarioLobbyLabels = {\n\ttitle: string;\n\thint: string;\n\tname: string;\n\tjoin: string;\n\twaitingForHost: string;\n\tcamera: string;\n\tmic: string;\n\tcameraDevice?: string;\n\tmicDevice?: string;\n\tspeakerDevice?: string;\n\ttestSpeaker?: string;\n\ttestSpeakerError?: string;\n\tcameraOff?: string;\n\tjoinError: string;\n\tjoinBusy: string;\n\tendedTitle: string;\n};\n\nconst LOBBY: Record<LivoLocale, SesionarioLobbyLabels> = {\n\ten: {\n\t\ttitle: \"Get ready to join\",\n\t\thint: \"Set your camera and microphone, then join when you are ready.\",\n\t\tname: \"Your name\",\n\t\tjoin: \"Join\",\n\t\twaitingForHost: \"Waiting for the host to open the studio\",\n\t\tcamera: \"Camera\",\n\t\tmic: \"Microphone\",\n\t\tcameraDevice: \"Camera\",\n\t\tmicDevice: \"Microphone\",\n\t\tspeakerDevice: \"Speaker\",\n\t\ttestSpeaker: \"Test\",\n\t\ttestSpeakerError: \"Could not play the speaker test\",\n\t\tcameraOff: \"Camera is off\",\n\t\tjoinError: \"Could not join studio\",\n\t\tjoinBusy: \"Too many join attempts. Try again in a moment.\",\n\t\tendedTitle: \"This studio session has ended\",\n\t},\n\tes: {\n\t\ttitle: \"Prepárate para unirte\",\n\t\thint: \"Configura tu cámara y micrófono, y únete cuando estés listo.\",\n\t\tname: \"Tu nombre\",\n\t\tjoin: \"Unirme\",\n\t\twaitingForHost: \"Esperando a que el anfitrión abra el estudio\",\n\t\tcamera: \"Cámara\",\n\t\tmic: \"Micrófono\",\n\t\tcameraDevice: \"Cámara\",\n\t\tmicDevice: \"Micrófono\",\n\t\tspeakerDevice: \"Altavoz\",\n\t\ttestSpeaker: \"Probar\",\n\t\ttestSpeakerError: \"No se pudo reproducir la prueba de altavoz\",\n\t\tcameraOff: \"Cámara apagada\",\n\t\tjoinError: \"No se pudo unir al estudio\",\n\t\tjoinBusy: \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\tendedTitle: \"Esta sesión de estudio terminó\",\n\t},\n};\n\nexport type SesionarioWindowGateLabels = {\n\tduplicateTitle: string;\n\tduplicateDescription: string;\n\tduplicateDescriptionNoTakeover: string;\n\tduplicateTakenOver: string;\n\tduplicateAction: string;\n};\n\nconst WINDOW_GATE: Record<LivoLocale, SesionarioWindowGateLabels> = {\n\ten: {\n\t\tduplicateTitle: \"Studio is already open\",\n\t\tduplicateDescription: \"This studio is already open in another window.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"This studio is already open in another window. Close that window to continue here.\",\n\t\tduplicateTakenOver: \"This session moved to another window.\",\n\t\tduplicateAction: \"Continue here\",\n\t},\n\tes: {\n\t\tduplicateTitle: \"El estudio ya está abierto\",\n\t\tduplicateDescription: \"Este estudio ya está abierto en otra ventana.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\tduplicateTakenOver: \"Esta sesión se movió a otra ventana.\",\n\t\tduplicateAction: \"Continuar aquí\",\n\t},\n};\n\nexport type SesionarioPlayerLabels = {\n\tplay: string;\n\tpause: string;\n\tmute: string;\n\tunmute: string;\n\tenterFullscreen: string;\n\texitFullscreen: string;\n\tpictureInPicture: string;\n\tcast: string;\n\tsettings: string;\n\tmore: string;\n\tback: string;\n\tquality: string;\n\tauto: string;\n\tspeed: string;\n\tlive: string;\n\tgoLive: string;\n\ttapToUnmute: string;\n\tloading: string;\n\twaiting: string;\n\tretry: string;\n\terrorUnavailable: string;\n\terrorNetwork: string;\n\terrorMedia: string;\n\terrorUnsupported: string;\n\terrorGeneric: string;\n\tcaptions: string;\n\tcaptionsOff: string;\n\tcaptionsEn: string;\n\tcaptionsEs: string;\n\tcaptionsPt: string;\n};\n\nconst PLAYER: Record<LivoLocale, SesionarioPlayerLabels> = {\n\ten: {\n\t\tplay: \"Play\",\n\t\tpause: \"Pause\",\n\t\tmute: \"Mute\",\n\t\tunmute: \"Unmute\",\n\t\tenterFullscreen: \"Fullscreen\",\n\t\texitFullscreen: \"Exit fullscreen\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Cast\",\n\t\tsettings: \"Settings\",\n\t\tmore: \"More\",\n\t\tback: \"Back\",\n\t\tquality: \"Quality\",\n\t\tauto: \"Auto\",\n\t\tspeed: \"Speed\",\n\t\tlive: \"LIVE\",\n\t\tgoLive: \"Go to live\",\n\t\ttapToUnmute: \"Tap to unmute\",\n\t\tloading: \"Loading\",\n\t\twaiting: \"Waiting\",\n\t\tretry: \"Retry\",\n\t\terrorUnavailable: \"This video is unavailable\",\n\t\terrorNetwork: \"Network error. Try again.\",\n\t\terrorMedia: \"Could not play this video\",\n\t\terrorUnsupported: \"This video cannot be played on this device\",\n\t\terrorGeneric: \"Playback error\",\n\t\tcaptions: \"Captions\",\n\t\tcaptionsOff: \"Off\",\n\t\tcaptionsEn: \"English\",\n\t\tcaptionsEs: \"Spanish\",\n\t\tcaptionsPt: \"Portuguese\",\n\t},\n\tes: {\n\t\tplay: \"Reproducir\",\n\t\tpause: \"Pausar\",\n\t\tmute: \"Silenciar\",\n\t\tunmute: \"Activar audio\",\n\t\tenterFullscreen: \"Pantalla completa\",\n\t\texitFullscreen: \"Salir de pantalla completa\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Transmitir\",\n\t\tsettings: \"Ajustes\",\n\t\tmore: \"Más\",\n\t\tback: \"Atrás\",\n\t\tquality: \"Calidad\",\n\t\tauto: \"Automática\",\n\t\tspeed: \"Velocidad\",\n\t\tlive: \"EN VIVO\",\n\t\tgoLive: \"Ir al vivo\",\n\t\ttapToUnmute: \"Toca para activar el audio\",\n\t\tloading: \"Cargando\",\n\t\twaiting: \"Esperando\",\n\t\tretry: \"Reintentar\",\n\t\terrorUnavailable: \"Este video no está disponible\",\n\t\terrorNetwork: \"Error de red. Inténtalo de nuevo.\",\n\t\terrorMedia: \"No se pudo reproducir este video\",\n\t\terrorUnsupported: \"Este video no se puede reproducir en este dispositivo\",\n\t\terrorGeneric: \"Error de reproducción\",\n\t\tcaptions: \"Subtítulos\",\n\t\tcaptionsOff: \"Desactivados\",\n\t\tcaptionsEn: \"Inglés\",\n\t\tcaptionsEs: \"Español\",\n\t\tcaptionsPt: \"Portugués\",\n\t},\n};\n\nexport type SesionarioWaitingLabels = {\n\twaiting: string;\n\tstartingSoon: string;\n\tvodWaiting: string;\n\tavailableSoon: string;\n\tloading: string;\n\tstartsIn: (time: string) => string;\n\tavailableIn: (time: string) => string;\n};\n\nconst WAITING: Record<LivoLocale, SesionarioWaitingLabels> = {\n\ten: {\n\t\twaiting: \"Waiting\",\n\t\tstartingSoon: \"Starting soon\",\n\t\tvodWaiting: \"Waiting for this video to become available.\",\n\t\tavailableSoon: \"Available soon\",\n\t\tloading: \"Loading playback\",\n\t\tstartsIn: (time) => `Starts in ${time}`,\n\t\tavailableIn: (time) => `Available in ${time}`,\n\t},\n\tes: {\n\t\twaiting: \"Esperando\",\n\t\tstartingSoon: \"Empieza pronto\",\n\t\tvodWaiting: \"Esperando a que este video esté disponible.\",\n\t\tavailableSoon: \"Disponible pronto\",\n\t\tloading: \"Cargando reproducción\",\n\t\tstartsIn: (time) => `Empieza en ${time}`,\n\t\tavailableIn: (time) => `Disponible en ${time}`,\n\t},\n};\n\nexport type SesionarioCommunityLabels = {\n\tcomments: string;\n\tqa: string;\n\tcomposer: string;\n\tquestionComposer: string;\n\treply: string;\n\tsend: string;\n\tname: string;\n\tnamePlaceholder: string;\n\tpostingAs: string;\n\teditName: string;\n\tsaveName: string;\n\tclosed: string;\n\tqaClosed: string;\n\temptyComments: string;\n\temptyQuestions: string;\n\tjumpToLatest: string;\n\tpinned: string;\n\tlive: string;\n\tpin: string;\n\tunpin: string;\n\thide: string;\n\tunhide: string;\n\tremove: string;\n\thighlight: string;\n\tdismiss: string;\n\tanswer: string;\n\tupvote: string;\n\tsettings: string;\n\tcommentsEnabled: string;\n\tcommentsAfterEnd: string;\n\tqaEnabled: string;\n\tcommentsHelp: string;\n\tcommentsAfterEndHelp: string;\n\tqaHelp: string;\n};\n\nconst COMMUNITY: Record<LivoLocale, SesionarioCommunityLabels> = {\n\ten: {\n\t\tcomments: \"Comments\",\n\t\tqa: \"Q&A\",\n\t\tcomposer: \"Write a comment\",\n\t\tquestionComposer: \"Ask a question\",\n\t\treply: \"Reply\",\n\t\tsend: \"Send\",\n\t\tname: \"Display name\",\n\t\tnamePlaceholder: \"Your name\",\n\t\tpostingAs: \"Posting as {name}\",\n\t\teditName: \"Edit name\",\n\t\tsaveName: \"Save\",\n\t\tclosed: \"Comments are closed\",\n\t\tqaClosed: \"Q&A is closed\",\n\t\temptyComments: \"No comments yet\",\n\t\temptyQuestions: \"No questions yet\",\n\t\tjumpToLatest: \"Jump to latest\",\n\t\tpinned: \"Pinned\",\n\t\tlive: \"Live\",\n\t\tpin: \"Pin\",\n\t\tunpin: \"Unpin\",\n\t\thide: \"Hide\",\n\t\tunhide: \"Unhide\",\n\t\tremove: \"Delete\",\n\t\thighlight: \"Highlight\",\n\t\tdismiss: \"Dismiss\",\n\t\tanswer: \"Answer\",\n\t\tupvote: \"Upvote\",\n\t\tsettings: \"Community\",\n\t\tcommentsEnabled: \"Comments\",\n\t\tcommentsAfterEnd: \"Keep comments open after the event\",\n\t\tqaEnabled: \"Live Q&A\",\n\t\tcommentsHelp: \"Viewers can comment on this video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"When off, comments close as soon as the live event ends.\",\n\t\tqaHelp: \"Questions are only accepted while the event is live.\",\n\t},\n\tes: {\n\t\tcomments: \"Comentarios\",\n\t\tqa: \"Preguntas\",\n\t\tcomposer: \"Escribe un comentario\",\n\t\tquestionComposer: \"Haz una pregunta\",\n\t\treply: \"Responder\",\n\t\tsend: \"Enviar\",\n\t\tname: \"Nombre para mostrar\",\n\t\tnamePlaceholder: \"Tu nombre\",\n\t\tpostingAs: \"Publicando como {name}\",\n\t\teditName: \"Editar nombre\",\n\t\tsaveName: \"Guardar\",\n\t\tclosed: \"Los comentarios están cerrados\",\n\t\tqaClosed: \"Las preguntas están cerradas\",\n\t\temptyComments: \"Aún no hay comentarios\",\n\t\temptyQuestions: \"Aún no hay preguntas\",\n\t\tjumpToLatest: \"Ir al más reciente\",\n\t\tpinned: \"Fijado\",\n\t\tlive: \"En vivo\",\n\t\tpin: \"Fijar\",\n\t\tunpin: \"Desfijar\",\n\t\thide: \"Ocultar\",\n\t\tunhide: \"Mostrar\",\n\t\tremove: \"Eliminar\",\n\t\thighlight: \"Destacar\",\n\t\tdismiss: \"Descartar\",\n\t\tanswer: \"Responder\",\n\t\tupvote: \"Votar\",\n\t\tsettings: \"Comunidad\",\n\t\tcommentsEnabled: \"Comentarios\",\n\t\tcommentsAfterEnd: \"Mantener comentarios abiertos después del evento\",\n\t\tqaEnabled: \"Preguntas en vivo\",\n\t\tcommentsHelp: \"Las y los espectadores pueden comentar este video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"Si está desactivado, los comentarios se cierran al terminar el evento en vivo.\",\n\t\tqaHelp: \"Las preguntas solo se aceptan mientras el evento está en vivo.\",\n\t},\n};\n\nexport function sesionarioPlayerLabels(\n\tlocale?: string,\n): SesionarioPlayerLabels {\n\treturn PLAYER[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWaitingLabels(\n\tlocale?: string,\n): SesionarioWaitingLabels {\n\treturn WAITING[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioCommunityLabels(\n\tlocale?: string,\n): SesionarioCommunityLabels {\n\treturn COMMUNITY[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWindowGateLabels(\n\tlocale?: string,\n): SesionarioWindowGateLabels {\n\treturn WINDOW_GATE[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioLobbyLabels(locale?: string): SesionarioLobbyLabels {\n\treturn LOBBY[resolveLivoLocale(locale)];\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport en from \"./studio-labels-en.json\";\nimport es from \"./studio-labels-es.json\";\n\nconst catalogs: Record<LivoLocale, Record<string, string>> = {\n\ten: en as Record<string, string>,\n\tes: es as Record<string, string>,\n};\n\nexport function interpolateSesionarioStudioLabel(\n\tkey: string,\n\tvalues?: Record<string, string>,\n\tlocale: LivoLocale = \"es\",\n): string {\n\tlet text = catalogs[locale][key] ?? catalogs.en[key] ?? key;\n\tif (values) {\n\t\tfor (const [name, value] of Object.entries(values)) {\n\t\t\ttext = text.replaceAll(`{${name}}`, value);\n\t\t}\n\t}\n\treturn text;\n}\n\n/** Alias used by unit tests and local copies in admin/app. */\nexport const interpolateStudioLabel = interpolateSesionarioStudioLabel;\n\n/**\n * Catalog interpolator for `@livo-tv/sdk/studio` `studioRoomLabels`.\n * Consuming apps wrap: `studioRoomLabels(sesionarioStudioLabelFn(\"es\"))`.\n */\nexport function sesionarioStudioLabelFn(locale?: string) {\n\tconst resolved = resolveLivoLocale(locale);\n\treturn (key: string, values?: Record<string, string>) =>\n\t\tinterpolateSesionarioStudioLabel(key, values, resolved);\n}\n\nexport function sesionarioStudioLabels(locale?: string) {\n\treturn sesionarioStudioLabelFn(locale);\n}\n\nexport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\n","/**\n * Shared EmbedTheme for native `@livo-tv/sdk` surfaces (LivoPlayer, studio).\n * Built from Sesionario shadcn CSS variables so admin and app match the shell.\n */\nexport type SesionarioEmbedTheme = {\n\tprimary: string;\n\taccent: string;\n\tbackground: string;\n\tforeground: string;\n\tradius: string;\n\tfontFamily: string;\n\tmode?: \"light\" | \"dark\";\n};\n\nconst FALLBACK: SesionarioEmbedTheme = {\n\tbackground: \"oklch(1 0 0)\",\n\tforeground: \"oklch(0.145 0 0)\",\n\tprimary: \"oklch(0.4824 0.1149 242.2039)\",\n\taccent: \"oklch(0.4824 0.1149 242.2039)\",\n\tradius: \"0.625rem\",\n\tfontFamily: \"ui-sans-serif, system-ui, sans-serif\",\n};\n\nfunction cssVar(name: string, fallback: string): string {\n\tif (typeof document === \"undefined\") return fallback;\n\tconst value = getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim();\n\treturn value || fallback;\n}\n\nexport function sesionarioEmbedTheme(): SesionarioEmbedTheme {\n\tconst dark =\n\t\ttypeof document !== \"undefined\" &&\n\t\tdocument.documentElement.classList.contains(\"dark\");\n\treturn {\n\t\tbackground: cssVar(\"--background\", FALLBACK.background),\n\t\tforeground: cssVar(\"--foreground\", FALLBACK.foreground),\n\t\tprimary: cssVar(\"--primary\", FALLBACK.primary),\n\t\taccent: cssVar(\"--accent\", FALLBACK.accent),\n\t\tradius: cssVar(\"--radius\", FALLBACK.radius),\n\t\tfontFamily: cssVar(\"--font-sans\", FALLBACK.fontFamily),\n\t\t...(dark ? { mode: \"dark\" as const } : {}),\n\t};\n}\n","import { sesionarioEmbedTheme } from \"./embed-theme\";\nimport type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\nimport { sesionarioStudioLabelFn } from \"./studio-labels\";\n\nexport function livoLabels(locale?: string) {\n\tconst resolved: LivoLocale = resolveLivoLocale(locale);\n\treturn {\n\t\tlocale: resolved,\n\t\ttheme: sesionarioEmbedTheme(),\n\t\tstudioLabelFn: sesionarioStudioLabelFn(resolved),\n\t\tlobbyLabels: sesionarioLobbyLabels(resolved),\n\t\twindowGateLabels: sesionarioWindowGateLabels(resolved),\n\t\tplayerLabels: sesionarioPlayerLabels(resolved),\n\t\twaitingLabels: sesionarioWaitingLabels(resolved),\n\t\tcommunityLabels: sesionarioCommunityLabels(resolved),\n\t};\n}\n"]}
package/dist/livo.js CHANGED
@@ -55,6 +55,10 @@ var studio_labels_en_default = {
55
55
  screenBusy: "Someone else is already sharing their screen",
56
56
  endedTitle: "This studio session has ended",
57
57
  endedDescription: "The host stopped the stream.",
58
+ linkExpiredTitle: "This studio link is no longer valid",
59
+ linkExpiredDescription: "It is invalid or has expired. Open the studio again from the stream to get a new link.",
60
+ openFailedTitle: "Could not open the studio",
61
+ openFailedDescription: "Something went wrong while opening the studio.",
58
62
  endedAction: "Back",
59
63
  rejoin: "Rejoin studio",
60
64
  duplicateTitle: "Studio is already open",
@@ -219,6 +223,10 @@ var studio_labels_es_default = {
219
223
  screenBusy: "Alguien m\xE1s ya est\xE1 compartiendo su pantalla",
220
224
  endedTitle: "Esta sesi\xF3n de estudio termin\xF3",
221
225
  endedDescription: "El anfitri\xF3n detuvo la transmisi\xF3n.",
226
+ linkExpiredTitle: "Este enlace del estudio ya no es v\xE1lido",
227
+ linkExpiredDescription: "No es v\xE1lido o expir\xF3. Abre el estudio de nuevo desde la transmisi\xF3n para obtener un enlace nuevo.",
228
+ openFailedTitle: "No se pudo abrir el estudio",
229
+ openFailedDescription: "Algo sali\xF3 mal al abrir el estudio.",
222
230
  endedAction: "Volver",
223
231
  rejoin: "Volver al estudio",
224
232
  duplicateTitle: "El estudio ya est\xE1 abierto",
package/dist/livo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/livo/locale.ts","../src/livo/studio-labels-en.json","../src/livo/studio-labels-es.json","../src/livo/catalogs.ts","../src/livo/studio-labels.ts","../src/livo/embed-theme.ts","../src/livo/livo-labels.ts"],"names":[],"mappings":"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","file":"livo.js","sourcesContent":["export type LivoLocale = \"es\" | \"en\";\n\nexport function resolveLivoLocale(locale?: string): LivoLocale {\n\treturn locale?.toLowerCase().startsWith(\"en\") ? \"en\" : \"es\";\n}\n","{\n\t\"live\": \"LIVE\",\n\t\"preview\": \"Preview\",\n\t\"waiting\": \"Waiting to join\",\n\t\"waitingHost\": \"Waiting for the host to let you in\",\n\t\"admit\": \"Admit\",\n\t\"deny\": \"Deny\",\n\t\"denied\": \"Guest declined\",\n\t\"denyError\": \"Could not decline that guest\",\n\t\"rejectedTitle\": \"The host declined your request\",\n\t\"rejectedDescription\": \"You can ask to join again if the studio is still open.\",\n\t\"rejectedAction\": \"Ask to join again\",\n\t\"kick\": \"Remove\",\n\t\"camera\": \"Camera\",\n\t\"screen\": \"Screen\",\n\t\"mute\": \"Mute\",\n\t\"unmute\": \"Unmute\",\n\t\"copyLink\": \"Copy guest link\",\n\t\"shareLink\": \"Share guest link\",\n\t\"shareGuestText\": \"Join the studio for {title}\",\n\t\"shareFailed\": \"Could not share the guest link\",\n\t\"copied\": \"Guest link copied\",\n\t\"publish\": \"Go live\",\n\t\"publishTitle\": \"Go live?\",\n\t\"publishDescription\": \"Viewers will see this studio on the public player.\",\n\t\"publishConfirm\": \"Go live\",\n\t\"publishPending\": \"Going on air…\",\n\t\"stop\": \"Stop\",\n\t\"stopTitle\": \"Stop this broadcast?\",\n\t\"stopDescription\": \"Viewers will lose the live feed. Guests will be disconnected.\",\n\t\"stopConfirm\": \"Stop stream\",\n\t\"fullscreen\": \"Fullscreen\",\n\t\"publishError\": \"Could not go live\",\n\t\"stopError\": \"Could not stop the stream\",\n\t\"published\": \"Going live\",\n\t\"stopped\": \"Stream stopped\",\n\t\"cameraDevice\": \"Camera\",\n\t\"micDevice\": \"Microphone\",\n\t\"speakerDevice\": \"Speaker\",\n\t\"preflightCamera\": \"Camera\",\n\t\"preflightMic\": \"Microphone\",\n\t\"knock\": \"{name} is waiting to join\",\n\t\"egressLost\": \"Reconnect studio\",\n\t\"livestreamStarting\": \"Initializing…\",\n\t\"livestreamSending\": \"Initializing…\",\n\t\"livestreamInitializing\": \"Initializing…\",\n\t\"livestreamRetry\": \"Retry egress\",\n\t\"livestreamError\": \"Could not start RTMP egress\",\n\t\"screenBusy\": \"Someone else is already sharing their screen\",\n\t\"endedTitle\": \"This studio session has ended\",\n\t\"endedDescription\": \"The host stopped the stream.\",\n\t\"endedAction\": \"Back\",\n\t\"rejoin\": \"Rejoin studio\",\n\t\"duplicateTitle\": \"Studio is already open\",\n\t\"duplicateDescription\": \"This studio is already open in another window.\",\n\t\"duplicateDescriptionNoTakeover\": \"This studio is already open in another window. Close that window to continue here.\",\n\t\"duplicateAction\": \"Continue here\",\n\t\"duplicateTakenOver\": \"This session moved to another window.\",\n\t\"joinBusy\": \"Too many join attempts. Try again in a moment.\",\n\t\"cameraError\": \"Could not enable the camera\",\n\t\"screenError\": \"Could not share the screen\",\n\t\"leave\": \"Leave studio\",\n\t\"leaveTitle\": \"Leave this studio?\",\n\t\"leaveDescription\": \"You will disconnect from the host and other guests.\",\n\t\"leaveConfirm\": \"Leave\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Send\",\n\t\"chatPlaceholder\": \"Message\",\n\t\"chatError\": \"Could not send the message\",\n\t\"settings\": \"Settings\",\n\t\"settingsTitle\": \"Settings\",\n\t\"settingsDescription\": \"Name, audio, and video settings\",\n\t\"guestName\": \"Your name\",\n\t\"displayNameSave\": \"Save\",\n\t\"displayNameSaved\": \"Display name updated\",\n\t\"displayNameError\": \"Could not update your display name\",\n\t\"testSpeaker\": \"Test\",\n\t\"testSpeakerError\": \"Could not play the speaker test\",\n\t\"cameraOff\": \"Camera is off\",\n\t\"micLevel\": \"Microphone level\",\n\t\"share\": \"Copy player link\",\n\t\"shareCopied\": \"Player link copied\",\n\t\"stopCamera\": \"Stop camera\",\n\t\"stopScreen\": \"Stop screen share\",\n\t\"hostMutedYou\": \"The host muted you\",\n\t\"hostStoppedYourCamera\": \"The host turned off your camera\",\n\t\"hostStoppedYourScreen\": \"The host stopped your screen share\",\n\t\"hostMediaError\": \"Could not change that guest's media\",\n\t\"tileMenu\": \"Guest controls\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Close picture-in-picture\",\n\t\"backToStudio\": \"Back to studio\",\n\t\"pipTitle\": \"Studio\",\n\t\"pipError\": \"Could not open picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Screen sharing is not available on this device\",\n\t\"screenNotAllowed\": \"You do not have permission to share your screen\",\n\t\"askToShare\": \"Ask to share\",\n\t\"shareRequested\": \"Requested\",\n\t\"cancelShareRequest\": \"Cancel request\",\n\t\"shareRequestSent\": \"Asked the host to share your screen\",\n\t\"shareRequestFrom\": \"{name} wants to share their screen\",\n\t\"approve\": \"Approve\",\n\t\"shareApproved\": \"The host approved your screen share\",\n\t\"shareDenied\": \"The host declined your screen share\",\n\t\"shareRequestError\": \"Could not ask the host to share\",\n\t\"shareRequestTimeout\": \"No response from the host\",\n\t\"shareRespondError\": \"Could not respond to that share request\",\n\t\"goOffAir\": \"Go off air\",\n\t\"goOnAir\": \"Go on air\",\n\t\"takeOffAir\": \"Take off air\",\n\t\"bringOnAir\": \"Bring on air\",\n\t\"offAir\": \"Off air\",\n\t\"offAirCount\": \"Off air ({count})\",\n\t\"offAirBanner\": \"You are off camera. Your microphone is still live.\",\n\t\"offAirLastVisible\": \"At least one participant must stay on air while you are live\",\n\t\"offAirHidden\": \"Taken off air\",\n\t\"offAirShown\": \"Back on air\",\n\t\"offAirError\": \"Could not change on-air state\",\n\t\"takeOffAirTitle\": \"Take this guest off air?\",\n\t\"takeOffAirDescription\": \"They stay in the studio but stop publishing camera, mic, and screen.\",\n\t\"takeOffAirConfirm\": \"Take off air\",\n\t\"admitAsPanelist\": \"Admit as panelist\",\n\t\"admitAsAudience\": \"Admit as audience\",\n\t\"admitAllPanelists\": \"Admit all as panelists\",\n\t\"admitAllAudience\": \"Admit all as audience\",\n\t\"askToGoOnAir\": \"Ask to go on air\",\n\t\"stageRequested\": \"Asked to go on air\",\n\t\"stageRequests\": \"Stage requests\",\n\t\"people\": \"People\",\n\t\"panelists\": \"Panelists\",\n\t\"audience\": \"Audience\",\n\t\"noWaiting\": \"No one is waiting\",\n\t\"noPanelists\": \"No panelists\",\n\t\"noAudience\": \"No audience\",\n\t\"closePanel\": \"Close\",\n\t\"muteChat\": \"Mute chat\",\n\t\"allowChat\": \"Allow chat\",\n\t\"pin\": \"Pin on stage\",\n\t\"unpin\": \"Unpin\",\n\t\"pinnedToast\": \"You are pinned on stage\",\n\t\"unpinnedToast\": \"You are no longer pinned\",\n\t\"pinError\": \"Could not pin that participant\",\n\t\"kickTitle\": \"Remove this guest from the studio?\",\n\t\"kickDescription\": \"They will be disconnected.\",\n\t\"kickConfirm\": \"Remove\",\n\t\"kickError\": \"Could not remove that guest\",\n\t\"stageError\": \"Could not change stage access\",\n\t\"stageDisabled\": \"This guest link cannot join the stage.\",\n\t\"stageGrantNoEffect\": \"That guest stayed in the audience.\",\n\t\"stageOverflow\": \"+{count} more\",\n\t\"chatEveryone\": \"Everyone\",\n\t\"chatEdited\": \"Edited\",\n\t\"chatPinned\": \"Pinned message\",\n\t\"chatLoadOlder\": \"Load earlier messages\",\n\t\"chatRateLimited\": \"You are sending messages too quickly\",\n\t\"chatDelete\": \"Delete\",\n\t\"chatEdit\": \"Edit\",\n\t\"chatPin\": \"Pin message\",\n\t\"chatUnpin\": \"Unpin message\",\n\t\"chatSave\": \"Save\",\n\t\"waitingSkeleton\": \"Loading waiting room\"\n}\n","{\n\t\"live\": \"EN VIVO\",\n\t\"preview\": \"Vista previa\",\n\t\"waiting\": \"Esperando para unirte\",\n\t\"waitingHost\": \"Esperando a que el anfitrión te deje entrar\",\n\t\"admit\": \"Admitir\",\n\t\"deny\": \"Rechazar\",\n\t\"denied\": \"Invitado rechazado\",\n\t\"denyError\": \"No se pudo rechazar a ese invitado\",\n\t\"rejectedTitle\": \"El anfitrión rechazó tu solicitud\",\n\t\"rejectedDescription\": \"Puedes pedir unirte de nuevo si el estudio sigue abierto.\",\n\t\"rejectedAction\": \"Pedir unirme de nuevo\",\n\t\"kick\": \"Quitar\",\n\t\"camera\": \"Cámara\",\n\t\"screen\": \"Pantalla\",\n\t\"mute\": \"Silenciar\",\n\t\"unmute\": \"Activar audio\",\n\t\"copyLink\": \"Copiar enlace de invitado\",\n\t\"shareLink\": \"Compartir enlace de invitado\",\n\t\"shareGuestText\": \"Únete al estudio de {title}\",\n\t\"shareFailed\": \"No se pudo compartir el enlace de invitado\",\n\t\"copied\": \"Enlace de invitado copiado\",\n\t\"publish\": \"Salir al aire\",\n\t\"publishTitle\": \"¿Salir al aire?\",\n\t\"publishDescription\": \"Las y los espectadores verán este estudio en el reproductor público.\",\n\t\"publishConfirm\": \"Salir al aire\",\n\t\"publishPending\": \"Saliendo al aire…\",\n\t\"stop\": \"Detener\",\n\t\"stopTitle\": \"¿Detener esta transmisión?\",\n\t\"stopDescription\": \"Las y los espectadores perderán la señal en vivo. Los invitados se desconectarán.\",\n\t\"stopConfirm\": \"Detener transmisión\",\n\t\"fullscreen\": \"Pantalla completa\",\n\t\"publishError\": \"No se pudo salir al aire\",\n\t\"stopError\": \"No se pudo detener la transmisión\",\n\t\"published\": \"Saliendo al aire\",\n\t\"stopped\": \"Transmisión detenida\",\n\t\"cameraDevice\": \"Cámara\",\n\t\"micDevice\": \"Micrófono\",\n\t\"speakerDevice\": \"Altavoz\",\n\t\"preflightCamera\": \"Cámara\",\n\t\"preflightMic\": \"Micrófono\",\n\t\"knock\": \"{name} espera para unirse\",\n\t\"egressLost\": \"Reconectar estudio\",\n\t\"livestreamStarting\": \"Inicializando…\",\n\t\"livestreamSending\": \"Inicializando…\",\n\t\"livestreamInitializing\": \"Inicializando…\",\n\t\"livestreamRetry\": \"Reintentar salida\",\n\t\"livestreamError\": \"No se pudo iniciar la salida RTMP\",\n\t\"screenBusy\": \"Alguien más ya está compartiendo su pantalla\",\n\t\"endedTitle\": \"Esta sesión de estudio terminó\",\n\t\"endedDescription\": \"El anfitrión detuvo la transmisión.\",\n\t\"endedAction\": \"Volver\",\n\t\"rejoin\": \"Volver al estudio\",\n\t\"duplicateTitle\": \"El estudio ya está abierto\",\n\t\"duplicateDescription\": \"Este estudio ya está abierto en otra ventana.\",\n\t\"duplicateDescriptionNoTakeover\": \"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\"duplicateAction\": \"Continuar aquí\",\n\t\"duplicateTakenOver\": \"Esta sesión se movió a otra ventana.\",\n\t\"joinBusy\": \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\"cameraError\": \"No se pudo activar la cámara\",\n\t\"screenError\": \"No se pudo compartir la pantalla\",\n\t\"leave\": \"Salir del estudio\",\n\t\"leaveTitle\": \"¿Salir de este estudio?\",\n\t\"leaveDescription\": \"Te desconectarás del anfitrión y de los demás invitados.\",\n\t\"leaveConfirm\": \"Salir\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Enviar\",\n\t\"chatPlaceholder\": \"Mensaje\",\n\t\"chatError\": \"No se pudo enviar el mensaje\",\n\t\"settings\": \"Ajustes\",\n\t\"settingsTitle\": \"Ajustes\",\n\t\"settingsDescription\": \"Nombre, audio y video\",\n\t\"guestName\": \"Tu nombre\",\n\t\"displayNameSave\": \"Guardar\",\n\t\"displayNameSaved\": \"Nombre actualizado\",\n\t\"displayNameError\": \"No se pudo actualizar tu nombre\",\n\t\"testSpeaker\": \"Probar\",\n\t\"testSpeakerError\": \"No se pudo reproducir la prueba de altavoz\",\n\t\"cameraOff\": \"Cámara apagada\",\n\t\"micLevel\": \"Nivel del micrófono\",\n\t\"share\": \"Copiar enlace del reproductor\",\n\t\"shareCopied\": \"Enlace del reproductor copiado\",\n\t\"stopCamera\": \"Apagar cámara\",\n\t\"stopScreen\": \"Dejar de compartir pantalla\",\n\t\"hostMutedYou\": \"El anfitrión te silenció\",\n\t\"hostStoppedYourCamera\": \"El anfitrión apagó tu cámara\",\n\t\"hostStoppedYourScreen\": \"El anfitrión detuvo tu compartir pantalla\",\n\t\"hostMediaError\": \"No se pudo cambiar el medio de ese invitado\",\n\t\"tileMenu\": \"Controles de invitado\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Cerrar picture-in-picture\",\n\t\"backToStudio\": \"Volver al estudio\",\n\t\"pipTitle\": \"Estudio\",\n\t\"pipError\": \"No se pudo abrir picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Compartir pantalla no está disponible en este dispositivo\",\n\t\"screenNotAllowed\": \"No tienes permiso para compartir tu pantalla\",\n\t\"askToShare\": \"Pedir compartir\",\n\t\"shareRequested\": \"Solicitado\",\n\t\"cancelShareRequest\": \"Cancelar solicitud\",\n\t\"shareRequestSent\": \"Le pediste al anfitrión compartir tu pantalla\",\n\t\"shareRequestFrom\": \"{name} quiere compartir su pantalla\",\n\t\"approve\": \"Aprobar\",\n\t\"shareApproved\": \"El anfitrión aprobó tu compartir pantalla\",\n\t\"shareDenied\": \"El anfitrión rechazó tu compartir pantalla\",\n\t\"shareRequestError\": \"No se pudo pedir compartir pantalla\",\n\t\"shareRequestTimeout\": \"El anfitrión no respondió\",\n\t\"shareRespondError\": \"No se pudo responder a esa solicitud\",\n\t\"goOffAir\": \"Salir del aire\",\n\t\"goOnAir\": \"Entrar al aire\",\n\t\"takeOffAir\": \"Quitar del aire\",\n\t\"bringOnAir\": \"Poner al aire\",\n\t\"offAir\": \"Fuera del aire\",\n\t\"offAirCount\": \"Fuera del aire ({count})\",\n\t\"offAirBanner\": \"Estás fuera de cámara. Tu micrófono sigue activo.\",\n\t\"offAirLastVisible\": \"Al menos una persona debe quedarse al aire mientras estás en vivo\",\n\t\"offAirHidden\": \"Fuera del aire\",\n\t\"offAirShown\": \"De nuevo al aire\",\n\t\"offAirError\": \"No se pudo cambiar el estado al aire\",\n\t\"takeOffAirTitle\": \"¿Quitar a este invitado del aire?\",\n\t\"takeOffAirDescription\": \"Sigue en el estudio, pero deja de publicar cámara, micrófono y pantalla.\",\n\t\"takeOffAirConfirm\": \"Quitar del aire\",\n\t\"admitAsPanelist\": \"Admitir como panelista\",\n\t\"admitAsAudience\": \"Admitir como audiencia\",\n\t\"admitAllPanelists\": \"Admitir a todos como panelistas\",\n\t\"admitAllAudience\": \"Admitir a todos como audiencia\",\n\t\"askToGoOnAir\": \"Pedir entrar al aire\",\n\t\"stageRequested\": \"Pidió entrar al aire\",\n\t\"stageRequests\": \"Solicitudes de escenario\",\n\t\"people\": \"Personas\",\n\t\"panelists\": \"Panelistas\",\n\t\"audience\": \"Audiencia\",\n\t\"noWaiting\": \"Nadie espera\",\n\t\"noPanelists\": \"Sin panelistas\",\n\t\"noAudience\": \"Sin audiencia\",\n\t\"closePanel\": \"Cerrar\",\n\t\"muteChat\": \"Silenciar chat\",\n\t\"allowChat\": \"Permitir chat\",\n\t\"pin\": \"Fijar en escenario\",\n\t\"unpin\": \"Desfijar\",\n\t\"pinnedToast\": \"Estás fijado en el escenario\",\n\t\"unpinnedToast\": \"Ya no estás fijado\",\n\t\"pinError\": \"No se pudo fijar a esa persona\",\n\t\"kickTitle\": \"¿Quitar a este invitado del estudio?\",\n\t\"kickDescription\": \"Se desconectará.\",\n\t\"kickConfirm\": \"Quitar\",\n\t\"kickError\": \"No se pudo quitar a ese invitado\",\n\t\"stageError\": \"No se pudo cambiar el acceso al escenario\",\n\t\"stageDisabled\": \"Este enlace de invitado no puede unirse al escenario.\",\n\t\"stageGrantNoEffect\": \"Ese invitado se quedó en la audiencia.\",\n\t\"stageOverflow\": \"+{count} más\",\n\t\"chatEveryone\": \"Todos\",\n\t\"chatEdited\": \"Editado\",\n\t\"chatPinned\": \"Mensaje fijado\",\n\t\"chatLoadOlder\": \"Cargar mensajes anteriores\",\n\t\"chatRateLimited\": \"Estás enviando mensajes demasiado rápido\",\n\t\"chatDelete\": \"Eliminar\",\n\t\"chatEdit\": \"Editar\",\n\t\"chatPin\": \"Fijar mensaje\",\n\t\"chatUnpin\": \"Desfijar mensaje\",\n\t\"chatSave\": \"Guardar\",\n\t\"waitingSkeleton\": \"Cargando sala de espera\"\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\n\nexport type SesionarioLobbyLabels = {\n\ttitle: string;\n\thint: string;\n\tname: string;\n\tjoin: string;\n\twaitingForHost: string;\n\tcamera: string;\n\tmic: string;\n\tcameraDevice?: string;\n\tmicDevice?: string;\n\tspeakerDevice?: string;\n\ttestSpeaker?: string;\n\ttestSpeakerError?: string;\n\tcameraOff?: string;\n\tjoinError: string;\n\tjoinBusy: string;\n\tendedTitle: string;\n};\n\nconst LOBBY: Record<LivoLocale, SesionarioLobbyLabels> = {\n\ten: {\n\t\ttitle: \"Get ready to join\",\n\t\thint: \"Set your camera and microphone, then join when you are ready.\",\n\t\tname: \"Your name\",\n\t\tjoin: \"Join\",\n\t\twaitingForHost: \"Waiting for the host to open the studio\",\n\t\tcamera: \"Camera\",\n\t\tmic: \"Microphone\",\n\t\tcameraDevice: \"Camera\",\n\t\tmicDevice: \"Microphone\",\n\t\tspeakerDevice: \"Speaker\",\n\t\ttestSpeaker: \"Test\",\n\t\ttestSpeakerError: \"Could not play the speaker test\",\n\t\tcameraOff: \"Camera is off\",\n\t\tjoinError: \"Could not join studio\",\n\t\tjoinBusy: \"Too many join attempts. Try again in a moment.\",\n\t\tendedTitle: \"This studio session has ended\",\n\t},\n\tes: {\n\t\ttitle: \"Prepárate para unirte\",\n\t\thint: \"Configura tu cámara y micrófono, y únete cuando estés listo.\",\n\t\tname: \"Tu nombre\",\n\t\tjoin: \"Unirme\",\n\t\twaitingForHost: \"Esperando a que el anfitrión abra el estudio\",\n\t\tcamera: \"Cámara\",\n\t\tmic: \"Micrófono\",\n\t\tcameraDevice: \"Cámara\",\n\t\tmicDevice: \"Micrófono\",\n\t\tspeakerDevice: \"Altavoz\",\n\t\ttestSpeaker: \"Probar\",\n\t\ttestSpeakerError: \"No se pudo reproducir la prueba de altavoz\",\n\t\tcameraOff: \"Cámara apagada\",\n\t\tjoinError: \"No se pudo unir al estudio\",\n\t\tjoinBusy: \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\tendedTitle: \"Esta sesión de estudio terminó\",\n\t},\n};\n\nexport type SesionarioWindowGateLabels = {\n\tduplicateTitle: string;\n\tduplicateDescription: string;\n\tduplicateDescriptionNoTakeover: string;\n\tduplicateTakenOver: string;\n\tduplicateAction: string;\n};\n\nconst WINDOW_GATE: Record<LivoLocale, SesionarioWindowGateLabels> = {\n\ten: {\n\t\tduplicateTitle: \"Studio is already open\",\n\t\tduplicateDescription: \"This studio is already open in another window.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"This studio is already open in another window. Close that window to continue here.\",\n\t\tduplicateTakenOver: \"This session moved to another window.\",\n\t\tduplicateAction: \"Continue here\",\n\t},\n\tes: {\n\t\tduplicateTitle: \"El estudio ya está abierto\",\n\t\tduplicateDescription: \"Este estudio ya está abierto en otra ventana.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\tduplicateTakenOver: \"Esta sesión se movió a otra ventana.\",\n\t\tduplicateAction: \"Continuar aquí\",\n\t},\n};\n\nexport type SesionarioPlayerLabels = {\n\tplay: string;\n\tpause: string;\n\tmute: string;\n\tunmute: string;\n\tenterFullscreen: string;\n\texitFullscreen: string;\n\tpictureInPicture: string;\n\tcast: string;\n\tsettings: string;\n\tmore: string;\n\tback: string;\n\tquality: string;\n\tauto: string;\n\tspeed: string;\n\tlive: string;\n\tgoLive: string;\n\ttapToUnmute: string;\n\tloading: string;\n\twaiting: string;\n\tretry: string;\n\terrorUnavailable: string;\n\terrorNetwork: string;\n\terrorMedia: string;\n\terrorUnsupported: string;\n\terrorGeneric: string;\n\tcaptions: string;\n\tcaptionsOff: string;\n\tcaptionsEn: string;\n\tcaptionsEs: string;\n\tcaptionsPt: string;\n};\n\nconst PLAYER: Record<LivoLocale, SesionarioPlayerLabels> = {\n\ten: {\n\t\tplay: \"Play\",\n\t\tpause: \"Pause\",\n\t\tmute: \"Mute\",\n\t\tunmute: \"Unmute\",\n\t\tenterFullscreen: \"Fullscreen\",\n\t\texitFullscreen: \"Exit fullscreen\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Cast\",\n\t\tsettings: \"Settings\",\n\t\tmore: \"More\",\n\t\tback: \"Back\",\n\t\tquality: \"Quality\",\n\t\tauto: \"Auto\",\n\t\tspeed: \"Speed\",\n\t\tlive: \"LIVE\",\n\t\tgoLive: \"Go to live\",\n\t\ttapToUnmute: \"Tap to unmute\",\n\t\tloading: \"Loading\",\n\t\twaiting: \"Waiting\",\n\t\tretry: \"Retry\",\n\t\terrorUnavailable: \"This video is unavailable\",\n\t\terrorNetwork: \"Network error. Try again.\",\n\t\terrorMedia: \"Could not play this video\",\n\t\terrorUnsupported: \"This video cannot be played on this device\",\n\t\terrorGeneric: \"Playback error\",\n\t\tcaptions: \"Captions\",\n\t\tcaptionsOff: \"Off\",\n\t\tcaptionsEn: \"English\",\n\t\tcaptionsEs: \"Spanish\",\n\t\tcaptionsPt: \"Portuguese\",\n\t},\n\tes: {\n\t\tplay: \"Reproducir\",\n\t\tpause: \"Pausar\",\n\t\tmute: \"Silenciar\",\n\t\tunmute: \"Activar audio\",\n\t\tenterFullscreen: \"Pantalla completa\",\n\t\texitFullscreen: \"Salir de pantalla completa\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Transmitir\",\n\t\tsettings: \"Ajustes\",\n\t\tmore: \"Más\",\n\t\tback: \"Atrás\",\n\t\tquality: \"Calidad\",\n\t\tauto: \"Automática\",\n\t\tspeed: \"Velocidad\",\n\t\tlive: \"EN VIVO\",\n\t\tgoLive: \"Ir al vivo\",\n\t\ttapToUnmute: \"Toca para activar el audio\",\n\t\tloading: \"Cargando\",\n\t\twaiting: \"Esperando\",\n\t\tretry: \"Reintentar\",\n\t\terrorUnavailable: \"Este video no está disponible\",\n\t\terrorNetwork: \"Error de red. Inténtalo de nuevo.\",\n\t\terrorMedia: \"No se pudo reproducir este video\",\n\t\terrorUnsupported: \"Este video no se puede reproducir en este dispositivo\",\n\t\terrorGeneric: \"Error de reproducción\",\n\t\tcaptions: \"Subtítulos\",\n\t\tcaptionsOff: \"Desactivados\",\n\t\tcaptionsEn: \"Inglés\",\n\t\tcaptionsEs: \"Español\",\n\t\tcaptionsPt: \"Portugués\",\n\t},\n};\n\nexport type SesionarioWaitingLabels = {\n\twaiting: string;\n\tstartingSoon: string;\n\tvodWaiting: string;\n\tavailableSoon: string;\n\tloading: string;\n\tstartsIn: (time: string) => string;\n\tavailableIn: (time: string) => string;\n};\n\nconst WAITING: Record<LivoLocale, SesionarioWaitingLabels> = {\n\ten: {\n\t\twaiting: \"Waiting\",\n\t\tstartingSoon: \"Starting soon\",\n\t\tvodWaiting: \"Waiting for this video to become available.\",\n\t\tavailableSoon: \"Available soon\",\n\t\tloading: \"Loading playback\",\n\t\tstartsIn: (time) => `Starts in ${time}`,\n\t\tavailableIn: (time) => `Available in ${time}`,\n\t},\n\tes: {\n\t\twaiting: \"Esperando\",\n\t\tstartingSoon: \"Empieza pronto\",\n\t\tvodWaiting: \"Esperando a que este video esté disponible.\",\n\t\tavailableSoon: \"Disponible pronto\",\n\t\tloading: \"Cargando reproducción\",\n\t\tstartsIn: (time) => `Empieza en ${time}`,\n\t\tavailableIn: (time) => `Disponible en ${time}`,\n\t},\n};\n\nexport type SesionarioCommunityLabels = {\n\tcomments: string;\n\tqa: string;\n\tcomposer: string;\n\tquestionComposer: string;\n\treply: string;\n\tsend: string;\n\tname: string;\n\tnamePlaceholder: string;\n\tpostingAs: string;\n\teditName: string;\n\tsaveName: string;\n\tclosed: string;\n\tqaClosed: string;\n\temptyComments: string;\n\temptyQuestions: string;\n\tjumpToLatest: string;\n\tpinned: string;\n\tlive: string;\n\tpin: string;\n\tunpin: string;\n\thide: string;\n\tunhide: string;\n\tremove: string;\n\thighlight: string;\n\tdismiss: string;\n\tanswer: string;\n\tupvote: string;\n\tsettings: string;\n\tcommentsEnabled: string;\n\tcommentsAfterEnd: string;\n\tqaEnabled: string;\n\tcommentsHelp: string;\n\tcommentsAfterEndHelp: string;\n\tqaHelp: string;\n};\n\nconst COMMUNITY: Record<LivoLocale, SesionarioCommunityLabels> = {\n\ten: {\n\t\tcomments: \"Comments\",\n\t\tqa: \"Q&A\",\n\t\tcomposer: \"Write a comment\",\n\t\tquestionComposer: \"Ask a question\",\n\t\treply: \"Reply\",\n\t\tsend: \"Send\",\n\t\tname: \"Display name\",\n\t\tnamePlaceholder: \"Your name\",\n\t\tpostingAs: \"Posting as {name}\",\n\t\teditName: \"Edit name\",\n\t\tsaveName: \"Save\",\n\t\tclosed: \"Comments are closed\",\n\t\tqaClosed: \"Q&A is closed\",\n\t\temptyComments: \"No comments yet\",\n\t\temptyQuestions: \"No questions yet\",\n\t\tjumpToLatest: \"Jump to latest\",\n\t\tpinned: \"Pinned\",\n\t\tlive: \"Live\",\n\t\tpin: \"Pin\",\n\t\tunpin: \"Unpin\",\n\t\thide: \"Hide\",\n\t\tunhide: \"Unhide\",\n\t\tremove: \"Delete\",\n\t\thighlight: \"Highlight\",\n\t\tdismiss: \"Dismiss\",\n\t\tanswer: \"Answer\",\n\t\tupvote: \"Upvote\",\n\t\tsettings: \"Community\",\n\t\tcommentsEnabled: \"Comments\",\n\t\tcommentsAfterEnd: \"Keep comments open after the event\",\n\t\tqaEnabled: \"Live Q&A\",\n\t\tcommentsHelp: \"Viewers can comment on this video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"When off, comments close as soon as the live event ends.\",\n\t\tqaHelp: \"Questions are only accepted while the event is live.\",\n\t},\n\tes: {\n\t\tcomments: \"Comentarios\",\n\t\tqa: \"Preguntas\",\n\t\tcomposer: \"Escribe un comentario\",\n\t\tquestionComposer: \"Haz una pregunta\",\n\t\treply: \"Responder\",\n\t\tsend: \"Enviar\",\n\t\tname: \"Nombre para mostrar\",\n\t\tnamePlaceholder: \"Tu nombre\",\n\t\tpostingAs: \"Publicando como {name}\",\n\t\teditName: \"Editar nombre\",\n\t\tsaveName: \"Guardar\",\n\t\tclosed: \"Los comentarios están cerrados\",\n\t\tqaClosed: \"Las preguntas están cerradas\",\n\t\temptyComments: \"Aún no hay comentarios\",\n\t\temptyQuestions: \"Aún no hay preguntas\",\n\t\tjumpToLatest: \"Ir al más reciente\",\n\t\tpinned: \"Fijado\",\n\t\tlive: \"En vivo\",\n\t\tpin: \"Fijar\",\n\t\tunpin: \"Desfijar\",\n\t\thide: \"Ocultar\",\n\t\tunhide: \"Mostrar\",\n\t\tremove: \"Eliminar\",\n\t\thighlight: \"Destacar\",\n\t\tdismiss: \"Descartar\",\n\t\tanswer: \"Responder\",\n\t\tupvote: \"Votar\",\n\t\tsettings: \"Comunidad\",\n\t\tcommentsEnabled: \"Comentarios\",\n\t\tcommentsAfterEnd: \"Mantener comentarios abiertos después del evento\",\n\t\tqaEnabled: \"Preguntas en vivo\",\n\t\tcommentsHelp: \"Las y los espectadores pueden comentar este video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"Si está desactivado, los comentarios se cierran al terminar el evento en vivo.\",\n\t\tqaHelp: \"Las preguntas solo se aceptan mientras el evento está en vivo.\",\n\t},\n};\n\nexport function sesionarioPlayerLabels(\n\tlocale?: string,\n): SesionarioPlayerLabels {\n\treturn PLAYER[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWaitingLabels(\n\tlocale?: string,\n): SesionarioWaitingLabels {\n\treturn WAITING[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioCommunityLabels(\n\tlocale?: string,\n): SesionarioCommunityLabels {\n\treturn COMMUNITY[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWindowGateLabels(\n\tlocale?: string,\n): SesionarioWindowGateLabels {\n\treturn WINDOW_GATE[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioLobbyLabels(locale?: string): SesionarioLobbyLabels {\n\treturn LOBBY[resolveLivoLocale(locale)];\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport en from \"./studio-labels-en.json\";\nimport es from \"./studio-labels-es.json\";\n\nconst catalogs: Record<LivoLocale, Record<string, string>> = {\n\ten: en as Record<string, string>,\n\tes: es as Record<string, string>,\n};\n\nexport function interpolateSesionarioStudioLabel(\n\tkey: string,\n\tvalues?: Record<string, string>,\n\tlocale: LivoLocale = \"es\",\n): string {\n\tlet text = catalogs[locale][key] ?? catalogs.en[key] ?? key;\n\tif (values) {\n\t\tfor (const [name, value] of Object.entries(values)) {\n\t\t\ttext = text.replaceAll(`{${name}}`, value);\n\t\t}\n\t}\n\treturn text;\n}\n\n/** Alias used by unit tests and local copies in admin/app. */\nexport const interpolateStudioLabel = interpolateSesionarioStudioLabel;\n\n/**\n * Catalog interpolator for `@livo-tv/sdk/studio` `studioRoomLabels`.\n * Consuming apps wrap: `studioRoomLabels(sesionarioStudioLabelFn(\"es\"))`.\n */\nexport function sesionarioStudioLabelFn(locale?: string) {\n\tconst resolved = resolveLivoLocale(locale);\n\treturn (key: string, values?: Record<string, string>) =>\n\t\tinterpolateSesionarioStudioLabel(key, values, resolved);\n}\n\nexport function sesionarioStudioLabels(locale?: string) {\n\treturn sesionarioStudioLabelFn(locale);\n}\n\nexport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\n","/**\n * Shared EmbedTheme for native `@livo-tv/sdk` surfaces (LivoPlayer, studio).\n * Built from Sesionario shadcn CSS variables so admin and app match the shell.\n */\nexport type SesionarioEmbedTheme = {\n\tprimary: string;\n\taccent: string;\n\tbackground: string;\n\tforeground: string;\n\tradius: string;\n\tfontFamily: string;\n\tmode?: \"light\" | \"dark\";\n};\n\nconst FALLBACK: SesionarioEmbedTheme = {\n\tbackground: \"oklch(1 0 0)\",\n\tforeground: \"oklch(0.145 0 0)\",\n\tprimary: \"oklch(0.4824 0.1149 242.2039)\",\n\taccent: \"oklch(0.4824 0.1149 242.2039)\",\n\tradius: \"0.625rem\",\n\tfontFamily: \"ui-sans-serif, system-ui, sans-serif\",\n};\n\nfunction cssVar(name: string, fallback: string): string {\n\tif (typeof document === \"undefined\") return fallback;\n\tconst value = getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim();\n\treturn value || fallback;\n}\n\nexport function sesionarioEmbedTheme(): SesionarioEmbedTheme {\n\tconst dark =\n\t\ttypeof document !== \"undefined\" &&\n\t\tdocument.documentElement.classList.contains(\"dark\");\n\treturn {\n\t\tbackground: cssVar(\"--background\", FALLBACK.background),\n\t\tforeground: cssVar(\"--foreground\", FALLBACK.foreground),\n\t\tprimary: cssVar(\"--primary\", FALLBACK.primary),\n\t\taccent: cssVar(\"--accent\", FALLBACK.accent),\n\t\tradius: cssVar(\"--radius\", FALLBACK.radius),\n\t\tfontFamily: cssVar(\"--font-sans\", FALLBACK.fontFamily),\n\t\t...(dark ? { mode: \"dark\" as const } : {}),\n\t};\n}\n","import { sesionarioEmbedTheme } from \"./embed-theme\";\nimport type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\nimport { sesionarioStudioLabelFn } from \"./studio-labels\";\n\nexport function livoLabels(locale?: string) {\n\tconst resolved: LivoLocale = resolveLivoLocale(locale);\n\treturn {\n\t\tlocale: resolved,\n\t\ttheme: sesionarioEmbedTheme(),\n\t\tstudioLabelFn: sesionarioStudioLabelFn(resolved),\n\t\tlobbyLabels: sesionarioLobbyLabels(resolved),\n\t\twindowGateLabels: sesionarioWindowGateLabels(resolved),\n\t\tplayerLabels: sesionarioPlayerLabels(resolved),\n\t\twaitingLabels: sesionarioWaitingLabels(resolved),\n\t\tcommunityLabels: sesionarioCommunityLabels(resolved),\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../src/livo/locale.ts","../src/livo/studio-labels-en.json","../src/livo/studio-labels-es.json","../src/livo/catalogs.ts","../src/livo/studio-labels.ts","../src/livo/embed-theme.ts","../src/livo/livo-labels.ts"],"names":[],"mappings":";AAEO,SAAS,kBAAkB,MAAA,EAA6B;AAC9D,EAAA,OAAO,QAAQ,WAAA,EAAY,CAAE,UAAA,CAAW,IAAI,IAAI,IAAA,GAAO,IAAA;AACxD;;;ACJA,IAAA,wBAAA,GAAA;AAAA,EACC,IAAA,EAAQ,MAAA;AAAA,EACR,OAAA,EAAW,SAAA;AAAA,EACX,OAAA,EAAW,iBAAA;AAAA,EACX,WAAA,EAAe,oCAAA;AAAA,EACf,KAAA,EAAS,OAAA;AAAA,EACT,IAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAU,gBAAA;AAAA,EACV,SAAA,EAAa,8BAAA;AAAA,EACb,aAAA,EAAiB,gCAAA;AAAA,EACjB,mBAAA,EAAuB,wDAAA;AAAA,EACvB,cAAA,EAAkB,mBAAA;AAAA,EAClB,IAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAU,QAAA;AAAA,EACV,MAAA,EAAU,QAAA;AAAA,EACV,IAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAU,QAAA;AAAA,EACV,QAAA,EAAY,iBAAA;AAAA,EACZ,SAAA,EAAa,kBAAA;AAAA,EACb,cAAA,EAAkB,6BAAA;AAAA,EAClB,WAAA,EAAe,gCAAA;AAAA,EACf,MAAA,EAAU,mBAAA;AAAA,EACV,OAAA,EAAW,SAAA;AAAA,EACX,YAAA,EAAgB,UAAA;AAAA,EAChB,kBAAA,EAAsB,oDAAA;AAAA,EACtB,cAAA,EAAkB,SAAA;AAAA,EAClB,cAAA,EAAkB,oBAAA;AAAA,EAClB,IAAA,EAAQ,MAAA;AAAA,EACR,SAAA,EAAa,sBAAA;AAAA,EACb,eAAA,EAAmB,+DAAA;AAAA,EACnB,WAAA,EAAe,aAAA;AAAA,EACf,UAAA,EAAc,YAAA;AAAA,EACd,YAAA,EAAgB,mBAAA;AAAA,EAChB,SAAA,EAAa,2BAAA;AAAA,EACb,SAAA,EAAa,YAAA;AAAA,EACb,OAAA,EAAW,gBAAA;AAAA,EACX,YAAA,EAAgB,QAAA;AAAA,EAChB,SAAA,EAAa,YAAA;AAAA,EACb,aAAA,EAAiB,SAAA;AAAA,EACjB,eAAA,EAAmB,QAAA;AAAA,EACnB,YAAA,EAAgB,YAAA;AAAA,EAChB,KAAA,EAAS,2BAAA;AAAA,EACT,UAAA,EAAc,kBAAA;AAAA,EACd,kBAAA,EAAsB,oBAAA;AAAA,EACtB,iBAAA,EAAqB,oBAAA;AAAA,EACrB,sBAAA,EAA0B,oBAAA;AAAA,EAC1B,eAAA,EAAmB,cAAA;AAAA,EACnB,eAAA,EAAmB,6BAAA;AAAA,EACnB,UAAA,EAAc,8CAAA;AAAA,EACd,UAAA,EAAc,+BAAA;AAAA,EACd,gBAAA,EAAoB,8BAAA;AAAA,EACpB,gBAAA,EAAoB,qCAAA;AAAA,EACpB,sBAAA,EAA0B,wFAAA;AAAA,EAC1B,eAAA,EAAmB,2BAAA;AAAA,EACnB,qBAAA,EAAyB,gDAAA;AAAA,EACzB,WAAA,EAAe,MAAA;AAAA,EACf,MAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAkB,wBAAA;AAAA,EAClB,oBAAA,EAAwB,gDAAA;AAAA,EACxB,8BAAA,EAAkC,oFAAA;AAAA,EAClC,eAAA,EAAmB,eAAA;AAAA,EACnB,kBAAA,EAAsB,uCAAA;AAAA,EACtB,QAAA,EAAY,gDAAA;AAAA,EACZ,WAAA,EAAe,6BAAA;AAAA,EACf,WAAA,EAAe,4BAAA;AAAA,EACf,KAAA,EAAS,cAAA;AAAA,EACT,UAAA,EAAc,oBAAA;AAAA,EACd,gBAAA,EAAoB,qDAAA;AAAA,EACpB,YAAA,EAAgB,OAAA;AAAA,EAChB,IAAA,EAAQ,MAAA;AAAA,EACR,QAAA,EAAY,MAAA;AAAA,EACZ,eAAA,EAAmB,SAAA;AAAA,EACnB,SAAA,EAAa,4BAAA;AAAA,EACb,QAAA,EAAY,UAAA;AAAA,EACZ,aAAA,EAAiB,UAAA;AAAA,EACjB,mBAAA,EAAuB,iCAAA;AAAA,EACvB,SAAA,EAAa,WAAA;AAAA,EACb,eAAA,EAAmB,MAAA;AAAA,EACnB,gBAAA,EAAoB,sBAAA;AAAA,EACpB,gBAAA,EAAoB,oCAAA;AAAA,EACpB,WAAA,EAAe,MAAA;AAAA,EACf,gBAAA,EAAoB,iCAAA;AAAA,EACpB,SAAA,EAAa,eAAA;AAAA,EACb,QAAA,EAAY,kBAAA;AAAA,EACZ,KAAA,EAAS,kBAAA;AAAA,EACT,WAAA,EAAe,oBAAA;AAAA,EACf,UAAA,EAAc,aAAA;AAAA,EACd,UAAA,EAAc,mBAAA;AAAA,EACd,YAAA,EAAgB,oBAAA;AAAA,EAChB,qBAAA,EAAyB,iCAAA;AAAA,EACzB,qBAAA,EAAyB,oCAAA;AAAA,EACzB,cAAA,EAAkB,qCAAA;AAAA,EAClB,QAAA,EAAY,gBAAA;AAAA,EACZ,OAAA,EAAW,oBAAA;AAAA,EACX,QAAA,EAAY,0BAAA;AAAA,EACZ,YAAA,EAAgB,gBAAA;AAAA,EAChB,QAAA,EAAY,QAAA;AAAA,EACZ,QAAA,EAAY,mCAAA;AAAA,EACZ,uBAAA,EAA2B,gDAAA;AAAA,EAC3B,gBAAA,EAAoB,iDAAA;AAAA,EACpB,UAAA,EAAc,cAAA;AAAA,EACd,cAAA,EAAkB,WAAA;AAAA,EAClB,kBAAA,EAAsB,gBAAA;AAAA,EACtB,gBAAA,EAAoB,qCAAA;AAAA,EACpB,gBAAA,EAAoB,oCAAA;AAAA,EACpB,OAAA,EAAW,SAAA;AAAA,EACX,aAAA,EAAiB,qCAAA;AAAA,EACjB,WAAA,EAAe,qCAAA;AAAA,EACf,iBAAA,EAAqB,iCAAA;AAAA,EACrB,mBAAA,EAAuB,2BAAA;AAAA,EACvB,iBAAA,EAAqB,yCAAA;AAAA,EACrB,QAAA,EAAY,YAAA;AAAA,EACZ,OAAA,EAAW,WAAA;AAAA,EACX,UAAA,EAAc,cAAA;AAAA,EACd,UAAA,EAAc,cAAA;AAAA,EACd,MAAA,EAAU,SAAA;AAAA,EACV,WAAA,EAAe,mBAAA;AAAA,EACf,YAAA,EAAgB,oDAAA;AAAA,EAChB,iBAAA,EAAqB,8DAAA;AAAA,EACrB,YAAA,EAAgB,eAAA;AAAA,EAChB,WAAA,EAAe,aAAA;AAAA,EACf,WAAA,EAAe,+BAAA;AAAA,EACf,eAAA,EAAmB,0BAAA;AAAA,EACnB,qBAAA,EAAyB,sEAAA;AAAA,EACzB,iBAAA,EAAqB,cAAA;AAAA,EACrB,eAAA,EAAmB,mBAAA;AAAA,EACnB,eAAA,EAAmB,mBAAA;AAAA,EACnB,iBAAA,EAAqB,wBAAA;AAAA,EACrB,gBAAA,EAAoB,uBAAA;AAAA,EACpB,YAAA,EAAgB,kBAAA;AAAA,EAChB,cAAA,EAAkB,oBAAA;AAAA,EAClB,aAAA,EAAiB,gBAAA;AAAA,EACjB,MAAA,EAAU,QAAA;AAAA,EACV,SAAA,EAAa,WAAA;AAAA,EACb,QAAA,EAAY,UAAA;AAAA,EACZ,SAAA,EAAa,mBAAA;AAAA,EACb,WAAA,EAAe,cAAA;AAAA,EACf,UAAA,EAAc,aAAA;AAAA,EACd,UAAA,EAAc,OAAA;AAAA,EACd,QAAA,EAAY,WAAA;AAAA,EACZ,SAAA,EAAa,YAAA;AAAA,EACb,GAAA,EAAO,cAAA;AAAA,EACP,KAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAe,yBAAA;AAAA,EACf,aAAA,EAAiB,0BAAA;AAAA,EACjB,QAAA,EAAY,gCAAA;AAAA,EACZ,SAAA,EAAa,oCAAA;AAAA,EACb,eAAA,EAAmB,4BAAA;AAAA,EACnB,WAAA,EAAe,QAAA;AAAA,EACf,SAAA,EAAa,6BAAA;AAAA,EACb,UAAA,EAAc,+BAAA;AAAA,EACd,aAAA,EAAiB,wCAAA;AAAA,EACjB,kBAAA,EAAsB,oCAAA;AAAA,EACtB,aAAA,EAAiB,eAAA;AAAA,EACjB,YAAA,EAAgB,UAAA;AAAA,EAChB,UAAA,EAAc,QAAA;AAAA,EACd,UAAA,EAAc,gBAAA;AAAA,EACd,aAAA,EAAiB,uBAAA;AAAA,EACjB,eAAA,EAAmB,sCAAA;AAAA,EACnB,UAAA,EAAc,QAAA;AAAA,EACd,QAAA,EAAY,MAAA;AAAA,EACZ,OAAA,EAAW,aAAA;AAAA,EACX,SAAA,EAAa,eAAA;AAAA,EACb,QAAA,EAAY,MAAA;AAAA,EACZ,eAAA,EAAmB;AACpB,CAAA;;;ACrKA,IAAA,wBAAA,GAAA;AAAA,EACC,IAAA,EAAQ,SAAA;AAAA,EACR,OAAA,EAAW,cAAA;AAAA,EACX,OAAA,EAAW,uBAAA;AAAA,EACX,WAAA,EAAe,gDAAA;AAAA,EACf,KAAA,EAAS,SAAA;AAAA,EACT,IAAA,EAAQ,UAAA;AAAA,EACR,MAAA,EAAU,oBAAA;AAAA,EACV,SAAA,EAAa,oCAAA;AAAA,EACb,aAAA,EAAiB,yCAAA;AAAA,EACjB,mBAAA,EAAuB,2DAAA;AAAA,EACvB,cAAA,EAAkB,uBAAA;AAAA,EAClB,IAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAU,WAAA;AAAA,EACV,MAAA,EAAU,UAAA;AAAA,EACV,IAAA,EAAQ,WAAA;AAAA,EACR,MAAA,EAAU,eAAA;AAAA,EACV,QAAA,EAAY,2BAAA;AAAA,EACZ,SAAA,EAAa,8BAAA;AAAA,EACb,cAAA,EAAkB,gCAAA;AAAA,EAClB,WAAA,EAAe,4CAAA;AAAA,EACf,MAAA,EAAU,4BAAA;AAAA,EACV,OAAA,EAAW,eAAA;AAAA,EACX,YAAA,EAAgB,oBAAA;AAAA,EAChB,kBAAA,EAAsB,4EAAA;AAAA,EACtB,cAAA,EAAkB,eAAA;AAAA,EAClB,cAAA,EAAkB,wBAAA;AAAA,EAClB,IAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAa,kCAAA;AAAA,EACb,eAAA,EAAmB,4FAAA;AAAA,EACnB,WAAA,EAAe,wBAAA;AAAA,EACf,UAAA,EAAc,mBAAA;AAAA,EACd,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa,sCAAA;AAAA,EACb,SAAA,EAAa,kBAAA;AAAA,EACb,OAAA,EAAW,yBAAA;AAAA,EACX,YAAA,EAAgB,WAAA;AAAA,EAChB,SAAA,EAAa,cAAA;AAAA,EACb,aAAA,EAAiB,SAAA;AAAA,EACjB,eAAA,EAAmB,WAAA;AAAA,EACnB,YAAA,EAAgB,cAAA;AAAA,EAChB,KAAA,EAAS,2BAAA;AAAA,EACT,UAAA,EAAc,oBAAA;AAAA,EACd,kBAAA,EAAsB,qBAAA;AAAA,EACtB,iBAAA,EAAqB,qBAAA;AAAA,EACrB,sBAAA,EAA0B,qBAAA;AAAA,EAC1B,eAAA,EAAmB,mBAAA;AAAA,EACnB,eAAA,EAAmB,mCAAA;AAAA,EACnB,UAAA,EAAc,oDAAA;AAAA,EACd,UAAA,EAAc,sCAAA;AAAA,EACd,gBAAA,EAAoB,2CAAA;AAAA,EACpB,gBAAA,EAAoB,4CAAA;AAAA,EACpB,sBAAA,EAA0B,6GAAA;AAAA,EAC1B,eAAA,EAAmB,6BAAA;AAAA,EACnB,qBAAA,EAAyB,wCAAA;AAAA,EACzB,WAAA,EAAe,QAAA;AAAA,EACf,MAAA,EAAU,mBAAA;AAAA,EACV,cAAA,EAAkB,+BAAA;AAAA,EAClB,oBAAA,EAAwB,kDAAA;AAAA,EACxB,8BAAA,EAAkC,6FAAA;AAAA,EAClC,eAAA,EAAmB,mBAAA;AAAA,EACnB,kBAAA,EAAsB,4CAAA;AAAA,EACtB,QAAA,EAAY,qDAAA;AAAA,EACZ,WAAA,EAAe,iCAAA;AAAA,EACf,WAAA,EAAe,kCAAA;AAAA,EACf,KAAA,EAAS,mBAAA;AAAA,EACT,UAAA,EAAc,4BAAA;AAAA,EACd,gBAAA,EAAoB,mEAAA;AAAA,EACpB,YAAA,EAAgB,OAAA;AAAA,EAChB,IAAA,EAAQ,MAAA;AAAA,EACR,QAAA,EAAY,QAAA;AAAA,EACZ,eAAA,EAAmB,SAAA;AAAA,EACnB,SAAA,EAAa,8BAAA;AAAA,EACb,QAAA,EAAY,SAAA;AAAA,EACZ,aAAA,EAAiB,SAAA;AAAA,EACjB,mBAAA,EAAuB,uBAAA;AAAA,EACvB,SAAA,EAAa,WAAA;AAAA,EACb,eAAA,EAAmB,SAAA;AAAA,EACnB,gBAAA,EAAoB,oBAAA;AAAA,EACpB,gBAAA,EAAoB,iCAAA;AAAA,EACpB,WAAA,EAAe,QAAA;AAAA,EACf,gBAAA,EAAoB,4CAAA;AAAA,EACpB,SAAA,EAAa,mBAAA;AAAA,EACb,QAAA,EAAY,wBAAA;AAAA,EACZ,KAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAe,gCAAA;AAAA,EACf,UAAA,EAAc,kBAAA;AAAA,EACd,UAAA,EAAc,6BAAA;AAAA,EACd,YAAA,EAAgB,gCAAA;AAAA,EAChB,qBAAA,EAAyB,uCAAA;AAAA,EACzB,qBAAA,EAAyB,8CAAA;AAAA,EACzB,cAAA,EAAkB,6CAAA;AAAA,EAClB,QAAA,EAAY,uBAAA;AAAA,EACZ,OAAA,EAAW,oBAAA;AAAA,EACX,QAAA,EAAY,2BAAA;AAAA,EACZ,YAAA,EAAgB,mBAAA;AAAA,EAChB,QAAA,EAAY,SAAA;AAAA,EACZ,QAAA,EAAY,qCAAA;AAAA,EACZ,uBAAA,EAA2B,8DAAA;AAAA,EAC3B,gBAAA,EAAoB,8CAAA;AAAA,EACpB,UAAA,EAAc,iBAAA;AAAA,EACd,cAAA,EAAkB,YAAA;AAAA,EAClB,kBAAA,EAAsB,oBAAA;AAAA,EACtB,gBAAA,EAAoB,kDAAA;AAAA,EACpB,gBAAA,EAAoB,qCAAA;AAAA,EACpB,OAAA,EAAW,SAAA;AAAA,EACX,aAAA,EAAiB,iDAAA;AAAA,EACjB,WAAA,EAAe,kDAAA;AAAA,EACf,iBAAA,EAAqB,qCAAA;AAAA,EACrB,mBAAA,EAAuB,iCAAA;AAAA,EACvB,iBAAA,EAAqB,sCAAA;AAAA,EACrB,QAAA,EAAY,gBAAA;AAAA,EACZ,OAAA,EAAW,gBAAA;AAAA,EACX,UAAA,EAAc,iBAAA;AAAA,EACd,UAAA,EAAc,eAAA;AAAA,EACd,MAAA,EAAU,gBAAA;AAAA,EACV,WAAA,EAAe,0BAAA;AAAA,EACf,YAAA,EAAgB,4DAAA;AAAA,EAChB,iBAAA,EAAqB,sEAAA;AAAA,EACrB,YAAA,EAAgB,gBAAA;AAAA,EAChB,WAAA,EAAe,kBAAA;AAAA,EACf,WAAA,EAAe,sCAAA;AAAA,EACf,eAAA,EAAmB,sCAAA;AAAA,EACnB,qBAAA,EAAyB,gFAAA;AAAA,EACzB,iBAAA,EAAqB,iBAAA;AAAA,EACrB,eAAA,EAAmB,wBAAA;AAAA,EACnB,eAAA,EAAmB,wBAAA;AAAA,EACnB,iBAAA,EAAqB,iCAAA;AAAA,EACrB,gBAAA,EAAoB,gCAAA;AAAA,EACpB,YAAA,EAAgB,sBAAA;AAAA,EAChB,cAAA,EAAkB,yBAAA;AAAA,EAClB,aAAA,EAAiB,0BAAA;AAAA,EACjB,MAAA,EAAU,UAAA;AAAA,EACV,SAAA,EAAa,YAAA;AAAA,EACb,QAAA,EAAY,WAAA;AAAA,EACZ,SAAA,EAAa,cAAA;AAAA,EACb,WAAA,EAAe,gBAAA;AAAA,EACf,UAAA,EAAc,eAAA;AAAA,EACd,UAAA,EAAc,QAAA;AAAA,EACd,QAAA,EAAY,gBAAA;AAAA,EACZ,SAAA,EAAa,eAAA;AAAA,EACb,GAAA,EAAO,oBAAA;AAAA,EACP,KAAA,EAAS,UAAA;AAAA,EACT,WAAA,EAAe,iCAAA;AAAA,EACf,aAAA,EAAiB,uBAAA;AAAA,EACjB,QAAA,EAAY,gCAAA;AAAA,EACZ,SAAA,EAAa,yCAAA;AAAA,EACb,eAAA,EAAmB,qBAAA;AAAA,EACnB,WAAA,EAAe,QAAA;AAAA,EACf,SAAA,EAAa,kCAAA;AAAA,EACb,UAAA,EAAc,2CAAA;AAAA,EACd,aAAA,EAAiB,uDAAA;AAAA,EACjB,kBAAA,EAAsB,2CAAA;AAAA,EACtB,aAAA,EAAiB,iBAAA;AAAA,EACjB,YAAA,EAAgB,OAAA;AAAA,EAChB,UAAA,EAAc,SAAA;AAAA,EACd,UAAA,EAAc,gBAAA;AAAA,EACd,aAAA,EAAiB,4BAAA;AAAA,EACjB,eAAA,EAAmB,gDAAA;AAAA,EACnB,UAAA,EAAc,UAAA;AAAA,EACd,QAAA,EAAY,QAAA;AAAA,EACZ,OAAA,EAAW,eAAA;AAAA,EACX,SAAA,EAAa,kBAAA;AAAA,EACb,QAAA,EAAY,SAAA;AAAA,EACZ,eAAA,EAAmB;AACpB,CAAA;;;AC/IA,IAAM,KAAA,GAAmD;AAAA,EACxD,EAAA,EAAI;AAAA,IACH,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,+DAAA;AAAA,IACN,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,cAAA,EAAgB,yCAAA;AAAA,IAChB,MAAA,EAAQ,QAAA;AAAA,IACR,GAAA,EAAK,YAAA;AAAA,IACL,YAAA,EAAc,QAAA;AAAA,IACd,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,SAAA;AAAA,IACf,WAAA,EAAa,MAAA;AAAA,IACb,gBAAA,EAAkB,iCAAA;AAAA,IAClB,SAAA,EAAW,eAAA;AAAA,IACX,SAAA,EAAW,uBAAA;AAAA,IACX,QAAA,EAAU,gDAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACH,KAAA,EAAO,0BAAA;AAAA,IACP,IAAA,EAAM,0EAAA;AAAA,IACN,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,cAAA,EAAgB,iDAAA;AAAA,IAChB,MAAA,EAAQ,WAAA;AAAA,IACR,GAAA,EAAK,cAAA;AAAA,IACL,YAAA,EAAc,WAAA;AAAA,IACd,SAAA,EAAW,cAAA;AAAA,IACX,aAAA,EAAe,SAAA;AAAA,IACf,WAAA,EAAa,QAAA;AAAA,IACb,gBAAA,EAAkB,4CAAA;AAAA,IAClB,SAAA,EAAW,mBAAA;AAAA,IACX,SAAA,EAAW,4BAAA;AAAA,IACX,QAAA,EAAU,qDAAA;AAAA,IACV,UAAA,EAAY;AAAA;AAEd,CAAA;AAUA,IAAM,WAAA,GAA8D;AAAA,EACnE,EAAA,EAAI;AAAA,IACH,cAAA,EAAgB,wBAAA;AAAA,IAChB,oBAAA,EAAsB,gDAAA;AAAA,IACtB,8BAAA,EACC,oFAAA;AAAA,IACD,kBAAA,EAAoB,uCAAA;AAAA,IACpB,eAAA,EAAiB;AAAA,GAClB;AAAA,EACA,EAAA,EAAI;AAAA,IACH,cAAA,EAAgB,+BAAA;AAAA,IAChB,oBAAA,EAAsB,kDAAA;AAAA,IACtB,8BAAA,EACC,6FAAA;AAAA,IACD,kBAAA,EAAoB,4CAAA;AAAA,IACpB,eAAA,EAAiB;AAAA;AAEnB,CAAA;AAmCA,IAAM,MAAA,GAAqD;AAAA,EAC1D,EAAA,EAAI;AAAA,IACH,IAAA,EAAM,MAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,eAAA,EAAiB,YAAA;AAAA,IACjB,cAAA,EAAgB,iBAAA;AAAA,IAChB,gBAAA,EAAkB,oBAAA;AAAA,IAClB,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,UAAA;AAAA,IACV,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,SAAA;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,YAAA;AAAA,IACR,WAAA,EAAa,eAAA;AAAA,IACb,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,OAAA;AAAA,IACP,gBAAA,EAAkB,2BAAA;AAAA,IAClB,YAAA,EAAc,2BAAA;AAAA,IACd,UAAA,EAAY,2BAAA;AAAA,IACZ,gBAAA,EAAkB,4CAAA;AAAA,IAClB,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,EAAU,UAAA;AAAA,IACV,WAAA,EAAa,KAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb;AAAA,EACA,EAAA,EAAI;AAAA,IACH,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,QAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,MAAA,EAAQ,eAAA;AAAA,IACR,eAAA,EAAiB,mBAAA;AAAA,IACjB,cAAA,EAAgB,4BAAA;AAAA,IAChB,gBAAA,EAAkB,oBAAA;AAAA,IAClB,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,UAAA;AAAA,IACN,OAAA,EAAS,SAAA;AAAA,IACT,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ,YAAA;AAAA,IACR,WAAA,EAAa,4BAAA;AAAA,IACb,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS,WAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,gBAAA,EAAkB,kCAAA;AAAA,IAClB,YAAA,EAAc,sCAAA;AAAA,IACd,UAAA,EAAY,kCAAA;AAAA,IACZ,gBAAA,EAAkB,uDAAA;AAAA,IAClB,YAAA,EAAc,0BAAA;AAAA,IACd,QAAA,EAAU,eAAA;AAAA,IACV,WAAA,EAAa,cAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,YAAA;AAAA,IACZ,UAAA,EAAY;AAAA;AAEd,CAAA;AAYA,IAAM,OAAA,GAAuD;AAAA,EAC5D,EAAA,EAAI;AAAA,IACH,OAAA,EAAS,SAAA;AAAA,IACT,YAAA,EAAc,eAAA;AAAA,IACd,UAAA,EAAY,6CAAA;AAAA,IACZ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,kBAAA;AAAA,IACT,QAAA,EAAU,CAAC,IAAA,KAAS,CAAA,UAAA,EAAa,IAAI,CAAA,CAAA;AAAA,IACrC,WAAA,EAAa,CAAC,IAAA,KAAS,CAAA,aAAA,EAAgB,IAAI,CAAA;AAAA,GAC5C;AAAA,EACA,EAAA,EAAI;AAAA,IACH,OAAA,EAAS,WAAA;AAAA,IACT,YAAA,EAAc,gBAAA;AAAA,IACd,UAAA,EAAY,gDAAA;AAAA,IACZ,aAAA,EAAe,mBAAA;AAAA,IACf,OAAA,EAAS,0BAAA;AAAA,IACT,QAAA,EAAU,CAAC,IAAA,KAAS,CAAA,WAAA,EAAc,IAAI,CAAA,CAAA;AAAA,IACtC,WAAA,EAAa,CAAC,IAAA,KAAS,CAAA,cAAA,EAAiB,IAAI,CAAA;AAAA;AAE9C,CAAA;AAuCA,IAAM,SAAA,GAA2D;AAAA,EAChE,EAAA,EAAI;AAAA,IACH,QAAA,EAAU,UAAA;AAAA,IACV,EAAA,EAAI,KAAA;AAAA,IACJ,QAAA,EAAU,iBAAA;AAAA,IACV,gBAAA,EAAkB,gBAAA;AAAA,IAClB,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,eAAA,EAAiB,WAAA;AAAA,IACjB,SAAA,EAAW,mBAAA;AAAA,IACX,QAAA,EAAU,WAAA;AAAA,IACV,QAAA,EAAU,MAAA;AAAA,IACV,MAAA,EAAQ,qBAAA;AAAA,IACR,QAAA,EAAU,eAAA;AAAA,IACV,aAAA,EAAe,iBAAA;AAAA,IACf,cAAA,EAAgB,kBAAA;AAAA,IAChB,YAAA,EAAc,gBAAA;AAAA,IACd,MAAA,EAAQ,QAAA;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,GAAA,EAAK,KAAA;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,WAAA;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,WAAA;AAAA,IACV,eAAA,EAAiB,UAAA;AAAA,IACjB,gBAAA,EAAkB,oCAAA;AAAA,IAClB,SAAA,EAAW,UAAA;AAAA,IACX,YAAA,EAAc,oCAAA;AAAA,IACd,oBAAA,EACC,0DAAA;AAAA,IACD,MAAA,EAAQ;AAAA,GACT;AAAA,EACA,EAAA,EAAI;AAAA,IACH,QAAA,EAAU,aAAA;AAAA,IACV,EAAA,EAAI,WAAA;AAAA,IACJ,QAAA,EAAU,uBAAA;AAAA,IACV,gBAAA,EAAkB,kBAAA;AAAA,IAClB,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,qBAAA;AAAA,IACN,eAAA,EAAiB,WAAA;AAAA,IACjB,SAAA,EAAW,wBAAA;AAAA,IACX,QAAA,EAAU,eAAA;AAAA,IACV,QAAA,EAAU,SAAA;AAAA,IACV,MAAA,EAAQ,mCAAA;AAAA,IACR,QAAA,EAAU,iCAAA;AAAA,IACV,aAAA,EAAe,2BAAA;AAAA,IACf,cAAA,EAAgB,yBAAA;AAAA,IAChB,YAAA,EAAc,uBAAA;AAAA,IACd,MAAA,EAAQ,QAAA;AAAA,IACR,IAAA,EAAM,SAAA;AAAA,IACN,GAAA,EAAK,OAAA;AAAA,IACL,KAAA,EAAO,UAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ,SAAA;AAAA,IACR,MAAA,EAAQ,UAAA;AAAA,IACR,SAAA,EAAW,UAAA;AAAA,IACX,OAAA,EAAS,WAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,MAAA,EAAQ,OAAA;AAAA,IACR,QAAA,EAAU,WAAA;AAAA,IACV,eAAA,EAAiB,aAAA;AAAA,IACjB,gBAAA,EAAkB,qDAAA;AAAA,IAClB,SAAA,EAAW,mBAAA;AAAA,IACX,YAAA,EAAc,oDAAA;AAAA,IACd,oBAAA,EACC,mFAAA;AAAA,IACD,MAAA,EAAQ;AAAA;AAEV,CAAA;AAEO,SAAS,uBACf,MAAA,EACyB;AACzB,EAAA,OAAO,MAAA,CAAO,iBAAA,CAAkB,MAAM,CAAC,CAAA;AACxC;AAEO,SAAS,wBACf,MAAA,EAC0B;AAC1B,EAAA,OAAO,OAAA,CAAQ,iBAAA,CAAkB,MAAM,CAAC,CAAA;AACzC;AAEO,SAAS,0BACf,MAAA,EAC4B;AAC5B,EAAA,OAAO,SAAA,CAAU,iBAAA,CAAkB,MAAM,CAAC,CAAA;AAC3C;AAEO,SAAS,2BACf,MAAA,EAC6B;AAC7B,EAAA,OAAO,WAAA,CAAY,iBAAA,CAAkB,MAAM,CAAC,CAAA;AAC7C;AAEO,SAAS,sBAAsB,MAAA,EAAwC;AAC7E,EAAA,OAAO,KAAA,CAAM,iBAAA,CAAkB,MAAM,CAAC,CAAA;AACvC;;;AClWA,IAAM,QAAA,GAAuD;AAAA,EAC5D,EAAA,EAAI,wBAAA;AAAA,EACJ,EAAA,EAAI;AACL,CAAA;AAEO,SAAS,gCAAA,CACf,GAAA,EACA,MAAA,EACA,MAAA,GAAqB,IAAA,EACZ;AACT,EAAA,IAAI,IAAA,GAAO,SAAS,MAAM,CAAA,CAAE,GAAG,CAAA,IAAK,QAAA,CAAS,EAAA,CAAG,GAAG,CAAA,IAAK,GAAA;AACxD,EAAA,IAAI,MAAA,EAAQ;AACX,IAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACnD,MAAA,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,CAAA,CAAA,EAAI,IAAI,KAAK,KAAK,CAAA;AAAA,IAC1C;AAAA,EACD;AACA,EAAA,OAAO,IAAA;AACR;AASO,SAAS,wBAAwB,MAAA,EAAiB;AACxD,EAAA,MAAM,QAAA,GAAW,kBAAkB,MAAM,CAAA;AACzC,EAAA,OAAO,CAAC,GAAA,EAAa,MAAA,KACpB,gCAAA,CAAiC,GAAA,EAAK,QAAQ,QAAQ,CAAA;AACxD;AAEO,SAAS,uBAAuB,MAAA,EAAiB;AACvD,EAAA,OAAO,wBAAwB,MAAM,CAAA;AACtC;;;ACzBA,IAAM,QAAA,GAAiC;AAAA,EACtC,UAAA,EAAY,cAAA;AAAA,EACZ,UAAA,EAAY,kBAAA;AAAA,EACZ,OAAA,EAAS,+BAAA;AAAA,EACT,MAAA,EAAQ,+BAAA;AAAA,EACR,MAAA,EAAQ,UAAA;AAAA,EACR,UAAA,EAAY;AACb,CAAA;AAEA,SAAS,MAAA,CAAO,MAAc,QAAA,EAA0B;AACvD,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,QAAA;AAC5C,EAAA,MAAM,KAAA,GAAQ,iBAAiB,QAAA,CAAS,eAAe,EACrD,gBAAA,CAAiB,IAAI,EACrB,IAAA,EAAK;AACP,EAAA,OAAO,KAAA,IAAS,QAAA;AACjB;AAEO,SAAS,oBAAA,GAA6C;AAC5D,EAAA,MAAM,IAAA,GACL,OAAO,QAAA,KAAa,WAAA,IACpB,SAAS,eAAA,CAAgB,SAAA,CAAU,SAAS,MAAM,CAAA;AACnD,EAAA,OAAO;AAAA,IACN,UAAA,EAAY,MAAA,CAAO,cAAA,EAAgB,QAAA,CAAS,UAAU,CAAA;AAAA,IACtD,UAAA,EAAY,MAAA,CAAO,cAAA,EAAgB,QAAA,CAAS,UAAU,CAAA;AAAA,IACtD,OAAA,EAAS,MAAA,CAAO,WAAA,EAAa,QAAA,CAAS,OAAO,CAAA;AAAA,IAC7C,MAAA,EAAQ,MAAA,CAAO,UAAA,EAAY,QAAA,CAAS,MAAM,CAAA;AAAA,IAC1C,MAAA,EAAQ,MAAA,CAAO,UAAA,EAAY,QAAA,CAAS,MAAM,CAAA;AAAA,IAC1C,UAAA,EAAY,MAAA,CAAO,aAAA,EAAe,QAAA,CAAS,UAAU,CAAA;AAAA,IACrD,GAAI,IAAA,GAAO,EAAE,IAAA,EAAM,MAAA,KAAoB;AAAC,GACzC;AACD;;;AChCO,SAAS,WAAW,MAAA,EAAiB;AAC3C,EAAA,MAAM,QAAA,GAAuB,kBAAkB,MAAM,CAAA;AACrD,EAAA,OAAO;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,OAAO,oBAAA,EAAqB;AAAA,IAC5B,aAAA,EAAe,wBAAwB,QAAQ,CAAA;AAAA,IAC/C,WAAA,EAAa,sBAAsB,QAAQ,CAAA;AAAA,IAC3C,gBAAA,EAAkB,2BAA2B,QAAQ,CAAA;AAAA,IACrD,YAAA,EAAc,uBAAuB,QAAQ,CAAA;AAAA,IAC7C,aAAA,EAAe,wBAAwB,QAAQ,CAAA;AAAA,IAC/C,eAAA,EAAiB,0BAA0B,QAAQ;AAAA,GACpD;AACD","file":"livo.js","sourcesContent":["export type LivoLocale = \"es\" | \"en\";\n\nexport function resolveLivoLocale(locale?: string): LivoLocale {\n\treturn locale?.toLowerCase().startsWith(\"en\") ? \"en\" : \"es\";\n}\n","{\n\t\"live\": \"LIVE\",\n\t\"preview\": \"Preview\",\n\t\"waiting\": \"Waiting to join\",\n\t\"waitingHost\": \"Waiting for the host to let you in\",\n\t\"admit\": \"Admit\",\n\t\"deny\": \"Deny\",\n\t\"denied\": \"Guest declined\",\n\t\"denyError\": \"Could not decline that guest\",\n\t\"rejectedTitle\": \"The host declined your request\",\n\t\"rejectedDescription\": \"You can ask to join again if the studio is still open.\",\n\t\"rejectedAction\": \"Ask to join again\",\n\t\"kick\": \"Remove\",\n\t\"camera\": \"Camera\",\n\t\"screen\": \"Screen\",\n\t\"mute\": \"Mute\",\n\t\"unmute\": \"Unmute\",\n\t\"copyLink\": \"Copy guest link\",\n\t\"shareLink\": \"Share guest link\",\n\t\"shareGuestText\": \"Join the studio for {title}\",\n\t\"shareFailed\": \"Could not share the guest link\",\n\t\"copied\": \"Guest link copied\",\n\t\"publish\": \"Go live\",\n\t\"publishTitle\": \"Go live?\",\n\t\"publishDescription\": \"Viewers will see this studio on the public player.\",\n\t\"publishConfirm\": \"Go live\",\n\t\"publishPending\": \"Going on air…\",\n\t\"stop\": \"Stop\",\n\t\"stopTitle\": \"Stop this broadcast?\",\n\t\"stopDescription\": \"Viewers will lose the live feed. Guests will be disconnected.\",\n\t\"stopConfirm\": \"Stop stream\",\n\t\"fullscreen\": \"Fullscreen\",\n\t\"publishError\": \"Could not go live\",\n\t\"stopError\": \"Could not stop the stream\",\n\t\"published\": \"Going live\",\n\t\"stopped\": \"Stream stopped\",\n\t\"cameraDevice\": \"Camera\",\n\t\"micDevice\": \"Microphone\",\n\t\"speakerDevice\": \"Speaker\",\n\t\"preflightCamera\": \"Camera\",\n\t\"preflightMic\": \"Microphone\",\n\t\"knock\": \"{name} is waiting to join\",\n\t\"egressLost\": \"Reconnect studio\",\n\t\"livestreamStarting\": \"Initializing…\",\n\t\"livestreamSending\": \"Initializing…\",\n\t\"livestreamInitializing\": \"Initializing…\",\n\t\"livestreamRetry\": \"Retry egress\",\n\t\"livestreamError\": \"Could not start RTMP egress\",\n\t\"screenBusy\": \"Someone else is already sharing their screen\",\n\t\"endedTitle\": \"This studio session has ended\",\n\t\"endedDescription\": \"The host stopped the stream.\",\n\t\"linkExpiredTitle\": \"This studio link is no longer valid\",\n\t\"linkExpiredDescription\": \"It is invalid or has expired. Open the studio again from the stream to get a new link.\",\n\t\"openFailedTitle\": \"Could not open the studio\",\n\t\"openFailedDescription\": \"Something went wrong while opening the studio.\",\n\t\"endedAction\": \"Back\",\n\t\"rejoin\": \"Rejoin studio\",\n\t\"duplicateTitle\": \"Studio is already open\",\n\t\"duplicateDescription\": \"This studio is already open in another window.\",\n\t\"duplicateDescriptionNoTakeover\": \"This studio is already open in another window. Close that window to continue here.\",\n\t\"duplicateAction\": \"Continue here\",\n\t\"duplicateTakenOver\": \"This session moved to another window.\",\n\t\"joinBusy\": \"Too many join attempts. Try again in a moment.\",\n\t\"cameraError\": \"Could not enable the camera\",\n\t\"screenError\": \"Could not share the screen\",\n\t\"leave\": \"Leave studio\",\n\t\"leaveTitle\": \"Leave this studio?\",\n\t\"leaveDescription\": \"You will disconnect from the host and other guests.\",\n\t\"leaveConfirm\": \"Leave\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Send\",\n\t\"chatPlaceholder\": \"Message\",\n\t\"chatError\": \"Could not send the message\",\n\t\"settings\": \"Settings\",\n\t\"settingsTitle\": \"Settings\",\n\t\"settingsDescription\": \"Name, audio, and video settings\",\n\t\"guestName\": \"Your name\",\n\t\"displayNameSave\": \"Save\",\n\t\"displayNameSaved\": \"Display name updated\",\n\t\"displayNameError\": \"Could not update your display name\",\n\t\"testSpeaker\": \"Test\",\n\t\"testSpeakerError\": \"Could not play the speaker test\",\n\t\"cameraOff\": \"Camera is off\",\n\t\"micLevel\": \"Microphone level\",\n\t\"share\": \"Copy player link\",\n\t\"shareCopied\": \"Player link copied\",\n\t\"stopCamera\": \"Stop camera\",\n\t\"stopScreen\": \"Stop screen share\",\n\t\"hostMutedYou\": \"The host muted you\",\n\t\"hostStoppedYourCamera\": \"The host turned off your camera\",\n\t\"hostStoppedYourScreen\": \"The host stopped your screen share\",\n\t\"hostMediaError\": \"Could not change that guest's media\",\n\t\"tileMenu\": \"Guest controls\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Close picture-in-picture\",\n\t\"backToStudio\": \"Back to studio\",\n\t\"pipTitle\": \"Studio\",\n\t\"pipError\": \"Could not open picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Screen sharing is not available on this device\",\n\t\"screenNotAllowed\": \"You do not have permission to share your screen\",\n\t\"askToShare\": \"Ask to share\",\n\t\"shareRequested\": \"Requested\",\n\t\"cancelShareRequest\": \"Cancel request\",\n\t\"shareRequestSent\": \"Asked the host to share your screen\",\n\t\"shareRequestFrom\": \"{name} wants to share their screen\",\n\t\"approve\": \"Approve\",\n\t\"shareApproved\": \"The host approved your screen share\",\n\t\"shareDenied\": \"The host declined your screen share\",\n\t\"shareRequestError\": \"Could not ask the host to share\",\n\t\"shareRequestTimeout\": \"No response from the host\",\n\t\"shareRespondError\": \"Could not respond to that share request\",\n\t\"goOffAir\": \"Go off air\",\n\t\"goOnAir\": \"Go on air\",\n\t\"takeOffAir\": \"Take off air\",\n\t\"bringOnAir\": \"Bring on air\",\n\t\"offAir\": \"Off air\",\n\t\"offAirCount\": \"Off air ({count})\",\n\t\"offAirBanner\": \"You are off camera. Your microphone is still live.\",\n\t\"offAirLastVisible\": \"At least one participant must stay on air while you are live\",\n\t\"offAirHidden\": \"Taken off air\",\n\t\"offAirShown\": \"Back on air\",\n\t\"offAirError\": \"Could not change on-air state\",\n\t\"takeOffAirTitle\": \"Take this guest off air?\",\n\t\"takeOffAirDescription\": \"They stay in the studio but stop publishing camera, mic, and screen.\",\n\t\"takeOffAirConfirm\": \"Take off air\",\n\t\"admitAsPanelist\": \"Admit as panelist\",\n\t\"admitAsAudience\": \"Admit as audience\",\n\t\"admitAllPanelists\": \"Admit all as panelists\",\n\t\"admitAllAudience\": \"Admit all as audience\",\n\t\"askToGoOnAir\": \"Ask to go on air\",\n\t\"stageRequested\": \"Asked to go on air\",\n\t\"stageRequests\": \"Stage requests\",\n\t\"people\": \"People\",\n\t\"panelists\": \"Panelists\",\n\t\"audience\": \"Audience\",\n\t\"noWaiting\": \"No one is waiting\",\n\t\"noPanelists\": \"No panelists\",\n\t\"noAudience\": \"No audience\",\n\t\"closePanel\": \"Close\",\n\t\"muteChat\": \"Mute chat\",\n\t\"allowChat\": \"Allow chat\",\n\t\"pin\": \"Pin on stage\",\n\t\"unpin\": \"Unpin\",\n\t\"pinnedToast\": \"You are pinned on stage\",\n\t\"unpinnedToast\": \"You are no longer pinned\",\n\t\"pinError\": \"Could not pin that participant\",\n\t\"kickTitle\": \"Remove this guest from the studio?\",\n\t\"kickDescription\": \"They will be disconnected.\",\n\t\"kickConfirm\": \"Remove\",\n\t\"kickError\": \"Could not remove that guest\",\n\t\"stageError\": \"Could not change stage access\",\n\t\"stageDisabled\": \"This guest link cannot join the stage.\",\n\t\"stageGrantNoEffect\": \"That guest stayed in the audience.\",\n\t\"stageOverflow\": \"+{count} more\",\n\t\"chatEveryone\": \"Everyone\",\n\t\"chatEdited\": \"Edited\",\n\t\"chatPinned\": \"Pinned message\",\n\t\"chatLoadOlder\": \"Load earlier messages\",\n\t\"chatRateLimited\": \"You are sending messages too quickly\",\n\t\"chatDelete\": \"Delete\",\n\t\"chatEdit\": \"Edit\",\n\t\"chatPin\": \"Pin message\",\n\t\"chatUnpin\": \"Unpin message\",\n\t\"chatSave\": \"Save\",\n\t\"waitingSkeleton\": \"Loading waiting room\"\n}\n","{\n\t\"live\": \"EN VIVO\",\n\t\"preview\": \"Vista previa\",\n\t\"waiting\": \"Esperando para unirte\",\n\t\"waitingHost\": \"Esperando a que el anfitrión te deje entrar\",\n\t\"admit\": \"Admitir\",\n\t\"deny\": \"Rechazar\",\n\t\"denied\": \"Invitado rechazado\",\n\t\"denyError\": \"No se pudo rechazar a ese invitado\",\n\t\"rejectedTitle\": \"El anfitrión rechazó tu solicitud\",\n\t\"rejectedDescription\": \"Puedes pedir unirte de nuevo si el estudio sigue abierto.\",\n\t\"rejectedAction\": \"Pedir unirme de nuevo\",\n\t\"kick\": \"Quitar\",\n\t\"camera\": \"Cámara\",\n\t\"screen\": \"Pantalla\",\n\t\"mute\": \"Silenciar\",\n\t\"unmute\": \"Activar audio\",\n\t\"copyLink\": \"Copiar enlace de invitado\",\n\t\"shareLink\": \"Compartir enlace de invitado\",\n\t\"shareGuestText\": \"Únete al estudio de {title}\",\n\t\"shareFailed\": \"No se pudo compartir el enlace de invitado\",\n\t\"copied\": \"Enlace de invitado copiado\",\n\t\"publish\": \"Salir al aire\",\n\t\"publishTitle\": \"¿Salir al aire?\",\n\t\"publishDescription\": \"Las y los espectadores verán este estudio en el reproductor público.\",\n\t\"publishConfirm\": \"Salir al aire\",\n\t\"publishPending\": \"Saliendo al aire…\",\n\t\"stop\": \"Detener\",\n\t\"stopTitle\": \"¿Detener esta transmisión?\",\n\t\"stopDescription\": \"Las y los espectadores perderán la señal en vivo. Los invitados se desconectarán.\",\n\t\"stopConfirm\": \"Detener transmisión\",\n\t\"fullscreen\": \"Pantalla completa\",\n\t\"publishError\": \"No se pudo salir al aire\",\n\t\"stopError\": \"No se pudo detener la transmisión\",\n\t\"published\": \"Saliendo al aire\",\n\t\"stopped\": \"Transmisión detenida\",\n\t\"cameraDevice\": \"Cámara\",\n\t\"micDevice\": \"Micrófono\",\n\t\"speakerDevice\": \"Altavoz\",\n\t\"preflightCamera\": \"Cámara\",\n\t\"preflightMic\": \"Micrófono\",\n\t\"knock\": \"{name} espera para unirse\",\n\t\"egressLost\": \"Reconectar estudio\",\n\t\"livestreamStarting\": \"Inicializando…\",\n\t\"livestreamSending\": \"Inicializando…\",\n\t\"livestreamInitializing\": \"Inicializando…\",\n\t\"livestreamRetry\": \"Reintentar salida\",\n\t\"livestreamError\": \"No se pudo iniciar la salida RTMP\",\n\t\"screenBusy\": \"Alguien más ya está compartiendo su pantalla\",\n\t\"endedTitle\": \"Esta sesión de estudio terminó\",\n\t\"endedDescription\": \"El anfitrión detuvo la transmisión.\",\n\t\"linkExpiredTitle\": \"Este enlace del estudio ya no es válido\",\n\t\"linkExpiredDescription\": \"No es válido o expiró. Abre el estudio de nuevo desde la transmisión para obtener un enlace nuevo.\",\n\t\"openFailedTitle\": \"No se pudo abrir el estudio\",\n\t\"openFailedDescription\": \"Algo salió mal al abrir el estudio.\",\n\t\"endedAction\": \"Volver\",\n\t\"rejoin\": \"Volver al estudio\",\n\t\"duplicateTitle\": \"El estudio ya está abierto\",\n\t\"duplicateDescription\": \"Este estudio ya está abierto en otra ventana.\",\n\t\"duplicateDescriptionNoTakeover\": \"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\"duplicateAction\": \"Continuar aquí\",\n\t\"duplicateTakenOver\": \"Esta sesión se movió a otra ventana.\",\n\t\"joinBusy\": \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\"cameraError\": \"No se pudo activar la cámara\",\n\t\"screenError\": \"No se pudo compartir la pantalla\",\n\t\"leave\": \"Salir del estudio\",\n\t\"leaveTitle\": \"¿Salir de este estudio?\",\n\t\"leaveDescription\": \"Te desconectarás del anfitrión y de los demás invitados.\",\n\t\"leaveConfirm\": \"Salir\",\n\t\"chat\": \"Chat\",\n\t\"chatSend\": \"Enviar\",\n\t\"chatPlaceholder\": \"Mensaje\",\n\t\"chatError\": \"No se pudo enviar el mensaje\",\n\t\"settings\": \"Ajustes\",\n\t\"settingsTitle\": \"Ajustes\",\n\t\"settingsDescription\": \"Nombre, audio y video\",\n\t\"guestName\": \"Tu nombre\",\n\t\"displayNameSave\": \"Guardar\",\n\t\"displayNameSaved\": \"Nombre actualizado\",\n\t\"displayNameError\": \"No se pudo actualizar tu nombre\",\n\t\"testSpeaker\": \"Probar\",\n\t\"testSpeakerError\": \"No se pudo reproducir la prueba de altavoz\",\n\t\"cameraOff\": \"Cámara apagada\",\n\t\"micLevel\": \"Nivel del micrófono\",\n\t\"share\": \"Copiar enlace del reproductor\",\n\t\"shareCopied\": \"Enlace del reproductor copiado\",\n\t\"stopCamera\": \"Apagar cámara\",\n\t\"stopScreen\": \"Dejar de compartir pantalla\",\n\t\"hostMutedYou\": \"El anfitrión te silenció\",\n\t\"hostStoppedYourCamera\": \"El anfitrión apagó tu cámara\",\n\t\"hostStoppedYourScreen\": \"El anfitrión detuvo tu compartir pantalla\",\n\t\"hostMediaError\": \"No se pudo cambiar el medio de ese invitado\",\n\t\"tileMenu\": \"Controles de invitado\",\n\t\"openPip\": \"Picture-in-picture\",\n\t\"closePip\": \"Cerrar picture-in-picture\",\n\t\"backToStudio\": \"Volver al estudio\",\n\t\"pipTitle\": \"Estudio\",\n\t\"pipError\": \"No se pudo abrir picture-in-picture\",\n\t\"screenUnsupportedDevice\": \"Compartir pantalla no está disponible en este dispositivo\",\n\t\"screenNotAllowed\": \"No tienes permiso para compartir tu pantalla\",\n\t\"askToShare\": \"Pedir compartir\",\n\t\"shareRequested\": \"Solicitado\",\n\t\"cancelShareRequest\": \"Cancelar solicitud\",\n\t\"shareRequestSent\": \"Le pediste al anfitrión compartir tu pantalla\",\n\t\"shareRequestFrom\": \"{name} quiere compartir su pantalla\",\n\t\"approve\": \"Aprobar\",\n\t\"shareApproved\": \"El anfitrión aprobó tu compartir pantalla\",\n\t\"shareDenied\": \"El anfitrión rechazó tu compartir pantalla\",\n\t\"shareRequestError\": \"No se pudo pedir compartir pantalla\",\n\t\"shareRequestTimeout\": \"El anfitrión no respondió\",\n\t\"shareRespondError\": \"No se pudo responder a esa solicitud\",\n\t\"goOffAir\": \"Salir del aire\",\n\t\"goOnAir\": \"Entrar al aire\",\n\t\"takeOffAir\": \"Quitar del aire\",\n\t\"bringOnAir\": \"Poner al aire\",\n\t\"offAir\": \"Fuera del aire\",\n\t\"offAirCount\": \"Fuera del aire ({count})\",\n\t\"offAirBanner\": \"Estás fuera de cámara. Tu micrófono sigue activo.\",\n\t\"offAirLastVisible\": \"Al menos una persona debe quedarse al aire mientras estás en vivo\",\n\t\"offAirHidden\": \"Fuera del aire\",\n\t\"offAirShown\": \"De nuevo al aire\",\n\t\"offAirError\": \"No se pudo cambiar el estado al aire\",\n\t\"takeOffAirTitle\": \"¿Quitar a este invitado del aire?\",\n\t\"takeOffAirDescription\": \"Sigue en el estudio, pero deja de publicar cámara, micrófono y pantalla.\",\n\t\"takeOffAirConfirm\": \"Quitar del aire\",\n\t\"admitAsPanelist\": \"Admitir como panelista\",\n\t\"admitAsAudience\": \"Admitir como audiencia\",\n\t\"admitAllPanelists\": \"Admitir a todos como panelistas\",\n\t\"admitAllAudience\": \"Admitir a todos como audiencia\",\n\t\"askToGoOnAir\": \"Pedir entrar al aire\",\n\t\"stageRequested\": \"Pidió entrar al aire\",\n\t\"stageRequests\": \"Solicitudes de escenario\",\n\t\"people\": \"Personas\",\n\t\"panelists\": \"Panelistas\",\n\t\"audience\": \"Audiencia\",\n\t\"noWaiting\": \"Nadie espera\",\n\t\"noPanelists\": \"Sin panelistas\",\n\t\"noAudience\": \"Sin audiencia\",\n\t\"closePanel\": \"Cerrar\",\n\t\"muteChat\": \"Silenciar chat\",\n\t\"allowChat\": \"Permitir chat\",\n\t\"pin\": \"Fijar en escenario\",\n\t\"unpin\": \"Desfijar\",\n\t\"pinnedToast\": \"Estás fijado en el escenario\",\n\t\"unpinnedToast\": \"Ya no estás fijado\",\n\t\"pinError\": \"No se pudo fijar a esa persona\",\n\t\"kickTitle\": \"¿Quitar a este invitado del estudio?\",\n\t\"kickDescription\": \"Se desconectará.\",\n\t\"kickConfirm\": \"Quitar\",\n\t\"kickError\": \"No se pudo quitar a ese invitado\",\n\t\"stageError\": \"No se pudo cambiar el acceso al escenario\",\n\t\"stageDisabled\": \"Este enlace de invitado no puede unirse al escenario.\",\n\t\"stageGrantNoEffect\": \"Ese invitado se quedó en la audiencia.\",\n\t\"stageOverflow\": \"+{count} más\",\n\t\"chatEveryone\": \"Todos\",\n\t\"chatEdited\": \"Editado\",\n\t\"chatPinned\": \"Mensaje fijado\",\n\t\"chatLoadOlder\": \"Cargar mensajes anteriores\",\n\t\"chatRateLimited\": \"Estás enviando mensajes demasiado rápido\",\n\t\"chatDelete\": \"Eliminar\",\n\t\"chatEdit\": \"Editar\",\n\t\"chatPin\": \"Fijar mensaje\",\n\t\"chatUnpin\": \"Desfijar mensaje\",\n\t\"chatSave\": \"Guardar\",\n\t\"waitingSkeleton\": \"Cargando sala de espera\"\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\n\nexport type SesionarioLobbyLabels = {\n\ttitle: string;\n\thint: string;\n\tname: string;\n\tjoin: string;\n\twaitingForHost: string;\n\tcamera: string;\n\tmic: string;\n\tcameraDevice?: string;\n\tmicDevice?: string;\n\tspeakerDevice?: string;\n\ttestSpeaker?: string;\n\ttestSpeakerError?: string;\n\tcameraOff?: string;\n\tjoinError: string;\n\tjoinBusy: string;\n\tendedTitle: string;\n};\n\nconst LOBBY: Record<LivoLocale, SesionarioLobbyLabels> = {\n\ten: {\n\t\ttitle: \"Get ready to join\",\n\t\thint: \"Set your camera and microphone, then join when you are ready.\",\n\t\tname: \"Your name\",\n\t\tjoin: \"Join\",\n\t\twaitingForHost: \"Waiting for the host to open the studio\",\n\t\tcamera: \"Camera\",\n\t\tmic: \"Microphone\",\n\t\tcameraDevice: \"Camera\",\n\t\tmicDevice: \"Microphone\",\n\t\tspeakerDevice: \"Speaker\",\n\t\ttestSpeaker: \"Test\",\n\t\ttestSpeakerError: \"Could not play the speaker test\",\n\t\tcameraOff: \"Camera is off\",\n\t\tjoinError: \"Could not join studio\",\n\t\tjoinBusy: \"Too many join attempts. Try again in a moment.\",\n\t\tendedTitle: \"This studio session has ended\",\n\t},\n\tes: {\n\t\ttitle: \"Prepárate para unirte\",\n\t\thint: \"Configura tu cámara y micrófono, y únete cuando estés listo.\",\n\t\tname: \"Tu nombre\",\n\t\tjoin: \"Unirme\",\n\t\twaitingForHost: \"Esperando a que el anfitrión abra el estudio\",\n\t\tcamera: \"Cámara\",\n\t\tmic: \"Micrófono\",\n\t\tcameraDevice: \"Cámara\",\n\t\tmicDevice: \"Micrófono\",\n\t\tspeakerDevice: \"Altavoz\",\n\t\ttestSpeaker: \"Probar\",\n\t\ttestSpeakerError: \"No se pudo reproducir la prueba de altavoz\",\n\t\tcameraOff: \"Cámara apagada\",\n\t\tjoinError: \"No se pudo unir al estudio\",\n\t\tjoinBusy: \"Demasiados intentos. Prueba de nuevo en un momento.\",\n\t\tendedTitle: \"Esta sesión de estudio terminó\",\n\t},\n};\n\nexport type SesionarioWindowGateLabels = {\n\tduplicateTitle: string;\n\tduplicateDescription: string;\n\tduplicateDescriptionNoTakeover: string;\n\tduplicateTakenOver: string;\n\tduplicateAction: string;\n};\n\nconst WINDOW_GATE: Record<LivoLocale, SesionarioWindowGateLabels> = {\n\ten: {\n\t\tduplicateTitle: \"Studio is already open\",\n\t\tduplicateDescription: \"This studio is already open in another window.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"This studio is already open in another window. Close that window to continue here.\",\n\t\tduplicateTakenOver: \"This session moved to another window.\",\n\t\tduplicateAction: \"Continue here\",\n\t},\n\tes: {\n\t\tduplicateTitle: \"El estudio ya está abierto\",\n\t\tduplicateDescription: \"Este estudio ya está abierto en otra ventana.\",\n\t\tduplicateDescriptionNoTakeover:\n\t\t\t\"Este estudio ya está abierto en otra ventana. Cierra esa ventana para continuar aquí.\",\n\t\tduplicateTakenOver: \"Esta sesión se movió a otra ventana.\",\n\t\tduplicateAction: \"Continuar aquí\",\n\t},\n};\n\nexport type SesionarioPlayerLabels = {\n\tplay: string;\n\tpause: string;\n\tmute: string;\n\tunmute: string;\n\tenterFullscreen: string;\n\texitFullscreen: string;\n\tpictureInPicture: string;\n\tcast: string;\n\tsettings: string;\n\tmore: string;\n\tback: string;\n\tquality: string;\n\tauto: string;\n\tspeed: string;\n\tlive: string;\n\tgoLive: string;\n\ttapToUnmute: string;\n\tloading: string;\n\twaiting: string;\n\tretry: string;\n\terrorUnavailable: string;\n\terrorNetwork: string;\n\terrorMedia: string;\n\terrorUnsupported: string;\n\terrorGeneric: string;\n\tcaptions: string;\n\tcaptionsOff: string;\n\tcaptionsEn: string;\n\tcaptionsEs: string;\n\tcaptionsPt: string;\n};\n\nconst PLAYER: Record<LivoLocale, SesionarioPlayerLabels> = {\n\ten: {\n\t\tplay: \"Play\",\n\t\tpause: \"Pause\",\n\t\tmute: \"Mute\",\n\t\tunmute: \"Unmute\",\n\t\tenterFullscreen: \"Fullscreen\",\n\t\texitFullscreen: \"Exit fullscreen\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Cast\",\n\t\tsettings: \"Settings\",\n\t\tmore: \"More\",\n\t\tback: \"Back\",\n\t\tquality: \"Quality\",\n\t\tauto: \"Auto\",\n\t\tspeed: \"Speed\",\n\t\tlive: \"LIVE\",\n\t\tgoLive: \"Go to live\",\n\t\ttapToUnmute: \"Tap to unmute\",\n\t\tloading: \"Loading\",\n\t\twaiting: \"Waiting\",\n\t\tretry: \"Retry\",\n\t\terrorUnavailable: \"This video is unavailable\",\n\t\terrorNetwork: \"Network error. Try again.\",\n\t\terrorMedia: \"Could not play this video\",\n\t\terrorUnsupported: \"This video cannot be played on this device\",\n\t\terrorGeneric: \"Playback error\",\n\t\tcaptions: \"Captions\",\n\t\tcaptionsOff: \"Off\",\n\t\tcaptionsEn: \"English\",\n\t\tcaptionsEs: \"Spanish\",\n\t\tcaptionsPt: \"Portuguese\",\n\t},\n\tes: {\n\t\tplay: \"Reproducir\",\n\t\tpause: \"Pausar\",\n\t\tmute: \"Silenciar\",\n\t\tunmute: \"Activar audio\",\n\t\tenterFullscreen: \"Pantalla completa\",\n\t\texitFullscreen: \"Salir de pantalla completa\",\n\t\tpictureInPicture: \"Picture-in-picture\",\n\t\tcast: \"Transmitir\",\n\t\tsettings: \"Ajustes\",\n\t\tmore: \"Más\",\n\t\tback: \"Atrás\",\n\t\tquality: \"Calidad\",\n\t\tauto: \"Automática\",\n\t\tspeed: \"Velocidad\",\n\t\tlive: \"EN VIVO\",\n\t\tgoLive: \"Ir al vivo\",\n\t\ttapToUnmute: \"Toca para activar el audio\",\n\t\tloading: \"Cargando\",\n\t\twaiting: \"Esperando\",\n\t\tretry: \"Reintentar\",\n\t\terrorUnavailable: \"Este video no está disponible\",\n\t\terrorNetwork: \"Error de red. Inténtalo de nuevo.\",\n\t\terrorMedia: \"No se pudo reproducir este video\",\n\t\terrorUnsupported: \"Este video no se puede reproducir en este dispositivo\",\n\t\terrorGeneric: \"Error de reproducción\",\n\t\tcaptions: \"Subtítulos\",\n\t\tcaptionsOff: \"Desactivados\",\n\t\tcaptionsEn: \"Inglés\",\n\t\tcaptionsEs: \"Español\",\n\t\tcaptionsPt: \"Portugués\",\n\t},\n};\n\nexport type SesionarioWaitingLabels = {\n\twaiting: string;\n\tstartingSoon: string;\n\tvodWaiting: string;\n\tavailableSoon: string;\n\tloading: string;\n\tstartsIn: (time: string) => string;\n\tavailableIn: (time: string) => string;\n};\n\nconst WAITING: Record<LivoLocale, SesionarioWaitingLabels> = {\n\ten: {\n\t\twaiting: \"Waiting\",\n\t\tstartingSoon: \"Starting soon\",\n\t\tvodWaiting: \"Waiting for this video to become available.\",\n\t\tavailableSoon: \"Available soon\",\n\t\tloading: \"Loading playback\",\n\t\tstartsIn: (time) => `Starts in ${time}`,\n\t\tavailableIn: (time) => `Available in ${time}`,\n\t},\n\tes: {\n\t\twaiting: \"Esperando\",\n\t\tstartingSoon: \"Empieza pronto\",\n\t\tvodWaiting: \"Esperando a que este video esté disponible.\",\n\t\tavailableSoon: \"Disponible pronto\",\n\t\tloading: \"Cargando reproducción\",\n\t\tstartsIn: (time) => `Empieza en ${time}`,\n\t\tavailableIn: (time) => `Disponible en ${time}`,\n\t},\n};\n\nexport type SesionarioCommunityLabels = {\n\tcomments: string;\n\tqa: string;\n\tcomposer: string;\n\tquestionComposer: string;\n\treply: string;\n\tsend: string;\n\tname: string;\n\tnamePlaceholder: string;\n\tpostingAs: string;\n\teditName: string;\n\tsaveName: string;\n\tclosed: string;\n\tqaClosed: string;\n\temptyComments: string;\n\temptyQuestions: string;\n\tjumpToLatest: string;\n\tpinned: string;\n\tlive: string;\n\tpin: string;\n\tunpin: string;\n\thide: string;\n\tunhide: string;\n\tremove: string;\n\thighlight: string;\n\tdismiss: string;\n\tanswer: string;\n\tupvote: string;\n\tsettings: string;\n\tcommentsEnabled: string;\n\tcommentsAfterEnd: string;\n\tqaEnabled: string;\n\tcommentsHelp: string;\n\tcommentsAfterEndHelp: string;\n\tqaHelp: string;\n};\n\nconst COMMUNITY: Record<LivoLocale, SesionarioCommunityLabels> = {\n\ten: {\n\t\tcomments: \"Comments\",\n\t\tqa: \"Q&A\",\n\t\tcomposer: \"Write a comment\",\n\t\tquestionComposer: \"Ask a question\",\n\t\treply: \"Reply\",\n\t\tsend: \"Send\",\n\t\tname: \"Display name\",\n\t\tnamePlaceholder: \"Your name\",\n\t\tpostingAs: \"Posting as {name}\",\n\t\teditName: \"Edit name\",\n\t\tsaveName: \"Save\",\n\t\tclosed: \"Comments are closed\",\n\t\tqaClosed: \"Q&A is closed\",\n\t\temptyComments: \"No comments yet\",\n\t\temptyQuestions: \"No questions yet\",\n\t\tjumpToLatest: \"Jump to latest\",\n\t\tpinned: \"Pinned\",\n\t\tlive: \"Live\",\n\t\tpin: \"Pin\",\n\t\tunpin: \"Unpin\",\n\t\thide: \"Hide\",\n\t\tunhide: \"Unhide\",\n\t\tremove: \"Delete\",\n\t\thighlight: \"Highlight\",\n\t\tdismiss: \"Dismiss\",\n\t\tanswer: \"Answer\",\n\t\tupvote: \"Upvote\",\n\t\tsettings: \"Community\",\n\t\tcommentsEnabled: \"Comments\",\n\t\tcommentsAfterEnd: \"Keep comments open after the event\",\n\t\tqaEnabled: \"Live Q&A\",\n\t\tcommentsHelp: \"Viewers can comment on this video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"When off, comments close as soon as the live event ends.\",\n\t\tqaHelp: \"Questions are only accepted while the event is live.\",\n\t},\n\tes: {\n\t\tcomments: \"Comentarios\",\n\t\tqa: \"Preguntas\",\n\t\tcomposer: \"Escribe un comentario\",\n\t\tquestionComposer: \"Haz una pregunta\",\n\t\treply: \"Responder\",\n\t\tsend: \"Enviar\",\n\t\tname: \"Nombre para mostrar\",\n\t\tnamePlaceholder: \"Tu nombre\",\n\t\tpostingAs: \"Publicando como {name}\",\n\t\teditName: \"Editar nombre\",\n\t\tsaveName: \"Guardar\",\n\t\tclosed: \"Los comentarios están cerrados\",\n\t\tqaClosed: \"Las preguntas están cerradas\",\n\t\temptyComments: \"Aún no hay comentarios\",\n\t\temptyQuestions: \"Aún no hay preguntas\",\n\t\tjumpToLatest: \"Ir al más reciente\",\n\t\tpinned: \"Fijado\",\n\t\tlive: \"En vivo\",\n\t\tpin: \"Fijar\",\n\t\tunpin: \"Desfijar\",\n\t\thide: \"Ocultar\",\n\t\tunhide: \"Mostrar\",\n\t\tremove: \"Eliminar\",\n\t\thighlight: \"Destacar\",\n\t\tdismiss: \"Descartar\",\n\t\tanswer: \"Responder\",\n\t\tupvote: \"Votar\",\n\t\tsettings: \"Comunidad\",\n\t\tcommentsEnabled: \"Comentarios\",\n\t\tcommentsAfterEnd: \"Mantener comentarios abiertos después del evento\",\n\t\tqaEnabled: \"Preguntas en vivo\",\n\t\tcommentsHelp: \"Las y los espectadores pueden comentar este video.\",\n\t\tcommentsAfterEndHelp:\n\t\t\t\"Si está desactivado, los comentarios se cierran al terminar el evento en vivo.\",\n\t\tqaHelp: \"Las preguntas solo se aceptan mientras el evento está en vivo.\",\n\t},\n};\n\nexport function sesionarioPlayerLabels(\n\tlocale?: string,\n): SesionarioPlayerLabels {\n\treturn PLAYER[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWaitingLabels(\n\tlocale?: string,\n): SesionarioWaitingLabels {\n\treturn WAITING[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioCommunityLabels(\n\tlocale?: string,\n): SesionarioCommunityLabels {\n\treturn COMMUNITY[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioWindowGateLabels(\n\tlocale?: string,\n): SesionarioWindowGateLabels {\n\treturn WINDOW_GATE[resolveLivoLocale(locale)];\n}\n\nexport function sesionarioLobbyLabels(locale?: string): SesionarioLobbyLabels {\n\treturn LOBBY[resolveLivoLocale(locale)];\n}\n","import type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport en from \"./studio-labels-en.json\";\nimport es from \"./studio-labels-es.json\";\n\nconst catalogs: Record<LivoLocale, Record<string, string>> = {\n\ten: en as Record<string, string>,\n\tes: es as Record<string, string>,\n};\n\nexport function interpolateSesionarioStudioLabel(\n\tkey: string,\n\tvalues?: Record<string, string>,\n\tlocale: LivoLocale = \"es\",\n): string {\n\tlet text = catalogs[locale][key] ?? catalogs.en[key] ?? key;\n\tif (values) {\n\t\tfor (const [name, value] of Object.entries(values)) {\n\t\t\ttext = text.replaceAll(`{${name}}`, value);\n\t\t}\n\t}\n\treturn text;\n}\n\n/** Alias used by unit tests and local copies in admin/app. */\nexport const interpolateStudioLabel = interpolateSesionarioStudioLabel;\n\n/**\n * Catalog interpolator for `@livo-tv/sdk/studio` `studioRoomLabels`.\n * Consuming apps wrap: `studioRoomLabels(sesionarioStudioLabelFn(\"es\"))`.\n */\nexport function sesionarioStudioLabelFn(locale?: string) {\n\tconst resolved = resolveLivoLocale(locale);\n\treturn (key: string, values?: Record<string, string>) =>\n\t\tinterpolateSesionarioStudioLabel(key, values, resolved);\n}\n\nexport function sesionarioStudioLabels(locale?: string) {\n\treturn sesionarioStudioLabelFn(locale);\n}\n\nexport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\n","/**\n * Shared EmbedTheme for native `@livo-tv/sdk` surfaces (LivoPlayer, studio).\n * Built from Sesionario shadcn CSS variables so admin and app match the shell.\n */\nexport type SesionarioEmbedTheme = {\n\tprimary: string;\n\taccent: string;\n\tbackground: string;\n\tforeground: string;\n\tradius: string;\n\tfontFamily: string;\n\tmode?: \"light\" | \"dark\";\n};\n\nconst FALLBACK: SesionarioEmbedTheme = {\n\tbackground: \"oklch(1 0 0)\",\n\tforeground: \"oklch(0.145 0 0)\",\n\tprimary: \"oklch(0.4824 0.1149 242.2039)\",\n\taccent: \"oklch(0.4824 0.1149 242.2039)\",\n\tradius: \"0.625rem\",\n\tfontFamily: \"ui-sans-serif, system-ui, sans-serif\",\n};\n\nfunction cssVar(name: string, fallback: string): string {\n\tif (typeof document === \"undefined\") return fallback;\n\tconst value = getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim();\n\treturn value || fallback;\n}\n\nexport function sesionarioEmbedTheme(): SesionarioEmbedTheme {\n\tconst dark =\n\t\ttypeof document !== \"undefined\" &&\n\t\tdocument.documentElement.classList.contains(\"dark\");\n\treturn {\n\t\tbackground: cssVar(\"--background\", FALLBACK.background),\n\t\tforeground: cssVar(\"--foreground\", FALLBACK.foreground),\n\t\tprimary: cssVar(\"--primary\", FALLBACK.primary),\n\t\taccent: cssVar(\"--accent\", FALLBACK.accent),\n\t\tradius: cssVar(\"--radius\", FALLBACK.radius),\n\t\tfontFamily: cssVar(\"--font-sans\", FALLBACK.fontFamily),\n\t\t...(dark ? { mode: \"dark\" as const } : {}),\n\t};\n}\n","import { sesionarioEmbedTheme } from \"./embed-theme\";\nimport type { LivoLocale } from \"./locale\";\nimport { resolveLivoLocale } from \"./locale\";\nimport {\n\tsesionarioCommunityLabels,\n\tsesionarioLobbyLabels,\n\tsesionarioPlayerLabels,\n\tsesionarioWaitingLabels,\n\tsesionarioWindowGateLabels,\n} from \"./catalogs\";\nimport { sesionarioStudioLabelFn } from \"./studio-labels\";\n\nexport function livoLabels(locale?: string) {\n\tconst resolved: LivoLocale = resolveLivoLocale(locale);\n\treturn {\n\t\tlocale: resolved,\n\t\ttheme: sesionarioEmbedTheme(),\n\t\tstudioLabelFn: sesionarioStudioLabelFn(resolved),\n\t\tlobbyLabels: sesionarioLobbyLabels(resolved),\n\t\twindowGateLabels: sesionarioWindowGateLabels(resolved),\n\t\tplayerLabels: sesionarioPlayerLabels(resolved),\n\t\twaitingLabels: sesionarioWaitingLabels(resolved),\n\t\tcommunityLabels: sesionarioCommunityLabels(resolved),\n\t};\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sesionario/blocks",
3
- "version": "1.37.0",
3
+ "version": "1.38.0-rc.1",
4
4
  "description": "Shared UI components for Sesionario applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",