@maudecode/kanvil 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/apps/server/.env.example +5 -0
  2. package/apps/server/dist/{auth-CnAQzKyq.mjs → auth-Cs_whzgk.mjs} +382 -127
  3. package/apps/server/dist/client.mjs +4 -3
  4. package/apps/server/dist/{config-DOT1SDQO.mjs → config-DKuNQY5b.mjs} +15 -7
  5. package/apps/server/dist/index.mjs +105 -57
  6. package/apps/server/dist/migrate.mjs +2 -2
  7. package/apps/server/dist/recover.mjs +4 -4
  8. package/apps/server/dist/{src-VxR5jZiK.mjs → src-DptOUNRd.mjs} +67 -23
  9. package/apps/web/dist/assets/{CompositeItem-B5Qlh5m0.js → CompositeItem-CXqewtEL.js} +1 -1
  10. package/apps/web/dist/assets/{Trans-DxqBaUXP.js → Trans-B1rRlWca.js} +1 -1
  11. package/apps/web/dist/assets/{admin-settings-Bp7V2t1V.js → admin-settings-DE3MfBFE.js} +1 -1
  12. package/apps/web/dist/assets/{archive-restore-wsAzhqi-.js → archive-restore-76sStk8K.js} +1 -1
  13. package/apps/web/dist/assets/az-AZ-bFxpMMZN.js +1 -0
  14. package/apps/web/dist/assets/{az-C4KDjOOw.js → az-B7OgHoaE.js} +1 -1
  15. package/apps/web/dist/assets/{corner-left-up-arA2ipmM.js → corner-left-up-PD-73Nae.js} +1 -1
  16. package/apps/web/dist/assets/{de-Z599ZW7b.js → de-B-bv38Q0.js} +1 -1
  17. package/apps/web/dist/assets/de-DE-BeXI30Ll.js +1 -0
  18. package/apps/web/dist/assets/default-bQFGTwIp.js +56 -0
  19. package/apps/web/dist/assets/{delivery-settings-D5NKPlhN.js → delivery-settings-BvMeOsCS.js} +1 -1
  20. package/apps/web/dist/assets/{el-xsvq992p.js → el-BQHQHQgX.js} +1 -1
  21. package/apps/web/dist/assets/el-GR-SgRHlWhY.js +1 -0
  22. package/apps/web/dist/assets/{ellipsis-UOkL14vq.js → ellipsis-GF1HwTDb.js} +1 -1
  23. package/apps/web/dist/assets/es-ES-BF1J5vap.js +1 -0
  24. package/apps/web/dist/assets/{es-D3e9L5_i.js → es-f5Xr8ldr.js} +1 -1
  25. package/apps/web/dist/assets/{forms-BbWAl0BZ.js → forms-BlEL8C_P.js} +1 -1
  26. package/apps/web/dist/assets/{fr-CY35Bcpp.js → fr-DSR0htnl.js} +1 -1
  27. package/apps/web/dist/assets/fr-FR-D_sldwf6.js +1 -0
  28. package/apps/web/dist/assets/{hi-Cqfv-E5P.js → hi-BaAJEWuW.js} +1 -1
  29. package/apps/web/dist/assets/hi-IN-CfOw4TWf.js +1 -0
  30. package/apps/web/dist/assets/{highlight-Ds7xUUQv.js → highlight-DXT2xgt8.js} +1 -1
  31. package/apps/web/dist/assets/id-ID-CLKtHO7Q.js +1 -0
  32. package/apps/web/dist/assets/{id-CFBOVDUC.js → id-kxogWcip.js} +1 -1
  33. package/apps/web/dist/assets/{index-2V6MWx63.js → index-CYVrs22O.js} +5 -5
  34. package/apps/web/dist/assets/{invitations-BPk5fwwU.js → invitations-BPik3J_G.js} +1 -1
  35. package/apps/web/dist/assets/{it-DNLponcC.js → it-C_qk40U6.js} +1 -1
  36. package/apps/web/dist/assets/it-IT-eVZNW5qX.js +1 -0
  37. package/apps/web/dist/assets/{item-DED0Ikqi.js → item-TCHuZNK6.js} +1 -1
  38. package/apps/web/dist/assets/{ja-ZXGlS4WA.js → ja-Dn5h64V9.js} +1 -1
  39. package/apps/web/dist/assets/ja-JP-D96njn-P.js +1 -0
  40. package/apps/web/dist/assets/{ko-CSoj1hQM.js → ko-CjaoEPuG.js} +1 -1
  41. package/apps/web/dist/assets/ko-KR-Bash_ieA.js +1 -0
  42. package/apps/web/dist/assets/{label-settings-D12QOkDs.js → label-settings-DZTorNDm.js} +1 -1
  43. package/apps/web/dist/assets/{markdown-blocks-DbsqN1T2.js → markdown-blocks-BQLO-H_7.js} +1 -1
  44. package/apps/web/dist/assets/{member-directory-BRhEIYZ6.js → member-directory-Dx_jQYfI.js} +1 -1
  45. package/apps/web/dist/assets/mk-MK-BWQWGIRx.js +1 -0
  46. package/apps/web/dist/assets/{mk-D77vceoz.js → mk-jLeGD50T.js} +1 -1
  47. package/apps/web/dist/assets/{nl-Bew8-xmX.js → nl-AVtC5ygT.js} +1 -1
  48. package/apps/web/dist/assets/nl-NL-D1tvo0Gd.js +1 -0
  49. package/apps/web/dist/assets/{pl-CEBl_oa9.js → pl-Dup1h_Y1.js} +1 -1
  50. package/apps/web/dist/assets/pl-PL-DNgGUEcQ.js +1 -0
  51. package/apps/web/dist/assets/{project-lifecycle-DGHAmEB2.js → project-lifecycle-n1ZZbYfu.js} +1 -1
  52. package/apps/web/dist/assets/{project-settings-DY8Ossd-.js → project-settings-B_Ih5kiz.js} +1 -1
  53. package/apps/web/dist/assets/pt-BR-CZsUZQ6P.js +1 -0
  54. package/apps/web/dist/assets/{pt-BR-BDTQeKcp.js → pt-BR-Cm04EWM-.js} +1 -1
  55. package/apps/web/dist/assets/{public-project-BeXla8TL.js → public-project-BivDjU_a.js} +1 -1
  56. package/apps/web/dist/assets/{rotate-ccw-DGM890Fc.js → rotate-ccw-CSaKhZYt.js} +1 -1
  57. package/apps/web/dist/assets/{ru-BeH0eXQq.js → ru-IeycXsyE.js} +1 -1
  58. package/apps/web/dist/assets/ru-RU-4ew92YE_.js +1 -0
  59. package/apps/web/dist/assets/{search-B3-w3oCd.js → search-Ble6WSEU.js} +3 -3
  60. package/apps/web/dist/assets/{send-B9baaCnt.js → send-BLMZ8gQ0.js} +1 -1
  61. package/apps/web/dist/assets/settings-CH48qQK2.js +1 -0
  62. package/apps/web/dist/assets/{sliders-horizontal-yKgghk8h.js → sliders-horizontal-Db6kRvuw.js} +1 -1
  63. package/apps/web/dist/assets/{switch-ByOrazEW.js → switch-BeX-0Fwq.js} +1 -1
  64. package/apps/web/dist/assets/{table-Cm6NQXfq.js → table-UJp5S9yy.js} +1 -1
  65. package/apps/web/dist/assets/ticket-detail-C24opfNW.js +2 -0
  66. package/apps/web/dist/assets/{ticket-editor-CLDBUk0n.js → ticket-editor--d_bG9C1.js} +2 -2
  67. package/apps/web/dist/assets/{ticket-list-BC9acNl4.js → ticket-list-DRbZWYHf.js} +1 -1
  68. package/apps/web/dist/assets/{ticket-list-controls-CRQk5ghe.js → ticket-list-controls-fYBottFC.js} +1 -1
  69. package/apps/web/dist/assets/{tr-BNApk6Hc.js → tr-DtT_dKUK.js} +1 -1
  70. package/apps/web/dist/assets/tr-TR-CM381XCw.js +1 -0
  71. package/apps/web/dist/assets/{uk-CjShsgpN.js → uk-CsbeHSS6.js} +1 -1
  72. package/apps/web/dist/assets/uk-UA-AeOiWCVo.js +1 -0
  73. package/apps/web/dist/assets/{upload-BzLq4CMS.js → upload-DUEg04Nj.js} +1 -1
  74. package/apps/web/dist/assets/{useQueries-D64vLhM6.js → useQueries-5lW2C5Sb.js} +1 -1
  75. package/apps/web/dist/assets/vi-VN-td08xXv9.js +1 -0
  76. package/apps/web/dist/assets/{vi-s5Hfv1Y-.js → vi-rkf1BOLx.js} +1 -1
  77. package/apps/web/dist/assets/{visual-editor-KE96mwCg.js → visual-editor-DkFLjouD.js} +1 -1
  78. package/apps/web/dist/assets/{workspace-settings-C-Phmi9i.js → workspace-settings-Bcsp-VoJ.js} +1 -1
  79. package/apps/web/dist/assets/zh-CN-D3dhEYLS.js +1 -0
  80. package/apps/web/dist/assets/{zh-CN-BBnpHJ9R.js → zh-CN-Xo-QId5w.js} +1 -1
  81. package/apps/web/dist/assets/zh-TW-CfhOEFo8.js +1 -0
  82. package/apps/web/dist/assets/{zh-TW-sSWkqSLN.js → zh-TW-DEnTqjbn.js} +1 -1
  83. package/apps/web/dist/index.html +7 -7
  84. package/docs/api.md +27 -13
  85. package/docs/cli.md +9 -1
  86. package/docs/releasing.md +16 -2
  87. package/docs/self-hosting.md +8 -0
  88. package/package.json +1 -1
  89. package/apps/web/dist/assets/az-AZ-DlsPlUZi.js +0 -1
  90. package/apps/web/dist/assets/de-DE-DLCaqUUe.js +0 -1
  91. package/apps/web/dist/assets/default-6QIAyMq2.js +0 -56
  92. package/apps/web/dist/assets/el-GR-P2XcwrSU.js +0 -1
  93. package/apps/web/dist/assets/es-ES-CJoX8f3w.js +0 -1
  94. package/apps/web/dist/assets/fr-FR-yLkQdy6a.js +0 -1
  95. package/apps/web/dist/assets/hi-IN-y8dqej7z.js +0 -1
  96. package/apps/web/dist/assets/id-ID-DSvh8mGH.js +0 -1
  97. package/apps/web/dist/assets/it-IT-BUcfUqNo.js +0 -1
  98. package/apps/web/dist/assets/ja-JP-C-jLP_Ay.js +0 -1
  99. package/apps/web/dist/assets/ko-KR-C5Ozdm2E.js +0 -1
  100. package/apps/web/dist/assets/mk-MK-BdM_SsE8.js +0 -1
  101. package/apps/web/dist/assets/nl-NL-CwjB5sva.js +0 -1
  102. package/apps/web/dist/assets/pl-PL-6-PMhTBd.js +0 -1
  103. package/apps/web/dist/assets/pt-BR-TD_wt6Hr.js +0 -1
  104. package/apps/web/dist/assets/ru-RU-Bk1a6Oln.js +0 -1
  105. package/apps/web/dist/assets/settings-BKZfEkVk.js +0 -1
  106. package/apps/web/dist/assets/ticket-detail-Cd3_e2jz.js +0 -2
  107. package/apps/web/dist/assets/tr-TR-CUfBb7K9.js +0 -1
  108. package/apps/web/dist/assets/uk-UA-BDaXBsDP.js +0 -1
  109. package/apps/web/dist/assets/vi-VN-Bgb-L6mE.js +0 -1
  110. package/apps/web/dist/assets/zh-CN-BypkvBe6.js +0 -1
  111. package/apps/web/dist/assets/zh-TW-CgMsT_XS.js +0 -1
