1const e={loadingInvitation:"Cargando invitación...",oops:"¡Vaya!",goToBoards:"Ir a los tableros",loginRequired:"Inicio de sesión requerido",loginRequiredMessage:"Necesitas iniciar sesión o crear una cuenta para aceptar esta invitación.",invitedToPrefix:"Te han invitado a",loginToContinue:"Inicia sesión para continuar",welcome:"¡Bienvenido!",redirecting:"Te estamos redirigiendo al tablero...",invitationExpired:"Invitación caducada",invitationExpiredMessage:"Esta invitación ha caducado. Pide al propietario del tablero que te envÃe una nueva invitación.",alreadyAccepted:"Ya aceptada",alreadyAcceptedMessage:"Esta invitación ya ha sido aceptada.",boardInvitation:"Invitación al tablero",hasInvitedYouToJoin:"te ha invitado a unirte a",invitedAsPrefix:"Se te ha invitado como",accepting:"Aceptando...",acceptInvitation:"Aceptar invitación",joinSuccess:"¡Te has unido al tablero correctamente!",errors:{loadFailed:"No se pudo cargar la invitación",notFound:"No se ha encontrado esta invitación. Es posible que se haya cancelado o que ya se haya utilizado.",acceptFailed:"No se pudo aceptar la invitación"}},a={back:"â Atrás",boardFallback:"Tablero",readOnly:"Solo lectura",owner:"Propietario: {email}",columnCount:"{count} columnas",cardCount:"{count} tarjetas",loading:"Cargando...",unknownTask:"Desconocido",noCards:"Sin tarjetas",errors:{loadFailed:"No se pudo cargar el tablero"}},o={backToUsers:"â Todos los usuarios",userBoardsTitle:"Tableros del usuario",signedUp:"Registrado el {date}",loading:"Cargando...",noBoards:"Este usuario no tiene tableros.",columnCount:"{count} columnas",cardCount:"{count} tarjetas",created:"Creado el {date}",updated:"Actualizado el {date}",errors:{loadFailed:"No se pudieron cargar los datos"}},r={title:"Administración",loading:"Cargando...",metricUsers:"Usuarios",metricBoards:"Tableros",metricTodos:"Tareas",colEmail:"Correo electrónico",colName:"Nombre",colTier:"Plan",colStatus:"Estado",colBoards:"Tableros",colTodos:"Tareas",colSignedUp:"Registro",colIp:"IP",resetPassword:"Restablecer contraseña",resetLabel:"Restablecer contraseña de",newPasswordPlaceholder:"Nueva contraseña",confirmPasswordPlaceholder:"Confirmar contraseña",saving:"Guardando...",boardsCount:"{count} tableros",todosCount:"{count} tareas",resetSuccess:"Contraseña restablecida correctamente",tierFree:"Gratis",errors:{loadFailed:"No se pudieron cargar los usuarios",passwordMismatch:"Las contraseñas no coinciden",passwordTooShort:"La contraseña debe tener al menos 6 caracteres",resetFailed:"No se pudo restablecer la contraseña"}},i={title:"Proveedores de IA",description:"Añade tus claves de API para habilitar la asistencia de IA en los tableros Kanban. Tus claves se cifran y se almacenan de forma segura.",loading:"Cargando proveedores de IA...",configured:"Configurado",notConfigured:"Sin configurar",remove:"Quitar",saving:"Guardando...",modelLabel:"Modelo",selectModel:"Selecciona un modelo",customModelOption:"Modelo personalizado...",customModelPlaceholder:"Introduce el nombre del modelo personalizado",customModelWarning:"Los modelos personalizados pueden no ser compatibles con todas las funciones.",saveModel:"Guardar modelo",lastUpdated:"Ãltima actualización: {date}",removeDialogTitle:"Quitar clave de API",removeDialogMessage:"¿Seguro que quieres quitar tu clave de API de {provider}?",errors:{loadFailed:"No se pudieron cargar los proveedores de IA",saveKeyFailed:"No se pudo guardar la clave de API de {provider}",removeKeyFailed:"No se pudo quitar la clave de API de {provider}",saveModelFailed:"No se pudo guardar la selección de modelo de {provider}"}},t={pageTitle:"Documentación de la API de TaskLeef",subtitle:"API REST para gestionar tareas, proyectos y tableros Kanban",lastUpdatedLabel:"Ãltima actualización:",nav:{claudeCode:"Claude Code",claudeAiCoWork:"Claude.ai / CoWork",authentication:"Autenticación",todos:"Tareas",projects:"Proyectos",boards:"Tableros",columns:"Columnas",cards:"Tarjetas",tags:"Etiquetas",comments:"Comentarios"},domains:{todos:"Tareas",boards:"Tableros",columns:"Columnas",cards:"Tarjetas",members:"Miembros",tags:"Etiquetas",comments:"Comentarios"},toolCounts:{five:"5 herramientas",six:"6 herramientas",seven:"7 herramientas",thirteen:"13 herramientas",twenty:"20 herramientas"},fields:{fieldHeader:"Campo",typeHeader:"Tipo",requiredHeader:"Obligatorio",descriptionHeader:"Descripción"},comparison:{featureHeader:"Función",claudeCodeHeader:"Claude Code (CLI)",claudeAiHeader:"Claude.ai / CoWork",setupRow:"Configuración",setupCode:"Clave de API en la CLI",setupAi:"OAuth en el navegador",authRow:"Autenticación",authAi:"Token de acceso OAuth 2.1 por usuario",whereRow:"Dónde se ejecuta",whereCode:"Terminal local",whereAi:"Nube de Claude.ai / CoWork",tokenRow:"Ciclo de vida del token",tokenCode:"Rotación manual en Ajustes",tokenAi:"Renovación automática, revocable en Ajustes",multiUserRow:"Multiusuario",multiUserCode:"Una clave por máquina",multiUserAi:"Cada usuario inicia sesión por separado"},mcp:{heading:"Integración con Claude Code",quickStartHeading:"Inicio rápido",restartStep:"Reinicia Claude Code",manualConfigHeading:"Alternativa: configuración manual",availableToolsHeading:"Herramientas disponibles",exampleUsageHeading:"Ejemplo de uso",exampleUsageIntro:"Una vez configurado, puedes pedir a Claude que gestione tus tareas con lenguaje natural:",claudeDesktopHeading:"Claude Desktop",claudeDesktopIntro:"Para Claude Desktop, añádelo a tu archivo de configuración de MCP:",examples:{showTodos:'"Muéstrame mis tareas de esta semana"',createTodo:'"Crea una tarea para revisar el informe trimestral antes del viernes [trabajo]"',moveTask:'"Mueve la tarea de autenticación a En curso en el tablero del sprint"',addComment:'"Añade un comentario a la tarea de refactorización de la API diciendo que he empezado la revisión"',tagTodos:`"Etiqueta todas mis tareas de reuniones con la etiqueta 'reuniones'"`,createBoard:`"Crea un tablero nuevo llamado 'Planificación Q2'"`}},cowork:{heading:"Claude.ai y Claude CoWork",setupHeading:"Configuración",whatClaudeCanDoHeading:"Lo que Claude puede hacer",toolSafetyHeading:"Anotaciones de seguridad de las herramientas",toolSafetyIntro:"Cada herramienta que expone el conector está anotada para Claude, de modo que pueda avisarte antes de realizar acciones destructivas:",comparisonHeading:"Claude Code vs. Claude.ai / CoWork",revokingHeading:"Revocar el acceso",revokingBody:"Para desconectar una sesión de Claude de TaskLeef, elimina el conector dentro de Claude. Los tokens de actualización también se rotan en cada uso, de modo que un token caducado de una sesión cerrada no puede reutilizarse.",privacyHeading:"Privacidad",examples:{whatsOnMyPlate:'"¿Qué tengo que hacer esta semana?"',createBoard:`"Crea un tablero llamado 'Lanzamiento Q3' y añade columnas para Pendientes, En curso y Hecho."`,moveTask:'"Mueve la tarea de refactorización de la API a En curso en mi tablero del sprint."',tagTodos:`"Etiqueta con la etiqueta de reuniones todas las tareas que tengan 'reunión' en el tÃtulo."`,summarizeInbox:'"Resume las tareas abiertas de mi Bandeja de entrada y sugiere prioridades para mañana."',addComment:'"Añade un comentario al ticket de despliegue diciendo que me encargo de él después de comer."'},safety:{readOnly:"Solo lectura",mutating:"Con cambios",destructive:"Destructiva"}},auth:{heading:"Autenticación",intro:"La API admite dos métodos de autenticación:",apiKeyHeading:"1. Autenticación con clave de API (recomendado)",jwtHeading:"2. Token de portador JWT",jwtIntro:"Para a
1plicaciones basadas en navegador, autentÃcate mediante el endpoint de inicio de sesión:",jwtThenInclude:"Luego incluye el token en las siguientes solicitudes:"},todos:{heading:"Tareas",getAll:"Obtener todas las tareas del usuario autenticado.",getById:"Obtener una tarea concreta por su ID.",getInbox:"Obtener las tareas que no están asignadas a ningún proyecto.",create:"Crear una tarea nueva.",requestBodyHeading:"Cuerpo de la solicitud",update:"Actualizar una tarea existente.",toggleComplete:"Alternar el estado de finalización de la tarea.",delete:"Eliminar una tarea.",createSubtask:"Crear una subtarea dentro de una tarea principal."},projects:{heading:"Proyectos",list:"Listar todos los proyectos del usuario autenticado.",create:"Crear un proyecto nuevo.",getById:"Obtener un proyecto concreto con sus tareas.",update:"Actualizar un proyecto.",delete:"Eliminar un proyecto (las tareas se trasladan a la bandeja de entrada)."},boards:{heading:"Tableros Kanban",list:"Listar todos los tableros a los que el usuario tiene acceso.",create:"Crear un tablero nuevo.",getById:"Obtener un tablero concreto.",getColumns:"Obtener todas las columnas de un tablero.",getTodos:"Obtener todas las tareas que tienen tarjetas en este tablero."},columns:{heading:"Columnas",create:"Crear una columna nueva en un tablero.",update:"Actualizar una columna (tÃtulo, lÃmite WIP, criterios de finalización).",getCards:"Obtener todas las tarjetas de una columna.",delete:"Eliminar una columna."},cards:{heading:"Tarjetas",intro:"Las tarjetas representan tareas en un tablero Kanban. Una tarea puede tener tarjetas en varios tableros.",create:"Crear una tarjeta para una tarea en una columna.",update:"Actualizar una tarjeta (mover a otra columna o subcolumna).",subColumnHeading:"Valores de subcolumna",delete:"Quitar una tarjeta del tablero (no elimina la tarea)."},tags:{heading:"Etiquetas",list:"Listar todas las etiquetas del usuario autenticado.",create:"Crear una etiqueta nueva.",update:"Actualizar una etiqueta.",delete:"Eliminar una etiqueta."},comments:{heading:"Comentarios",list:"Obtener todos los comentarios de una tarea.",create:"Añadir un comentario a una tarea.",update:"Actualizar un comentario.",delete:"Eliminar un comentario."},responses:{heading:"Formato de respuesta",successHeading:"Respuestas correctas",successIntro:"Las solicitudes correctas devuelven JSON con los datos solicitados:",errorHeading:"Respuestas de error",errorIntro:"Los errores devuelven los códigos de estado HTTP correspondientes:"}},n={heading:"Claves de API",descriptionIntro:"Las claves de API te permiten acceder a tus tareas desde la lÃnea de comandos u otras integraciones. Consulta la",apiDocumentation:"documentación de la API",descriptionOutro:"para ver ejemplos de uso.",loading:"Cargando...",noKeys:"Aún no hay claves de API. Crea una para empezar.",createdLabel:"Creada: {date}",revoke:"Revocar",keyNamePlaceholder:"Nombre de la clave (p. ej., CLI, Cursor AI)",createKeyButton:"Crear clave de API",saveKeyWarningTitle:"¡Guarda esta clave ahora!",saveKeyWarningBody:"No podrás volver a verla.",copy:"Copiar",revokeDialogTitle:"Revocar clave de API",revokeDialogMessage:"¿Seguro que quieres revocar la clave de API "{name}"? Cualquier integración que la utilice dejará de funcionar.",copiedToClipboard:"¡Copiado al portapapeles!",errors:{loadFailed:"No se pudieron cargar las claves de API",createFailed:"No se pudo crear la clave de API",revokeFailed:"No se pudo revocar la clave de API"}},s={heading:"Un complemento, no un clon",description:"No todas las tareas empiezan en tu escritorio. La app de Taskleef para iOS está pensada para la captura rápida y la organización ligera: añade una tarea desde cualquier sitio y se sincroniza con tu tablero en tiempo real. La gestión de proyectos a fondo se queda en la web, que es su sitio.",seeAllFeatures:"Ver todas las funciones de iOS",phoneAlt:"Taskleef en iPhone",downloadBadge:"Descargar en la App Store",googlePlayBadge:"Disponible en Google Play"},d={signingIn:"Iniciando sesión..."},l={moveToFolder:"Mover a carpeta",deleteBoard:"Eliminar tablero",mergeHere:"⤵ Combinar aquÃ",removeFromFolder:"Quitar de la carpeta",newFolder:"+ Nueva carpetaâ¦"},c={title:"Miembros del tablero",addMember:"Añadir miembro",emailPlaceholder:"Dirección de correo electrónico",roleEditor:"Editor",roleViewer:"Lector",roleOwner:"Propietario",adding:"Añadiendo...",sending:"Enviando...",sendInvitation:"Enviar invitación",viewPlans:"Ver planes",pendingInvitations:"Invitaciones pendientes ({count})",invitedOn:"Invitado el {date}",cancelInvitationTitle:"Cancelar invitación",members:"Miembros ({count})",loadingMembers:"Cargando miembros...",noMembers:"Aún no hay miembros",joinedOn:"Se unió el {date}",removeMemberTitle:"Quitar miembro",leaveBoard:"Abandonar tablero",removeMemberConfirmTitle:"Quitar miembro",removeMemberConfirmMessage:"¿Seguro que quieres quitar a {email} de este tablero?",removeConfirmAction:"Quitar",leaveBoardConfirmTitle:"Abandonar tablero",leaveBoardConfirmMessage:"¿Seguro que quieres abandonar este tablero? Perderás el acceso a menos que te vuelvan a invitar.",leaveConfirmAction:"Abandonar",errors:{loadFailed:"No se pudieron cargar los miembros",addFailed:"No se pudo añadir el miembro",userNotFoundPrompt:"Usuario no encontrado. ¿Quieres enviar una invitación?",sendInvitationFailed:"No se pudo enviar la invitación",cancelInvitationFailed:"No se pudo cancelar la invitación",updateRoleFailed:"No se pudo actualizar el rol",removeMemberFailed:"No se pudo quitar el miembro",leaveBoardFailed:"No se pudo abandonar el tablero"}},u={back:"â Atrás",boardTitleEditHint:"Haz doble clic para editar",boardTitleLoading:"Cargando...",showDeferred:"Mostrar aplazadas",members:"Miembros",addColumn:"+ Añadir columna",takeTour:"Hacer un recorrido",quickAddPlaceholder:"Añade rápidamente una tarea a este tablero...",loadingBoard:"Cargando tablero...",noColumnsTitle:"Aún no hay columnas",noColumnsDescription:"Añade tu primera columna para empezar a organizar tus tareas.",addFirstC
1olumn:"+ Añadir tu primera columna",addColumnModalTitle:"Añadir columna",columnTitlePlaceholder:"TÃtulo de la columna",addColumnSubmit:"Añadir columna",deleteTodoTitle:"Eliminar tarea",deleteTodoMessage:"¿Seguro que quieres eliminar "{title}"? Esta acción no se puede deshacer.",removeCardTitle:"Quitar tarjeta",removeCardMessage:"¿Seguro que quieres quitar esta tarjeta del tablero? La tarea subyacente se conservará.",remove:"Quitar",errors:{loadFailed:"No se pudo cargar el tablero",reloadTodosFailed:"No se pudieron recargar las tareas",notificationPermissionDenied:"Permiso de notificaciones del navegador denegado. Puedes habilitarlo en la configuración de tu navegador.",subscriptionFailed:"No se pudo actualizar la suscripción"}},m={dismiss:"Descartar",title:"Tableros Kanban",newBoard:"+ Nuevo tablero",newFolder:"+ Nueva carpeta",boardNamePlaceholder:"Nombre del tablero...",folderNamePlaceholder:"Nombre de la carpeta...",searchPlaceholder:"Buscar tableros...",viewPlans:"Ver planes",loadingBoards:"Cargando tableros...",folderEmpty:"Arrastra tableros aquà o usa el menú ⥠de un tablero.",ungrouped:"Sin agrupar",emptyNoBoards:"Aún no hay tableros. ¡Crea uno para empezar!",emptyNoMatch:"Ningún tablero coincide con tu búsqueda.",renameFolderPrompt:"Renombrar carpeta",movedToFolder:'Se movió "{board}" a "{folder}".',movedOutOfFolder:'Se sacó "{board}" de su carpeta.',merged:'Se combinó "{source}" en "{target}".',mergeMovedCard:"Se movió {count} tarjeta",mergeMovedCards:"Se movieron {count} tarjetas",mergeSkipped:", se omitieron {count} que ya estaban allÃ",subscriptionClaimed:"¡Suscripción activada! Ahora tienes el plan {tier}.",couldNotClaimSubscription:"No se pudo activar la suscripción",subscriptionActive:"¡Tu suscripción ya está activa!",deleteBoardTitle:"Eliminar tablero",deleteBoardMessage:"¿Seguro que quieres eliminar "{title}"? Se quitarán todas las tarjetas de este tablero. Esta acción no se puede deshacer.",deleteFolderTitle:"¿Eliminar carpeta?",deleteFolderMessage:"¿Eliminar la carpeta "{name}"? Sus tableros volverán a Sin agrupar; no se elimina ningún tablero.",deleteFolderConfirm:"Eliminar carpeta",mergeBoardsTitle:"¿Combinar tableros?",mergeBoardsMessage:"¿Mover todas las tarjetas de "{source}" a "{target}" (emparejadas por columna) y luego eliminar "{source}"? Esto no se puede deshacer.",mergeConfirm:"Combinar",errors:{loadFailed:"No se pudieron cargar los tableros",createBoardFailed:"No se pudo crear el tablero",createFolderFailed:"No se pudo crear la carpeta",renameFolderFailed:"No se pudo renombrar la carpeta",deleteFolderFailed:"No se pudo eliminar la carpeta",moveBoardFailed:"No se pudo mover el tablero",mergeBoardsFailed:"No se pudieron combinar los tableros"}},p={heading:"El único gestor de tareas que tu asistente de IA puede usar",description:"Terminal, editor o navegador: Taskleef te acompaña dondequiera que trabajes. Empieza gratis, sin tarjeta de crédito.",signUpNow:"RegÃstrate ahora",freeToStart:"Gratis para empezar",noCreditCardRequired:"Sin tarjeta de crédito",cancelAnytime:"Cancela cuando quieras"},g={sectionLabel:"Adjuntos",uploading:"Subiendo...",dropPrompt:"Suelta archivos aquà o haz clic para subir",loadingAttachments:"Cargando adjuntos...",deleteAttachmentTitle:"Eliminar adjunto",deleteConfirmTitle:"Eliminar adjunto",deleteConfirmMessage:"¿Seguro que quieres eliminar "{fileName}"?"},b={heading:"Enlaces",linkPr:"+ Enlazar PR",errors:{addFailed:"No se pudo añadir el enlace"}},v={title:"Asistente de IA - {column}",noProviderPrefix:"No hay ningún proveedor de IA configurado. Añade una clave de API en ",noProviderSuffix:" para usar la asistencia de IA.",loadingConversation:"Cargando conversación...",connecting:"Conectando...",reconnecting:"Reconectando...",disconnected:"Desconectado",cardsInColumn:"Tarjetas en la columna:",moreCards:"+{count} más",emptyTitle:"¡Pregúntame sobre las tarjetas de esta columna!",emptyHint:"Puedo ayudarte a entender las tareas, dividirlas en subtareas y mucho más.",inputPlaceholder:"Pregunta sobre las tarjetas de esta columna...",send:"Enviar",errors:{checkProviders:"No se pudieron comprobar los proveedores de IA",createConversation:"No se pudo crear la conversación",sendMessage:"No se pudo enviar el mensaje"}},h={headerTitle:"Comentarios y actividad",commentPlaceholder:"Añade un comentario... (admite **negrita**, *cursiva*, `código` y [enlaces](url))",posting:"Publicando...",post:"Publicar",loading:"Cargando...",edited:"(editado)",emptyState:"Aún no hay actividad. Añ
1ade un comentario para iniciar la conversación.",deleteConfirmTitle:"Eliminar comentario",deleteConfirmMessage:"¿Seguro que quieres eliminar este comentario? Esta acción no se puede deshacer.",activity:{created:"creó esta tarjeta",titleChanged:'cambió el tÃtulo de "{oldValue}" a "{newValue}"',descriptionChanged:"actualizó la descripción",completed:"marcó como completada",uncompleted:"marcó como incompleta",dueDateSet:"estableció la fecha de vencimiento en {date}",dueDateRemoved:"quitó la fecha de vencimiento",prioritySet:"estableció la prioridad en {priority}",priorityRemoved:"quitó la prioridad",columnMoved:'movió de "{oldValue}" a "{newValue}"',subColumnMoved:"movió a {newValue}",tagAdded:'añadió la etiqueta "{tag}"',tagRemoved:'quitó la etiqueta "{tag}"',commentAdded:"añadió un comentario",commentEdited:"editó un comentario",commentDeleted:"eliminó un comentario",subtaskAdded:'añadió la subtarea "{subtask}"',blocked:"marcó como bloqueada",unblocked:"desbloqueó"},time:{justNow:"ahora mismo",minutesAgo:"hace {count} min",hoursAgo:"hace {count} h",daysAgo:"hace {count} d"}},f={save:"Guardar",cancel:"Cancelar",delete:"Eliminar",edit:"Editar",add:"Añadir",create:"Crear",close:"Cerrar",confirm:"Confirmar",loading:"Cargandoâ¦",error:"Error",retry:"Reintentar",search:"Buscar",settings:"Ajustes"},C={title:"Zona de peligro",description:"Acciones irreversibles que afectan a tu cuenta.",deleteAccountHeading:"Eliminar cuenta",deleteAccountInfo:"Una vez que elimines tu cuenta, todos tus datos se eliminarán de forma permanente. Esta acción no se puede deshacer.",deleteAccountButton:"Eliminar cuenta",dialogTitle:"Eliminar tu cuenta",dialogIntro:"Esto eliminará de forma permanente tu cuenta y todos los datos asociados, incluyendo:",dialogItems:{todos:"Todas tus tareas y subtareas",boards:"Todos los tableros de los que eres propietario (y sus columnas/tarjetas)",tags:"Todas tus etiquetas, claves de API y preferencias",aiHistory:"Tu historial de conversaciones con la IA"},cannotBeUndone:"Esta acción no se puede deshacer.",passwordLabel:"Introduce tu contraseña para confirmar",passwordPlaceholder:"Introduce tu contraseña",deleting:"Eliminando...",confirmDeleteButton:"Eliminar cuenta de forma permanente",errors:{deleteFailed:"No se pudo eliminar la cuenta"}},y={inSource:"en {source}"},T={logoAlt:"TaskLeef",heading:"Verifica tu correo electrónico",instructions:"Hemos enviado un enlace de verificación a tu dirección de correo electrónico. Revisa tu correo y haz clic en el enlace para verificar tu cuenta.",successMessage:"¡Correo de verificación enviado! Revisa tu bandeja de entrada.",didNotReceive:"¿No has recibido el correo?",emailPlaceholder:"Introduce tu correo electrónico",sending:"Enviando...",resendButton:"Reenviar correo de verificación",backToLogin:"Volver al inicio de sesión",errors:{emailRequired:"Introduce tu dirección de correo electrónico",resendFailed:"No se pudo reenviar el correo de verificación"}},A={noMatchingEmojis:"No hay emojis coincidentes"},P={openLabel:"Enviar comentarios",title:"Enviar comentarios",categoryLabel:"CategorÃa",categoryBug:"Error",categoryIdea:"Idea",categoryOther:"Otro",messageLabel:"Tus comentarios",placeholder:"Cuéntanos qué está roto, qué falta o qué te encantarÃa verâ¦",send:"Enviar",sending:"Enviandoâ¦",success:"Gracias â comentarios enviados",rateLimited:"Demasiados envÃos â inténtalo de nuevo más tarde",error:"No se pudieron enviar los comentarios â inténtalo de nuevo"},q={label:"Buscar",title:"Buscar tareas",placeholder:"Buscar tareasâ¦",inbox:"Bandeja de entrada",subtaskOf:"Subtarea de {parent}",loading:"Buscandoâ¦",minChars:"Escribe al menos 2 caracteres para buscar",noResults:"No hay tareas que coincidan",error:"Error en la búsqueda â inténtalo de nuevo"},k={renameFolder:"Renombrar carpeta",deleteFolder:"Eliminar carpeta",dropHint:"Suelta aquà para archivar"},I={repositoryMappings:"Asignaciones de repositorios",noRepositoriesMapped:"Aún no hay repositorios asignados.",specificBoard:"Tablero especÃfico",allBoards:"Todos los tableros",remove:"Quitar",repoPlaceholder:"propietario/repo",addButton:"+ Añadir",linkingTasksToPrs:"Vincular tareas a PR",autoMoveTitle:"Mover a Hecho automáticamente al fusionar el PR",autoMoveHelp:"Cuando se fusiona un PR vinculado, la tarjeta se mueve automáticamente a la columna Hecho.",enabled:"Habilitado",errors:{addFailed:"No se pudo añadir la asignación de repositorio",removeFailed:"No se pudo quitar la asignación"}},N={logoAlt:"TaskLeef",headlinePrefix:"Gestión de tareas que vive",headlineHighlight:"donde tú trabajas",subheadline:"Terminal. Editor. Navegador. El único gestor de tareas con una CLI completa, un servidor MCP que tu asistente de IA puede usar e IA agéntica que de verdad actúa sobre tu tablero.",getStartedCta:"Empieza gratis",learnMoreCta:"Más información"},S={title:"Bandeja de entrada",showDeferred:"Mostrar aplazadas",addPlaceholder:"Añadir a la bandeja de entrada...",overdue:"Vencida",today:"Hoy",loading:"Cargando...",emptyTitle:"Tu bandeja de entrada está vacÃa",emptyHint:"Añade tareas arriba o créalas desde la app de iOS",moveToBoard:"Mover al tablero",deleteConfirmTitle:"Eliminar tarea",deleteConfirmMessage:"¿Seguro que quieres eliminar "{title}"? Esta acción no se puede deshacer.",errors:{loadFailed:"No se pudo cargar la bandeja de entrada",updateFailed:"No se pudo actualizar la tarea",deleteFailed:"No se pudo eliminar la tarea",completeFailed:"No se pudo completar la tarea",boardNoColumns:"El tablero no tiene columnas",moveFailed:"No se pudo mover la tarea al tablero"}},F={teamPlan:"Plan Team"},j={title:"Integraciones",description:"Conecta tus tableros con GitHub, Slack y servicios externos.",loading:"Cargando...",github:"GitHub",slack:"Slack",outboundWebhooks:"Webhooks salientes",connected:"Conectado",notConnected:"No conectado",noneConfigured:"Ninguno configurado",activeCount:"{count} activos",manage:"Gestionar",disconnect:"Desconectar",connect:"Conectar",githubDesc:"Vincula PR a tarjetas. Fusiona un PR y la tarjeta se mueve a Hecho automáticamente.",slackDesc:"Crea tareas con /taskleef, recibe DM de asignación y envÃa la actividad del tablero a un canal.",outboundWebhooksDesc:"EnvÃa eventos del tablero (POST) a URL externas para pipelines de CI/CD y automatización.",disconnectConfirm:"¿Seguro que quieres desconectar esta integración?",errors:{loadFailed:"No se pudieron cargar las integraciones",githubConnectFailed:"No se pudo iniciar la conexión con GitHub",slackConnectFailed:"No se pudo iniciar la conexión con Slack",disconnectFailed:"No se pudo desconectar la integración"}}
1,M={badge:"App de iOS",heroTitlePrefix:"TaskLeef para iPhone: tus tareas, ",heroTitleHighlight:"a tu manera",heroDescription:"Una app de tareas que respeta cómo trabajas de verdad. Captura con lenguaje natural, notificaciones que no te dejan olvidar y tareas recurrentes que tienen sentido.",appStoreAlt:"Descargar en la App Store",heroPhoneAlt:"Taskleef en iPhone",features:{quickAdd:{title:"EscrÃbelo tal como lo piensas",description:"Lenguaje natural que de verdad funciona. Escribe una frase y Taskleef extrae la fecha, la hora, la recurrencia y el proyecto: sin menús ni selectores.",highlight1:"«Ir a pescar todos los martes a las 9 #Amigos»: analizado, programado y archivado",highlight2:"«Llamar al veterinario mañana a las 15:00»: una lÃnea y listo",highlight3:"«Revisar el presupuesto cada 2 semanas #Trabajo»: recurrente y organizado"},annoyingNotifications:{title:"Notificaciones que no te dejan olvidar",description:"Los recordatorios normales se descartan de un gesto. Las notificaciones insistentes se repiten cada 5 minutos hasta que te ocupas de la tarea. Para lo que no puedes olvidar bajo ningún concepto.",highlight1:"Modo insistente: vibra cada 5 minutos durante un máximo de 50 minutos",highlight2:"Completa la tarea desde la propia notificación: un toque",highlight3:"Pospón 15 min, 30 min o 1 hora, pero solo 3 veces",highlight4:"Las notificaciones urgentes atraviesan el modo No molestar"},repeatAfterDone:{title:"Repeticiones que respetan tu vida",description:"La mayorÃa de las apps repiten según un calendario fijo. AsÃ, cuando terminas «limpiar el garaje» dos dÃas tarde, la siguiente ya está vencida. Taskleef lo hace mejor.",highlight1:"«Repetir tras completar»: la cuenta atrás empieza cuando terminas",highlight2:"También por intervalo fijo: a diario, semanal o en dÃas concretos de la semana",highlight3:"Combina ambos: «Cada dÃa laborable» o «Cada 3 meses tras completar»",highlight4:"Sin la espiral de culpa de las tareas recurrentes vencidas que se acumulan"},remindersImport:{title:"Siri captura, Taskleef organiza",description:"«Oye Siri, recuérdame comprar comida.» Aterriza en Recordatorios de Apple y Taskleef la importa sola. Usa la mejor herramienta de captura que ha creado Apple, con un gestor de tareas que hace mucho más.",highlight1:"Importación automática desde tu lista de Recordatorios predeterminada, en segundo plano",highlight2:"Importación manual desde cualquier lista de Recordatorios, con control total",highlight3:"Las prioridades, las fechas de vencimiento y las reglas de repetición se conservan",highlight4:"Si quieres, vacÃa Recordatorios después de importar"},deferDates:{title:"Aplaza, no elimines",description:"No todo tiene que estar a la vista todo el tiempo. Pon una fecha de aplazamiento y la tarea desaparece hasta que la necesites. Sigue ahÃ, solo que sin saturar tu vista de hoy.",highlight1:"La fecha de aplazamiento es independiente de la de vencimiento: ocúltala ahora y véncela después",highlight2:"«Me ocupo de esto el viernes» sin perderla de vista",highlight3:"Las tareas aplazadas reaparecen solas cuando llega la fecha",highlight4:"Mantén tu lista diaria centrada en lo que de verdad importa hoy"},boardsProjects:{title:"Proyectos cuando los necesitas",description:"Agrupa tareas en proyectos para los objetivos más grandes. O no lo hagas: la bandeja de entrada funciona de maravilla por sà sola. Taskleef se adapta desde una simple lista de la compra hasta un tablero Kanban de equipo.",highlight1:"Asigna tareas a proyectos con el atajo # en el añadido rápido",highlight2:"Subtareas con arrastrar para ascender y arrastrar para anidar",highlight3:"Tableros Kanban con lÃmites WIP para flujos de trabajo concentrados",highlight4:"Sincronización en tiempo real: los cambios en la web aparecen al instante en tu teléfono"}},demo:{quickAddInput:"Ir a pescar todos los martes a las 9 #Amigos",quickAddTagDate:"Mar 9:00",quickAddTagRepeat:"Cada semana",quickAddTagProject:"Amigos",notifTitle:"Recordatorio: ¡aún pendiente!",notifBody:"Recoger la receta",notifMeta:"2 aplazamientos restantes",notifComplete:"Completar",n
1otifSnooze15m:"Posponer 15 min",notifSnooze1h:"Posponer 1 h",repeatDoneTitle:"Limpiar el garaje",repeatDoneDate:"Hecho 28 mar",repeatLabel:"+ 2 semanas",repeatNextTitle:"Limpiar el garaje",repeatNextDate:"Vence 11 abr",importSource:"Recordatorios de Apple",importDest:"Taskleef",deferBuyPresent:"Comprar regalo de cumpleaños",deferToday1:"Hoy",deferCallDentist:"Llamar al dentista",deferToday2:"Hoy",deferRenewPassport:"Renovar el pasaporte",deferDeferred:"Aplazada al vie",boardColToDo:"Pendientes",boardWip35:"3/5",boardColInProgress:"En curso",boardWip12:"1/2",boardColDone:"Hecho"},ctaTitle:"¿Listo para sacar las cosas adelante?",ctaDescription:"Descarga gratuita. No necesitas cuenta para empezar. Tus tareas se quedan en tu dispositivo hasta que decidas sincronizar."},L={doubleClickToEdit:"Haz doble clic para editar",aiAssistantTooltip:"El asistente de IA puede dividir tareas, sugerir prioridades, añadir etiquetas y ayudar a organizar el trabajo",assistant:"Asistente",columnSettings:"Ajustes de la columna",clearCompleted:"Limpiar completadas",wip:"WIP: {current} / {limit}",searchPlaceholder:"Buscar tarjetas...",clearSearch:"Limpiar búsqueda",inbox:"Bandeja de entrada",addTodoToBoard:"Añadir tarea al tablero",enterCardTitle:"Introduce el tÃtulo de la tarjeta...",emptyInbox:"Suelta tarjetas aquà o haz clic en + para añadir",done:"Hecho",emptyDone:"No hay tareas completadas",blocked:"Bloqueado",emptyBlocked:"A la espera de dependencias externas",columnSettingsTitle:"Ajustes de la columna",columnTitle:"TÃtulo de la columna",wipLimit:"LÃmite WIP",noLimit:"Sin lÃmite",addNewCardsToTop:"Añadir las tarjetas nuevas arriba",doneCriteria:"Criterios de finalización",doneCriteriaPlaceholder:"Describe qué hace que una tarea esté 'hecha' en esta columna...",deleteColumn:"Eliminar columna",saveChanges:"Guardar cambios",deleteConfirmMessage:"¿Seguro que quieres eliminar esta columna? Las tarjetas de esta columna también se quitarán del tablero.",cardFallbackTitle:"Tarjeta"},E={heading:"Preguntas frecuentes",whatIsTaskLeef:{question:"¿Qué es TaskLeef?",answer:"TaskLeef es una plataforma de gestión de tareas Kanban diseñada para desarrolladores y particulares que quieren gestionar su trabajo desde la terminal, el editor de código o el navegador. Incluye una interfaz de lÃnea de comandos completa hecha en Rust, un servidor Model Context Protocol (MCP) que permite a los asistentes de IA de programación gestionar tus tareas de forma nativa, e IA agéntica que ejecuta acciones reales en tus tableros: crea tarjetas, las mueve entre columnas, aplica etiquetas y reordena el trabajo mediante lenguaje natural. También ofrece colaboración en tiempo real por WebSocket, integraciones bidireccionales con GitHub y Slack, y una app nativa de iOS con captura rápida y tareas recurrentes inteligentes."},whatIsMcp:{question:"¿Qué es un servidor MCP para la gestión de tareas?",answer:"MCP (Model Context Protocol) es un estándar que permite a los asistentes de IA conectarse a herramientas y fuentes de datos externas. El servidor MCP de TaskLeef expone 39 herramientas en 7 dominios âTareas, Tableros, Columnas, Tarjetas, Miembros, Etiquetas y Comentariosâ, de modo que asistentes de IA de programación como Claude Code, GitHub Copilot y Cursor pueden leer y escribir tus tareas directamente desde el editor. En lugar de pasarte al navegador para actualizar una tarea, basta con decirle a tu asistente de IA «mueve la tarea de autenticación a En curso» y ocurre al instante. TaskLeef es el único gestor de tareas compatible con MCP."},hasCli:{question:"¿Tiene TaskLeef una CLI?",answer:"SÃ. TaskLeef tiene una interfaz de lÃnea de comandos completa hecha en Rust, no un simple atajo de añadido rápido. Ofrece paridad total de funciones con la interfaz web: puedes crear, completar, listar y gestionar tareas, tableros, columnas y etiquetas Ãntegramente desde la terminal. La CLI es de código abierto, arranca al instante sin sobrecarga y genera una salida apta para tuberÃas, ideal para scripting y automatización. Instálala desde el repositorio de GitHub en github.com/taskleef/cli."},aiModels:{question:"¿Qué modelos de IA admite TaskLeef?",answer:"TaskLeef admite Claude (Anthropic), GPT (OpenAI) y Gemini (Google) sin atarte a un único proveedor: tú aportas tu propia clave de API y eliges el modelo que mejor encaje con tu flujo de trabajo. La IA agéntica lee el estado de tu tablero, ejecuta acciones de varios pasos como crear tarjetas y aplicar etiquetas, y mantiene hilos de conversación acotados a cada tablero o columna. El servidor MCP funciona con cualquier asistente de IA compatible con el estándar Model Context Protocol, incluidos Claude Code, Claude Desktop y GitHub Copilot."}
1,comparison:{question:"¿Cómo se compara TaskLeef con Linear, Todoist o Things?",answer:"TaskLeef ocupa una posición única: está pensado para desarrolladores que quieren que su gestor de tareas se integre con las herramientas que ya usan. A diferencia de Linear, cuenta con una CLI completa en Rust y un servidor MCP para asistentes de IA. A diferencia de Todoist y Things, ofrece tableros Kanban en tiempo real con lÃmites WIP y sincronización bidireccional con GitHub y Slack. La app de iOS incluye funciones como las notificaciones insistentes, que se repiten cada 5 minutos hasta que actúas, y la programación de repetición tras completar, que pone en marcha la cuenta atrás cuando terminas una tarea en lugar de en un calendario fijo. Los precios arrancan en gratis para 5 tableros y 5 usuarios."},isFree:{question:"¿TaskLeef es gratis?",answer:"SÃ. El plan gratuito incluye hasta 5 tableros Kanban, 5 usuarios por tablero, tareas ilimitadas, acceso completo a la CLI, acceso a la API y notificaciones unidireccionales de GitHub y Slack. Los planes de pago empiezan en 8 $/mes (6 $/mes con facturación anual) y desbloquean tableros ilimitados, integraciones bidireccionales, webhooks
1salientes y soporte prioritario. Todos los planes de pago incluyen una prueba gratuita de 7 dÃas, sin tarjeta de crédito, y una garantÃa de devolución del dinero de 30 dÃas."}},w={tagline:"Organiza tu trabajo, de forma natural.",appStoreBadge:"Descargar en la App Store",googlePlayBadge:"Disponible en Google Play",product:"Producto",features:"Funciones",pricing:"Precios",apiDocs:"Documentación de la API",signUp:"Registrarse",resources:"Recursos",documentation:"Documentación",contact:"Contacto",legal:"Aviso legal",privacyPolicy:"PolÃtica de privacidad",termsOfService:"Condiciones del servicio",refundPolicy:"PolÃtica de reembolsos",copyright:"© {year} TaskLeef. Todos los derechos reservados. Creado por",copyrightSuffix:"."},z={logoAlt:"TaskLeef",toggleMenu:"Alternar menú",features:"Funciones",pricing:"Precios",docs:"Documentación",login:"Iniciar sesión",signUpFree:"RegÃstrate gratis"},D={features:{aiFirst:{title:"Una IA que actúa, no solo asiste",description:"La IA de Taskleef no es un chatbot pegado a una barra lateral. Lee el estado de tu tablero, ejecuta acciones y mantiene conversaciones de varios turnos acotadas a tu flujo de trabajo.",highlights:{agentic:"IA agéntica que crea tarjetas, las mueve, aplica etiquetas y reordena el trabajo",naturalLanguage:"Creación de tareas con lenguaje natural: «Llamar al veterinario el martes a las 15:00 #personal»",conversational:"IA conversacional por tablero y por columna",bringYourOwnModel:"Usa tu propio modelo: Claude, GPT o Gemini. Sin dependencia de un proveedor."}},developerNative:{title:"Vive donde tú trabajas",description:"Una CLI completa para gestionar tareas, tableros y operaciones de equipo, más un servidor MCP para que tu asistente de IA de programación gestione las tareas sin salir del editor.",highlights:{fullCli:"CLI completa: no un simple atajo de añadido rápido, sino una interfaz de lÃnea de comandos de verdad",rust:"Hecha en Rust: arranque instantáneo y sin sobrecarga",openSource:"Código abierto: inspecciónala, amplÃala y contribuye a ella",mcp:"Servidor MCP con 39 herramientas: Claude Code gestiona tus tareas de forma nativa",pairProgramming:"Crea, completa y mueve tareas mientras programas en pareja",protocol:"Ningún otro gestor de tareas habla el protocolo que entienden los asistentes de IA"},linkLabel:"Ver en GitHub"},simpleButCapable:{title:"Sencillo pero potente",description:"Sin diagramas de Gantt que nunca leerás. Sin formularios a medida de 47 campos. Taskleef apuesta por mantenerse sencillo, sin renunciar a las funciones que importan.",highlights:{subtaskMobility:"Subtareas con movilidad: arrastra una subtarea hacia fuera para ascenderla y de vuelta para volver a anidarla",deferDates:"Fechas de aplazamiento: oculta tareas hasta que estés listo y no se te escapa nada",subColumns:"Tres subcolumnas por columna: Bandeja de entrada, Hecho y Bloqueado. Sin configuración.",recurring:"Tareas recurrentes inteligentes: por intervalos, tras completar, dÃas concretos o combinaciones"}},realtimeCollaboration:{title:"Tiempo real, sin interrupciones",description:"Las actualizaciones del tablero llegan al instante por WebSocket. Pero Taskleef cuida el cómo: el cambio de un compañero nunca interrumpe el trabajo que tienes entre manos.",highlights:{queued:"Las actualizaciones se ponen en cola mientras arrastras y se aplican al soltar",merges:"Fusiones de estado quirúrgicas: los datos entrantes nunca pisan tu interfaz local",sharing:"Tableros compartidos por roles, con comentarios y cronologÃa de actividad",wipLimits:"LÃmites WIP por columna para mantener al equipo concentrado"}},developerIntegrations:{title:"Pensado para el flujo de trabajo de los desarrolladores",description:"Integraciones bidireccionales con GitHub y Slack que mantienen tus tableros sincronizados con tu código, no webhooks unidireccionales que necesitan middleware.",highlights:{github:"GitHub: fusiona un PR y la tarea vinculada se marca como completada automáticamente",slack:"Slack: crea tareas con /taskleef, recibe DM de asignación y envÃa la actividad del tablero a un canal",webhooks:"Webhooks salientes para el estado del pipeline de CI/CD",sso:"SSO con GitHub: inicia sesión con tu cuenta de GitHub",plans:"Notificaciones en el plan gratuito y sincronización bidireccional completa en cualquier plan de pago"}}}}
1,R={dropToMakeSubtask:"Suelta para convertir en subtarea",addSubtaskPlaceholder:"+ Añadir subtarea...",noItems:"Sin elementos"},H={resetPasswordTitle:"Restablecer contraseña",resetPasswordSuccess:"Si existe una cuenta con este correo, recibirás un enlace para restablecer la contraseña.",emailPlaceholder:"Correo electrónico",passwordPlaceholder:"Contraseña",pleaseWait:"Espera...",sendResetLink:"Enviar enlace de restablecimiento",backToLogin:"Volver al inicio de sesión",pendingSubscriptionBanner:"¡Tu suscripción está lista! Crea una cuenta para empezar.",claimingBanner:"Configurando tu suscripción...",loginTab:"Iniciar sesión",signupTab:"Registrarse",redirecting:"Redirigiendo...",continueWithGitHub:"Continuar con GitHub",continueWithGoogle:"Continuar con Google",continueWithApple:"Continuar con Apple",waitingForPasskey:"Esperando la passkeyâ¦",signInWithPasskey:"Iniciar sesión con una passkey",forgotPassword:"¿Has olvidado la contraseña?",divider:"o",errors:{githubDenied:"Se denegó el inicio de sesión con GitHub. Inténtalo de nuevo.",githubTokenFailed:"Error de autenticación con GitHub. Inténtalo de nuevo.",githubUserFailed:"No se pudo obtener tu perfil de GitHub. Inténtalo de nuevo.",githubNoEmail:"No se ha encontrado ningún correo verificado en tu cuenta de GitHub. Añade un correo verificado a GitHub e inténtalo de nuevo.",githubAccountFailed:"No se pudo crear tu cuenta. Inténtalo de nuevo.",googleDenied:"Se denegó el inicio de sesión con Google. Inténtalo de nuevo.",googleTokenFailed:"Error de autenticación con Google. Inténtalo de nuevo.",googleUserFailed:"No se pudo obtener tu perfil de Google. Inténtalo de nuevo.",googleNoEmail:"No se ha encontrado ningún correo verificado en tu cuenta de Google. Inténtalo de nuevo.",googleAccountFailed:"No se pudo crear tu cuenta. Inténtalo de nuevo.",appleDenied:"Se denegó el inicio de sesión con Apple. Inténtalo de nuevo.",appleTokenFailed:"Error de autenticación con Apple. Inténtalo de nuevo.",appleAccountFailed:"No se pudo crear tu cuenta. Inténtalo de nuevo.",claimFailed:"No se pudo activar la suscripción",loginFailed:"Error al iniciar sesión. Comprueba tus credenciales.",signupFailed:"Error al registrarse",resetLinkFailed:"No se pudo enviar el enlace de restablecimiento",githubUnavailable:"El inicio de sesión con GitHub no está disponible ahora mismo. Inténtalo de nuevo más tarde.",googleUnavailable:"El inicio de sesión con Google no está disponible ahora mismo. Inténtalo de nuevo más tarde.",appleUnavailable:"El inicio de sesión con Apple no está disponible ahora mismo. Inténtalo de nuevo más tarde.",passkeyFailed:"Error al iniciar sesión con la passkey."}},B={logoAlt:"TaskLeef",toggleMenu:"Alternar menú",inbox:"Bandeja de entrada",boards:"Tableros",tags:"Etiquetas",profile:"Perfil",logout:"Cerrar sesión",trash:"Trash"},G={title:"Notificaciones",markAllRead:"Marcar todo como leÃdo",loading:"Cargando...",empty:"No hay notificaciones",actions:{created:"creó",titleChanged:"actualizó el tÃtulo de",descriptionChanged:"actualizó la descripción de",completed:"completó",uncompleted:"reabrió",dueDateChanged:"cambió la fecha de vencimiento de",priorityChanged:"cambió la prioridad de",moved:"movió",tagAdded:"añadió una etiqueta a",tagRemoved:"quitó una etiqueta de",commentAdded:"comentó en",commentEdited:"editó un comentario en",commentDeleted:"eliminó un comentario en",subtaskAdded:"añadió una subtarea a",blocked:"bloqueó",unblocked:"desbloqueó",memberAdded:"te añadió a un tablero",updated:"actualizó"},time:{justNow:"Ahora mismo",minutesAgo:"hace {minutes} min",hoursAgo:"hace {hours} h",daysAgo:"hace {days} d"}},O={title:"Preferencias de notificaciones",description:"Controla cómo recibes notificaciones sobre la actividad de las tarjetas a las que estás suscrito.",loading:"Cargando preferencias de notificaciones...",lastUpdated:"Ãltima actualización: {date}",email:{name:"Notificaciones por correo electrónico",description:"Recibe notificaciones por correo electrónico sobre la actividad de las tarjetas suscritas"},browser:{name:"Notificaciones del navegador",description:"Recibe notificaciones del navegador en tiempo real cuando estás en lÃnea"},errors:{loadFailed:"No se pudieron cargar las preferencias de notificaciones",updateFailed:"No se pudieron actualizar las preferencias de notificaciones",browserPermissionDenied:"Permiso de notificaciones del navegador denegado. Puedes habilitarlo en la configuración de tu navegador."}},x={loading:"Cargando solicitud de autorizaciónâ¦",errorTitle:"La solicitud de autorización falló",title:"Autorizar a {clientName}",leadBody:"quiere conectarse a tu cuenta de TaskLeef para poder gestionar tus tareas, tableros y flujos de trabajo Kanban en tu nombre.",permissions:{read:"Leer tus tareas, tableros, columnas, tarjetas, etiquetas y comentarios",write:"Crear y actualizar tareas y el contenido de los tableros",delete:"Eliminar las tareas que le pidas eliminar"}
1,redirectInfo:"Tras la aprobación, se te redirigirá a:",deny:"Denegar",authorize:"Autorizar",authorizing:"Autorizandoâ¦",clientNameNamed:'Aplicación "{id}â¦"',clientNameFallback:"esta aplicación",errors:{missingParams:"A la solicitud de autorización le faltan parámetros obligatorios.",completeFailed:"No se pudo completar la autorización.",noRedirect:"El servidor de autorización no devolvió una URL de redirección.",network:"Error de red al contactar con el servidor de autorización."}},V={heading:"Importar desde OmniFocus",dropHint:"Suelta aquà tu CSV de OmniFocus o haz clic para elegir un archivo.",importing:"Importandoâ¦",import:"Importar",addedToInbox:"{count} añadidas a tu Bandeja de entrada",placedOnBoards:"{count} colocadas en tableros",nonTaskRowsSkipped:"{count} filas que no son tareas omitidas",errors:{notCsv:"Elige un archivo .csv exportado desde OmniFocus.",tooLarge:"Ese archivo supera el lÃmite de 10 MB.",importFailed:"No se pudo importar el archivo"}},U={events:{cardCreated:"Tarjeta creada",cardMoved:"Tarjeta movida",cardDeleted:"Tarjeta eliminada",todoCreated:"Tarea creada",todoCompleted:"Tarea completada",todoUpdated:"Tarea actualizada",commentAdded:"Comentario añadido"},errors:{createFailed:"No se pudo crear el webhook",deleteFailed:"No se pudo eliminar el webhook"},deleteConfirm:"¿Eliminar este webhook? Cualquier integración que lo use dejará de recibir eventos.",secretWarningStrong:"¡Guarda este secreto de firma ahora!",secretWarningRest:"No podrás volver a verlo.",copy:"Copiar",savedIt:"Ya lo he guardado",eventsLabel:"eventos",active:"Activo",inactive:"Inactivo",testing:"Probando...",test:"Probar",hideLog:"Ocultar registro",log:"Registro",success:"Correcto",failed:"Fallido",noDeliveries:"Aún no hay entregas.",addWebhook:"+ Añadir webhook",newWebhook:"Nuevo webhook",urlLabel:"URL",eventsFieldLabel:"Eventos",createWebhook:"Crear webhook"},W={title:"Passkeys",description:"Inicia sesión sin contraseña usando la huella, el rostro o el PIN de tu dispositivo. Las passkeys se sincronizan entre tus dispositivos mediante el Llavero de iCloud o el Gestor de contraseñas de Google.",unsupported:"Este navegador no admite passkeys. Usa una versión reciente de Safari, Chrome, Edge o Firefox en un dispositivo con bloqueo de pantalla.",loading:"Cargando...",empty:"Aún no hay passkeys. Añade una abajo para habilitar el inicio de sesión sin contraseña.",nicknamePlaceholder:"Apodo",syncedBadge:"sincronizada",meta:"Añadida el {added} · Ãltimo uso {lastUsed}",rename:"Renombrar",addNicknamePlaceholder:"Apodo (p. ej., iPhone, YubiKey)",waitingForAuthenticator:"Esperando al autenticadorâ¦",addPasskey:"Añadir una passkey",never:"nunca",deleteConfirmTitle:"Eliminar passkey",deleteConfirmMessage:"¿Seguro que quieres eliminar "{nickname}"? No podrás volver a iniciar sesión con ella.",errors:{loadFailed:"No se pudieron cargar las passkeys",addFailed:"No se pudo añadir la passkey",renameFailed:"No se pudo renombrar la passkey",deleteFailed:"No se pudo eliminar la passkey"}},Q={title:"Preferencias",description:"Establece tu zona horaria y formato de fecha preferidos. Si no se establecen, se usará la configuración detectada por tu navegador.",savedSuccess:"¡Preferencias guardadas correctamente!",loadingPreferences:"Cargando preferencias...",theme:"Tema",themeLight:"Claro",themeDark:"Oscuro",themeAuto:"Automático",language:"Idioma",timezone:"Zona horaria",timezoneAutoDetect:"Detección automática ({timezone})",dateFormat:"Formato de fecha",dateFormatBrowserDefault:"Predeterminado del navegador",saving:"Guardando...",savePreferences:"Guardar preferencias",errors:{loadFailed:"No se pudieron cargar las preferencias",saveFailed:"No se pudieron guardar las preferencias"}},K={heading:"La mitad de precio. El doble de herramientas para desarrolladores.",subtitle:"CLI, tableros compartidos, notificaciones de GitHub y Slack, y SSO incluidos gratis. Pasa a cualquier plan de pago para la sincronización bidireccional completa.",providers:{taskleef:"Taskleef",asana:"Asana",monday:"Monday.com",trello:"Trello"},tiers:{free:"Gratis",pro:"Pro",team:"Team"},features:{cli:"CLI",mcpServer:"Servidor MCP",agenticAi:"IA agéntica"},taskleefFree:"5 tableros, 5 usuarios, CLI completa",taskleefProPrice:"6 $/usuario/año",taskleefProSuffix:"(8 $/mes)",taskleefTeamPrice:"12 $/usuario/año",taskleefTeamSuffix:"(15 $/mes)",asanaFree:"10 usuarios, vistas limitadas",asanaPro:"10,99 $/usuario/mes",asanaTeam:"24,99 $/usuario/mes",asanaAi:"Solo resúmenes",mondayFree:"2 usuarios",mondayPro:"9 $/usuario/mes",mondayTeam:"12 $/usuario/mes",mondayAi:"Asistente de redacción",trelloFree:"Tableros ilimitados",trelloPro:"5 $/usuario/mes",trelloTeam:"10 $/usuario/mes",trelloAi:"Mediante Power-Ups",seeFullPricing:"Ver todos los detalles de precios"},$={heroTitle:"Precios sencillos y transparentes",heroSubtitle:"Elige el plan que mejor te encaje. Cambia a un plan superior o inferior cuando quieras.",monthly:"Mensual",annual:"Anual",save25:"Ahorra un 25 %",toggleBillingAria:"Alternar periodo de facturación",loadingPlans:"Cargando planes...",mostPopular:"Más popular",billedAnnually:"facturación anual",contactSales:"Contactar con ventas",getStarted:"Empezar",startFreeTrial:"Iniciar prueba gratuita",priceCustom:"Personalizado",priceFree:"Gratis",period:"/usuario/mes",annualSavings:"Ahorra un {pct} % con facturación anual",faqTitle:"Preguntas frecuentes",faq:{switchPlans:{q:"¿Puedo cambiar de plan más adelante?",a:"¡SÃ! Puedes pasar a un plan superior o inferior cuando quieras. Al subir de plan, se te cobra la diferencia prorrateada. Al bajar de plan, el nuevo entra en vigor al final de tu periodo de facturación actual."},paymentMethods:{q:"¿Qué métodos de pago aceptáis?",a:"Aceptamos las principales tarjetas de crédito y PayPal. Los pagos se procesan de forma segura a través de Paddle."},freeTrial:{q:"¿Hay prueba gratuita?",a:"¡SÃ! Todos los planes de pago incluyen una prueba gratuita de 7 dÃas. No necesitas tarjeta de crédito para empezar y puedes cancelar cuando quieras durante la prueba."},exceedLimits:{q:"¿Qué pasa si supero mis lÃmites?",a:"Te avisaremos cuando te acerques a tus lÃmites. No perderás ningún dato, pero tendrás que pasar a un plan superior para añadir más tableros o miembros del equipo."},refund:{q:"¿Puedo pedir un reembolso?",before:"SÃ, ofrecemos una garantÃa de devolución del dinero de 30 dÃas. Si no estás satisfecho, ",linkText:"contáctanos",after:" en un plazo de 30 dÃas desde tu compra para obtener un reembolso completo."},nonProfits:{q:"¿Ofrecéis descuentos para organizaciones sin ánimo de lucro?",before:"¡SÃ! Ofrecemos un 50 % de descuento a organizaciones sin ánimo de lucro registradas e instituciones educativas. ",linkText:"Contáctanos",after:" para solicitarlo."}},errors:{createSessionFailed:"No se pudo crear la sesión de pago",connectFailed:"No se pudo conectar con el servicio de pago"}},Y={title:"Perfil",loading:"Cargando...",photoSection:{heading:"Foto de perfil",alt:"Foto de perfil",uploading:"Subiendo...",changePhoto:"Cambiar foto",uploadPhoto:"Subir foto",deletePhoto:"Eliminar foto",hint:"Tamaño máximo de archivo: 5 MB. Formatos admitidos: JPEG, PNG, GIF, WebP"},infoSection:{heading:"Información del perfil",usernameLabel:"Nombre de usuario",usernameHint:"El nombre de usuario no se puede cambiar",emailLabel:"Correo electrónico",emailHint:"El correo electrónico no se puede cambiar",displayNameLabel:"Nombre para mostrar",displayNamePlaceholder:"Introduce un nombre para mostrar",displayNameHint:"Este nombre se mostrará a otros usuarios en los tableros compartidos"},saving:"Guardando...",saveChanges:"Guardar cambios",deleteDialog:{title:"Eliminar foto de perfil",message:"¿Seguro que quieres eliminar tu foto de perfil?"},errors:{loadFailed:"No se pudo cargar el perfil",updateFailed:"No se pudo actualizar el perfil",invalidFileType:"Selecciona un archivo de imagen",fileTooLarge:"La imagen debe ser menor de 5 MB",uploadFailed:"No se pudo subir la foto",deleteFailed:"No se pudo eliminar la foto"},success:{profileUpdated:"Perfil actualizado correctamente",photoUploaded:"Foto subida correctamente",photoDeleted:"Foto eliminada correctamente"}},J={placeholder:"Añadir una tarea nueva...",adding:"Añadiendo...",hideTips:"Ocultar consejos",
1smartInputTips:"Consejos de entrada inteligente",errors:{addFailed:"No se pudo añadir la tarea"},help:{dates:"Fechas",repeats:"Repeticiones",tags:"Etiquetas",boards:"Tableros",example1:'Ejemplo: "Pasear al perro cada dÃa laborable al mediodÃa"',example2:'Ejemplo: "Comprar comida [Casa] mañana"',example3:'Ejemplo: "Comprar comida #Personal [Casa] mañana"'}},Z={title:"Restablecer contraseña",successMessage:"¡Contraseña restablecida correctamente! Redirigiendo al inicio de sesión...",newPasswordPlaceholder:"Nueva contraseña",confirmPasswordPlaceholder:"Confirmar contraseña",submitting:"Espera...",submit:"Restablecer contraseña",backToLogin:"Volver al inicio de sesión",errors:{invalidToken:"Token de restablecimiento no válido o ausente",passwordsMismatch:"Las contraseñas no coinciden",resetFailed:"No se pudo restablecer la contraseña"}},X={heading:"Seguridad",description:"Gestiona los ajustes de seguridad de tu cuenta.",changePassword:"Cambiar contraseña",passwordChangedSuccess:"¡Contraseña cambiada correctamente!",currentPasswordLabel:"Contraseña actual",currentPasswordPlaceholder:"Introduce la contraseña actual",newPasswordLabel:"Nueva contraseña",newPasswordPlaceholder:"Introduce la nueva contraseña",confirmPasswordLabel:"Confirmar nueva contraseña",confirmPasswordPlaceholder:"Confirma la nueva contraseña",changingPassword:"Cambiando contraseña...",errors:{currentPasswordRequired:"La contraseña actual es obligatoria",newPasswordRequired:"La nueva contraseña es obligatoria",passwordsDoNotMatch:"Las nuevas contraseñas no coinciden",changeFailed:"No se pudo cambiar la contraseña"}},_={title:"Registros",totalInPeriod:"{total} en los últimos {days} dÃas",loading:"Cargando...",empty:"No hay registros en este periodo",barTitle:"{date}: {count} registro | {date}: {count} registros",errors:{loadFailed:"No se pudieron cargar las estadÃsticas de registros"}},ee={channelActivityFeeds:"Feeds de actividad de canales",noChannels:"Aún no hay canales configurados.",specificBoard:"Tablero especÃfico",allBoards:"Todos los tableros",remove:"Quitar",channelIdPlaceholder:"ID del canal (C0123...)",channelNamePlaceholder:"Nombre del canal",allEvents:"Todos los eventos",movesOnly:"Solo movimientos",completionsOnly:"Solo finalizaciones",add:"+ Añadir",slashCommands:"Comandos de barra",createTask:"Crear una tarea",showOpenTasks:"Mostrar tareas abiertas",completeTask:"Completar una tarea",dmOnAssignment:"DM al asignar una tarea",dmHelpText:"Los miembros del equipo reciben un DM de Slack cuando se les asigna una tarea.",enabled:"Habilitado",errors:{addFailed:"No se pudo añadir el feed del canal",removeFailed:"No se pudo quitar el feed del canal"}},ae={heading:"Suscripción",description:"Gestiona tu plan y la información de facturación.",loadingSubscription:"Cargando suscripción...",currentPlan:"Plan actual",freeAccount:"Cuenta gratuita",upgradeToPro:"Mejorar a Pro",loadingShort:"Cargando...",manageBilling:"Gestionar facturación",cancelSubscription:"Cancelar suscripción",viewPlans:"Ver planes",seats:"Asientos:",upgradePrompt:"Mejora a Pro para obtener tableros ilimitados, más miembros del equipo y soporte prioritario.",cancelConfirmMessage:"¿Seguro que quieres cancelar tu suscripción? Conservarás el acceso hasta el final de tu periodo de facturación.",keepSubscription:"Mantener suscripción",tierFree:"Gratis",status:{active:"Activa",canceled:"Cancelada",canceledUntil:"Cancelada: acceso hasta el {date}",pastDue:"Pago vencido: actualiza el método de pago"},errors:{loadFailed:"No se pudo cargar la suscripción",portalFailed:"No se pudo abrir el portal de facturación",cancelFailed:"No se pudo cancelar la suscripción"}},oe={heading:"Etiquetas",description:"Gestiona tus etiquetas aquÃ. Añade datos de ubicación para habilitar recordatorios basados en la ubicación.",createTag:"Crear etiqueta",labels:{name:"Nombre",placeName:"Nombre del lugar",address:"Dirección",latitude:"Latitud",longitude:"Longitud",color:"Color"},placeholders:{placeName:"p. ej., Home Depot",address:"p. ej., Calle Mayor 123",latitude:"p. ej., 40.7128",longitude:"p. ej., -74.0060",color:"#5A896F"},loading:"Cargando...",noTags:"Aún no hay etiquetas. Crea etiquetas añadiéndolas a las tareas.",viewTodos:"Ver tareas",removeColor:"Quitar color",todosTagged:'Tareas etiquetadas con "{name}"',loadingTodos:"Cargando tareas...",noTodos:"No hay tareas con esta etiqueta.",due:"Vence: {date}",deleteTagTitle:"Eliminar etiqueta",deleteTagMessage:"¿Seguro que quieres eliminar la etiqueta "{name}"? Se quitará de todas las tareas.",errors:{loadFailed:"No se pudieron cargar las etiquetas",createFailed:"No se pudo crear la etiqueta",updateFailed:"No se pudo actualizar la etiqueta",deleteFailed:"No se pudo eliminar la etiqueta",loadTodosFailed:"No se pudieron cargar las tareas de esta etiqueta",updateTodoFailed:"No se pudo actualizar la tarea"}},re={label:"Asignada a",placeholder:"Selecciona un asignado...",unassign:"Quitar asignación"},ie={markComplete:"Marcar como completada",markIncomplete:"Marcar como incompleta",overdue:"Vencida",today:"Hoy",tomorrow:"Mañana",daysAway:"{count} dÃas",dateAtTime:"{date} a las {time}",repeats:"Se repite"},te={completed:"Completada",markComplete:"Marcar como completada",moveToBoard:"Mover al tablero",titlePlaceholder:"TÃtulo",description:"Descripción",addDescription:"Añadir descripción...",descriptionPlaceholder:"Descripción (admite Markdown) - Escribe :emoji: para emojis",dueDate:"Fecha de vencimiento",optionalTime:"Hora opcional",deferDate:"Fecha de aplazamiento",priority:"Prioridad",priorityNone:"Ninguna",priorityHigh:"Alta",priorityMedium:"Media",priorityLow:"Baja",saveChanges:"Guardar cambios",deleteTodo:"Eliminar tarea",commentsAndActivity:"Comentarios y actividad",copyFullId:"Haz clic para copiar el ID completo",idLabel:"ID:",copied:"¡Copiado!"},ne={placeholder:"Añadir una tarea nueva...",due:"Vence:",todayAt:"Hoy a las {time}",tomorrowAt:"Mañana a las {time}"},se={previewLabel:"Vista previa",newTodo:"Tarea nueva...",fetchingLinkInfo:"Obteniendo información del enlace...",overdue:"Vencida",today:"Hoy",tomorrow:"Mañana",dateAtTime:"{date} a las {time}"},de={enableRepeat:"Activar repetición",repeatType:"Tipo de repetición",kind:{regularInterval:"Intervalo regular",intervalAfterComplete:"Intervalo tras completar"},every:"Cada",unit:"Unidad",units:{minute:"Minuto(s)",hour:"Hora(s)",day:"DÃa(s)",week:"Semana(s)",month:"Mes(es)",year:"Año(s)"},onlyOnTheseDays:"Solo estos dÃas (opcional)",presets:{weekdays:"DÃas laborables",weekend:"Fin de semana",clear:"Borrar"}},le={label:"Etiquetas",inputPlaceholder:"Escribe para buscar o añadir etiquetas...",createTag:'+ Crear "{name}"'}
1,ce={title:"Bandeja de entrada",showCompleted:"Mostrar completadas",showDeferred:"Mostrar aplazadas",addPlaceholder:"Añadir una tarea nueva...",loading:"Cargando...",emptyAllTodos:"Aún no hay tareas. ¡Añade una arriba!",emptyIncompleteTodos:'No hay tareas incompletas. ¡Añade una arriba o activa "Mostrar completadas"!',listEmptyMessage:"Aún no hay tareas",deleteConfirmTitle:"Eliminar tarea",deleteConfirmMessage:"¿Seguro que quieres eliminar esta tarea? Esta acción no se puede deshacer.",errors:{loadFailed:"No se pudieron cargar las tareas",toggleFailed:"No se pudo alternar la finalización de la tarea",completeFailed:"No se pudo completar la tarea",deleteFailed:"No se pudo eliminar la tarea",updateFailed:"No se pudo actualizar la tarea",reorderSubtasksFailed:"No se pudieron reordenar las subtareas",makeSubtaskFailed:"No se pudo convertir en subtarea",promoteSubtaskFailed:"No se pudo promover la subtarea",createSubtaskFailed:"No se pudo crear la subtarea"}},ue={removeFromBoard:"Quitar del tablero",addSubtask:"+ Subtarea",addSubtaskTitle:"Añadir subtarea",collapseSubtasks:"Contraer subtareas",expandSubtasks:"Expandir subtareas",subtaskOf:"Subtarea de: {title}",unsubscribeFromNotifications:"Cancelar suscripción a las notificaciones",subscribeToNotifications:"Suscribirse a las notificaciones",assignedTo:"Asignada a {name} (haz clic para cambiar)",assignToSomeone:"Asignar a alguien",assignTo:"Asignar a...",unassign:"Quitar asignación",moveToTop:"Mover arriba",moveToColumn:"Mover a la columna"},me={logoAlt:"TaskLeef",verifyingTitle:"Verificando correo electrónico",verifiedTitle:"Correo electrónico verificado",failedTitle:"Verificación fallida",loadingMessage:"Espera mientras verificamos tu correo electrónico...",verifiedMessage:"¡Correo electrónico verificado correctamente! Redirigiendo al inicio de sesión...",resendSentMessage:"¡Correo de verificación enviado! Revisa tu bandeja de entrada.",resendPrompt:"¿Necesitas un nuevo enlace de verificación?",emailPlaceholder:"Introduce tu correo electrónico",sending:"Enviando...",resendButton:"Reenviar correo de verificación",goToLogin:"Ir al inicio de sesión",errors:{missingToken:"Token de verificación no válido o ausente",verifyFailed:"No se pudo verificar el correo electrónico",emailRequired:"Introduce tu dirección de correo electrónico",resendFailed:"No se pudo reenviar el correo de verificación"}},pe={title:"Espacio de trabajo",description:"Gestiona el espacio de trabajo de tu equipo, sus miembros y los asientos.",loadingWorkspaces:"Cargando espacios de trabajo...",workspaceLabel:"Espacio de trabajo:",tierLabel:"Plan:",seatsLabel:"Asientos:",membersLabel:"Miembros:",membersHeading:"Miembros",loadingMembers:"Cargando miembros...",roleAdmin:"Administrador",roleMember:"Miembro",removeMember:"Quitar",emailPlaceholder:"Dirección de correo electrónico",addingMember:"Añadiendo...",addMember:"Añadir miembro",seatManagementHeading:"Gestión de asientos",seatsInputLabel:"Asientos:",loading:"Cargando...",previewChange:"Previsualizar cambio",immediateCharge:"Cargo inmediato:",updating:"Actualizando...",confirmChange:"Confirmar cambio",memberAddedSuccess:"Miembro añadido correctamente",seatsUpdatedSuccess:"Asientos actualizados correctamente",errors:{loadWorkspacesFailed:"No se pudieron cargar los espacios de trabajo",loadMembersFailed:"No se pudieron cargar los miembros",addMemberFailed:"No se pudo añadir el miembro",removeMemberFailed:"No se pudo quitar el miembro",updateRoleFailed:"No se pudo actualizar el rol",previewSeatFailed:"No se pudo previsualizar el cambio de asientos",updateSeatsFailed:"No se pudieron actualizar los asientos",updateNameFailed:"No se pudo actualizar el nombre del espacio de trabajo"}},ge={englishNotice:"Estos documentos legales se proporcionan únicamente en inglés. Otras partes de TaskLeef pueden traducirse automáticamente para su comodidad, pero la versión en inglés es la legalmente vinculante."},be={landing:{description:"Gestión de tareas que vive donde tú trabajas. Terminal, editor o navegador, con una CLI completa, servidor MCP e IA agéntica."},pricing:{title:"Precios",description:"Precios sencillos y transparentes. Los planes de TaskLeef empiezan gratis e incluyen CLI, tableros compartidos y SSO."},docs:{title:"Documentación de la API REST y el servidor MCP â Integración con Claude Code",description:"Documentación de la API REST y el servidor MCP de TaskLeef. Gestiona tareas, tableros Kanban, columnas, tarjetas, etiquetas y comentarios. Compatible con Claude Code, Claude.ai y CoWork."}
1,ios:{title:"TaskLeef para iPhone",description:"TaskLeef para iPhone. Captura rápida con lenguaje natural, notificaciones insistentes que no te dejan olvidar nada, tareas recurrentes inteligentes y sincronización en tiempo real con tus tableros Kanban."}},ve={title:"Trash",emptyState:"Trash is empty",emptyStateHint:"Deleted tasks will appear here for 30 days before being permanently removed.",emptyTrash:"Empty Trash",restore:"Restore",deletePermanently:"Delete permanently",confirmEmptyTitle:"Empty Trash?",confirmEmptyMessage:"This will permanently delete all {count} item(s) in the trash. This action cannot be undone.",confirmDeleteTitle:"Delete permanently?",confirmDeleteMessage:'This will permanently delete "{title}". This action cannot be undone.',deletedAgo:"Deleted {days} day(s) ago",deletedToday:"Deleted today",autoDeletesIn:"Auto-deletes in {days} day(s)",autoDeletesSoon:"Auto-deletes soon",errorLoad:"Failed to load trash.",errorRestore:"Failed to restore task.",errorDelete:"Failed to delete task.",errorEmptyTrash:"Failed to empty trash."},he={acceptInvitationView:e,adminBoardView:a,adminUserBoardsView:o,adminView:r,aiProvidersPanel:i,apiDocsView:t,apiKeysPanel:n,appStoreSection:s,authCallbackView:d,boardCard:l,boardMembersModal:c,boardView:u,boardsView:m,cTASection:p,cardAttachments:g,cardExternalLinks:b,columnAiChat:v,commentsAndActivity:h,common:f,dangerZonePanel:C,dueDateSection:y,emailVerificationPendingView:T,emojiPickerPopup:A,feedback:P,search:q,folderSection:k,gitHubIntegrationConfig:I,heroSection:N,inbox:S,integrationTierGate:F,integrationsPanel:j,iosView:M,kanbanColumn:L,landingFAQ:E,landingFooter:w,landingNavBar:z,landingView:D,listView:R,login:H,navBar:B,notificationDropdown:G,notificationPreferencesPanel:O,oAuthConsentView:x,omniFocusImportPanel:V,outboundWebhookConfig:U,passkeysPanel:W,preferences:Q,pricingSection:K,pricingView:$,profileView:Y,quickAddTodo:J,resetPasswordView:Z,securityPanel:X,signupChart:_,slackIntegrationConfig:ee,subscriptionPanel:ae,tagsView:oe,todoAssigneeSection:re,todoContent:ie,todoEditModal:te,todoInput:ne,todoPreview:se,todoRepeatSection:de,todoTagsSection:le,todosView:ce,unifiedCard:ue,verifyEmailView:me,workspacePanel:pe,legal:ge,seo:be,trashView:ve};export{e as acceptInvitationView,a as adminBoardView,o as adminUserBoardsView,r as adminView,i as aiProvidersPanel,t as apiDocsView,n as apiKeysPanel,s as appStoreSection,d as authCallbackView,l as boardCard,c as boardMembersModal,u as boardView,m as boardsView,p as cTASection,g as cardAttachments,b as cardExternalLinks,v as columnAiChat,h as commentsAndActivity,f as common,C as dangerZonePanel,he as default,y as dueDateSection,T as emailVerificationPendingView,A as emojiPickerPopup,P as feedback,k as folderSection,I as gitHubIntegrationConfig,N as heroSection,S as inbox,F as integrationTierGate,j as integrationsPanel,M as iosView,L as kanbanColumn,E as landingFAQ,w as landingFooter,z as landingNavBar,D as landingView,ge as legal,R as listView,H as login,B as navBar,G as notificationDropdown,O as notificationPreferencesPanel,x as oAuthConsentView,V as omniFocusImportPanel,U as outboundWebhookConfig,W as passkeysPanel,Q as preferences,K as pricingSection,$ as pricingView,Y as profileView,J as quickAddTodo,Z as resetPasswordView,q as search,X as securityPanel,be as seo,_ as signupChart,ee as slackIntegrationConfig,ae as subscriptionPanel,oe as tagsView,re as todoAssigneeSection,ie as todoContent,te as todoEditModal,ne as todoInput,se as todoPreview,de as todoRepeatSection,le as todoTagsSection,ce as todosView,ve as trashView,ue as unifiedCard,me as verifyEmailView,pe as workspacePanel};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.