@@ -0,0 +1 @@
1
+ var e={common:{status:{backlog:`Backlog`,todo:`A fazer`,in_progress:`Em andamento`,in_review:`Em revisão`,done:`Concluído`,cancelled:`Cancelado`},priority:{urgent:`Urgente`,high:`Alta`,medium:`Média`,low:`Baixa`,none:`Sem prioridade`},kind:{feature:`Funcionalidade`,bug:`Bug`,chore:`Manutenção`,research:`Pesquisa`,documentation:`Documentação`},difficulty:{low:`Baixa`,med:`Média`,high:`Alta`,none:`Sem dificuldade`},role:{reader:`Somente leitura`,writer:`Pode editar`,admin:`Administrador`},permission:{ticket:{write:{label:`Editar tickets`,description:`Criar, editar, mover, reservar e comentar tickets; criar projetos`},delete:{label:`Excluir tickets`,description:`Excluir tickets permanentemente`}},project:{manage:{label:`Gerenciar projetos`,description:`Detalhes, fluxo de trabalho, etiquetas, campos, integrações e ciclo de vida do projeto`}},member:{manage:{label:`Gerenciar membros`,description:`Adicionar, alterar e remover membros`}},invitation:{manage:{label:`Gerenciar convites`,description:`Convidar pessoas por e-mail`}},sharing:{manage:{label:`Gerenciar compartilhamento`,description:`Links públicos somente leitura e feeds de calendário`}},workspace:{manage:{label:`Gerenciar espaço de trabalho`,description:`Detalhes do espaço de trabalho, etiquetas compartilhadas e funções`}}},customFieldType:{text:`Texto`,number:`Número`,date:`Data`,checkbox:`Caixa de seleção`,select:`Seleção`,multiselect:`Seleção múltipla`},customField:{removedOption:`Opção removida`,checked:`Sim`},filterField:{status:`Status`,priority:`Prioridade`,kind:`Tipo`,difficulty:`Dificuldade`,label:`Etiqueta`,assigneeId:`Responsável`,customField:`Campo`},sort:{priority:`Prioridade`,updated:`Atualizados recentemente`,created:`Criados recentemente`,title:`Título`,labels:`Etiquetas`,due:`Data de entrega`,start:`Data de início`,number:`Número do ticket`,status:`Status`,difficulty:`Dificuldade`,kind:`Tipo`,assignee:`Responsável`,manual:`Manual`},due:{overdue:`Atrasado`,today:`Entrega hoje`,week:`Entrega nesta semana`,scheduled:`Com data de entrega`,none:`Sem data de entrega`},relation:{blocks:{outgoing:`Bloqueia`,incoming:`É bloqueado por`},related:{outgoing:`Relacionado a`,incoming:`Relacionado a`},duplicate:{outgoing:`Duplica`,incoming:`É duplicado por`},causes:{outgoing:`Causa`,incoming:`É causado por`},clones:{outgoing:`Clona`,incoming:`É clonado por`},implements:{outgoing:`Implementa`,incoming:`É implementado por`},reviews:{outgoing:`Revisa`,incoming:`É revisado por`}},remoteKind:{branch:`Branch`,pull_request:`Pull request`,issue:`Issue`},notificationCategory:{assignment:`Atribuições`,status:`Mudanças de status`,comment:`Comentários`,mention:`Menções`,update:`Outras atualizações`,due_soon:`Entrega próxima`,overdue:`Atrasados`},destinationEvent:{created:`Novos tickets`},deliveryKind:{email:`E-mail`,webhook:`Webhook`},change:{pull_request:{name:`Pull request`,opened:`Pull request aberto`,draft:`Pull request em rascunho`,merged:`Pull request mesclado`,closed:`Pull request fechado sem mesclar`},merge_request:{name:`Merge request`,opened:`Merge request aberto`,draft:`Merge request em rascunho`,merged:`Merge request mesclado`,closed:`Merge request fechado sem mesclar`},branchCreated:`Branch criada`},issueLinkState:{active:`Sincronizando`,paused:`Pausado`,review:`Requer revisão`,creating:`Criando issue`,unknown:`Criação não confirmada`},importStatus:{previewed:`Pronto para importar`,running:`Importando`,completed:`Importado`,failed:`Falhou`,cancelled:`Cancelado`},importProvider:{linear:{project:`Equipe`,setup:`Crie uma chave de API pessoal em Settings › Security & access no Linear; acesso de leitura é suficiente.`},jira:{project:`Projeto`,setup:`O Jira Cloud usa o e-mail da sua conta e um token de API de id.atlassian.com; Data Center e Server usam um token de acesso pessoal. Acesso de navegação ao projeto é suficiente.`},trello:{project:`Quadro`,setup:`Use a chave de API de um Power-Up que você administra em trello.com/power-ups/admin e um token gerado para ele; acesso de leitura é suficiente.`},plane:{project:`Projeto`,setup:`Crie um token de acesso pessoal em Profile settings › Personal access tokens no Plane. O endereço da API do Plane Cloud é https://api.plane.so; a chave de URL do espaço de trabalho é a primeira parte do endereço web dele.`},planka:{project:`Quadro`,setup:`Entre com uma conta do PLANKA que possa abrir o quadro; a sessão aberta pelo Kanvil termina junto com a leitura. Administradores do PLANKA 2 podem emitir chaves de API em vez disso.`},kaneo:{project:`Projeto`,setup:`Crie uma chave de API em Settings › Account › Developer no Kaneo.`}},plankaSignIn:{password:`Usuário e senha`,api_key:`Chave de API`},jiraEdition:{cloud:`Cloud`,data_center:`Data Center ou Server`},event:{time_entry:{created:`Registro de tempo criado`,updated:`Registro de tempo atualizado`,deleted:`Registro de tempo excluído`},label:{created:`Etiqueta criada`,updated:`Etiqueta atualizada`,deleted:`Etiqueta excluída`},workflow:{created:`Estado adicionado`,updated:`Estado alterado`,deleted:`Estado removido`},custom_field:{created:`Campo criado`,updated:`Campo atualizado`,deleted:`Campo excluído`},ticket:{created:`Ticket criado`,updated:`Ticket atualizado`,deleted:`Ticket excluído`,moved:`Movido de outro projeto`,moved_away:`Movido para outro projeto`,due_soon:`Entrega próxima`,overdue:`Atrasado`,claimed:`Trabalho reservado`},claim:{renewed:`Reserva renovada`,released:`Reserva liberada`,recovered:`Reserva recuperada`},comment:{created:`Comentário adicionado`,updated:`Comentário editado`,deleted:`Comentário excluído`},relation:{added:`Relação adicionada`,removed:`Relação removida`},attachment:{created:`Arquivo anexado`,deleted:`Arquivo removido`},evidence:{added:`Evidência anexada`},resource:{added:`Link adicionado`,updated:`Link editado`,removed:`Link removido`},calendar_feed:{created:`Feed de calendário criado`,revoked:`Feed de calendário revogado`},project:{created:`Projeto criado`,updated:`Projeto atualizado`,archived:`Projeto arquivado`,restored:`Projeto restaurado`,transferred:`Projeto movido para outro espaço de trabalho`,deleted:`Projeto excluído`},membership:{updated:`Acesso ao projeto alterado`},workspace:{owner_changed:`Proprietário do espaço de trabalho alterado`},role:{created:`Função criada`,updated:`Função alterada`,deleted:`Função excluída`},invitation:{updated:`Convite alterado`},destination:{created:`Destino adicionado`,updated:`Destino alterado`,deleted:`Destino removido`},repository:{connected:`Repositório conectado`,updated:`Conexão do repositório alterada`,disconnected:`Repositório desconectado`,received:`Webhook do repositório recebido`},issue_link:{updated:`Sincronização de issue alterada`}},error:{network:`Não foi possível acessar o Kanvil. Verifique a conexão e tente novamente.`,fallback:`Não foi possível concluir a solicitação`,input:`Entrada`,code:{unauthorized:`Entre para continuar.`,session_required:`Use uma conta conectada para esta ação.`,account_disabled:`Esta conta está desativada.`,forbidden:`Sem permissão para fazer isso.`,insufficient_scope:`Esta credencial não permite esta ação.`,workspace_scope_required:`Use uma conta com acesso ao espaço de trabalho para esta ação.`,invalid_origin:`Esta origem não é permitida.`,not_found:`Este item não foi encontrado ou não está visível para esta conta.`,version_conflict:`Isto mudou desde que foi carregado. Recarregue e tente novamente.`,time_entry_conflict:`Este usuário já tem um registro de tempo em andamento neste ticket.`,claim_conflict:`Outro executor reservou este ticket.`,idempotency_conflict:`Esta solicitação já foi usada para outra alteração.`,project_archived:`Restaure o projeto arquivado antes de alterá-lo.`,rate_limited:`Muitas alterações em pouco tempo. Aguarde e tente novamente.`,snapshot_required:`O feed ao vivo ficou para trás. Recarregue para continuar.`,request_failed:`Não foi possível concluir a solicitação`}},action:{add:`Adicionar`,apply:`Aplicar`,back:`Voltar`,cancel:`Cancelar`,clear:`Limpar`,close:`Fechar`,confirm:`Confirmar`,continue:`Continuar`,copy:`Copiar`,create:`Criar`,delete:`Excluir`,done:`Concluído`,edit:`Editar`,open:`Abrir`,remove:`Remover`,rename:`Renomear`,reset:`Redefinir`,retry:`Tentar novamente`,save:`Salvar`,search:`Pesquisar`},state:{copied:`Copiado`,loading:`Carregando…`,saved:`Salvo`,saving:`Salvando…`,none:`Nenhum`,unassigned:`Sem responsável`},evidenceKind:{pull_request:`Pull request`,test:`Teste`,review:`Revisão`,deployment:`Implantação`,device:`Dispositivo`,other:`Outro`},evidenceOutcome:{reported:`Informado`,pending:`Pendente`,passed:`Aprovado`,failed:`Falhou`},readinessReason:{project_archived:`O projeto está arquivado`,not_open:`O ticket deve estar em um estado A fazer e não arquivado`,not_enabled:`O trabalho de agentes não foi ativado`,missing_description:`Adicione uma descrição`,missing_acceptance_criteria:`Adicione critérios de aceitação`,missing_difficulty:`Escolha uma dificuldade`,duplicate:`Este ticket está marcado como duplicado`,claim_recovery_required:`Confirme que o executor anterior parou antes de recuperar a propriedade`,claimed:`Reservado por {{worker}}`,dependency:`{{key}} não está concluído`},person:{deleted:`Conta excluída`,former:`Ex-membro`},signIn:{codeTitle:`Entrar com um código`,resetTitle:`Redefinir senha`,codeSent:`Se {{email}} tiver uma conta, um código está a caminho. Ele expira em 10 minutos.`,code:`Código`,newPassword:`Nova senha`,sendCode:`Enviar um código por e-mail`,back:`Voltar ao login`,resend:`Reenviar código`,resent:`Código reenviado`,emailCode:`Enviar um código de login por e-mail`,forgot:`Esqueceu a senha?`,resetDone:`Senha redefinida. Entre com a nova senha.`,resetDoneTitle:`Senha redefinida`,resetDoneBody:`Entre com a nova senha.`,invalidCode:`Esse código está incorreto, já foi usado ou expirou. Reenvie-o para receber um válido.`,localPassword:`Senha local`},language:{label:`Idioma`,system:`Padrão do sistema`}},shell:{ui:{showValue:`Mostrar {{label, lowercase}}`,hideValue:`Ocultar {{label, lowercase}}`,previousPage:`Página anterior de {{noun}}`,nextPage:`Próxima página de {{noun}}`,pageRange:`{{from}}–{{to}} de {{total}}`,priority:`Prioridade {{label, lowercase}}`,working:`Processando…`,searchPlaceholder:`Pesquisar…`,clearValue:`Limpar {{label, lowercase}}`,copyValue:`Copiar {{label, lowercase}}`,copied:`{{value}} copiado`},documentTitle:`{{name}} · Kanvil`,openKanvil:`Abrir o Kanvil`,page:{home:`Início`,myWork:`Meu trabalho`,inbox:`Caixa de entrada`,search:`Pesquisa`,settings:`Configurações`,planning:`Planejamento`,ticket:`Ticket`,tickets:`Tickets`,projects:`Projetos`},connection:{restored:`Conexão restabelecida`,lost:`Conexão perdida`,reconnecting:`Reconectando…`,reload:`Recarregar`,signIn:`Entre para reconectar`},app:{skipToContent:`Pular para o conteúdo`,assigned:`Atribuídos a você`,openCount_one:`{{count, number}} aberto`,openCount_many:`{{count, number}} abertos`,openCount_other:`{{count, number}} abertos`,noAssigned:`Nenhum ticket aberto atribuído a você`,allInMyWork_one:`{{count, number}} em Meu trabalho`,allInMyWork_many:`Todos os {{count, number}} em Meu trabalho`,allInMyWork_other:`Todos os {{count, number}} em Meu trabalho`,openMyWork:`Abrir Meu trabalho`,recentActivity:`Atividade recente`,noActivity:`Nenhuma atividade ainda`,searchProjects:`Pesquisar projetos`,projectCount_one:`{{count, number}} projeto`,projectCount_many:`{{count, number}} projetos`,projectCount_other:`{{count, number}} projetos`,noMatchingProjects:`Nenhum projeto correspondente`,clearSearch:`Limpar pesquisa`,noWorkspaces:`Nenhum espaço de trabalho ainda`,noActiveProjects:`Nenhum projeto ativo`,noProjects:`Nenhum projeto ainda`,archivedProjects:`Projetos arquivados`,archived:`Arquivado`,noOpenTickets:`Nenhum ticket aberto`,overdueCount_one:`{{count, number}} atrasado`,overdueCount_many:`{{count, number}} atrasados`,overdueCount_other:`{{count, number}} atrasados`,percentDone:`{{percent}} concluído`,nextDue:`próxima entrega <time/>`,projectSettingsFor:`Configurações do projeto {{name}}`,pageNotFound:`Página não encontrada`,openHome:`Abrir início`,tryAgain:`Tentar novamente`,adminRequired:`É necessário acesso de administrador da instância`,projectNotFound:`Projeto não encontrado`,noWorkspaceSelected:`Nenhum espaço de trabalho selecionado`},auth:{signIn:`Entrar`,createOwner:`Criar a conta de proprietário`,ownerHint:`A primeira conta administra esta instância.`,invitedHint:`Entre com o endereço de e-mail convidado para aceitar o convite.`,signInWith:`Entrar com {{provider}}`,useEmail:`Usar e-mail e senha`,or:`ou`,name:`Nome`,setupToken:`Token de configuração`,setupTokenHint:`Use KANVIL_SETUP_TOKEN da configuração da instância.`,email:`E-mail`,password:`Senha`,signingIn:`Entrando…`,createAccount:`Criar conta`,consent:{expired:`A solicitação de autorização expirou. Reconecte o cliente.`,title:`Autorizar {{client}}`,titleUnnamed:`Autorizar cliente`,subtitle:`Este cliente solicita acesso como a sua conta. As permissões de projeto continuam valendo.`,deny:`Negar`,allow:`Permitir acesso`},invitation:{unavailable:`Convite indisponível`,join:`Entrar em {{workspace}}`,invited:`Convidado`,from:`De`,access:`Acesso`,removedProjects:`Projetos removidos`,wholeWorkspace:`Todo o espaço de trabalho`,expires:`Expira`,expired:`Este convite expirou. Peça um novo convite a um administrador do espaço de trabalho.`,revoked:`Este convite foi revogado. Peça um novo convite a um administrador do espaço de trabalho.`,accepted:`Este convite já foi aceito. Peça um novo convite a um administrador do espaço de trabalho.`,wrongAccount:`Sessão iniciada como <account>{{current}}</account>. Entre como {{invited}} para aceitar.`,signOut:`Sair`,joined:`Você entrou em {{workspace}}`,accept:`Aceitar convite`},callback:{cancelled:`O login foi cancelado. Tente novamente quando quiser.`,linkedElsewhere:`Esta identidade já está vinculada a outra conta do Kanvil. Use outra identidade ou contate o administrador.`,notLinked:`Esta identidade não está vinculada a uma conta do Kanvil. Entre com a conta local e vincule-a em Configurações.`,expired:`A solicitação de login expirou ou não pôde ser verificada. Tente novamente a partir desta tela.`,emailMismatch:`Não foi possível vincular o e-mail do provedor de identidade. Contate o administrador.`,failed:`Não foi possível concluir o login. Tente novamente ou contate o administrador.`}},you:`Você`,inbox:{markAllRead:`Marcar tudo como lido`,clearRead:`Limpar lidas`,cleared_one:`{{count, number}} notificação lida removida`,cleared_many:`{{count, number}} notificações lidas removidas`,cleared_other:`{{count, number}} notificações lidas removidas`,unread:`Não lidas`,mentions:`Menções`,all:`Todas as notificações`,noUnread:`Nenhuma notificação não lida`,noMentions:`Nenhuma menção`,noNotifications:`Nenhuma notificação`,markUnread:`Marcar como não lida`,markRead:`Marcar como lida`,dismiss:`Descartar`},search:{field:`Pesquisar no espaço de trabalho`,placeholder:`Pesquisar tickets, projetos, comentários, atividade…`,tab:{all:`Tudo`,project:`Projetos`,ticket:`Tickets`,comment:`Comentários`,activity:`Atividade`},indexing:`A pesquisa externa está se atualizando, então os resultados de tickets vêm do PostgreSQL.`,empty:`Pesquisar tickets, projetos, comentários e atividade`,noResults:`Nenhum resultado para “{{query}}”`,results:`Resultados da pesquisa`,pages:`Páginas de resultados`,previous:`Anterior`,next:`Próxima`,type:{project:`Projeto`,ticket:`Ticket`,comment:`Comentário`,activity:`Atividade`}},column:{key:`Ticket`,labels:`Etiquetas`,scopes:`Escopos`,status:`Status`,priority:`Prioridade`,difficulty:`Dificuldade`,kind:`Tipo`,assigneeId:`Responsável`,startAt:`Início`,dueAt:`Entrega`,createdAt:`Criado`,updatedAt:`Atualizado`},public:{notShared:`Este projeto não está compartilhado`,notSharedHint:`O link foi desativado ou nunca existiu. Membros podem entrar para lê-lo.`,noTickets:`Nenhum ticket`,ticketUnavailable:`Ticket indisponível`,backToTickets:`Voltar aos tickets`,description:`Descrição`,noDescription:`_Sem descrição_`,acceptanceCriteria:`Critérios de aceitação`,noAcceptanceCriteria:`_Sem critérios de aceitação_`,ticketProperties:`Propriedades do ticket`,properties:`Propriedades`,status:`Status`,priority:`Prioridade`,kind:`Tipo`,difficulty:`Dificuldade`,startDate:`Data de início`,dueDate:`Data de entrega`,labels:`Etiquetas`,scopes:`Escopos`,created:`Criado`,updated:`Atualizado`,relationships:`Relações`,parent:`Pai`,child:`Filho`},sidebar:{workspace:`Espaço de trabalho`,unread_one:`{{count, number}} não lida`,unread_many:`{{count, number}} não lidas`,unread_other:`{{count, number}} não lidas`,userSettings:`Configurações do usuário`,administration:`Administração`,signOut:`Sair`,projectSettings:`Configurações do projeto`},workspace:{new:`Novo espaço de trabalho`,name:`Nome do espaço de trabalho`,key:`Chave do espaço de trabalho`,create:`Criar espaço de trabalho`,workspaces:`Espaços de trabalho`,switch:`Trocar espaço de trabalho`,settings:`Configurações do espaço de trabalho`},palette:{open:`Ir para…`,title:`Ir para`,description:`Encontrar um projeto, ticket, página ou ação`,placeholder:`Pesquisar tickets, projetos, páginas, ações…`,searching:`Pesquisando…`,noResults:`Nenhum resultado`,jumpTo:`Ir para`,openKey:`Abrir {{key}} em {{project}}`,resultsIn:`Resultados em {{workspace}}`,results:`Resultados`,seeAll_one:`Ver {{count, number}} resultado`,seeAll_many:`Ver todos os {{count, number}} resultados`,seeAll_other:`Ver todos os {{count, number}} resultados`,actions:`Ações`,pages:`Páginas`,newTicketIn:`Novo ticket em {{project}}`,myTicketsIn:`Meus tickets em {{project}}`,lightMode:`Mudar para o modo claro`,darkMode:`Mudar para o modo escuro`,keywords:{jump:`{{query}} ir abrir`,allResults:`todos os resultados {{query}}`,newTicket:`novo ticket criar`,myTickets:`meus tickets atribuídos a mim`,lightMode:`mudar para modo claro tema aparência`,darkMode:`mudar para modo escuro tema aparência`,help:`atalhos de teclado ajuda`,home:`início visão geral todos os projetos`,myWork:`meu trabalho tickets atribuídos`,search:`pesquisar comentários atividade projetos tickets`,inbox:`caixa de entrada notificações`,settings:`configurações {{scope}} {{label}}`}},actionCategory:{general:`Geral`,ticketList:`Lista de tickets`,inbox:`Caixa de entrada`,ticket:`Ticket`,search:`Pesquisa`,markdown:`Markdown`},action:{palette:`Ir para qualquer lugar`,help:`Atalhos de teclado`,sidebar:`Alternar barra lateral`,newTicket:`Novo ticket`,search:`Pesquisar tickets`,highlight:`Destacar o ticket seguinte ou anterior`,open:`Abrir o ticket destacado`,preview:`Visualizar o ticket destacado ao lado da lista`,select:`Selecionar o ticket destacado`,properties:`Definir status, prioridade ou responsável do ticket destacado`,inboxHighlight:`Destacar a notificação seguinte ou anterior`,inboxOpen:`Ler o ticket da notificação destacada ao lado da Caixa de entrada`,inboxRead:`Marcar a notificação destacada como lida ou não lida`,inboxDismiss:`Descartar a notificação destacada`,step:`Abrir o ticket seguinte ou anterior`,edit:`Editar ticket`,save:`Salvar um ticket ou comentário`,results:`Navegar pelos resultados da pesquisa`,insertBlock:`Inserir uma tabela, diagrama, arquivo ou outro bloco no editor visual`},move:{top:{label:`Mover o ticket destacado para o topo`,menu:`Mover para o topo`},up:{label:`Mover o ticket destacado para cima`,menu:`Mover para cima`},down:{label:`Mover o ticket destacado para baixo`,menu:`Mover para baixo`},bottom:{label:`Mover o ticket destacado para o final`,menu:`Mover para o final`},previous:{label:`Mover o ticket destacado para o status anterior`,menu:`Mover para o status anterior`},next:{label:`Mover o ticket destacado para o próximo status`,menu:`Mover para o próximo status`}},copy:{link:{label:`Copiar link`,copied:`Link do ticket`},keyAndTitle:{label:`Copiar chave e título`,copied:`Ticket`},title:{label:`Copiar título`,copied:`Título`},markdown:{label:`Copiar como Markdown`,copied:`Markdown`},branch:{label:`Copiar nome da branch`,copied:`Nome da branch`}},settingsNav:{account:`Conta`,settings:`Configurações`,workspace:`Espaço de trabalho`,workspaceSettings:`Configurações do espaço de trabalho`,projects:`Projetos`,projectSettings:`Configurações do projeto`,administration:`Administração`,section:{profile:`Perfil e segurança`,appearance:`Aparência`,preferences:`Preferências`,credentials:`Chaves de API`,notifications:`Notificações`,general:`Geral`,members:`Membros`,roles:`Funções`,labels:`Etiquetas`,workflow:`Fluxo de trabalho`,fields:`Campos`,integrations:`Integrações`,calendar:`Feeds de calendário`,storage:`Armazenamento de arquivos`,search:`Pesquisa`,events:`Entrega de eventos`,users:`Usuários`,workspaces:`Espaços de trabalho`,authentication:`Autenticação`}},browser:{copyFailed:`Falha ao copiar. Selecione o texto e copie manualmente.`,readFailed:`Não foi possível ler o arquivo`,encodeFailed:`Não foi possível codificar o arquivo`,imageTooBig:`Escolha uma imagem menor que 10 MB.`,cannotResize:`Este navegador não consegue redimensionar a imagem.`,prepareFailed:`Não foi possível preparar a imagem.`,stillTooLarge:`A imagem continua grande demais após o redimensionamento. Escolha uma imagem mais simples.`},primitive:{close:`Fechar`,more:`Mais`,breadcrumb:`trilha de navegação`,sidebar:`Barra lateral`,sidebarDescription:`Exibe a barra lateral móvel.`,toggleSidebar:`Alternar barra lateral`,resizeSidebar:`Redimensionar barra lateral`,expandSidebar:`Expandir barra lateral`,commandTitle:`Paleta de comandos`,commandDescription:`Pesquisar um comando para executar…`}},ticket:{list:{selectSection:`Selecionar tickets de {{section}}`,expandSection:`Expandir tickets de {{section}}`,collapseSection:`Recolher tickets de {{section}}`,sectionTickets:`Tickets de {{section}}`,later:`Mais tarde`,selectAll:`Selecionar todos os tickets exibidos`,selectTicket:`Selecionar {{key}}`,title:`Título`,all:`Todos`,planned:`Planejados`,archived:`Arquivados`,allTickets:`Todos os tickets`,customView:`Visualização personalizada`,sectionCount:`{{n, number}} {{section}}`,planning:`Planejamento de {{project}}`,collection:`{{source}} ({{sections}})`,moved:`{{key}} movido`,movedTo:`{{key}} movido para {{status}}`,movedAbove:`{{key}} movido para cima de {{neighbor}}`,movedBelow:`{{key}} movido para baixo de {{neighbor}}`,movedToAbove:`{{key}} movido para {{status}} acima de {{neighbor}}`,movedToBelow:`{{key}} movido para {{status}} abaixo de {{neighbor}}`,emptyFiltered:`Nenhum ticket correspondente`,emptyPlanning:`Nada planejado ou arquivado`,emptyProject:`Nenhum ticket ainda`,emptyWork:`Nenhum ticket aberto atribuído a você`,createFirst:`Criar o primeiro ticket`,activeWork:`Trabalho ativo`,views:`Visualizações de tickets`,saveCurrentView:`Salvar visualização atual`,deleteView:`Excluir visualização {{name}}`,deleteViewConfirm:`Remover {{name}} das visualizações salvas? Os tickets não mudam.`,planningLink:`Planejamento`,newTicketShortcut:`Novo ticket ({{shortcut}})`,saveView:`Salvar visualização`,viewSaved:`Visualização salva`,viewName:`Nome da visualização`,retry:`Tentar carregar os tickets novamente`,board:`Quadro de tickets`,tickets:`Tickets`,resizeColumn:`Redimensionar coluna {{column}}`,count_one:`{{count, number}} ticket`,count_many:`{{count, number}} tickets`,count_other:`{{count, number}} tickets`,scheduledCount_one:`{{count, number}} ticket agendado`,scheduledCount_many:`{{count, number}} tickets agendados`,scheduledCount_other:`{{count, number}} tickets agendados`},move:{destination:`Destino`,projectPlaceholder:`Mover para o projeto…`,blockers:`Resolver antes de mover`,submit:`Mover ticket`,pending:`Movendo…`},picker:{placeholder:`Escolher um ticket`,loading:`Carregando ticket…`,searchLabel:`Pesquisar {{label, lowercase}}`,searchPlaceholder:`Pesquisar por título ou chave…`,noParent:`Sem pai`,searching:`Pesquisando…`,empty:`Nenhum ticket encontrado`},property:{status:`Status`,priority:`Prioridade`,kind:`Tipo`,difficulty:`Dificuldade`,assignee:`Responsável`,you:`{{name}} (você)`,assignTo:`Atribuir a…`,set:`Definir {{label, lowercase}}…`,search:`Pesquisar {{label, lowercase}}`,noMatches:`Nenhuma correspondência`},field:{mixed:`Misto`,unchecked:`Não`,noValue:`Sem valor`},project:{label:`Projeto`,placeholder:`Criar no projeto…`,search:`Pesquisar projetos`},tags:{labels:`Etiquetas`,scopes:`Escopos`,summary:`{{label}}: {{tags}}`,edit:`Editar {{label, lowercase}}`,editValues:`Editar {{label, lowercase}}: {{tags}}`,editMixed:`Editar {{label, lowercase}}: misto`,mixed:`{{label}} diferentes`,none:`Sem {{label, lowercase}}`,mixedNote:`Os tickets selecionados têm {{label, lowercase}} diferentes.`,clear:`Limpar {{label, lowercase}}`,replace:`Substituir {{label, lowercase}}`},tagInput:{remove:`Remover {{label, lowercase}} {{tag}}`,addAnother:`Adicionar outro…`,add:`Adicionar {{label, lowercase}}…`,choose:`Escolher {{label, lowercase}}`,chooseLabels:`Escolher etiquetas`,searchPlaceholder:`Pesquisar etiquetas…`,searchLabel:`Pesquisar etiquetas do projeto`,empty:`Nenhuma etiqueta correspondente`},link:{previewUnavailable:`Visualização indisponível`},userPicker:{label:`Conta`,placeholder:`Escolher uma conta`,searchPlaceholder:`Pesquisar nome ou e-mail…`,searchLabel:`Pesquisar contas`,useEmail:`Usar {{email}}`,emptyAnyAccount:`Pesquise um membro ou informe o e-mail de uma conta existente.`,empty:`Nenhum membro correspondente`},date:{placeholder:`Escolher uma data`,clear:`Limpar {{label, lowercase}}`,start:`Data de início`,startShort:`Início`,noStart:`Sem data de início`,due:`Data de entrega`,dueShort:`Entrega`,noDue:`Sem data de entrega`},filter:{me:`Eu`,searchTickets:`Pesquisar tickets`,searchTicketsPlaceholder:`Pesquisar tickets…`,filters:`Filtros`,filtersActive:`Filtros ({{active, number}})`,due:`Entrega`,anyDue:`Qualquer data de entrega`,archived:`Arquivados`,hideArchived:`Ocultar arquivados`,includeArchived:`Incluir arquivados`,archivedOnly:`Somente arquivados`,includingArchived:`Incluindo arquivados`,reset:`Redefinir filtros`,clear:`Limpar filtros`,active:`Filtros de tickets ativos`,searchChip:`Pesquisa: {{query}}`,chipAny:`{{field}}:`,chipNone:`{{field}} não é:`,notValues:`Não {{values}}`,match:`Correspondência de {{label, lowercase}}`,is:`É`,isNot:`Não é`,searchPlaceholder:`{{search}}…`,anyValue:{status:`Todos os status`,priority:`Todas as prioridades`,kind:`Todos os tipos`,difficulty:`Todas as dificuldades`,label:`Todas as etiquetas`,assigneeId:`Qualquer pessoa`,customField:`Qualquer valor de campo`},searchValues:{status:`Pesquisar status`,priority:`Pesquisar prioridades`,kind:`Pesquisar tipos`,difficulty:`Pesquisar dificuldades`,label:`Pesquisar etiquetas`,assigneeId:`Pesquisar pessoas`,customField:`Pesquisar campos`}},display:{title:`Exibição`,orderBy:`Ordenar por`,direction:`Direção`,ascending:`Crescente`,descending:`Decrescente`,reset:`Redefinir exibição`,groupBy:`Agrupar por`,dueDate:`Data de entrega`,layout:`Layout`,list:`Lista`,board:`Quadro`,backgrounds:`Fundos de projeto`,show:`Mostrar`,hide:`Ocultar`,rowSpacing:`Espaçamento das linhas`,compact:`Compacto`,comfortable:`Confortável`,labelDisplay:`Exibição de etiquetas`,compactPreview:`Prévia compacta`,allLabels:`Todas as etiquetas`,properties:`Propriedades`},selection:{region:`Tickets selecionados`,clear:`Limpar seleção`,selected_one:`{{count, number}} selecionado`,selected_many:`{{count, number}} selecionados`,selected_other:`{{count, number}} selecionados`,selectedOf_one:`{{count, number}} de {{total}}<wide> selecionado</wide>`,selectedOf_many:`{{count, number}} de {{total}}<wide> selecionados</wide>`,selectedOf_other:`{{count, number}} de {{total}}<wide> selecionados</wide>`,applied_one:`{{label}} aplicado a {{count, number}} ticket`,applied_many:`{{label}} aplicado a {{count, number}} tickets`,applied_other:`{{label}} aplicado a {{count, number}} tickets`,partlyApplied_one:`Aplicado a {{done, number}} de {{count, number}} ticket`,partlyApplied_many:`Aplicado a {{done, number}} de {{count, number}} tickets`,partlyApplied_other:`Aplicado a {{done, number}} de {{count, number}} tickets`,mixedDue:`Datas de entrega mistas`,fields:`Campos`,more:`Mais ações`,moveTo:`Mover para {{status}}`,restoreChange:`Restaurar`,restore:`Restaurar selecionados`,archive:`Arquivar selecionados`,delete:`Excluir selecionados`,deleteLimit:`Excluir até {{limit, number}} por vez`,archiveConfirm_one:`Arquivar {{count, number}} ticket de {{collection}}?`,archiveConfirm_many:`Arquivar {{count, number}} tickets de {{collection}}?`,archiveConfirm_other:`Arquivar {{count, number}} tickets de {{collection}}?`,deleteConfirm_one:`Excluir permanentemente {{count, number}} ticket de {{collection}}, com seus comentários, relações e anexos? Filhos fora da seleção perdem o pai.`,deleteConfirm_many:`Excluir permanentemente {{count, number}} tickets de {{collection}}, com seus comentários, relações e anexos? Filhos fora da seleção perdem o pai.`,deleteConfirm_other:`Excluir permanentemente {{count, number}} tickets de {{collection}}, com seus comentários, relações e anexos? Filhos fora da seleção perdem o pai.`,deleted_one:`{{count, number}} ticket excluído`,deleted_many:`{{count, number}} tickets excluídos`,deleted_other:`{{count, number}} tickets excluídos`},menu:{copied:`{{label}} copiado`,open:`Abrir ticket`,preview:`Visualizar`,newTab:`Abrir em nova aba`,edit:`Editar ticket`,editTitle:`Editar {{key}}`,duplicate:`Duplicar ticket`,created:`{{key}} criado`,move:`Mover`,moveToProject:`Mover para o projeto…`,moveTitle:`Mover {{key}}`,moved:`Movido para {{key}}`,follow:`Seguir ticket`,unfollow:`Deixar de seguir ticket`,archive:`Arquivar ticket`,unarchive:`Desarquivar ticket`,delete:`Excluir ticket`,deleteConfirm:`Excluir permanentemente {{key}}, seus comentários, relações e anexos?`,openProject:`Abrir projeto`,projectLink:`Link do projeto`,copyLink:`Copiar link`,newTicket:`Novo ticket`,projectSettings:`Configurações do projeto`,manageAccount:`Gerenciar conta`,email:`E-mail`,copyEmail:`Copiar e-mail`},schedule:{range:`{{from}} – {{to}}`,calendar:`Calendário`,timeline:`Linha do tempo`,today:`Hoje`,previousMonth:`Mês anterior`,nextMonth:`Próximo mês`,previousWeeks:`Duas semanas anteriores`,nextWeeks:`Próximas duas semanas`,emptyWeeks:`Nada agendado nestas semanas`,monthTickets:`Tickets em {{title}}`,showDay_one:`Mostrar {{count, number}} ticket em {{day}}`,showDay_many:`Mostrar todos os {{count, number}} tickets em {{day}}`,showDay_other:`Mostrar todos os {{count, number}} tickets em {{day}}`,more_one:`Mais {{count, number}}`,more_many:`Mais {{count, number}}`,more_other:`Mais {{count, number}}`,ticketColumn:`Ticket`,scheduledTickets:`Tickets agendados`},copy:{description:`Descrição`,acceptanceCriteria:`Critérios de aceitação`}},detail:{field:{title:`Título`,description:`Descrição`,acceptanceCriteria:`Critérios de aceitação`,parent:`Pai`,parentTicket:`Ticket pai`,labels:`Etiquetas`,scopes:`Escopos`,holdReason:`Motivo da espera`,url:`URL`},page:{preview:`Visualização do ticket`,unavailable:`Ticket indisponível`,noProject:`O link não indica o projeto do ticket.`,gone:`Este ticket foi excluído ou o acesso a ele não está mais disponível.`,closePreview:`Fechar visualização`,openFullPage:`Abrir em página inteira`,backToTickets:`Voltar aos tickets`,tickets:`Tickets`,previousTicket:`Ticket anterior`,previousTicketShortcut:`Ticket anterior (K)`,nextTicket:`Próximo ticket`,nextTicketShortcut:`Próximo ticket (J)`,position:`{{position, number}} / {{total, number}}`,subscribe:`Inscrever-se`,unsubscribe:`Cancelar inscrição`,subscribed:`Inscrito nas atualizações`,unsubscribed:`Inscrição cancelada`,archive:`Arquivar ticket`,unarchive:`Desarquivar ticket`,archivedToast:`Ticket arquivado`,unarchivedToast:`Ticket desarquivado`,archived:`Arquivado`,edit:`Editar ticket`,editShortcut:`Editar ticket (E)`,editTitle:`Editar {{key}}`,actions:`Ações do ticket`,copyKey:`Copiar chave do ticket`,keyCopied:`{{key}} copiado`,noDescription:`_Sem descrição_`,noAcceptanceCriteria:`_Sem critérios de aceitação_`,coordination:`Coordenação do ticket`,properties:`Propriedades`,created:`Criado`,updated:`Atualizado`},section:{discussion:`Discussão`,evidence:`Evidências`,activity:`Atividade`},readiness:{heading:`Prontidão para agentes`,ready:`Pronto para reservar`,notReady:`Não está pronto para reservar`,hold:`Em espera: {{reason}}`,claimedUntil:`Reservado por <strong>{{worker}}</strong> até {{date}}.`},claim:{release:`Liberar minha reserva`,releaseDescription:`Liberar a propriedade depois que o executor parou de escrever?`,recover:`Recuperar reserva expirada`,recoverHelp:`Confirme primeiro que o executor parou.`,reason:`Motivo da recuperação`,confirmed:`Confirmei que o executor parou`,submit:`Recuperar propriedade`},editor:{storageUnavailable:`Este navegador não consegue salvar o rascunho. Mantenha o editor aberto até salvar.`,saved:`{{key}} salvo`,created:`{{key}} criado`,properties:`Propriedades do ticket`,readyForAgents:`Pronto para agentes`,readyForAgentsHelp:`Agentes podem reservar este ticket quando os requisitos, bloqueios e a propriedade permitirem`,agents:`Agentes`,notReady:`Não está pronto`,moreProperties:`Mais propriedades`,holdPlaceholder:`Por que o trabalho deve esperar?`,claimsNote:`As reservas ainda dependem dos requisitos, bloqueios e da propriedade atual.`,restoreSize:`Restaurar tamanho do editor`,expand:`Expandir editor`,staleTitle:`Este ticket mudou.`,staleDescription:`O rascunho ainda usa a versão {{version}}; para salvar, será necessária a versão atual.`,discardAndReload:`Descartar rascunho e recarregar`,titlePlaceholder:`Título do ticket`,descriptionPlaceholder:`Adicionar contexto, requisitos ou uma reprodução…`,criteriaPlaceholder:`- [ ] O que mostrará que isto está concluído?`,removeCriteria:`Remover critérios de aceitação`,addCriteria:`Adicionar critérios de aceitação`,savedLocally:`Rascunho salvo neste dispositivo`,notSavedLocally:`Não foi possível salvar o rascunho`,discardDraft:`Descartar rascunho`,createMore:`Criar mais`,save:`Salvar ticket`,create:`Criar ticket`},resource:{removeConfirm:`Remover {{name}}?`,uploading:`Enviando…`},attachment:{heading:`Anexos`,tooLarge:`Escolha arquivos de no máximo 10 MB cada.`,attached_one:`Arquivo anexado`,attached_many:`{{count, number}} arquivos anexados`,attached_other:`{{count, number}} arquivos anexados`,attach:`Anexar arquivo`,emptyWritable:`Nenhum anexo. Solte arquivos aqui.`,empty:`Nenhum anexo`,remove:`Remover anexo`,fileInput:`Arquivo (até 10 MB)`},evidence:{description:`Links e resultados informados pelas pessoas e integrações que trabalham neste ticket.`,add:`Adicionar evidência`,empty:`Nenhuma evidência anexada`,added:`Evidência adicionada`,kindLabel:`Tipo`,outcomeLabel:`Resultado informado`,commit:`Commit (hash completo)`,note:`Observação`},link:{heading:`Links`,add:`Adicionar link`,edit:`Editar link`,save:`Salvar link`,remove:`Remover link`,empty:`Nenhum link`,stateUnknown:`Estado desconhecido`,remote:`{{kind}} · {{state}}`,remoteState:{open:`Aberto`,closed:`Fechado`,merged:`Mesclado`,draft:`Rascunho`,active:`Ativo`,deleted:`Excluído`}},activity:{previous:`Atividade anterior`,next:`Próxima atividade`},relations:{heading:`Relações`,add:`Adicionar relação`,linkExisting:`Vincular ticket existente`,newChild:`Novo ticket filho`,newChildTitle:`Novo filho de {{key}}`,children:`Tickets filhos <count>{{done, number}}/{{total, number}}</count>`,previousChildren:`Filhos anteriores`,nextChildren:`Próximos filhos`,empty:`Nenhuma relação`,type:`Relação`,ticket:`Ticket`,statusOf:`Status de {{key}}`,assigneeOf:`Responsável por {{key}}`,remove:{blocks:`Remover relação de bloqueio`,related:`Remover relação de relacionado`,duplicate:`Remover relação de duplicado`,causes:`Remover relação de causa`,clones:`Remover relação de clone`,implements:`Remover relação de implementação`,reviews:`Remover relação de revisão`}},discussion:{empty:`Nenhum comentário ainda`,previous:`Comentários anteriores`,next:`Próximos comentários`,comment:`Comentar`,placeholder:`Escrever um comentário…`,posting:`Publicando…`,edited:`Editado`,edit:`Editar comentário`,delete:`Excluir comentário`,deleteConfirm:`Excluir este comentário permanentemente?`},markdown:{format:{heading:`Título`,bold:`Negrito`,italic:`Itálico`,link:`Link`,linkHelp:`Vincular o texto selecionado`,bullets:`Lista com marcadores`,numbers:`Lista numerada`,tasks:`Lista de verificação`,code:`Bloco de código`},formatting:`Formatação de {{label, lowercase}}`,editor:`Editor de {{label, lowercase}}`,insertFile:`Inserir arquivo`,insertFileInto:`Inserir arquivo em {{label, lowercase}}`,write:`Escrever`,visual:`Visual`,preview:`Visualizar`,unsupported:`Este texto usa Markdown que o editor visual não consegue manter, como HTML ou notas de rodapé.`,nothingToPreview:`Nada para visualizar`,mention:`Mencionar um membro`,insertBlock:`Inserir bloco`,block:{quote:`Citação`,table:`Tabela`,diagram:`Diagrama`,divider:`Divisor`,file:`Arquivo`},table:{addRow:`Adicionar linha`,addColumn:`Adicionar coluna`,deleteRow:`Excluir linha`,deleteColumn:`Excluir coluna`,deleteTable:`Excluir tabela`},linkAddress:`Endereço do link`,diagram:`Diagrama`,diagramFailed:`Não foi possível desenhar este diagrama: {{error}}`,diagramSource:`Código do diagrama`}},settings:{account:{title:`Configurações`,security:`Login e segurança`,localPassword:`Senha local`,localPasswordDescription:`Alterar a senha encerra as outras sessões.`,changePassword:`Alterar senha`,oidcLinked:`Use este provedor de identidade para entrar na mesma conta.`,oidcUnlinked:`Vincule a conta antes de entrar por este provedor.`,linked:`Vinculado`,link:`Vincular {{name}}`,currentPassword:`Senha atual`,newPassword:`Nova senha`,confirmPassword:`Confirmar nova senha`,passwordMismatch:`As novas senhas não coincidem.`,passwordUpdated:`Senha atualizada. Outras sessões encerradas.`},preferences:{behavior:`Comportamento`,languageDescription:`Vale para este navegador, incluindo a página de login.`,weekStart:`Semana começa em`,weekStartDescription:`Vale para todos os seletores de data.`,weekStartLanguage:`Padrão do idioma`,sidebar:`Barra lateral ao abrir`,sidebarDescription:`Entra em vigor na próxima vez que o Kanvil abrir.`,sidebarLast:`Como foi deixada`,sidebarExpanded:`Expandida`,sidebarCollapsed:`Recolhida`,ticketLists:`Listas de tickets`,reset:`Redefinir preferências`,resetDescription:`Restaura estas opções para o padrão neste navegador.`,resetDone:`Preferências redefinidas`},notifications:{title:`Notificações`,inbox:`Caixa de entrada`,inboxDescription:`Atualizações de tickets seguidos aparecem no Kanvil.`,inboxSwitch:`Atualizações de tickets inscritos na Caixa de entrada`,push:`Notificações push`,pushDescription:`Enviar atualizações para os dispositivos registrados.`,pushUnavailable:`A entrega push não está ativada nesta instância.`,pushSwitch:`Notificações push em dispositivos registrados`,categories:`Categorias`,categorySwitch:`Notificações de {{label, lowercase}}`,reminder:`Lembrete de entrega próxima`,reminderDescription:`Quanto tempo antes da data de entrega de um ticket seguido.`,reminderUnit:`Unidade do lembrete`,reminderAmount:`Quantidade do lembrete`,unit:{minutes:`Minutos`,hours:`Horas`,days:`Dias`,weeks:`Semanas`}},layout:{nav:`Configurações`,section:`Seção de configurações`,nested:`{{parent}} · {{child}}`,name:`Nome`,description:`Descrição`,descriptionPlaceholder:`Adicionar uma descrição`,noDescription:`Sem descrição`,stale:`Isto foi alterado em outro lugar. Cancele e comece de novo.`},profile:{title:`Perfil`,displayName:`Nome de exibição`,edit:`Editar perfil`,changePhoto:`Alterar foto`,removePhoto:`Remover foto`,photoFile:`Arquivo da foto de perfil`,photoUpdated:`Foto atualizada`,photoRemoved:`Foto removida`,saved:`Perfil salvo`},credentials:{global:`Global`,globalDescription:`Acesse todos os projetos e espaços de trabalho disponíveis para sua conta, incluindo acessos futuros.`,title:`Chaves de API`,description:`Conecte scripts, integrações e agentes com acesso que pode ser revogado.`,create:`Criar chave de API`,creating:`Criando…`,created:`Chave de API criada`,name:`Nome`,access:`Acesso`,projects:`Projetos`,expires:`Expira`,actions:`Ações`,unavailableProject:`Projeto indisponível`,untitled:`Chave sem título`,expired:`Expirada`,disabled:`Desativada`,custom:`Personalizado`,noProjects:`Sem acesso a projetos`,never:`Nunca`,revoke:`Revogar chave de API`,revokeNamed:`Revogar {{name}}? As conexões que a usam perderão o acesso imediatamente.`,revokeUnnamed:`Revogar esta chave de API? As conexões que a usam perderão o acesso imediatamente.`,empty:`Nenhuma chave de API`,emptyDescription:`Crie uma chave quando um script, integração ou agente precisar de acesso aos projetos.`,copyNow:`Copie esta chave agora. Ela não poderá ser vista novamente.`,newKey:`Nova chave de API`,copy:`Copiar chave de API`,noProjectTitle:`Escolha um projeto primeiro`,noProjectDescription:`Chaves de API precisam de acesso a pelo menos um projeto.`,goToProjects:`Ir para projetos`,keyName:`Nome da chave`,keyNamePlaceholder:`ex.: Automação de releases`,projectAccess:`Acesso a projetos`,findProject:`Encontrar projeto`,projectDescription:`{{key}} · {{workspace}}`,workspace:`Espaço de trabalho`,noMatches:`Nenhum projeto correspondente`,roleLimit:`A função atual no projeto ainda limita o que esta chave pode fazer.`,accessLevel:`Nível de acesso`,preset:{read:`Somente leitura`,write:`Leitura e escrita`,automation:`Leitura, escrita e reserva de trabalho`,custom:`Permissões personalizadas`},permission:{intake:{name:`Enviar relatos`,description:`Cria apenas tickets em quarentena. Não pode ler nem editar tickets. Use separadamente.`},read:{name:`Ler tickets`,description:`Ver projetos, tickets, comentários e anexos.`},write:{name:`Editar tickets`,description:`Criar e atualizar tickets, comentários e anexos.`},claim:{name:`Reservar trabalho`,description:`Reservar, renovar e liberar a propriedade de tickets.`},admin:{name:`Gerenciar projetos e espaços de trabalho`,description:`Altere configurações e membros de projetos e espaços de trabalho onde sua função permitir.`}},expiry:{7:`7 dias`,30:`30 dias`,90:`90 dias`,365:`1 ano`,custom:`Data personalizada`,never:`Sem expiração`},expiresOn:`Expira em`,neverDescription:`A chave funciona até ser excluída.`},calendarFeeds:{title:`Feeds de calendário`,new:`Novo feed de calendário`,created:`Feed de calendário criado`,create:`Criar feed`,adminOnly:`Administradores do projeto compartilham e revogam feeds de calendário.`,labels:`Etiquetas`,everyLabel:`Todas as etiquetas`,stopped:`· Interrompido: o criador não tem mais acesso`,revoke:`Revogar {{name}}`,revokeDescription:`Calendários inscritos em {{name}} param de atualizar imediatamente. Os tickets não mudam.`,revoked:`Feed de calendário revogado`,empty:`Nenhum feed de calendário`,copyNow:`Copie este link para um aplicativo de calendário agora. Ele é exibido apenas uma vez, e qualquer pessoa com ele pode ler os tickets compartilhados.`,link:`Link do feed`,name:`Nome do feed`,onlyLabels:`Somente tickets com estas etiquetas`,explanation:`O feed lista tickets abertos e não arquivados com data de início ou de entrega como eventos de dia inteiro em {{zone}}. Qualquer pessoa com o link vê as chaves, títulos, status, prioridades e datas.`},project:{title:`Configurações do projeto`,edit:`Editar projeto`,copyPrefix:`Copiar prefixo dos tickets`,saved:`Projeto salvo`,noOpenTickets:`Nenhum ticket aberto`,openTickets_one:`{{count, number}} ticket aberto`,openTickets_many:`{{count, number}} tickets abertos`,openTickets_other:`{{count, number}} tickets abertos`,overdueTickets_one:`· {{count, number}} atrasado`,overdueTickets_many:`· {{count, number}} atrasados`,overdueTickets_other:`· {{count, number}} atrasados`,created:`· Criado <time/>`,access:`Acesso ao projeto`,accessWorkspace:`Membros do espaço de trabalho herdam o acesso da função no espaço de trabalho.`,accessPrivate:`Somente os membros adicionados e os administradores do espaço de trabalho podem ver este projeto.`,accessUpdated:`Acesso ao projeto atualizado`,visibility:{workspace:`Todos no espaço de trabalho`,private:`Somente membros do projeto`},workspace:`Espaço de trabalho`,workspaceSettings:`Configurações do espaço de trabalho`,prefix:`Prefixo dos tickets`,prefixDescription:`Prefixos e chaves de tickets anteriores continuam funcionando após a mudança.`,changePrefix:`Alterar prefixo`,changePrefixTitle:`Alterar prefixo dos tickets`,changePrefixDescription:`Todos os tickets de {{name}} recebem o novo prefixo e mantêm o número.`,changing:`Alterando…`,prefixChanged:`Os tickets agora usam {{key}}`,publicLink:`Link público`,publicDisclosure:`Qualquer pessoa com o link pode ler o título, a descrição, os critérios de aceitação, o status, a prioridade, o tipo, a dificuldade, as etiquetas, os escopos, as datas e os links para outros tickets deste projeto de todos os tickets não arquivados. Pessoas, comentários, atividade, anexos, evidências e reservas continuam privados.`,publicOn:`Link público ativado`,publicOff:`Link público desativado`,off:`Desativado`,copyPublicLink:`Copiar link público`,openPublic:`Abrir visualização pública`,stopSharing:`Parar de compartilhar`,share:`Compartilhar publicamente`,background:`Fundo`,backgroundDescription:`Exibido atrás da lista de tickets e do quadro deste projeto.`,backgroundUpdated:`Fundo atualizado`,backgroundRemoved:`Fundo removido`,currentBackground:`Fundo atual`,uploading:`Enviando…`,replace:`Substituir`,upload:`Enviar imagem`,backgroundFile:`Arquivo de fundo do projeto`},tickets_one:`{{count, number}} ticket`,tickets_many:`{{count, number}} tickets`,tickets_other:`{{count, number}} tickets`,moveUp:`Mover {{name}} para cima`,moveDown:`Mover {{name}} para baixo`,workflow:{title:`Fluxo de trabalho`,new:`Novo estado`,edit:`Editar estado`,editNamed:`Editar estado {{name}}`,deleteNamed:`Excluir estado {{name}}`,onlyState:`{{name}} é o único estado da categoria {{category}}`,saved:`Estado salvo`,name:`Nome do estado`,category:`Categoria`,color:`Cor do estado`,categoryChange:`Os tickets dele passam para o status {{status}}.`,save:`Salvar estado`,delete:`Excluir estado`,deleteTitle:`Excluir {{name}}`,deleted:`Estado excluído`,reassign_one:`Mover {{count, number}} ticket para`,reassign_many:`Mover {{count, number}} tickets para`,reassign_other:`Mover {{count, number}} tickets para`},labels:{title:`Etiquetas`,search:`Pesquisar etiquetas`,new:`Nova etiqueta`,edit:`Editar etiqueta`,workspace:`Espaço de trabalho`,editNamed:`Editar etiqueta {{name}}`,deleteNamed:`Excluir etiqueta {{name}}`,deleteUsed_one:`Remover {{name}} de {{count, number}} ticket, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUsed_many:`Remover {{name}} de {{count, number}} tickets, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUsed_other:`Remover {{name}} de {{count, number}} tickets, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUsedShared_one:`Remover {{name}} de {{count, number}} ticket em todos os projetos, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUsedShared_many:`Remover {{name}} de {{count, number}} tickets em todos os projetos, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUsedShared_other:`Remover {{name}} de {{count, number}} tickets em todos os projetos, incluindo tickets arquivados? As visualizações salvas que usam esta etiqueta perderão o filtro de etiqueta.`,deleteUnused:`Excluir a etiqueta não usada {{name}}? As visualizações salvas que a usam perderão o filtro de etiqueta.`,deleted:`Etiqueta excluída`,noMatches:`Nenhuma etiqueta correspondente`,empty:`Nenhuma etiqueta ainda`,saved:`Etiqueta salva`,name:`Nome da etiqueta`,color:`Cor da etiqueta`,rename:`Renomear atualiza esta etiqueta nos tickets e nas visualizações salvas.`,renameShared:`Renomear atualiza esta etiqueta nos tickets e nas visualizações salvas de todos os projetos.`,adopt:`Adotar as etiquetas do projeto`,adoptDescription:`Definida em {{projects}}. Os tickets desses projetos mantêm a etiqueta e recebem esta cor.`,save:`Salvar etiqueta`},fields:{title:`Campos`,new:`Novo campo`,edit:`Editar campo`,editNamed:`Editar campo {{name}}`,deleteNamed:`Excluir campo {{name}}`,deleteUsed_one:`Excluir {{name}} e remover os valores dele de {{count, number}} ticket, incluindo tickets arquivados? As visualizações salvas perdem os filtros nele.`,deleteUsed_many:`Excluir {{name}} e remover os valores dele de {{count, number}} tickets, incluindo tickets arquivados? As visualizações salvas perdem os filtros nele.`,deleteUsed_other:`Excluir {{name}} e remover os valores dele de {{count, number}} tickets, incluindo tickets arquivados? As visualizações salvas perdem os filtros nele.`,deleteUnused:`Excluir o campo não usado {{name}}? As visualizações salvas perdem os filtros nele.`,deleted:`Campo excluído`,empty:`Nenhum campo ainda`,saved:`Campo salvo`,required:`Obrigatório`,requiredDescription:`Novos tickets precisam de um valor.`,defaultValue:`Padrão {{value}}`,default:`Padrão`,name:`Nome do campo`,type:`Tipo`,options:`Opções`,option:`Opção {{number}}`,optionInline:`opção {{number}}`,optionColor:`Cor de {{name}}`,removeOption:`Remover {{name}}`,addOption:`Adicionar opção`,reassign:`Tickets com {{name}}`,clearValue:`Limpar o valor`,moveTo:`Mover para {{name}}`,save:`Salvar campo`},lifecycle:{archivedToast:`Projeto arquivado`,restoredToast:`Projeto restaurado`,archivedNotice:`Arquivado <time/> · somente leitura`,restore:`Restaurar`,archive:`Arquivar`,archivedDescription:`Arquivado <time/>. Os tickets são somente leitura e ficam fora de listas, pesquisa, Meu trabalho, feeds de calendário e filas de agentes.`,archiveDescription:`Oculta o projeto de listas, pesquisa, Meu trabalho, feeds de calendário e filas de agentes e torna os tickets somente leitura. O histórico é mantido.`,archiveProject:`Arquivar projeto`,archiveConfirm:`{{name}} sai das listas de projetos e das filas de agentes até ser restaurado. Tickets reservados precisam ser liberados primeiro.`,blocker:`{{message}}: {{tickets}}`,row:{tickets:`Tickets`,losesAccess:`Perde acesso`,gainsAccess:`Ganha acesso`,labelsCopied:`Etiquetas copiadas`,labelsMerged:`Etiquetas mescladas`,followsRemoved:`Acompanhamentos removidos`,invitations:`Convites`,comments:`Comentários`,files:`Arquivos`,kept:`Mantido`,projects:`Projetos`,members:`Membros`,sharedLabels:`Etiquetas compartilhadas`,signIn:`Login`,sessions:`Sessões`,credentials:`Credenciais`,devices:`Dispositivos`,access:`Acesso`,claims:`Reservas`,imports:`Importações`,profile:`Perfil`},transferTickets_one:`{{count, number}}, mantendo a chave e os links`,transferTickets_many:`{{count, number}}, mantendo as chaves e os links`,transferTickets_other:`{{count, number}}, mantendo as chaves e os links`,noOne:`Ninguém`,transferInvitations_one:`{{count, number}} convite pendente deixa de incluir o projeto`,transferInvitations_many:`{{count, number}} convites pendentes deixam de incluir o projeto`,transferInvitations_other:`{{count, number}} convites pendentes deixam de incluir o projeto`,files_one:`{{count, number}} · {{size}}`,files_many:`{{count, number}} · {{size}}`,files_other:`{{count, number}} · {{size}}`,keptProject_one:`{{count, number}} registro de atividade e o prefixo {{key}}`,keptProject_many:`{{count, number}} registros de atividade e o prefixo {{key}}`,keptProject_other:`{{count, number}} registros de atividade e o prefixo {{key}}`,keptWorkspace_one:`{{count, number}} registro de atividade e a chave de URL {{slug}}`,keptWorkspace_many:`{{count, number}} registros de atividade e a chave de URL {{slug}}`,keptWorkspace_other:`{{count, number}} registros de atividade e a chave de URL {{slug}}`,archivedProject:`arquivado`,membersLoseAccess_one:`{{count, number}} perde acesso; a conta permanece`,membersLoseAccess_many:`{{count, number}} perdem acesso; as contas permanecem`,membersLoseAccess_other:`{{count, number}} perdem acesso; as contas permanecem`,pendingInvitations_one:`{{count, number}} pendente`,pendingInvitations_many:`{{count, number}} pendentes`,pendingInvitations_other:`{{count, number}} pendentes`,move:`Mover`,moveTitle:`Mover {{name}}`,moved:`Movido para {{name}}`,movedUnnamed:`Movido para o espaço de trabalho`,destination:`Espaço de trabalho de destino`,moveProject:`Mover projeto`,moving:`Movendo…`,export:`Exportar`,exportDescription:`Tickets com fluxo de trabalho, campos, etiquetas, relações, comentários, evidências e links em JSON versionado. Anexos e histórico de atividade ficam aqui.`,exporting:`Exportando…`,exportJson:`Exportar JSON`,delete:`Excluir`,deleteTitle:`Excluir {{name}}`,deleted:`{{name}} excluído`,typeToConfirm:`Digite {{value}} para confirmar`,deleting:`Excluindo…`,deleteProject:`Excluir projeto`,deleteProjectDescription:`Remove permanentemente tickets, comentários e arquivos. O histórico de atividade permanece, e {{key}} nunca é reutilizado.`,signInAgain:`Entrar novamente`,deleteWorkspace:`Excluir espaço de trabalho`,deleteWorkspaceDescription:`Exclui permanentemente todos os projetos do espaço de trabalho com seus tickets, comentários e arquivos, e remove os membros. Contas e histórico de atividade permanecem.`,noSignInMethods:`Nenhum método de login vinculado`,sessions_one:`{{count, number}} sessão encerrada`,sessions_many:`{{count, number}} sessões encerradas`,sessions_other:`{{count, number}} sessões encerradas`,credentials_one:`{{count, number}} chave de API ou conexão de aplicativo revogada`,credentials_many:`{{count, number}} chaves de API ou conexões de aplicativo revogadas`,credentials_other:`{{count, number}} chaves de API ou conexões de aplicativo revogadas`,devices_one:`{{count, number}} dispositivo ou canal de notificação removido`,devices_many:`{{count, number}} dispositivos ou canais de notificação removidos`,devices_other:`{{count, number}} dispositivos ou canais de notificação removidos`,workspaceCount_one:`{{count, number}} espaço de trabalho`,workspaceCount_many:`{{count, number}} espaços de trabalho`,workspaceCount_other:`{{count, number}} espaços de trabalho`,directProjectCount_one:`{{count, number}} projeto direto`,directProjectCount_many:`{{count, number}} projetos diretos`,directProjectCount_other:`{{count, number}} projetos diretos`,accessWorkspaces:`Removido de {{workspaces}}`,accessBoth:`Removido de {{workspaces}} e {{projects}}`,claims_one:`{{count, number}} reserva liberada`,claims_many:`{{count, number}} reservas liberadas`,claims_other:`{{count, number}} reservas liberadas`,imports_one:`{{count, number}} importação cancelada`,imports_many:`{{count, number}} importações canceladas`,imports_other:`{{count, number}} importações canceladas`,profileErased:`Nome, e-mail e foto apagados`,commentCount_one:`{{count, number}} comentário`,commentCount_many:`{{count, number}} comentários`,commentCount_other:`{{count, number}} comentários`,activityCount_one:`{{count, number}} registro de atividade`,activityCount_many:`{{count, number}} registros de atividade`,activityCount_other:`{{count, number}} registros de atividade`,keptAccount:`{{tickets}}, {{comments}} e {{events}} exibidos como {{name}}`,deleteAccount:`Excluir conta`,deleteOwnAccount:`Remove permanentemente o login, as sessões, as chaves, os dispositivos, as associações e os dados pessoais da sua conta. Tickets, comentários e atividade permanecem e aparecem como {{name}}.`,deleteOtherAccount:`Remove permanentemente o login, as sessões, as chaves, os dispositivos, as associações e os dados pessoais desta conta. Tickets, comentários e atividade permanecem e aparecem como {{name}}.`},icon:{change:`Alterar ícone`,title:`Ícone do projeto`,library:`Biblioteca de ícones`,upload:`Enviar imagem`,search:`Pesquisar ícones`,searchPlaceholder:`Pesquisar ícones…`,color:`Cor do ícone`,choose:`Escolher {{name}}`,noMatches:`Nenhum ícone correspondente`,showMore:`Mostrar mais ícones`,uploading:`Enviando…`,chooseImage:`Escolher imagem`,formats:`PNG, JPEG ou WebP · até 10 MB`,file:`Arquivo do ícone do projeto`,reset:`Redefinir ícone`},createProject:{title:`Novo projeto`,inWorkspace:`Em {{name}}`,everyoneLabel:`Todos neste espaço de trabalho`,name:`Nome do projeto`,namePlaceholder:`App móvel`,create:`Criar projeto`},workspace:{title:`Configurações do espaço de trabalho`,owner:`Proprietário`,noOwner:`Sem proprietário. Um administrador da instância pode atribuir um.`,transfer:`Transferir propriedade`,transferring:`Transferindo…`,transferred:`{{name}} agora é proprietário de {{workspace}}`,newOwner:`Novo proprietário`,noEligible:`A propriedade passa para um administrador ativo do espaço de trabalho. Torne outro membro administrador primeiro.`,chosenCan:`{{name}} poderá então transferir ou excluir o espaço de trabalho.`,newOwnerCan:`O novo proprietário pode transferir ou excluir o espaço de trabalho.`,ownerStays:`{{name}} continua como administrador.`,unavailable:`Espaço de trabalho indisponível`,backToProjects:`Voltar aos projetos`,name:`Nome do espaço de trabalho`,edit:`Editar espaço de trabalho`,copyKey:`Copiar chave do espaço de trabalho`,saved:`Espaço de trabalho salvo`,projects:`Projetos`,projectCount_one:`{{count, number}} projeto acessível neste espaço de trabalho.`,projectCount_many:`{{count, number}} projetos acessíveis neste espaço de trabalho.`,projectCount_other:`{{count, number}} projetos acessíveis neste espaço de trabalho.`,viewProjects:`Ver projetos`,members:`Membros`,membersDescription:`As funções do espaço de trabalho valem para projetos que usam o acesso do espaço de trabalho.`,manageMembers:`Gerenciar membros`},members:{title:`Membros`,customRole:`Função personalizada`,search:`Pesquisar membros`,searchPlaceholder:`Nome ou e-mail…`,add:`Adicionar membro`,added:`Membro adicionado`,workspaceAccess:`Acesso do espaço de trabalho`,owner:`Proprietário`,roleFor:`Função de {{name}}`,useWorkspaceAccess:`Usar acesso do espaço de trabalho`,remove:`Remover membro`,removeFromWorkspace:`Remover {{name}} deste espaço de trabalho e de todos os projetos dele?`,restoreAccess:`Restaurar o acesso {{role}} do espaço de trabalho para {{name}}?`,removeFromProject:`Remover o acesso de {{name}} ao projeto?`,noMatches:`Nenhum membro correspondente`,empty:`Nenhum membro`,projectRole:`Função no projeto`,workspaceRole:`Função no espaço de trabalho`},invitations:{title:`Convites`,invite:`Convidar por e-mail`,removedProjects:`Projetos removidos`,wholeWorkspace:`Todo o espaço de trabalho`,selectedProjects:`Projetos selecionados`,expired:`Expirado`,expires:`Expira <time/>`,resend:`Reenviar convite para {{email}}`,revoke:`Revogar convite`,revokeDescription:`O link enviado para {{email}} deixará de funcionar.`,revoked:`Convite revogado`,empty:`Nenhum convite pendente`,email:`E-mail`,role:`Função`,access:`Acesso`,projects:`Projetos`,noProjects:`Este espaço de trabalho não tem projetos.`,linkExpires:`O link expira`,inDays_one:`Em {{count, number}} dia`,inDays_many:`Em {{count, number}} dias`,inDays_other:`Em {{count, number}} dias`,submit:`Convidar`,link:`Link do convite`,copyLink:`Copiar link do convite`,emailed:`Enviado por e-mail para {{email}}. O link funciona uma vez, para esse endereço.`,notEmailed:`O e-mail não está configurado nesta instância. Envie este link para {{email}}; ele funciona uma vez, para esse endereço.`,notEmailedUnknown:`O e-mail não está configurado nesta instância. Envie este link para o destinatário; ele funciona uma vez, para esse endereço.`},workspaces:{title:`Espaços de trabalho`,search:`Pesquisar espaços de trabalho`,searchPlaceholder:`Nome ou chave de URL…`,noMatches:`Nenhum espaço de trabalho correspondente`,empty:`Nenhum espaço de trabalho`,workspace:`Espaço de trabalho`,administrators:`Administradores`,members:`Membros`,projects:`Projetos`,created:`Criado`,actions:`Ações`,noAdministrator:`Sem administrador`,manage:`Gerenciar {{name}}`,pagerNoun:`espaços de trabalho`,private:`Privado`,noProjects:`Nenhum projeto`},roles:{title:`Funções`,new:`Nova função`,edit:`Editar função`,builtIn:`Integrada`,readOnly:`Nenhuma ação além de leitura`,memberships_one:`{{count, number}} associação`,memberships_many:`{{count, number}} associações`,memberships_other:`{{count, number}} associações`,editNamed:`Editar função {{name}}`,deleteNamed:`Excluir função {{name}}`,deleteUnused:`Excluir a função não usada {{name}}?`,deleted:`Função excluída`,empty:`Nenhuma função`,saved:`Função salva`,name:`Nome da função`,actions:`Ações`,everyoneReads:`Todo membro pode ler os projetos aos quais tem acesso.`,changesApply_one:`As alterações valem imediatamente para a {{count, number}} associação com esta função.`,changesApply_many:`As alterações valem imediatamente para as {{count, number}} associações com esta função.`,changesApply_other:`As alterações valem imediatamente para as {{count, number}} associações com esta função.`,save:`Salvar função`,delete:`Excluir função`,reassignDescription_one:`{{count, number}} associação tem {{name}}. Escolha a função para a qual ela passa.`,reassignDescription_many:`{{count, number}} associações têm {{name}}. Escolha a função para a qual elas passam.`,reassignDescription_other:`{{count, number}} associações têm {{name}}. Escolha a função para a qual elas passam.`,moveTo:`Mover membros para`},theme:{mode:{light:`Claro`,dark:`Escuro`,system:`Sistema`},aligned:`Alinhado`,hexColor:`Use uma cor hexadecimal de seis dígitos`,contrast:{light:`Aumente o contraste do texto do tema claro para pelo menos 4,5:1.`,dark:`Aumente o contraste do texto do tema escuro para pelo menos 4,5:1.`},fileTooLarge:`Arquivos de tema devem ter menos de 100 KB.`,tooMany:`Mantenha no máximo 50 temas personalizados.`},appearance:{colorScheme:`Esquema de cores`,theme:`Tema`,themes:`Temas`,colorTheme:`Tema de cores`,search:`Pesquisar temas`,searchPlaceholder:`Pesquisar temas…`,create:`Criar tema`,add:`Adicionar tema`,importFile:`Importar arquivo de tema`,useMode:{light:`Usar {{name}} no modo claro`,dark:`Usar {{name}} no modo escuro`},modeOnly:{light:`Usar somente no modo claro`,dark:`Usar somente no modo escuro`},copyName:`Cópia de {{name}}`,duplicate:`Duplicar {{name}}`,edit:`Editar {{name}}`,export:`Exportar {{name}}`,delete:`Excluir {{name}}`,deleteDescription:`Remover {{name}} deste navegador? As aparências clara ou escura que o usam voltarão ao tema base.`,noMatches:`Nenhum tema correspondente`,customTheme:`Tema personalizado`,name:`Nome do tema`,paletteColor:`{{color}} ({{mode, lowercase}})`,color:{background:`Fundo`,foreground:`Texto`,sidebar:`Barra lateral`,primary:`Destaque`,primaryForeground:`Texto de destaque`},save:`Salvar tema`},color:{swatch:`{{label}}: {{color}}`,removeCustom:`Remover {{hex}} das cores personalizadas`,custom:`Cor personalizada`,default:`padrão`,red:`vermelho`,orange:`laranja`,amber:`âmbar`,yellow:`amarelo`,lime:`lima`,green:`verde`,emerald:`esmeralda`,teal:`verde-azulado`,cyan:`ciano`,sky:`azul-celeste`,blue:`azul`,indigo:`índigo`,violet:`violeta`,purple:`roxo`,fuchsia:`fúcsia`,pink:`rosa`,rose:`rosa-avermelhado`,gray:`cinza`}},admin:{instance:{title:`Administração`,heading:`Instância`,edit:`Editar instância`,name:`Nome`,description:`Descrição`,noDescription:`Sem descrição`,version:`Versão do aplicativo`,publicUrl:`URL pública`,provider:{local:`Armazenamento local no PostgreSQL`,s3:`Armazenamento de objetos compatível com S3`,postgres:`PostgreSQL integrado`,elasticsearch:`Pesquisa compatível com Elasticsearch`},section:{storage:`Armazenamento de arquivos`,search:`Pesquisa de tickets`,events:`Entrega de eventos`},viewConfiguration:`Ver configuração`,configure:{storage:`Configurar armazenamento`,search:`Configurar pesquisa`,events:`Configurar entrega de eventos`},providerTitle:`Provedor`,deploymentManaged:`Gerenciado pela implantação`,instanceManaged:`Gerenciado pela instância`,transfers:`Transferências`,indexStatus:`Status do índice`,connection:`Conexão`,transfersS3:`Os arquivos vão para o armazenamento de objetos depois de salvos localmente.`,transfersLocal:`Novos arquivos são armazenados no PostgreSQL.`,searchBuiltIn:`A pesquisa é executada diretamente no PostgreSQL.`,searchIndexed:`As alterações de tickets são indexadas em segundo plano.`,eventsConnection:`As notificações acordam os consumidores; o PostgreSQL mantém o histórico de reprodução.`,builtIn:`Integrado`,connected:`Conectado`,upToDate:`Atualizado`,status:{ready:`pronto`,transferring:`transferindo`,indexing:`indexando`,connecting:`conectando`,unavailable:`indisponível`},pendingTransfers:`Transferências pendentes`,pendingRemain:`Estes arquivos continuam disponíveis no PostgreSQL até a transferência terminar.`,noPending:`Nenhum arquivo aguardando transferência.`,bucket:`Bucket`,storageEndpoint:`Endpoint de armazenamento`,backup:`Backup`,backupBuckets:`Faça backup do PostgreSQL e de todos os buckets de armazenamento de objetos referenciados.`,backupDatabase:`Os bytes dos arquivos estão incluídos no backup do PostgreSQL.`,fallback:`Alternativa`,fallbackDescription:`A pesquisa do PostgreSQL fica disponível enquanto um índice externo está atrasado ou offline.`,searchEndpoint:`Endpoint de pesquisa`,index:`Índice`,delivery:`Entrega`,deliveryDescription:`Eventos duráveis e reprodução ficam no PostgreSQL. Um broker opcional distribui os sinais de ativação.`,brokerEndpoint:`Endpoint do broker`,exchange:`Exchange`},configure:{storageTitle:`Configurar armazenamento de arquivos`,searchTitle:`Configurar pesquisa de tickets`,eventsTitle:`Configurar entrega de eventos`,saved:`Configurações da instância salvas`,instanceName:`Nome da instância`,instanceDescription:`Descrição da instância`,publicUrlSource:`A URL pública é definida por KANVIL_URL na implantação.`,storageIntro:`Anexos e fotos de perfil usam este provedor. Os arquivos existentes mantêm o local de armazenamento original.`,storageProvider:`Provedor de armazenamento`,localDescription:`Os bytes dos arquivos são armazenados no banco de dados local e incluídos nos backups do PostgreSQL.`,s3Endpoint:`Endpoint S3`,s3EndpointHint:`Deixe o endpoint vazio para o Amazon S3.`,region:`Região`,prefix:`Prefixo das chaves de objeto`,accessKeyId:`ID da chave de acesso`,secretAccessKey:`Chave de acesso secreta`,savedSecret:`Salvo. Deixe vazio para manter.`,deploymentCredentials:`Credenciais da implantação quando omitido`,pathStyle:`Usar URLs de bucket no estilo de caminho`,storageVerified:`Conexão de armazenamento verificada`,testStorage:`Testar conexão de armazenamento`,filesWaiting_one:`{{count, number}} arquivo aguardando transferência. Arquivos pendentes continuam legíveis no PostgreSQL.`,filesWaiting_many:`{{count, number}} arquivos aguardando transferência. Arquivos pendentes continuam legíveis no PostgreSQL.`,filesWaiting_other:`{{count, number}} arquivos aguardando transferência. Arquivos pendentes continuam legíveis no PostgreSQL.`,transfersComplete:`Todas as transferências de arquivos foram concluídas.`,storageDeployment:`O armazenamento é configurado pelas variáveis de implantação KANVIL_STORAGE_PROVIDER e S3_*.`,locations:`Locais de armazenamento existentes`,locationFiles_one:`{{count, number}} arquivo`,locationFiles_many:`{{count, number}} arquivos`,locationFiles_other:`{{count, number}} arquivos`,cleanUp:`Limpar arquivos não usados`,cleanUpConfirm:`Remover arquivos não referenciados e envios com falha com mais de um dia? Arquivos anexados a tickets ou perfis são mantidos.`,cleanUpNote:`A limpeza também é executada automaticamente. Objetos S3 exigem um backup do bucket além do backup do banco de dados.`,searchProvider:`Provedor de pesquisa`,searchBuiltIn:`Pesquisa integrada do PostgreSQL`,indexName:`Nome do índice do Kanvil`,searchAuthentication:`Autenticação da pesquisa`,noAuthentication:`Sem autenticação`,apiKey:`Chave de API`,basic:`Usuário e senha`,searchApiKey:`Chave de API da pesquisa`,optional:`Opcional`,searchUsername:`Usuário da pesquisa`,searchPassword:`Senha da pesquisa`,searchVerified:`Conexão de pesquisa verificada`,testSearch:`Testar conexão de pesquisa`,rebuildQueued:`Reconstrução da pesquisa na fila`,rebuild:`Reconstruir índice`,searchNote:`O PostgreSQL continua sendo a referência para permissões e filtros. A pesquisa recorre ao PostgreSQL enquanto um índice externo se atualiza ou está indisponível.`,brokerProvider:`Provedor de entrega de eventos`,brokerBuiltIn:`Notificações integradas do PostgreSQL`,rabbitUrl:`URL de conexão do RabbitMQ`,savedBrokerEndpoint:`Endpoint do broker salvo`,rabbitExchange:`Exchange do RabbitMQ`,brokerVerified:`Entrega do RabbitMQ verificada`,testBroker:`Testar conexão do broker`,brokerNote:`O RabbitMQ distribui os sinais de ativação de eventos confirmados para as instâncias do Kanvil e acorda os processos em segundo plano. O PostgreSQL mantém os eventos duráveis e o trabalho pendente, e entrega os sinais quando o broker está indisponível.`,brokerDeployment:`A entrega de eventos é configurada pelas variáveis de implantação KANVIL_BROKER_PROVIDER e RABBITMQ_*.`,save:`Salvar configurações da instância`},authentication:{title:`Autenticação`,saved:`Autenticação salva`,emailPassword:`Login com e-mail e senha`,emailPasswordDescription:`Inclui códigos de login por e-mail e redefinição de senha.`,ssoProvision:`Criar usuários automaticamente pelo SSO`,ssoProvisionDescription:`Novos usuários do SSO não têm acesso a espaços de trabalho nem projetos até serem convidados.`,registration:`Cadastro público por e-mail`,registrationClosed:`Fechado`,identityProvider:`Provedor de identidade`,notConfigured:`Não configurado`,linkedProviders:`Provedores de contas vinculadas`,linkedProvidersDescription:`Só permitem entrar em contas que os vincularam; nunca criam contas.`,save:`Salvar autenticação`,discoveryUrl:`URL de descoberta OIDC`,clientId:`ID do cliente OIDC`,oidcSetup:`Configure OIDC_DISCOVERY_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET e OIDC_NAME, ou um par CLIENT_ID e CLIENT_SECRET de GITHUB_, GOOGLE_ ou DISCORD_, na implantação e reinicie o Kanvil. Os segredos do provedor nunca são enviados ao navegador.`,consumers:`Interfaces para consumidores`,mcpEndpoint:`Endpoint MCP`,eventFeed:`Feed de eventos em tempo real`,openApi:`Especificação OpenAPI`},users:{title:`Usuários`,search:`Pesquisar usuários`,searchPlaceholder:`Nome ou e-mail…`,new:`Novo usuário`,roleFilter:`Filtro de função na instância`,allRoles:`Todas as funções`,administrators:`Administradores`,users:`Usuários`,statusFilter:`Filtro de status da conta`,allAccounts:`Todas as contas`,active:`Ativa`,disabled:`Desativada`,noMatches:`Nenhum usuário correspondente`,empty:`Nenhum usuário`,user:`Usuário`,role:`Função`,status:`Status`,joined:`Entrou em`,actions:`Ações`,administrator:`Administrador`,manage:`Gerenciar {{name}}`,pagerNoun:`usuários`,create:`Criar conta`,creating:`Criando…`,created:`{{email}} criado`,name:`Nome`,email:`E-mail`,initialPassword:`Senha inicial`,instanceRole:`Função na instância`},account:{details:`Detalhes da conta`,joined:`Entrou em {{date}}`,edit:`Editar conta`,instanceRole:`Função na instância`,adminDescription:`Pode administrar todos os espaços de trabalho, contas e configurações de implantação.`,userDescription:`As funções no espaço de trabalho e no projeto determinam o acesso.`,changeRole:`Alterar função`,changeRoleTitle:`Alterar função na instância`,signInMethods:`Métodos de login`,setPassword:`Definir senha local`,activeSessions:`Sessões ativas`,sessions_one:`{{count, number}} sessão`,sessions_many:`{{count, number}} sessões`,sessions_other:`{{count, number}} sessões`,revokeSessions:`Revogar sessões`,revokeConfirm:`Desconectar {{name}} de todos os dispositivos? As chaves de API continuam ativas.`,sessionsRevoked:`Sessões revogadas`,access:`Acesso da conta`,accessDisabled:`O login e o acesso à API estão desativados.`,accessPreserved:`Desativar uma conta preserva os tickets e o histórico de atividade.`,enable:`Ativar conta`,disable:`Desativar conta`,enableConfirm:`Restaurar o login de {{name}}?`,disableConfirm:`Desativar o login e o acesso à API de {{name}} e revogar as sessões?`,enabled:`Conta ativada`,disabledToast:`Conta desativada`,updateFailed:`Não foi possível atualizar a conta`,workspaces:`Espaços de trabalho`,addToWorkspace:`Adicionar ao espaço de trabalho`,noWorkspaces:`Sem associação a espaços de trabalho`,projectAccess:`Acesso direto a projetos`,updated:`Conta atualizada`,roleUpdated:`Função na instância atualizada`,workspaceAdded:`Acesso ao espaço de trabalho adicionado`,passwordMismatch:`As novas senhas não coincidem.`,passwordSet:`Senha local definida e sessões revogadas`,name:`Nome`,email:`E-mail`,user:`Usuário`,administrator:`Administrador`,adminsNote:`Administradores podem gerenciar todos os espaços de trabalho, usuários e configurações da instância.`,workspace:`Espaço de trabalho`,workspaceRole:`Função no espaço de trabalho`,newPassword:`Nova senha`,confirmPassword:`Confirmar nova senha`,passwordNote:`Isto define uma senha local e desconecta o usuário de todos os dispositivos.`,save:`Salvar alterações`},delivery:{field:{address:`Endereço de e-mail`,server:`Servidor`,topic:`Tópico`,accessToken:`Token de acesso`,applicationToken:`Token do aplicativo`,endpointUrl:`URL do endpoint`,signingSecret:`Segredo de assinatura`,incomingWebhookUrl:`URL do webhook de entrada`,webhookUrl:`URL do webhook`,channel:`Canal`,botToken:`Token do bot`,chatId:`ID do chat`,chatIdPlaceholder:`-1001234567890 ou @canal`,topicId:`ID do tópico`,optional:`{{label}} (opcional)`,removeSaved:`Remover {{label, lowercase}} salvo`,savedSecret:`Salvo · deixe em branco para manter`},failure:{blockedAddress:`Este endereço não é permitido`,redirectBlocked:`O endpoint redirecionou`,dnsError:`Host não encontrado`,networkError:`Não foi possível conectar`,timeout:`Tempo esgotado`,invalidEndpoint:`Endpoint inválido`,emailUnavailable:`O e-mail não está configurado neste servidor`,smtpError:`Servidor de e-mail indisponível`,accessRevoked:`O administrador que fez a conexão perdeu o acesso; reconecte`,repositoryMismatch:`Uma entrega veio de outro repositório`,http:`Rejeitado com HTTP {{status}}`,smtp:`O servidor de e-mail respondeu {{code}}`},health:{delivery:{done:`Entregue <time/>`,pending:`Enviando…`,none:`Nada enviado ainda`,failed:`{{reason}}`},access:{done:`Acesso verificado <time/>`,pending:`Verificando acesso…`,none:`Acesso não verificado`,failed:`Verificação de acesso: {{reason}}`},retrying:`tentando novamente`},paused:`Pausado`,failing:`Com falha`,sendTest:`Enviar teste para {{name}}`,testQueued:`Teste na fila`,resume:`Retomar {{name}}`,pause:`Pausar {{name}}`,edit:`Editar {{name}}`,disconnect:`Desconectar {{name}}`,disconnected:`{{name}} desconectado`,name:`Nome`,type:`Tipo`,channels:`Canais`,addChannel:`Adicionar canal`,noChannels:`Nenhum canal`,editChannel:`Editar canal`,channelSaved:`Canal salvo`,channelRemoval:`Desconectar {{name}}? As configurações e as notificações na fila serão descartadas.`,sendFrom:`Enviar notificações de`,routeOff:`Nada`,routeAll:`Todos os projetos`,routeSelected:`Projetos selecionados`,saveChannel:`Salvar canal`,adminsOnly:`Administradores do projeto gerenciam as integrações`,destinations:`Destinos`,addDestination:`Adicionar destino`,noDestinations:`Nenhum destino`,editDestination:`Editar destino`,destinationSaved:`Destino salvo`,destinationRemoval:`Desconectar {{name}}? As configurações e as mensagens na fila serão descartadas.`,send:`Enviar`,saveDestination:`Salvar destino`},repository:{setup:{github:`O token precisa de acesso de leitura ao repositório e de acesso de escrita a issues e pull requests para comentar ou sincronizar issues. Adicione um webhook do GitHub com a URL copiada da linha deste repositório, content type application/json, este segredo e os eventos Branch or tag creation, Branch or tag deletion, Issues, Issue comments e Pull requests.`,gitea:`O token precisa do escopo read:repository e de write:issue para comentar ou sincronizar issues. Adicione um webhook do Gitea com a URL copiada da linha deste repositório, content type application/json, este segredo e os eventos Create, Delete, Issues, Issue Label, Issue Comment e Pull Request.`,gitlab:`O token precisa do escopo read_api e de api para comentar ou sincronizar issues. Adicione um webhook do GitLab com a URL copiada da linha deste repositório, este token secreto e os eventos Push, Issues, Comments e Merge request.`},noWebhook:`Nenhum webhook recebido`,webhookReceived:`Webhook recebido <time/>`,saved:`Repositório salvo`,title:`Repositórios`,connect:`Conectar repositório`,empty:`Nenhum repositório`,checkAccess:`Verificar acesso a {{repository}}`,accessQueued:`Verificação de acesso na fila`,copyWebhook:`Copiar URL do webhook de {{repository}}`,issueSync:`Sincronização de issues de {{repository}}`,removal:`Desconectar {{repository}}? O webhook para de funcionar imediatamente. Os links adicionados por ele continuam nos tickets.`,edit:`Editar repositório`,host:`Host`,serverUrl:`URL do servidor`,serverUrlOptional:`URL do servidor (opcional)`,repository:`Repositório {{host}}`,nestedPlaceholder:`grupo/projeto`,placeholder:`proprietário/repositório`,accessToken:`Token de acesso`,webhookSecret:`Segredo do webhook`,savedSecret:`Salvo · deixe em branco para manter`,commentOnLink:{pull_request:`Comentar em issues e pull requests recém-vinculados`,merge_request:`Comentar em issues e merge requests recém-vinculados`},moveTickets:`Mover tickets vinculados`,noMove:`Não mover`,save:`Salvar repositório`},issueSync:{reason:{labels:`As etiquetas de sincronização mudaram`,conflict:`Alterado nos dois lados`,changedWhilePaused:`A issue mudou enquanto o repositório estava pausado`,unverified:`A resposta do host não confirmou a alteração`,claimConflict:`O ticket está reservado`,invalidContent:`A issue é mais longa do que um ticket permite`},issuesSyncing_one:`{{count, number}} issue sincronizando`,issuesSyncing_many:`{{count, number}} issues sincronizando`,issuesSyncing_other:`{{count, number}} issues sincronizando`,linksStopped_one:`{{count, number}} vínculo interrompido`,linksStopped_many:`{{count, number}} vínculos interrompidos`,linksStopped_other:`{{count, number}} vínculos interrompidos`,match:`Correspondência`,matchAny:`Qualquer uma destas etiquetas`,matchAll:`Todas estas etiquetas`,preview:{matching:`Continuar sincronizando`,export:`Novas issues a criar`,pause:`Vínculos a pausar`,review:`Vínculos a revisar`},applied:`Sincronização de issues aplicada`,title:`Sincronização de issues · {{repository}}`,outbound:`Kanvil para {{host}}`,exportTickets:`Exportar tickets como issues`,exportDescription:`Tickets abertos recebem uma nova issue; título, descrição, estado e novos comentários ficam sincronizados.`,ticketLabels:`Somente tickets com estas etiquetas`,everyTicket:`Todos os tickets abertos`,inbound:`{{host}} para Kanvil`,importIssues:`Importar issues como tickets`,importDescription:`Issues abertas são importadas quando o {{host}} as informar novamente.`,issueLabels:`Somente issues com estas etiquetas`,everyIssue:`Todas as issues abertas`,previewLabel:`Prévia`,previewAction:`Visualizar`,stopped:`Vínculos interrompidos · {{repository}}`,review:`Revisar`,linkRemoved:`Vínculo removido`,resumed:`Sincronização retomada`,open:`Aberta`,closed:`Fechada`,reviewTitle:`Revisar {{key}}`,mayExist:`O {{host}} talvez já tenha esta issue; verifique antes de criá-la novamente.`,comparison:`Comparação`,field:{title:`título`,description:`descrição`,state:`estado`},notReported:`Não informado`,unlink:`Desvincular`,keepHost:`Manter {{host}}`,keepKanvil:`Manter Kanvil`,createAgain:`Criar issue novamente`,unlinkTicket:`Desvincular {{key}}`,unlinkConfirm:`Parar de sincronizar {{key}}? O ticket e a issue continuam existindo.`},import:{count:{tickets:`Tickets`,workflow:`Estados`,fields:`Campos personalizados`,labels:`Etiquetas`,relations:`Relações`,comments:`Comentários`,evidence:`Evidências`,links:`Links`},notExport:`Este arquivo não é uma exportação de tickets do Kanvil.`,progress_one:`{{status}} · {{done, number}} de {{count, number}} registro`,progress_many:`{{status}} · {{done, number}} de {{count, number}} registros`,progress_other:`{{status}} · {{done, number}} de {{count, number}} registros`,progressFailed_one:`{{status}} · {{done, number}} de {{count, number}} registro · {{failed, number}} com falha`,progressFailed_many:`{{status}} · {{done, number}} de {{count, number}} registros · {{failed, number}} com falha`,progressFailed_other:`{{status}} · {{done, number}} de {{count, number}} registros · {{failed, number}} com falha`,title:`Importar`,description:`Cria um projeto a partir de uma exportação de tickets do Kanvil ou de outro sistema de acompanhamento: Linear, Jira, Trello, Plane, PLANKA ou Kaneo.`,action:`Importar projeto`,detailsOf:`Detalhes de {{name}}`,details:`Detalhes`,exportFile:`Arquivo de exportação do Kanvil`,source:`Origem`,file:`Arquivo de exportação`,jiraEdition:`Edição do Jira`,siteUrl:`URL do site`,accountEmail:`E-mail da conta`,apiKey:`Chave de API`,apiToken:`Token de API`,personalToken:`Token de acesso pessoal`,token:`Token`,apiUrl:`URL da API`,workspaceSlug:`Chave de URL do espaço de trabalho`,signInWith:`Entrar com`,username:`Usuário ou e-mail`,password:`Senha`,checkConnection:`Verifique os dados de conexão`,noProjects:`Estas credenciais não conseguem ler nenhum item do tipo {{label, lowercase}}.`,includeComments:`Incluir comentários`,projectName:`Nome do projeto`,start:`Importar`,connect:`Conectar`,preview:`Visualizar`,starting:`Iniciando…`,connecting:`Conectando…`,checking:`Verificando…`,matched:`Pessoas correspondidas`,unmatched:`Pessoas sem correspondência`,previewLabel:`Prévia da importação`,errorPrefix:`Erro: `,notePrefix:`Observação: `,progressLabel:`Progresso da importação`,notImported:`Registros não importados`,stop:`Parar importação`,openProject:`Abrir projeto`}},native:{labelValue:`{{label}}: {{value}}`,ui:{dismiss:`Descartar`,loading:`Carregando`},server:{url:`URL do servidor`,connect:`Conectar`,change:`Trocar servidor`,invalidOrigin:`Use a origem HTTP ou HTTPS do servidor Kanvil, sem caminho nem credenciais.`,httpsRequired:`Use HTTPS para conectar ao servidor Kanvil.`},login:{setupTitle:`Criar a conta de proprietário`,signIn:`Entrar`,signingIn:`Entrando…`,createAccount:`Criar conta`,signInWith:`Entrar com {{provider}}`,name:`Nome`,setupToken:`Token de configuração`,email:`E-mail`,password:`Senha`},connection:{connecting:`conectando`,connected:`● Ao vivo`,offline:`Offline · dados em cache`,closed:`fechado`,signedOut:`Entre para reconectar`},screen:{projects:`Projetos`,inbox:`Caixa de entrada`,settings:`Configurações`,tickets:`Tickets`,ticket:`Ticket`,newTicket:`Novo ticket`,editTicket:`Editar ticket`},projects:{empty:`Nenhum projeto ainda`,new:`Novo projeto`,name:`Nome do projeto`,prefix:`Prefixo dos tickets`,description:`Descrição`,create:`Criar projeto`},tickets:{search:`Pesquisar tickets`,searchPlaceholder:`Título, descrição ou chave`,allStatuses:`Todos os status`,empty:`Nenhum ticket correspondente`,count:`{{shown}} de {{total}}`},ticket:{priority:`Prioridade {{priority, lowercase}}`,noDifficulty:`Dificuldade não especificada`,version:`v{{version}}`,starts:`Começa em {{date}}`,due:`Entrega em {{date}}`},editor:{stale:`Este ticket mudou. O rascunho salvo ainda usa a versão {{version}}.`,discardDraft:`Descartar rascunho e recarregar`,title:`Título`,noDifficulty:`Não especificada`,labels:`Etiquetas (separadas por vírgula)`,scopes:`Escopos (separados por vírgula)`,editMarkdown:`Editar Markdown`,previewMarkdown:`Visualizar Markdown`,description:`Descrição (Markdown)`,acceptanceCriteria:`Critérios de aceitação (Markdown)`,parent:`ID do ticket pai`,automationReady:`Pronto para agentes quando requisitos e dependências permitirem`,holdReason:`Motivo da espera`,draftSaved:`Rascunho salvo neste dispositivo`,save:`Salvar ticket`},detail:{archived:`Arquivado`,subscribe:`Inscrever-se`,unsubscribe:`Cancelar inscrição`,share:`Compartilhar`,description:`Descrição`,noDescription:`_Sem descrição_`,acceptanceCriteria:`Critérios de aceitação`,noAcceptanceCriteria:`_Sem critérios de aceitação_`,fields:`Campos`,archive:{action:`Arquivar ticket`,title:`Arquivar ticket?`,message:`Remover este ticket das listas ativas e da elegibilidade para agentes?`},unarchive:{action:`Desarquivar ticket`,title:`Desarquivar ticket?`,message:`Restaurar este ticket às listas ativas?`}},readiness:{title:`Prontidão para agentes`,ready:`Pronto para reservar`,notReady:`Não está pronto para reservar`,hold:`Em espera: {{reason}}`,claimed:`Reservado por {{worker}} até {{time}}.`,release:{action:`Liberar minha reserva`,title:`Liberar reserva?`,message:`Pare o executor antes de liberar a propriedade.`,confirm:`Liberar`},recover:{action:`Recuperar reserva expirada`,explanation:`Confirme primeiro que o executor parou.`,reason:`Motivo da recuperação`,confirm:`Executor parado · recuperar`}},relations:{title:`Relações`,parent:`Pai · {{key}} · {{title}}`,openParent:`Abrir ticket pai`,children:`Tickets filhos`,previousChildren:`Filhos anteriores`,nextChildren:`Próximos filhos`,remove:`Remover relação`,removeTitle:`Remover relação?`,add:`Adicionar relação`,find:`Encontrar ticket`,type:`Relação`,ticket:`Ticket`,choose:`Escolher um ticket`},discussion:{title:`Discussão`,previous:`Comentários anteriores`,next:`Próximos comentários`,field:`Comentário (Markdown)`,submit:`Comentar`,you:`Você`,edit:`Editar comentário`,editField:`Comentário`,delete:`Excluir comentário`,deleteTitle:`Excluir comentário?`,deleteMessage:`Remover este comentário permanentemente?`,save:`Salvar comentário`},attachments:{title:`Anexos`,item:`{{name}} · {{size}} kB`,remove:`Remover {{name}}`,removeTitle:`Remover anexo?`,working:`Processando…`,add:`Adicionar anexo`,tooLarge:`Escolha um arquivo de no máximo 10 MB.`,sharingUnavailable:`O compartilhamento de arquivos não está disponível neste dispositivo.`},evidence:{title:`Evidências`,explanation:`Os resultados são informados pelas contas que os enviam.`,add:`Adicionar evidência`,name:`Título`,url:`URL`,outcome:`Resultado informado`,commit:`Commit (hash completo)`,note:`Observação`,save:`Salvar evidência`},activity:{title:`Atividade`,previous:`Atividade anterior`,next:`Próxima atividade`},inbox:{markAllRead:`Marcar tudo como lido`,empty:`Nenhuma notificação`},notifications:{title:`Notificações`,inApp:`Atualizações de tickets inscritos na Caixa de entrada`,push:`Notificações push`,enableDevice:`Ativar push neste dispositivo`,disableDevice:`Desativar push neste dispositivo`,unconfigured:`Este build precisa de um ID de projeto Expo e de configuração de assinatura para push.`,noProjectId:`Este build precisa de um ID de projeto Expo para notificações push.`,permissionDenied:`Permita notificações nas configurações do dispositivo para ativar o push.`,channel:`Atualizações de tickets`},settings:{password:{title:`Senha local`,current:`Senha atual`,new:`Nova senha`,change:`Alterar senha`,updated:`Senha atualizada; outras sessões revogadas`},oidc:{linked:`Conta vinculada`,explanation:`Vincule esta conta antes de entrar com este provedor.`,link:`Vincular {{provider}}`},signOut:{action:`Sair`,title:`Sair?`,message:`Os tickets em cache e os rascunhos desta conta serão removidos deste dispositivo.`},changeServer:{title:`Trocar servidor?`,message:`Sair e limpar o cache local e os rascunhos desta conta?`}}}};export{e as default};
@@ -1 +1 @@
1
- import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{Dt as i}from"./index-2V6MWx63.js";var a={lessThanXSeconds:{one:`menos de um segundo`,other:`menos de {{count}} segundos`},xSeconds:{one:`1 segundo`,other:`{{count}} segundos`},halfAMinute:`meio minuto`,lessThanXMinutes:{one:`menos de um minuto`,other:`menos de {{count}} minutos`},xMinutes:{one:`1 minuto`,other:`{{count}} minutos`},aboutXHours:{one:`cerca de 1 hora`,other:`cerca de {{count}} horas`},xHours:{one:`1 hora`,other:`{{count}} horas`},xDays:{one:`1 dia`,other:`{{count}} dias`},aboutXWeeks:{one:`cerca de 1 semana`,other:`cerca de {{count}} semanas`},xWeeks:{one:`1 semana`,other:`{{count}} semanas`},aboutXMonths:{one:`cerca de 1 mês`,other:`cerca de {{count}} meses`},xMonths:{one:`1 mês`,other:`{{count}} meses`},aboutXYears:{one:`cerca de 1 ano`,other:`cerca de {{count}} anos`},xYears:{one:`1 ano`,other:`{{count}} anos`},overXYears:{one:`mais de 1 ano`,other:`mais de {{count}} anos`},almostXYears:{one:`quase 1 ano`,other:`quase {{count}} anos`}},o=(e,t,n)=>{let r,i=a[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?`em `+r:`há `+r:r},s={date:t({formats:{full:`EEEE, d 'de' MMMM 'de' y`,long:`d 'de' MMMM 'de' y`,medium:`d MMM y`,short:`dd/MM/yyyy`},defaultWidth:`full`}),time:t({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} 'às' {{time}}`,long:`{{date}} 'às' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},c={lastWeek:e=>{let t=e.getDay();return`'`+(t===0||t===6?`último`:`última`)+`' eeee 'às' p`},yesterday:`'ontem às' p`,today:`'hoje às' p`,tomorrow:`'amanhã às' p`,nextWeek:`eeee 'às' p`,other:`P`},l={code:`pt-BR`,formatDistance:o,formatLong:s,formatRelative:(e,t,n,r)=>{let i=c[e];return typeof i==`function`?i(t):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e);return t?.unit===`week`?n+`ª`:n+`º`},era:e({values:{narrow:[`AC`,`DC`],abbreviated:[`AC`,`DC`],wide:[`antes de cristo`,`depois de cristo`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`T1`,`T2`,`T3`,`T4`],wide:[`1º trimestre`,`2º trimestre`,`3º trimestre`,`4º trimestre`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`j`,`f`,`m`,`a`,`m`,`j`,`j`,`a`,`s`,`o`,`n`,`d`],abbreviated:[`jan`,`fev`,`mar`,`abr`,`mai`,`jun`,`jul`,`ago`,`set`,`out`,`nov`,`dez`],wide:[`janeiro`,`fevereiro`,`março`,`abril`,`maio`,`junho`,`julho`,`agosto`,`setembro`,`outubro`,`novembro`,`dezembro`]},defaultWidth:`wide`}),day:e({values:{narrow:[`D`,`S`,`T`,`Q`,`Q`,`S`,`S`],short:[`dom`,`seg`,`ter`,`qua`,`qui`,`sex`,`sab`],abbreviated:[`domingo`,`segunda`,`terça`,`quarta`,`quinta`,`sexta`,`sábado`],wide:[`domingo`,`segunda-feira`,`terça-feira`,`quarta-feira`,`quinta-feira`,`sexta-feira`,`sábado`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)[ºªo]?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},defaultMatchWidth:`wide`,parsePatterns:{short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1},labels:{labelDayButton:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t.today&&(a=`Hoje, ${a}`),t.selected&&(a=`${a}, selecionado`),a},labelMonthDropdown:`Escolha o mês`,labelNext:`Ir para o próximo mês`,labelPrevious:`Ir para o mês anterior`,labelWeekNumber:e=>`Semana ${e}`,labelYearDropdown:`Escolha o ano`,labelGrid:(e,t,n)=>(n??new i(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t?.today&&(a=`Hoje, ${a}`),a},labelNav:`Barra de navegação`,labelWeekNumberHeader:`Número da semana`,labelWeekday:(e,t,n)=>(n??new i(t)).format(e,`cccc`)}};export{l as ptBR};
1
+ import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{Dt as i}from"./index-CYVrs22O.js";var a={lessThanXSeconds:{one:`menos de um segundo`,other:`menos de {{count}} segundos`},xSeconds:{one:`1 segundo`,other:`{{count}} segundos`},halfAMinute:`meio minuto`,lessThanXMinutes:{one:`menos de um minuto`,other:`menos de {{count}} minutos`},xMinutes:{one:`1 minuto`,other:`{{count}} minutos`},aboutXHours:{one:`cerca de 1 hora`,other:`cerca de {{count}} horas`},xHours:{one:`1 hora`,other:`{{count}} horas`},xDays:{one:`1 dia`,other:`{{count}} dias`},aboutXWeeks:{one:`cerca de 1 semana`,other:`cerca de {{count}} semanas`},xWeeks:{one:`1 semana`,other:`{{count}} semanas`},aboutXMonths:{one:`cerca de 1 mês`,other:`cerca de {{count}} meses`},xMonths:{one:`1 mês`,other:`{{count}} meses`},aboutXYears:{one:`cerca de 1 ano`,other:`cerca de {{count}} anos`},xYears:{one:`1 ano`,other:`{{count}} anos`},overXYears:{one:`mais de 1 ano`,other:`mais de {{count}} anos`},almostXYears:{one:`quase 1 ano`,other:`quase {{count}} anos`}},o=(e,t,n)=>{let r,i=a[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?`em `+r:`há `+r:r},s={date:t({formats:{full:`EEEE, d 'de' MMMM 'de' y`,long:`d 'de' MMMM 'de' y`,medium:`d MMM y`,short:`dd/MM/yyyy`},defaultWidth:`full`}),time:t({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} 'às' {{time}}`,long:`{{date}} 'às' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},c={lastWeek:e=>{let t=e.getDay();return`'`+(t===0||t===6?`último`:`última`)+`' eeee 'às' p`},yesterday:`'ontem às' p`,today:`'hoje às' p`,tomorrow:`'amanhã às' p`,nextWeek:`eeee 'às' p`,other:`P`},l={code:`pt-BR`,formatDistance:o,formatLong:s,formatRelative:(e,t,n,r)=>{let i=c[e];return typeof i==`function`?i(t):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e);return t?.unit===`week`?n+`ª`:n+`º`},era:e({values:{narrow:[`AC`,`DC`],abbreviated:[`AC`,`DC`],wide:[`antes de cristo`,`depois de cristo`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`T1`,`T2`,`T3`,`T4`],wide:[`1º trimestre`,`2º trimestre`,`3º trimestre`,`4º trimestre`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`j`,`f`,`m`,`a`,`m`,`j`,`j`,`a`,`s`,`o`,`n`,`d`],abbreviated:[`jan`,`fev`,`mar`,`abr`,`mai`,`jun`,`jul`,`ago`,`set`,`out`,`nov`,`dez`],wide:[`janeiro`,`fevereiro`,`março`,`abril`,`maio`,`junho`,`julho`,`agosto`,`setembro`,`outubro`,`novembro`,`dezembro`]},defaultWidth:`wide`}),day:e({values:{narrow:[`D`,`S`,`T`,`Q`,`Q`,`S`,`S`],short:[`dom`,`seg`,`ter`,`qua`,`qui`,`sex`,`sab`],abbreviated:[`domingo`,`segunda`,`terça`,`quarta`,`quinta`,`sexta`,`sábado`],wide:[`domingo`,`segunda-feira`,`terça-feira`,`quarta-feira`,`quinta-feira`,`sexta-feira`,`sábado`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`tarde`,night:`noite`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da tarde`,night:`da noite`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)[ºªo]?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},defaultMatchWidth:`wide`,parsePatterns:{short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1},labels:{labelDayButton:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t.today&&(a=`Hoje, ${a}`),t.selected&&(a=`${a}, selecionado`),a},labelMonthDropdown:`Escolha o mês`,labelNext:`Ir para o próximo mês`,labelPrevious:`Ir para o mês anterior`,labelWeekNumber:e=>`Semana ${e}`,labelYearDropdown:`Escolha o ano`,labelGrid:(e,t,n)=>(n??new i(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let a=(r??new i(n)).format(e,`PPPP`);return t?.today&&(a=`Hoje, ${a}`),a},labelNav:`Barra de navegação`,labelWeekNumberHeader:`Número da semana`,labelWeekday:(e,t,n)=>(n??new i(t)).format(e,`cccc`)}};export{l as ptBR};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,f as n,i as r,kt as i,mn as a,r as o}from"./default-6QIAyMq2.js";import{G as s,Hi as c,K as l,W as u,X as d,Z as f,di as p,et as m,ft as h,it as g,nt as _,qa as v,st as y,vt as b,z as x}from"./search-B3-w3oCd.js";import{t as S}from"./useQueries-D64vLhM6.js";import{a as C,d as w,l as T,p as E,r as D,t as O}from"./item-DED0Ikqi.js";import{t as k}from"./corner-left-up-arA2ipmM.js";import{$ as A,A as j,Ht as M,Q as N,S as P,b as F,bn as I,vt as L,x as R}from"./index-2V6MWx63.js";var z=e(t(),1),B=o(),V=100,H=e=>e instanceof r&&e.status===404,U=(e,t)=>e<2&&!(t instanceof r&&t.status<500),W=(e,t)=>e.states.find(e=>e.id===t.stateId)??e.states.find(e=>e.category===t.status);function G({project:e,ticket:t,iconOnly:n=!1}){let r=W(e,t);return(0,B.jsx)(y,{property:`status`,value:t.status,label:r?.name,color:r?.color,iconOnly:n})}function K({project:e,children:t}){return(0,z.useEffect)(()=>{e&&(document.title=a(`shell.documentTitle`,{name:e.name}))},[e]),(0,B.jsxs)(`div`,{className:`min-h-svh bg-background`,children:[(0,B.jsxs)(`header`,{className:`flex items-center justify-between gap-3 border-b px-4 py-2.5 md:px-6`,children:[(0,B.jsx)(`span`,{className:`flex items-center gap-2`,children:(0,B.jsx)(x,{})}),(0,B.jsx)(p,{variant:`ghost`,size:`sm`,render:(0,B.jsx)(`a`,{href:`/`}),children:a(`shell.openKanvil`)})]}),(0,B.jsx)(`main`,{id:`main`,className:`@container mx-auto w-full max-w-5xl px-4 py-6 md:px-6`,children:(0,B.jsx)(w,{projectId:void 0,labels:e?.labels??[],children:t})})]})}function q({children:e}){return(0,B.jsxs)(s,{title:a(`shell.public.notShared`),children:[(0,B.jsx)(`p`,{className:`m-0 text-sm text-muted-foreground`,children:a(`shell.public.notSharedHint`)}),e]})}function J({error:e,onRetry:t}){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(l,{error:e}),(0,B.jsx)(p,{onClick:t,children:a(`common.action.retry`)})]})}function Y(e){let t=v({...c.publicQuery(`list_public_tickets`,{projectId:e,limit:V,offset:0}),retry:U}),n=[t,...S({queries:Array.from({length:Math.max(0,Math.ceil((t.data?.total??0)/V)-1)},(t,n)=>({...c.publicQuery(`list_public_tickets`,{projectId:e,limit:V,offset:(n+1)*V}),retry:U}))})];return{tickets:n.flatMap(e=>e.data?.items??[]),pending:n.some(e=>e.isPending),error:n.find(e=>e.error)?.error,refetch:()=>{for(let e of n)e.refetch()}}}function X({projectId:e}){let t=v({...c.publicQuery(`get_public_project`,{projectId:e}),retry:U}),r=Y(e),i=P(!0);if(H(t.error)||H(r.error))return(0,B.jsx)(K,{children:(0,B.jsx)(q,{})});if(t.error||r.error)return(0,B.jsx)(K,{children:(0,B.jsx)(J,{error:t.error??r.error,onRetry:()=>{t.refetch(),r.refetch()}})});if(!t.data||r.pending)return(0,B.jsx)(K,{children:(0,B.jsx)(d,{})});let o=t.data,l=o.states.map(e=>({state:e,tickets:r.tickets.filter(t=>W(o,t)?.id===e.id)})).filter(e=>e.tickets.length);return(0,B.jsx)(K,{project:o,children:(0,B.jsxs)(`div`,{className:`animate-in fade-in-0 duration-200`,children:[(0,B.jsx)(m,{title:(0,B.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,B.jsx)(E,{project:{...o,image:null}}),(0,B.jsx)(`h1`,{dir:`auto`,className:`m-0 text-lg wrap-anywhere`,children:o.name}),(0,B.jsx)(b,{variant:`secondary`,className:`font-mono text-[10px] font-normal`,children:o.key})]})}),o.description&&(0,B.jsx)(`div`,{className:`mb-6 max-w-3xl text-sm`,children:(0,B.jsx)(f,{children:o.description})}),l.length?l.map(({state:t,tickets:r})=>(0,B.jsxs)(`section`,{"aria-label":t.name,className:`mb-6`,children:[(0,B.jsxs)(`h2`,{className:`m-0 flex items-center gap-2 border-b py-1.5`,children:[(0,B.jsx)(y,{property:`status`,value:t.category,label:t.name,color:t.color}),(0,B.jsx)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:r.length})]}),(0,B.jsx)(`ul`,{className:`m-0 list-none p-0`,children:r.map(t=>(0,B.jsx)(`li`,{className:`ticket-row border-b`,children:(0,B.jsxs)(M,{to:`/public/projects/$projectId/tickets/$ticketId`,params:{projectId:e,ticketId:t.id},onClick:n=>i(n,{projectId:e,ticketId:t.id}),className:`flex min-w-0 flex-wrap items-start gap-x-3 gap-y-1 px-1 py-2.5 text-foreground transition-colors hover:bg-muted/50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`,children:[(0,B.jsx)(y,{property:`priority`,value:t.priority,iconOnly:!0}),(0,B.jsx)(`span`,{className:`pt-0.5 font-mono text-[11px] text-muted-foreground`,children:t.key}),(0,B.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 basis-60 pt-px text-sm wrap-anywhere`,children:t.title}),t.labels.length>0&&(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:t.labels.map(e=>(0,B.jsx)(T,{tag:e},e))}),(0,B.jsx)(u,{value:t.dueAt,open:!n.some(e=>e===t.status),className:`pt-0.5 text-xs`})]})},t.id))})]},t.id)):(0,B.jsx)(s,{title:a(`shell.public.noTickets`)})]})})}var Z=e=>e?L.format(new Date(e)):a(`common.state.none`);function Q({projectId:e,ticketId:t,preview:n}){let r=v({...c.publicQuery(`get_public_project`,{projectId:e}),retry:U}),o=v({...c.publicQuery(`get_public_ticket`,{projectId:e,ticketId:t}),retry:U}),l=(e,t)=>n?(0,B.jsx)(w,{projectId:void 0,labels:t?.labels??[],children:e}):(0,B.jsx)(K,{...t?{project:t}:{},children:e}),u=n&&(0,B.jsx)(p,{onClick:n.close,children:a(`detail.page.closePreview`)});if(H(r.error))return l((0,B.jsx)(q,{children:u}));if(H(o.error))return l((0,B.jsx)(s,{title:a(`shell.public.ticketUnavailable`),children:u||(0,B.jsx)(p,{render:(0,B.jsx)(M,{to:`/public/projects/$projectId`,params:{projectId:e}}),children:a(`shell.public.backToTickets`)})}),r.data);if(r.error||o.error)return l((0,B.jsx)(J,{error:r.error??o.error,onRetry:()=>{r.refetch(),o.refetch()}}));if(!r.data||!o.data)return l((0,B.jsx)(d,{}));let b=r.data,{ticket:x,parent:S,children:E,relations:P}=o.data,L=t=>(0,B.jsx)(F,{projectId:e,ticketId:t.id,ticket:t,shared:!0});return l((0,B.jsxs)(`article`,{className:`grid w-full grid-cols-[minmax(0,1fr)_280px] gap-x-10 animate-in fade-in-0 duration-200 @max-[850px]:flex @max-[850px]:flex-col [&_section]:border-t [&_section]:py-5`,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsx)(m,{title:!n&&(0,B.jsxs)(p,{variant:`ghost`,size:`sm`,className:`-ml-2 text-muted-foreground`,render:(0,B.jsx)(M,{to:`/public/projects/$projectId`,params:{projectId:e}}),children:[(0,B.jsx)(I,{}),b.name]}),children:n&&(0,B.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:(0,B.jsx)(R,{projectId:e,ticketId:x.id,shared:!0,preview:n})})}),(0,B.jsxs)(`header`,{children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-muted-foreground`,children:[(0,B.jsx)(`span`,{className:`font-mono`,children:x.key}),(0,B.jsx)(G,{project:b,ticket:x})]}),n?(0,B.jsx)(j,{render:(0,B.jsx)(`h1`,{dir:`auto`}),className:h,children:x.title}):(0,B.jsx)(`h1`,{dir:`auto`,className:h,children:x.title})]}),(0,B.jsxs)(`div`,{className:`min-w-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0`,children:[(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h2`,{children:a(`shell.public.description`)}),(0,B.jsx)(f,{children:x.description||a(`shell.public.noDescription`)})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h2`,{children:a(`shell.public.acceptanceCriteria`)}),(0,B.jsx)(f,{children:x.acceptanceCriteria||a(`shell.public.noAcceptanceCriteria`)})]})]})]}),(0,B.jsxs)(`aside`,{className:`min-w-0 border-l pl-5 @max-[850px]:border-l-0 @max-[850px]:pl-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0 @max-[850px]:[&>section:first-child]:border-t @max-[850px]:[&>section:first-child]:pt-6`,"aria-label":a(`shell.public.ticketProperties`),children:[(0,B.jsxs)(`section`,{"aria-label":a(`shell.public.properties`),className:`space-y-1.5 text-sm [&_[data-slot=badge]]:ml-0`,children:[(0,B.jsx)(N,{label:a(`shell.public.status`),children:(0,B.jsx)(G,{project:b,ticket:x})}),(0,B.jsx)(N,{label:a(`shell.public.priority`),children:(0,B.jsx)(y,{property:`priority`,value:x.priority})}),(0,B.jsx)(N,{label:a(`shell.public.kind`),children:(0,B.jsx)(A,{property:`kind`,value:x.kind,projectId:e})}),(0,B.jsx)(N,{label:a(`shell.public.difficulty`),children:(0,B.jsx)(A,{property:`difficulty`,value:x.difficulty,projectId:e})}),(0,B.jsx)(N,{label:a(`shell.public.startDate`),children:(0,B.jsx)(`span`,{className:`text-xs`,children:Z(x.startAt)})}),(0,B.jsx)(N,{label:a(`shell.public.dueDate`),children:(0,B.jsx)(`span`,{className:`text-xs`,children:Z(x.dueAt)})}),(0,B.jsx)(N,{label:a(`shell.public.labels`),children:(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1 text-xs`,children:x.labels.length?x.labels.map(e=>(0,B.jsx)(T,{tag:e},e)):a(`common.state.none`)})}),x.scopes.length>0&&(0,B.jsx)(N,{label:a(`shell.public.scopes`),children:(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:x.scopes.map(e=>(0,B.jsx)(T,{tag:e,kind:`scope`,variant:`outline`},e))})}),(0,B.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[80px_minmax(0,1fr)] gap-x-2 gap-y-1.5 border-t pt-4 text-xs [&_dd]:m-0 [&_dt]:text-muted-foreground`,children:[(0,B.jsx)(`dt`,{children:a(`shell.public.created`)}),(0,B.jsx)(`dd`,{children:(0,B.jsx)(_,{value:x.createdAt})}),(0,B.jsx)(`dt`,{children:a(`shell.public.updated`)}),(0,B.jsx)(`dd`,{children:(0,B.jsx)(_,{value:x.updatedAt})})]})]}),(S||E.length>0||P.length>0)&&(0,B.jsxs)(`section`,{children:[(0,B.jsx)(g,{compact:!0,title:a(`shell.public.relationships`)}),(0,B.jsxs)(C,{className:`gap-0`,children:[S&&(0,B.jsxs)(O,{size:`xs`,className:`px-0`,children:[(0,B.jsx)(k,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a(`shell.public.parent`)}),L(S)]})]}),E.map(e=>(0,B.jsxs)(O,{size:`xs`,className:`px-0`,children:[(0,B.jsx)(G,{project:b,ticket:e,iconOnly:!0}),(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a(`shell.public.child`)}),L(e)]})]},e.id)),P.map(t=>{let n=i({...t,projectId:e},x.id);return(0,B.jsx)(O,{size:`xs`,className:`px-0`,children:(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n.label}),(0,B.jsx)(F,{projectId:e,ticketId:n.id,shared:!0,children:n.title})]})},t.id)})]})]})]})]}),b)}export{X as PublicProject,Q as PublicTicket};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,f as n,i as r,kt as i,mn as a,r as o}from"./default-bQFGTwIp.js";import{G as s,Hi as c,K as l,W as u,X as d,Z as f,di as p,et as m,ft as h,it as g,nt as _,qa as v,st as y,vt as b,z as x}from"./search-Ble6WSEU.js";import{t as S}from"./useQueries-5lW2C5Sb.js";import{a as C,d as w,l as T,p as E,r as D,t as O}from"./item-TCHuZNK6.js";import{t as k}from"./corner-left-up-PD-73Nae.js";import{$ as A,A as j,Ht as M,Q as N,S as P,b as F,bn as I,vt as L,x as R}from"./index-CYVrs22O.js";var z=e(t(),1),B=o(),V=100,H=e=>e instanceof r&&e.status===404,U=(e,t)=>e<2&&!(t instanceof r&&t.status<500),W=(e,t)=>e.states.find(e=>e.id===t.stateId)??e.states.find(e=>e.category===t.status);function G({project:e,ticket:t,iconOnly:n=!1}){let r=W(e,t);return(0,B.jsx)(y,{property:`status`,value:t.status,label:r?.name,color:r?.color,iconOnly:n})}function K({project:e,children:t}){return(0,z.useEffect)(()=>{e&&(document.title=a(`shell.documentTitle`,{name:e.name}))},[e]),(0,B.jsxs)(`div`,{className:`min-h-svh bg-background`,children:[(0,B.jsxs)(`header`,{className:`flex items-center justify-between gap-3 border-b px-4 py-2.5 md:px-6`,children:[(0,B.jsx)(`span`,{className:`flex items-center gap-2`,children:(0,B.jsx)(x,{})}),(0,B.jsx)(p,{variant:`ghost`,size:`sm`,render:(0,B.jsx)(`a`,{href:`/`}),children:a(`shell.openKanvil`)})]}),(0,B.jsx)(`main`,{id:`main`,className:`@container mx-auto w-full max-w-5xl px-4 py-6 md:px-6`,children:(0,B.jsx)(w,{projectId:void 0,labels:e?.labels??[],children:t})})]})}function q({children:e}){return(0,B.jsxs)(s,{title:a(`shell.public.notShared`),children:[(0,B.jsx)(`p`,{className:`m-0 text-sm text-muted-foreground`,children:a(`shell.public.notSharedHint`)}),e]})}function J({error:e,onRetry:t}){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(l,{error:e}),(0,B.jsx)(p,{onClick:t,children:a(`common.action.retry`)})]})}function Y(e){let t=v({...c.publicQuery(`list_public_tickets`,{projectId:e,limit:V,offset:0}),retry:U}),n=[t,...S({queries:Array.from({length:Math.max(0,Math.ceil((t.data?.total??0)/V)-1)},(t,n)=>({...c.publicQuery(`list_public_tickets`,{projectId:e,limit:V,offset:(n+1)*V}),retry:U}))})];return{tickets:n.flatMap(e=>e.data?.items??[]),pending:n.some(e=>e.isPending),error:n.find(e=>e.error)?.error,refetch:()=>{for(let e of n)e.refetch()}}}function X({projectId:e}){let t=v({...c.publicQuery(`get_public_project`,{projectId:e}),retry:U}),r=Y(e),i=P(!0);if(H(t.error)||H(r.error))return(0,B.jsx)(K,{children:(0,B.jsx)(q,{})});if(t.error||r.error)return(0,B.jsx)(K,{children:(0,B.jsx)(J,{error:t.error??r.error,onRetry:()=>{t.refetch(),r.refetch()}})});if(!t.data||r.pending)return(0,B.jsx)(K,{children:(0,B.jsx)(d,{})});let o=t.data,l=o.states.map(e=>({state:e,tickets:r.tickets.filter(t=>W(o,t)?.id===e.id)})).filter(e=>e.tickets.length);return(0,B.jsx)(K,{project:o,children:(0,B.jsxs)(`div`,{className:`animate-in fade-in-0 duration-200`,children:[(0,B.jsx)(m,{title:(0,B.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,B.jsx)(E,{project:{...o,image:null}}),(0,B.jsx)(`h1`,{dir:`auto`,className:`m-0 text-lg wrap-anywhere`,children:o.name}),(0,B.jsx)(b,{variant:`secondary`,className:`font-mono text-[10px] font-normal`,children:o.key})]})}),o.description&&(0,B.jsx)(`div`,{className:`mb-6 max-w-3xl text-sm`,children:(0,B.jsx)(f,{children:o.description})}),l.length?l.map(({state:t,tickets:r})=>(0,B.jsxs)(`section`,{"aria-label":t.name,className:`mb-6`,children:[(0,B.jsxs)(`h2`,{className:`m-0 flex items-center gap-2 border-b py-1.5`,children:[(0,B.jsx)(y,{property:`status`,value:t.category,label:t.name,color:t.color}),(0,B.jsx)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:r.length})]}),(0,B.jsx)(`ul`,{className:`m-0 list-none p-0`,children:r.map(t=>(0,B.jsx)(`li`,{className:`ticket-row border-b`,children:(0,B.jsxs)(M,{to:`/public/projects/$projectId/tickets/$ticketId`,params:{projectId:e,ticketId:t.id},onClick:n=>i(n,{projectId:e,ticketId:t.id}),className:`flex min-w-0 flex-wrap items-start gap-x-3 gap-y-1 px-1 py-2.5 text-foreground transition-colors hover:bg-muted/50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`,children:[(0,B.jsx)(y,{property:`priority`,value:t.priority,iconOnly:!0}),(0,B.jsx)(`span`,{className:`pt-0.5 font-mono text-[11px] text-muted-foreground`,children:t.key}),(0,B.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 basis-60 pt-px text-sm wrap-anywhere`,children:t.title}),t.labels.length>0&&(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:t.labels.map(e=>(0,B.jsx)(T,{tag:e},e))}),(0,B.jsx)(u,{value:t.dueAt,open:!n.some(e=>e===t.status),className:`pt-0.5 text-xs`})]})},t.id))})]},t.id)):(0,B.jsx)(s,{title:a(`shell.public.noTickets`)})]})})}var Z=e=>e?L.format(new Date(e)):a(`common.state.none`);function Q({projectId:e,ticketId:t,preview:n}){let r=v({...c.publicQuery(`get_public_project`,{projectId:e}),retry:U}),o=v({...c.publicQuery(`get_public_ticket`,{projectId:e,ticketId:t}),retry:U}),l=(e,t)=>n?(0,B.jsx)(w,{projectId:void 0,labels:t?.labels??[],children:e}):(0,B.jsx)(K,{...t?{project:t}:{},children:e}),u=n&&(0,B.jsx)(p,{onClick:n.close,children:a(`detail.page.closePreview`)});if(H(r.error))return l((0,B.jsx)(q,{children:u}));if(H(o.error))return l((0,B.jsx)(s,{title:a(`shell.public.ticketUnavailable`),children:u||(0,B.jsx)(p,{render:(0,B.jsx)(M,{to:`/public/projects/$projectId`,params:{projectId:e}}),children:a(`shell.public.backToTickets`)})}),r.data);if(r.error||o.error)return l((0,B.jsx)(J,{error:r.error??o.error,onRetry:()=>{r.refetch(),o.refetch()}}));if(!r.data||!o.data)return l((0,B.jsx)(d,{}));let b=r.data,{ticket:x,parent:S,children:E,relations:P}=o.data,L=t=>(0,B.jsx)(F,{projectId:e,ticketId:t.id,ticket:t,shared:!0});return l((0,B.jsxs)(`article`,{className:`grid w-full grid-cols-[minmax(0,1fr)_280px] gap-x-10 animate-in fade-in-0 duration-200 @max-[850px]:flex @max-[850px]:flex-col [&_section]:border-t [&_section]:py-5`,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsx)(m,{title:!n&&(0,B.jsxs)(p,{variant:`ghost`,size:`sm`,className:`-ml-2 text-muted-foreground`,render:(0,B.jsx)(M,{to:`/public/projects/$projectId`,params:{projectId:e}}),children:[(0,B.jsx)(I,{}),b.name]}),children:n&&(0,B.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:(0,B.jsx)(R,{projectId:e,ticketId:x.id,shared:!0,preview:n})})}),(0,B.jsxs)(`header`,{children:[(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-muted-foreground`,children:[(0,B.jsx)(`span`,{className:`font-mono`,children:x.key}),(0,B.jsx)(G,{project:b,ticket:x})]}),n?(0,B.jsx)(j,{render:(0,B.jsx)(`h1`,{dir:`auto`}),className:h,children:x.title}):(0,B.jsx)(`h1`,{dir:`auto`,className:h,children:x.title})]}),(0,B.jsxs)(`div`,{className:`min-w-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0`,children:[(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h2`,{children:a(`shell.public.description`)}),(0,B.jsx)(f,{children:x.description||a(`shell.public.noDescription`)})]}),(0,B.jsxs)(`section`,{children:[(0,B.jsx)(`h2`,{children:a(`shell.public.acceptanceCriteria`)}),(0,B.jsx)(f,{children:x.acceptanceCriteria||a(`shell.public.noAcceptanceCriteria`)})]})]})]}),(0,B.jsxs)(`aside`,{className:`min-w-0 border-l pl-5 @max-[850px]:border-l-0 @max-[850px]:pl-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0 @max-[850px]:[&>section:first-child]:border-t @max-[850px]:[&>section:first-child]:pt-6`,"aria-label":a(`shell.public.ticketProperties`),children:[(0,B.jsxs)(`section`,{"aria-label":a(`shell.public.properties`),className:`space-y-1.5 text-sm [&_[data-slot=badge]]:ml-0`,children:[(0,B.jsx)(N,{label:a(`shell.public.status`),children:(0,B.jsx)(G,{project:b,ticket:x})}),(0,B.jsx)(N,{label:a(`shell.public.priority`),children:(0,B.jsx)(y,{property:`priority`,value:x.priority})}),(0,B.jsx)(N,{label:a(`shell.public.kind`),children:(0,B.jsx)(A,{property:`kind`,value:x.kind,projectId:e})}),(0,B.jsx)(N,{label:a(`shell.public.difficulty`),children:(0,B.jsx)(A,{property:`difficulty`,value:x.difficulty,projectId:e})}),(0,B.jsx)(N,{label:a(`shell.public.startDate`),children:(0,B.jsx)(`span`,{className:`text-xs`,children:Z(x.startAt)})}),(0,B.jsx)(N,{label:a(`shell.public.dueDate`),children:(0,B.jsx)(`span`,{className:`text-xs`,children:Z(x.dueAt)})}),(0,B.jsx)(N,{label:a(`shell.public.labels`),children:(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1 text-xs`,children:x.labels.length?x.labels.map(e=>(0,B.jsx)(T,{tag:e},e)):a(`common.state.none`)})}),x.scopes.length>0&&(0,B.jsx)(N,{label:a(`shell.public.scopes`),children:(0,B.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:x.scopes.map(e=>(0,B.jsx)(T,{tag:e,kind:`scope`,variant:`outline`},e))})}),(0,B.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[80px_minmax(0,1fr)] gap-x-2 gap-y-1.5 border-t pt-4 text-xs [&_dd]:m-0 [&_dt]:text-muted-foreground`,children:[(0,B.jsx)(`dt`,{children:a(`shell.public.created`)}),(0,B.jsx)(`dd`,{children:(0,B.jsx)(_,{value:x.createdAt})}),(0,B.jsx)(`dt`,{children:a(`shell.public.updated`)}),(0,B.jsx)(`dd`,{children:(0,B.jsx)(_,{value:x.updatedAt})})]})]}),(S||E.length>0||P.length>0)&&(0,B.jsxs)(`section`,{children:[(0,B.jsx)(g,{compact:!0,title:a(`shell.public.relationships`)}),(0,B.jsxs)(C,{className:`gap-0`,children:[S&&(0,B.jsxs)(O,{size:`xs`,className:`px-0`,children:[(0,B.jsx)(k,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a(`shell.public.parent`)}),L(S)]})]}),E.map(e=>(0,B.jsxs)(O,{size:`xs`,className:`px-0`,children:[(0,B.jsx)(G,{project:b,ticket:e,iconOnly:!0}),(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a(`shell.public.child`)}),L(e)]})]},e.id)),P.map(t=>{let n=i({...t,projectId:e},x.id);return(0,B.jsx)(O,{size:`xs`,className:`px-0`,children:(0,B.jsxs)(D,{className:`min-w-0 gap-0`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n.label}),(0,B.jsx)(F,{projectId:e,ticketId:n.id,shared:!0,children:n.title})]})},t.id)})]})]})]})]}),b)}export{X as PublicProject,Q as PublicTicket};
@@ -1 +1 @@
1
- import{Ga as e}from"./search-B3-w3oCd.js";var t={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};t.node;var n=e(t);export{n as t};
1
+ import{Ga as e}from"./search-Ble6WSEU.js";var t={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};t.node;var n=e(t);export{n as t};
@@ -1 +1 @@
1
- import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-2V6MWx63.js";function o(e,t){if(e.one!==void 0&&t===1)return e.one;let n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace(`{{count}}`,String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace(`{{count}}`,String(t)):e.pluralGenitive.replace(`{{count}}`,String(t))}function s(e){return(t,n)=>n?.addSuffix?n.comparison&&n.comparison>0?e.future?o(e.future,t):`через `+o(e.regular,t):e.past?o(e.past,t):o(e.regular,t)+` назад`:o(e.regular,t)}var c={lessThanXSeconds:s({regular:{one:`меньше секунды`,singularNominative:`меньше {{count}} секунды`,singularGenitive:`меньше {{count}} секунд`,pluralGenitive:`меньше {{count}} секунд`},future:{one:`меньше, чем через секунду`,singularNominative:`меньше, чем через {{count}} секунду`,singularGenitive:`меньше, чем через {{count}} секунды`,pluralGenitive:`меньше, чем через {{count}} секунд`}}),xSeconds:s({regular:{singularNominative:`{{count}} секунда`,singularGenitive:`{{count}} секунды`,pluralGenitive:`{{count}} секунд`},past:{singularNominative:`{{count}} секунду назад`,singularGenitive:`{{count}} секунды назад`,pluralGenitive:`{{count}} секунд назад`},future:{singularNominative:`через {{count}} секунду`,singularGenitive:`через {{count}} секунды`,pluralGenitive:`через {{count}} секунд`}}),halfAMinute:(e,t)=>t?.addSuffix?t.comparison&&t.comparison>0?`через полминуты`:`полминуты назад`:`полминуты`,lessThanXMinutes:s({regular:{one:`меньше минуты`,singularNominative:`меньше {{count}} минуты`,singularGenitive:`меньше {{count}} минут`,pluralGenitive:`меньше {{count}} минут`},future:{one:`меньше, чем через минуту`,singularNominative:`меньше, чем через {{count}} минуту`,singularGenitive:`меньше, чем через {{count}} минуты`,pluralGenitive:`меньше, чем через {{count}} минут`}}),xMinutes:s({regular:{singularNominative:`{{count}} минута`,singularGenitive:`{{count}} минуты`,pluralGenitive:`{{count}} минут`},past:{singularNominative:`{{count}} минуту назад`,singularGenitive:`{{count}} минуты назад`,pluralGenitive:`{{count}} минут назад`},future:{singularNominative:`через {{count}} минуту`,singularGenitive:`через {{count}} минуты`,pluralGenitive:`через {{count}} минут`}}),aboutXHours:s({regular:{singularNominative:`около {{count}} часа`,singularGenitive:`около {{count}} часов`,pluralGenitive:`около {{count}} часов`},future:{singularNominative:`приблизительно через {{count}} час`,singularGenitive:`приблизительно через {{count}} часа`,pluralGenitive:`приблизительно через {{count}} часов`}}),xHours:s({regular:{singularNominative:`{{count}} час`,singularGenitive:`{{count}} часа`,pluralGenitive:`{{count}} часов`}}),xDays:s({regular:{singularNominative:`{{count}} день`,singularGenitive:`{{count}} дня`,pluralGenitive:`{{count}} дней`}}),aboutXWeeks:s({regular:{singularNominative:`около {{count}} недели`,singularGenitive:`около {{count}} недель`,pluralGenitive:`около {{count}} недель`},future:{singularNominative:`приблизительно через {{count}} неделю`,singularGenitive:`приблизительно через {{count}} недели`,pluralGenitive:`приблизительно через {{count}} недель`}}),xWeeks:s({regular:{singularNominative:`{{count}} неделя`,singularGenitive:`{{count}} недели`,pluralGenitive:`{{count}} недель`}}),aboutXMonths:s({regular:{singularNominative:`около {{count}} месяца`,singularGenitive:`около {{count}} месяцев`,pluralGenitive:`около {{count}} месяцев`},future:{singularNominative:`приблизительно через {{count}} месяц`,singularGenitive:`приблизительно через {{count}} месяца`,pluralGenitive:`приблизительно через {{count}} месяцев`}}),xMonths:s({regular:{singularNominative:`{{count}} месяц`,singularGenitive:`{{count}} месяца`,pluralGenitive:`{{count}} месяцев`}}),aboutXYears:s({regular:{singularNominative:`около {{count}} года`,singularGenitive:`около {{count}} лет`,pluralGenitive:`около {{count}} лет`},future:{singularNominative:`приблизительно через {{count}} год`,singularGenitive:`приблизительно через {{count}} года`,pluralGenitive:`приблизительно через {{count}} лет`}}),xYears:s({regular:{singularNominative:`{{count}} год`,singularGenitive:`{{count}} года`,pluralGenitive:`{{count}} лет`}}),overXYears:s({regular:{singularNominative:`больше {{count}} года`,singularGenitive:`больше {{count}} лет`,pluralGenitive:`больше {{count}} лет`},future:{singularNominative:`больше, чем через {{count}} год`,singularGenitive:`больше, чем через {{count}} года`,pluralGenitive:`больше, чем через {{count}} лет`}}),almostXYears:s({regular:{singularNominative:`почти {{count}} год`,singularGenitive:`почти {{count}} года`,pluralGenitive:`почти {{count}} лет`},future:{singularNominative:`почти через {{count}} год`,singularGenitive:`почти через {{count}} года`,pluralGenitive:`почти через {{count}} лет`}})},l=(e,t,n)=>c[e](t,n),u={date:t({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:t({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:t({formats:{any:`{{date}}, {{time}}`},defaultWidth:`any`})},d=[`воскресенье`,`понедельник`,`вторник`,`среду`,`четверг`,`пятницу`,`субботу`];function f(e){let t=d[e];switch(e){case 0:return`'в прошлое `+t+` в' p`;case 1:case 2:case 4:return`'в прошлый `+t+` в' p`;case 3:case 5:case 6:return`'в прошлую `+t+` в' p`}}function p(e){let t=d[e];return e===2?`'во `+t+` в' p`:`'в `+t+` в' p`}function m(e){let t=d[e];switch(e){case 0:return`'в следующее `+t+` в' p`;case 1:case 2:case 4:return`'в следующий `+t+` в' p`;case 3:case 5:case 6:return`'в следующую `+t+` в' p`}}var h={lastWeek:(e,t,n)=>{let r=e.getDay();return i(e,t,n)?p(r):f(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return i(e,t,n)?p(r):m(r)},other:`P`},g={code:`ru`,formatDistance:l,formatLong:u,formatRelative:(e,t,n,r)=>{let i=h[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e),r=t?.unit,i;return i=r===`date`?`-е`:r===`week`||r===`minute`||r===`second`?`-я`:`-й`,n+i},era:e({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:e({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утро`,afternoon:`день`,evening:`вечер`,night:`ночь`}},defaultWidth:`any`,formattingValues:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утра`,afternoon:`дня`,evening:`вечера`,night:`ночи`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1},labels:{labelDayButton:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t.today&&(i=`Сегодня, ${i}`),t.selected&&(i=`${i}, выбрано`),i},labelMonthDropdown:`Выберите месяц`,labelNext:`Перейти к следующему месяцу`,labelPrevious:`Перейти к предыдущему месяцу`,labelWeekNumber:e=>`Неделя ${e}`,labelYearDropdown:`Выберите год`,labelGrid:(e,t,n)=>(n??new a(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t?.today&&(i=`Сегодня, ${i}`),i},labelNav:`Панель навигации`,labelWeekNumberHeader:`Номер недели`,labelWeekday:(e,t,n)=>(n??new a(t)).format(e,`cccc`)}};export{g as ru};
1
+ import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-CYVrs22O.js";function o(e,t){if(e.one!==void 0&&t===1)return e.one;let n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace(`{{count}}`,String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace(`{{count}}`,String(t)):e.pluralGenitive.replace(`{{count}}`,String(t))}function s(e){return(t,n)=>n?.addSuffix?n.comparison&&n.comparison>0?e.future?o(e.future,t):`через `+o(e.regular,t):e.past?o(e.past,t):o(e.regular,t)+` назад`:o(e.regular,t)}var c={lessThanXSeconds:s({regular:{one:`меньше секунды`,singularNominative:`меньше {{count}} секунды`,singularGenitive:`меньше {{count}} секунд`,pluralGenitive:`меньше {{count}} секунд`},future:{one:`меньше, чем через секунду`,singularNominative:`меньше, чем через {{count}} секунду`,singularGenitive:`меньше, чем через {{count}} секунды`,pluralGenitive:`меньше, чем через {{count}} секунд`}}),xSeconds:s({regular:{singularNominative:`{{count}} секунда`,singularGenitive:`{{count}} секунды`,pluralGenitive:`{{count}} секунд`},past:{singularNominative:`{{count}} секунду назад`,singularGenitive:`{{count}} секунды назад`,pluralGenitive:`{{count}} секунд назад`},future:{singularNominative:`через {{count}} секунду`,singularGenitive:`через {{count}} секунды`,pluralGenitive:`через {{count}} секунд`}}),halfAMinute:(e,t)=>t?.addSuffix?t.comparison&&t.comparison>0?`через полминуты`:`полминуты назад`:`полминуты`,lessThanXMinutes:s({regular:{one:`меньше минуты`,singularNominative:`меньше {{count}} минуты`,singularGenitive:`меньше {{count}} минут`,pluralGenitive:`меньше {{count}} минут`},future:{one:`меньше, чем через минуту`,singularNominative:`меньше, чем через {{count}} минуту`,singularGenitive:`меньше, чем через {{count}} минуты`,pluralGenitive:`меньше, чем через {{count}} минут`}}),xMinutes:s({regular:{singularNominative:`{{count}} минута`,singularGenitive:`{{count}} минуты`,pluralGenitive:`{{count}} минут`},past:{singularNominative:`{{count}} минуту назад`,singularGenitive:`{{count}} минуты назад`,pluralGenitive:`{{count}} минут назад`},future:{singularNominative:`через {{count}} минуту`,singularGenitive:`через {{count}} минуты`,pluralGenitive:`через {{count}} минут`}}),aboutXHours:s({regular:{singularNominative:`около {{count}} часа`,singularGenitive:`около {{count}} часов`,pluralGenitive:`около {{count}} часов`},future:{singularNominative:`приблизительно через {{count}} час`,singularGenitive:`приблизительно через {{count}} часа`,pluralGenitive:`приблизительно через {{count}} часов`}}),xHours:s({regular:{singularNominative:`{{count}} час`,singularGenitive:`{{count}} часа`,pluralGenitive:`{{count}} часов`}}),xDays:s({regular:{singularNominative:`{{count}} день`,singularGenitive:`{{count}} дня`,pluralGenitive:`{{count}} дней`}}),aboutXWeeks:s({regular:{singularNominative:`около {{count}} недели`,singularGenitive:`около {{count}} недель`,pluralGenitive:`около {{count}} недель`},future:{singularNominative:`приблизительно через {{count}} неделю`,singularGenitive:`приблизительно через {{count}} недели`,pluralGenitive:`приблизительно через {{count}} недель`}}),xWeeks:s({regular:{singularNominative:`{{count}} неделя`,singularGenitive:`{{count}} недели`,pluralGenitive:`{{count}} недель`}}),aboutXMonths:s({regular:{singularNominative:`около {{count}} месяца`,singularGenitive:`около {{count}} месяцев`,pluralGenitive:`около {{count}} месяцев`},future:{singularNominative:`приблизительно через {{count}} месяц`,singularGenitive:`приблизительно через {{count}} месяца`,pluralGenitive:`приблизительно через {{count}} месяцев`}}),xMonths:s({regular:{singularNominative:`{{count}} месяц`,singularGenitive:`{{count}} месяца`,pluralGenitive:`{{count}} месяцев`}}),aboutXYears:s({regular:{singularNominative:`около {{count}} года`,singularGenitive:`около {{count}} лет`,pluralGenitive:`около {{count}} лет`},future:{singularNominative:`приблизительно через {{count}} год`,singularGenitive:`приблизительно через {{count}} года`,pluralGenitive:`приблизительно через {{count}} лет`}}),xYears:s({regular:{singularNominative:`{{count}} год`,singularGenitive:`{{count}} года`,pluralGenitive:`{{count}} лет`}}),overXYears:s({regular:{singularNominative:`больше {{count}} года`,singularGenitive:`больше {{count}} лет`,pluralGenitive:`больше {{count}} лет`},future:{singularNominative:`больше, чем через {{count}} год`,singularGenitive:`больше, чем через {{count}} года`,pluralGenitive:`больше, чем через {{count}} лет`}}),almostXYears:s({regular:{singularNominative:`почти {{count}} год`,singularGenitive:`почти {{count}} года`,pluralGenitive:`почти {{count}} лет`},future:{singularNominative:`почти через {{count}} год`,singularGenitive:`почти через {{count}} года`,pluralGenitive:`почти через {{count}} лет`}})},l=(e,t,n)=>c[e](t,n),u={date:t({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:t({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:t({formats:{any:`{{date}}, {{time}}`},defaultWidth:`any`})},d=[`воскресенье`,`понедельник`,`вторник`,`среду`,`четверг`,`пятницу`,`субботу`];function f(e){let t=d[e];switch(e){case 0:return`'в прошлое `+t+` в' p`;case 1:case 2:case 4:return`'в прошлый `+t+` в' p`;case 3:case 5:case 6:return`'в прошлую `+t+` в' p`}}function p(e){let t=d[e];return e===2?`'во `+t+` в' p`:`'в `+t+` в' p`}function m(e){let t=d[e];switch(e){case 0:return`'в следующее `+t+` в' p`;case 1:case 2:case 4:return`'в следующий `+t+` в' p`;case 3:case 5:case 6:return`'в следующую `+t+` в' p`}}var h={lastWeek:(e,t,n)=>{let r=e.getDay();return i(e,t,n)?p(r):f(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return i(e,t,n)?p(r):m(r)},other:`P`},g={code:`ru`,formatDistance:l,formatLong:u,formatRelative:(e,t,n,r)=>{let i=h[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e),r=t?.unit,i;return i=r===`date`?`-е`:r===`week`||r===`minute`||r===`second`?`-я`:`-й`,n+i},era:e({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:e({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утро`,afternoon:`день`,evening:`вечер`,night:`ночь`}},defaultWidth:`any`,formattingValues:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утра`,afternoon:`дня`,evening:`вечера`,night:`ночи`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1},labels:{labelDayButton:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t.today&&(i=`Сегодня, ${i}`),t.selected&&(i=`${i}, выбрано`),i},labelMonthDropdown:`Выберите месяц`,labelNext:`Перейти к следующему месяцу`,labelPrevious:`Перейти к предыдущему месяцу`,labelWeekNumber:e=>`Неделя ${e}`,labelYearDropdown:`Выберите год`,labelGrid:(e,t,n)=>(n??new a(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t?.today&&(i=`Сегодня, ${i}`),i},labelNav:`Панель навигации`,labelWeekNumberHeader:`Номер недели`,labelWeekday:(e,t,n)=>(n??new a(t)).format(e,`cccc`)}};export{g as ru};