@greatapps/common 1.1.797 → 1.1.799
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/modals/billing/BillingDataForm.mjs +21 -63
- package/dist/components/modals/billing/BillingDataForm.mjs.map +1 -1
- package/dist/i18n/messages/en-us.mjs +4 -7
- package/dist/i18n/messages/en-us.mjs.map +1 -1
- package/dist/i18n/messages/es-es.mjs +4 -7
- package/dist/i18n/messages/es-es.mjs.map +1 -1
- package/dist/i18n/messages/pt-br.mjs +4 -7
- package/dist/i18n/messages/pt-br.mjs.map +1 -1
- package/dist/modules/accounts/utils/billing-data.mjs +8 -1
- package/dist/modules/accounts/utils/billing-data.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/modals/billing/BillingDataForm.tsx +22 -68
- package/src/i18n/messages/en-us.ts +4 -7
- package/src/i18n/messages/es-es.ts +4 -7
- package/src/i18n/messages/pt-br.ts +4 -7
- package/src/modules/accounts/utils/billing-data.ts +16 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/messages/pt-br.ts"],"sourcesContent":["/**\n * Catálogo de traduções pt-br dos componentes da @greatapps/common.\n * Os apps consumidores mesclam este objeto sob o namespace `common`.\n *\n * Padrão modular: cada chave de primeiro nível é um **módulo** (um agrupamento por\n * componente/domínio). Para adicionar traduções, crie/edite o módulo correspondente aqui\n * e replique a mesma estrutura em `en-us.ts` e `es-es.ts`.\n *\n * pt-br é a fonte da verdade — os textos saem verbatim do que o componente já exibe hoje.\n */\nconst messages = {\n // Vocabulário global de ações (botões, comandos).\n actions: {\n save: 'Salvar',\n saveChanges: 'Salvar alterações',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Excluir',\n edit: 'Editar',\n close: 'Fechar',\n back: 'Voltar',\n continue: 'Continuar',\n add: 'Adicionar',\n connect: 'Conectar',\n remove: 'Remover',\n search: 'Buscar',\n loading: 'Carregando...',\n saving: 'Salvando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n // Mensagens de validação de formulário.\n validations: {\n required: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidPhone: 'Telefone inválido',\n },\n\n // Componente: PreferencesSection.\n preferences: {\n title: 'Preferências',\n companyName: 'Nome da empresa',\n companyNamePlaceholder: 'Digite o nome da empresa',\n language: 'Idioma',\n languagePlaceholder: 'Selecione o idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moeda',\n currencyPlaceholder: 'Selecione a moeda',\n currencySearch: 'Buscar moeda...',\n general: 'Geral',\n generalDescription: 'Nome da empresa, idioma e moeda',\n timeDisplay: 'Exibição hora',\n timeDisplayDescription: 'Fuso horário e formato das horas',\n timezone: 'Fuso horário',\n timezonePlaceholder: 'Selecione o fuso horário',\n timezoneSearch: 'Buscar fuso horário...',\n timeFormat: 'Formato hora',\n timeFormatPlaceholder: 'Selecione o formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferências salvas com sucesso',\n saveError: 'Erro ao salvar preferências',\n },\n\n // Conta — modais e seções. `<b>` = trecho em negrito (rich text); `{count}` = interpolação.\n account: {\n unsavedChanges: {\n title: 'Sair sem salvar?',\n description: 'Você fez alterações que ainda não foram salvas. Deseja salvar antes de sair?',\n discard: 'Sair sem salvar',\n },\n notificationTypes: {\n projectUpdates: 'Atualizações de projetos',\n securityAlerts: 'Alertas de segurança',\n planBilling: 'Mudanças no plano ou faturamento',\n scheduledMaintenance: 'Manutenções programadas',\n },\n deleteAccount: {\n title: 'Excluir conta',\n description:\n 'Esta ação é <b>irreversível</b>. Ao confirmar, sua conta e todos os seus dados serão excluídos.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Explique sua decisão...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Senha',\n passwordPlaceholder: 'Informe sua senha',\n submit: 'Excluir conta',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n noFeature: 'A ferramenta não possui uma função que eu preciso',\n technical: 'Encontrei problemas técnicos ou erros no sistema',\n support: 'Tive problemas com o suporte ou atendimento',\n updates: 'As atualizações demoram mais do que o esperado',\n temporary: 'O cancelamento é temporário',\n other: 'Outro motivo',\n },\n },\n deletionWarning: {\n title: 'Sua conta será excluída',\n descriptionLine1:\n 'Sua assinatura está cancelada há 90 dias ou mais. Sua conta e todos os dados serão excluídos permanentemente.',\n descriptionLine2:\n 'Para manter suas informações, reative sua assinatura antes da exclusão. Após esse prazo, não será possível recuperar os dados.',\n reactivate: 'Reativar assinatura',\n },\n confirmDelete: {\n title: 'Uma pena te ver ir!',\n warning:\n 'Todas suas <b>{count} páginas</b> serão deletadas permanentemente. Essa ação é <b>irreversível!</b>',\n sessionExpired: 'Sessão expirada. Preencha os campos novamente.',\n success: 'Conta excluída com sucesso',\n error: 'Erro ao excluir. Tente novamente.',\n keepAccount: 'Manter minha conta',\n deleteAnyway: 'Excluir mesmo assim',\n deleting: 'Excluindo...',\n },\n cantDelete: {\n title: 'Não é possível excluir a conta',\n description:\n 'Você tem uma assinatura ativa. Para excluir sua conta, <b>primeiro cancele a assinatura</b> na página Assinatura e depois tente novamente.',\n confirm: 'Ok, entendi',\n goToSubscription: 'Ir para assinatura',\n },\n twoFactor: {\n title: 'Autenticação de dois fatores',\n instructions:\n 'Instale um aplicativo autenticador no seu celular (ex.: <link>Google Authenticator</link>), escaneie o QR Code ao lado ou copie a chave no aplicativo e, em seguida, digite o código de 6 dígitos gerado para continuar.',\n qrAlt: 'QR Code para autenticação de dois fatores',\n retry: 'Tentar novamente',\n pasteDigits: 'Cole os 6 dígitos abaixo',\n activating: 'Ativando...',\n activate: 'Ativar autenticação',\n recoveryTitle: 'Códigos de segurança',\n recoveryHeading: 'Salve estes códigos de recuperação de emergência',\n recoveryText1:\n 'Se você perder acesso ao seu telefone, não será possível fazer login em sua conta sem um código de dois fatores.',\n recoveryText2: 'Imprima, copie ou escreva em um local seguro os códigos abaixo.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados com sucesso',\n generateError: 'Erro ao gerar QR Code. Tente novamente.',\n confirmError: 'Erro ao confirmar código. Tente novamente.',\n disableTitle: 'Desabilitar autenticação 2FA',\n disableDescription:\n 'Informe o código de 6 dígitos do seu aplicativo autenticador para confirmar a desativação.',\n authenticatorCode: 'Código do autenticador',\n disabling: 'Desabilitando...',\n disable: 'Desabilitar 2FA',\n disabledSuccess: 'Autenticação de dois fatores desabilitada',\n disableError: 'Erro ao desabilitar 2FA. Tente novamente.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Erro ao reenviar código. Tente novamente.',\n },\n profile: {\n title: 'Meu perfil',\n avatarAlt: 'Foto do usuário',\n changePhoto: 'Alterar foto',\n name: 'Nome',\n namePlaceholder: 'Digite seu nome',\n lastName: 'Sobrenome',\n lastNamePlaceholder: 'Digite seu sobrenome',\n gender: 'Gênero',\n genderPlaceholder: 'Selecione seu gênero',\n genderOptions: {\n male: 'Masculino',\n female: 'Feminino',\n },\n phone: 'Telefone',\n change: 'Alterar',\n yourData: 'Seus dados',\n yourDataDescription: 'Confira os dados da sua conta',\n accessData: 'Dados de acesso',\n accessDataDescription: 'Como você entra na sua conta',\n email: 'E-mail',\n savedSuccess: 'Perfil atualizado com sucesso',\n saveError: 'Erro ao atualizar perfil',\n },\n otp: {\n validationCode: 'Código de validação',\n incorrectCode: 'Código incorreto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar em <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Alterar e-mail',\n confirm: 'Alterar e-mail',\n sentCodeTo: 'Enviamos um código de validação para o E-mail <b>{email}.</b>',\n updateTitle: 'Atualizar E-mail de contato',\n updateDescription: 'Informe o seu novo E-mail para manter seu contato atualizado.',\n newEmail: 'Novo e-mail',\n newEmailPlaceholder: 'Digite seu novo e-mail',\n emailChanged: 'E-mail alterado com sucesso',\n emailExistsError: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n changePhone: {\n titleEdit: 'Alterar telefone',\n titleAdd: 'Adicionar telefone',\n sentCodeTo: 'Enviamos um código de validação para o número atual <b>{phone}.</b>',\n confirm: 'Alterar telefone',\n updateTitle: 'Atualizar telefone de contato',\n addTitle: 'Adicionar telefone de contato',\n updateDescription: 'Informe o novo número para manter seu contato atualizado.',\n addDescription: 'Informe seu número de telefone para contato.',\n newNumber: 'Novo número',\n numberLabel: 'Número de telefone',\n phoneChanged: 'Telefone alterado',\n phoneAdded: 'Telefone adicionado',\n invalidNumber: 'Número de telefone inválido',\n saveError: 'Ocorreu um erro ao salvar o telefone. Tente novamente mais tarde.',\n numberExistsError: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n security: {\n title: 'Segurança',\n googleLinkedTitle: 'Conta Google vinculada',\n googleLinkedDescription:\n 'Sua conta está vinculada ao Google. Se desvincular, use \"Esqueci minha senha\" para redefinir uma senha de acesso por e-mail.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Erro ao desvincular conta Google.',\n deleteAccountDescription:\n 'Esta ação é permanente e não pode ser desfeita. Todos os seus dados, projetos e configurações serão removidos definitivamente.',\n deleteMyAccount: 'Excluir minha conta',\n },\n token: {\n title: 'Token da conta',\n label: 'Token',\n copySuccess: 'Token copiado com sucesso',\n copyError: 'Não foi possível copiar o token',\n info: 'Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.',\n docsLink: 'Acessar a documentação',\n },\n changePassword: {\n title: 'Alterar senha',\n currentPassword: 'Senha atual',\n currentPasswordPlaceholder: 'Digite sua senha atual',\n newPassword: 'Nova senha',\n newPasswordPlaceholder: 'Digite sua nova senha',\n submit: 'Salvar nova senha',\n changeError: 'Erro ao alterar senha',\n changedSuccess: 'Senha alterada com sucesso',\n genericError: 'Erro ao alterar senha. Tente novamente.',\n },\n globalPreferences: {\n title: 'Alterar preferências globais',\n srDescription: 'Confirmação de alteração de preferências globais da conta',\n warning:\n 'Você está alterando configurações que impactam <b>todos os usuários da conta</b>. Deseja confirmar?',\n },\n // Componente: MyAccountModal (Minha conta e workspace).\n workspace: {\n title: 'Minha conta',\n groups: {\n account: 'Configurações',\n workspace: 'Workspace',\n },\n nav: {\n subscription: 'Assinatura',\n projects: 'Projetos',\n team: 'Minha equipe',\n affiliates: 'Afiliados',\n },\n pagination: {\n previous: 'Página anterior',\n next: 'Próxima página',\n },\n loadFailed: 'Não foi possível carregar esses dados',\n loadFailedRetry: 'Tentar novamente',\n projects: {\n newProject: 'Novo projeto',\n searchPlaceholder: 'Encontrar projetos',\n empty: 'Nenhum projeto encontrado',\n details: 'Detalhes',\n delete: 'Excluir',\n userAlt: 'Usuário',\n seeMoreUsers: 'Ver mais usuários',\n form: {\n nameRequired: 'Nome do projeto é obrigatório',\n },\n sheet: {\n changeLogo: 'Alterar logo',\n projectName: 'Nome do projeto',\n namePlaceholder: 'Ex: Projeto vendas',\n selectUsers: 'Selecione os usuários',\n connectAnotherUser: 'Conectar outro usuário',\n searchUsers: 'Busque por usuários',\n noUsersFound: 'Nenhum usuário encontrado',\n allUsersAdded: 'Todos os usuários já foram adicionados',\n addProject: 'Adicionar projeto',\n saveChanges: 'Salvar alterações',\n created: 'Projeto \"{name}\" criado',\n createError: 'Erro ao criar projeto',\n changesSaved: 'Alterações salvas',\n updateError: 'Erro ao atualizar projeto',\n },\n deleteModal: {\n title: 'Excluir projeto',\n descriptionOnlyProject:\n 'Não é possível excluir o único projeto. Crie outro projeto antes de excluir <b>\"{projectName}\"</b>.',\n description:\n 'Deseja realmente excluir seu projeto <b>\"{projectName}\"</b>? O conteúdo será movido para outro projeto.',\n moveContentTo: 'Mover conteúdo para',\n selectProject: 'Selecione um projeto',\n searchProject: 'Buscar projeto...',\n noProjectFound: 'Nenhum projeto encontrado.',\n typeDelete: 'Digite EXCLUIR abaixo',\n deleteWord: 'EXCLUIR',\n deleting: 'Excluindo...',\n deleted: 'Projeto \"{projectName}\" excluído com sucesso',\n deleteError: 'Erro ao excluir projeto',\n },\n disabledModal: {\n title: 'Você não possui Gestão de Projetos',\n description1: 'Sua assinatura atual não inclui a funcionalidade de Gestão de Projetos.',\n description2: 'Faça upgrade do seu plano para criar e gerenciar múltiplos projetos.',\n upgrade: 'Fazer upgrade de plano',\n },\n },\n team: {\n addUser: 'Adicionar usuário',\n noPermissionToAdd: 'Você não tem permissão para adicionar usuários',\n searchPlaceholder: 'Encontrar usuários',\n empty: 'Nenhum usuário encontrado',\n noProjects: 'Nenhum projeto',\n inProject: 'Em {total} projeto',\n inProjects: 'Em {total} projetos',\n edit: 'Editar',\n delete: 'Excluir',\n filter: 'Filtrar',\n profiles: {\n viewer: 'Visualizador',\n collaborator: 'Colaborador',\n admin: 'Administrador',\n owner: 'Proprietário',\n },\n sheet: {\n titleAdd: 'Adicionar usuário',\n titleEdit: 'Editar usuário',\n tabInformation: 'Informações',\n tabProjects: 'Projetos',\n tabNotifications: 'Notificações',\n selectedOne: 'selecionado',\n selectedMany: 'selecionados',\n sendInvite: 'Enviar convite',\n sending: 'Enviando...',\n saving: 'Salvando...',\n saveChanges: 'Salvar alterações',\n inviteSent: 'Convite enviado para o E-mail {userEmail}',\n changesSaved: 'Alterações de {userName} salvas com sucesso',\n createError: 'Não foi possível criar o usuário',\n updateError: 'Não foi possível atualizar o usuário',\n },\n informationStep: {\n sectionTitle: 'Informações',\n changePhoto: 'Trocar foto',\n addPhoto: 'Adicionar foto',\n firstName: 'Nome',\n namePlaceholder: 'Digite aqui',\n lastName: 'Sobrenome',\n phone: 'Celular',\n phonePlaceholder: '00 0 0000-0000',\n email: 'E-mail',\n emailPlaceholder: 'exemplo@gmail.com',\n checkingEmail: 'Verificando e-mail...',\n emailAlreadyRegistered: 'Este e-mail já está cadastrado',\n change: 'Alterar',\n inviteInfo:\n 'Um e-mail com os dados de acesso será enviado. Certifique-se de informar o e-mail correto.',\n securityTitle: 'Segurança',\n twoFactor: 'Autenticação de dois fatores',\n enable: 'Habilitar',\n disable: 'Desabilitar',\n twoFactorSaving: 'Salvando...',\n twoFactorEnabled: 'Autenticação de dois fatores habilitada com sucesso',\n twoFactorDisabled: 'Autenticação de dois fatores desabilitada com sucesso',\n twoFactorError: 'Erro ao alterar autenticação de dois fatores',\n changePassword: 'Alterar senha de acesso',\n changePasswordButton: 'Alterar senha',\n roleTitle: 'Função desse usuário',\n profileOwner: 'Proprietário da conta com acesso total e irrestrito.',\n profileAdmin:\n 'Acesso a todas as funcionalidades. Ideal para quem precisa de controle completo.',\n profileCollaborator: 'Permissões limitadas às funções essenciais para o dia a dia.',\n profileViewer:\n 'Ideal para acompanhar dados, relatórios e informações, sem realizar alterações.',\n photoAlt: 'Foto',\n },\n projectsStep: {\n sectionTitle: 'Projetos',\n descriptionAdmin: 'Administradores e proprietários possuem acesso a todos os projetos',\n descriptionReadOnly: 'Projetos aos quais você tem acesso',\n descriptionDefault: 'Selecione quais projetos esse usuário terá acesso',\n connectAnotherProject: 'Conectar outro projeto',\n searchProject: 'Buscar por projeto',\n noProjectFound: 'Nenhum projeto encontrado',\n allProjectsAdded: 'Todos os projetos já foram adicionados',\n minimumOneProject: 'O usuário deve ter pelo menos um projeto',\n },\n notificationsStep: {\n sectionTitle: 'Notificações',\n smsTitle: 'SMS',\n smsDescription: 'Receber notificações importantes por SMS',\n emailTitle: 'E-mail',\n emailDescription: 'Receber notificações e atualizações por email',\n typesTitle: 'Tipos de notificações incluem:',\n },\n deleteModal: {\n title: 'Excluir usuário',\n description:\n 'Deseja realmente excluir o(a) usuário(a) \"{userName}\" da sua lista de usuários?',\n typeDelete: 'Digite EXCLUIR abaixo',\n deleteWord: 'EXCLUIR',\n deletingUser: 'Excluindo usuário...',\n deleteUser: 'Excluir usuário',\n deleted: 'O usuário \"{userEmail}\" foi excluído com sucesso',\n deleteError: 'Não foi possível excluir o usuário',\n },\n invalidUser: 'Usuário inválido para vincular projetos',\n invalidUserRemove: 'Usuário inválido para remover projetos',\n },\n dateFilter: {\n today: 'Hoje',\n yesterday: 'Ontem',\n last7Days: 'Últimos 7 dias',\n last30Days: 'Últimos 30 dias',\n lastMonth: 'Mês passado',\n allTime: 'Todo período',\n },\n affiliates: {\n requestWithdrawal: 'Solicitar saque',\n receivingAccount: 'Conta de recebimento',\n listLeads: 'Listar meus leads',\n terms: 'Termos e regras',\n tabs: {\n link: 'Link de afiliados',\n commissions: 'Comissões',\n reports: 'Relatórios',\n },\n stats: {\n heading: 'Números relevantes',\n totalAffiliates: 'Total de afiliados',\n clicks: 'Cliques',\n leads: 'Leads',\n balance: 'Saldo',\n selectedPeriod: 'Período selecionado',\n minBalance: 'Saldo mínimo de R$25 para saque.',\n },\n steps: {\n inviteTitle: 'Envie seu convite',\n inviteDescription: 'Envie seu link de afiliado para seus parceiros',\n registerTitle: 'Registro',\n registerDescription: 'Seu parceiro se cadastra na plataforma',\n trialTitle: 'Período de teste',\n trialDescription: 'Seu parceiro tem 7 dias como período de teste',\n },\n commissionCard: {\n title: 'Comissão de {percent}%',\n affiliateCode: 'Código de afiliado',\n commission: 'Comissão',\n discount: 'Desconto',\n shareLink: 'Link de compartilhamento',\n copyTooltip: 'Copiar link',\n linkCopied: 'Link copiado',\n },\n transactions: {\n total: 'Total de {total} transações',\n filter: 'Filtrar',\n filterApproval: 'Em aprovação',\n value: 'Valor',\n date: 'Data',\n type: 'Tipo',\n statusColumn: 'Status',\n empty: 'Nenhuma comissão encontrada.',\n pendingTooltip:\n 'O status pendente fica por 30 dias. Se o usuário não solicitar reembolso, o valor é consolidado após esse período.',\n refusedTooltip: 'Saque recusado. O valor voltou para o seu saldo.',\n refusedReason: 'Motivo: {reason}',\n viewAttachment: 'Visualizar anexo',\n typeCommission: 'Recebimento de comissão',\n typeWithdrawal: 'Solicitação de saque',\n typeFallback: 'Tipo {type}',\n status: {\n pending: 'Pendente',\n consolidated: 'Consolidado',\n canceled: 'Cancelado',\n refused: 'Recusado',\n },\n },\n chart: {\n title: 'Acompanhamento de indicadores',\n clicks: 'Cliques (Prospect)',\n leads: 'Cadastros (Leads)',\n customers: 'Clientes',\n },\n joinProgram: {\n title: 'Participar do programa de afiliados',\n description:\n 'Ao clicar em participar você declara que aceita todos os termos e condições do programa de parcerias do {whitelabelName}. Para mais informações acesse os',\n termsLink: 'Termos do programa de afiliados',\n join: 'Participar',\n joining: 'Participando...',\n decline: 'Não participar',\n joinError: 'Erro ao participar do programa de afiliados. Tente novamente.',\n },\n withdrawal: {\n sheetTitle: 'Solicitar saque',\n availableBalance: 'Saldo disponível',\n receivingAccount: 'Conta de recebimento',\n holderLabel: 'Titular',\n pixKeyLabel: 'Chave Pix',\n holderDocumentLabel: 'CPF/CNPJ',\n withdrawalValueLabel: 'Valor a sacar',\n withdrawalValuePlaceholder: 'R$ 0,00',\n withdrawalValueHint: 'Valor mínimo: R$ {minValue}',\n invoiceWarningCnpj: 'É obrigatório enviar a nota fiscal para saques com conta CNPJ.',\n attachInvoiceButton: 'Anexar nota',\n uploadAreaText: 'Arraste ou envie aqui o arquivo',\n uploadAreaExt: '.PDF',\n processingInfo: 'O processamento do saque pode levar até 7 dias úteis.',\n processingInfoSub: 'Você receberá uma confirmação por email.',\n contactInfo: 'Para dúvidas, entre em contato com o financeiro:',\n submitButton: 'Solicitar saque',\n errorPdfOnly: 'Apenas arquivos PDF são aceitos.',\n errorRequestDeposit: 'Erro ao solicitar saque.',\n validationMinValue: 'Valor mínimo: R$ {minValue}',\n validationMaxBalance: 'Valor não pode ser maior que o disponível para saque ({balance})',\n validationRequired: 'Informe o valor',\n removeAttachmentAriaLabel: 'Remover arquivo',\n cpfMonthlyLimit: 'Limite mensal (CPF): {value}',\n cpfMonthlyRemaining: '· Disponível este mês: {value}',\n reviewTitle: 'Revisar solicitação de saque',\n reviewValueLabel: 'Valor',\n reviewPixLabel: 'Chave PIX',\n reviewDeadlineLabel: 'Prazo',\n reviewDeadlineValue: '7 dias úteis',\n reviewInvoiceLabel: 'Nota fiscal',\n reviewWarning:\n 'Revise os dados da solicitação antes de confirmar. Após confirmar, o saque será enviado para processamento.',\n reviewConfirmButton: 'Confirmar saque',\n blockedTitle: 'Corrija sua conta de recebimento',\n blockedDescription:\n 'A chave Pix cadastrada é um CPF/CNPJ diferente do documento do titular. Ajuste a chave ou o documento para voltar a solicitar saques.',\n blockedEditAccountButton: 'Editar conta de recebimento',\n },\n bankAccount: {\n dialogTitle: 'Conta de recebimento',\n pixKeyLabel: 'Chave Pix',\n pixKeyPlaceholder: 'E-mail, CPF, Telefone...',\n pixKeyHint:\n 'Você é responsável pela chave Pix informada. Confira se está correta — os repasses serão enviados exatamente para esta chave.',\n holderNameLabel: 'Titular da conta',\n holderNamePlaceholder: 'Nome completo',\n holderDocumentLabel: 'CPF/CNPJ do titular',\n holderDocumentPlaceholder: '000.000.000-00',\n saveSuccess: 'Conta de recebimento salva com sucesso.',\n saveError: 'Erro ao salvar conta.',\n validationPix: 'Informe a chave Pix',\n validationHolder: 'Informe o titular',\n validationDocument: 'Informe CPF/CNPJ do titular',\n validationDocumentLength: 'Informe um CPF (11 dígitos) ou CNPJ (14 dígitos)',\n validationCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n validationCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n validationPixDocumentMismatch:\n 'A chave Pix informada é um CPF/CNPJ diferente do documento do titular. Use uma chave do mesmo documento ou corrija o CPF/CNPJ do titular.',\n pixCnpjInvoiceNotice:\n 'Conta CNPJ: o saque passa a exigir nota fiscal em PDF e não usa o limite mensal de CPF.',\n },\n noBankAccount: {\n title: 'Cadastre uma conta de recebimento',\n description:\n 'Para solicitar um saque, você precisa cadastrar uma conta bancária para recebimento.',\n registerButton: 'Cadastrar conta',\n },\n viewAttachment: {\n title: 'Nota fiscal anexada',\n iframeTitle: 'Nota fiscal',\n noAttachment: 'Nenhum anexo disponível.',\n },\n leadsSheet: {\n title: 'Listar meus leads',\n emptyState: 'Nenhum lead encontrado.',\n noDate: 'Sem data',\n months: {\n january: 'Janeiro',\n february: 'Fevereiro',\n march: 'Março',\n april: 'Abril',\n may: 'Maio',\n june: 'Junho',\n july: 'Julho',\n august: 'Agosto',\n september: 'Setembro',\n october: 'Outubro',\n november: 'Novembro',\n december: 'Dezembro',\n },\n },\n },\n subscription: {\n cancelPlan: {\n title: 'Cancelar Plano {planName}',\n description: 'Você pode usar a {whitelabelName} até o dia <b>{dueDate}</b>. Após essa data, suas páginas serão retiradas do ar e o acesso ao editor e demais funcionalidades do plano será limitado.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Descreva aqui....',\n charactersCount: '{count}/400',\n submit: 'Cancelar assinatura',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n tooExpensive: 'O preço está alto demais',\n missingFeatures: 'A ferramenta não possui uma função que eu preciso',\n switchedService: 'Migrei para outro serviço',\n unused: 'Não estou usando a ferramenta',\n customerService: 'Tive problemas com o suporte ou atendimento',\n tooComplex: 'A ferramenta é muito complexa de usar',\n lowQuality: 'A qualidade não atendeu minhas expectativas',\n other: 'Outro motivo',\n },\n },\n confirmCancel: {\n title: 'Uma pena te ver ir!',\n projectsAndPages: 'Todos os seus <b><totalProjects></totalProjects> projetos</b> e todas suas <b><totalPages></totalPages> páginas</b> ficarão impossibilitados de editar e visualizar até a assinatura de um novo plano!',\n daysUntilEnd: 'Seus sites sairão do ar em {daysUntilEnd} {unit} após o cancelamento',\n dayUnit: 'dia',\n daysUnit: 'dias',\n submit: 'Cancelar assinatura',\n keep: 'Manter assinatura',\n successToast: 'Assinatura cancelada',\n errorToast: 'Erro ao cancelar assinatura. Tente novamente.',\n },\n pendingChange: {\n title: 'Resumo',\n startsOn: 'Início em {date}',\n addonExtras: '{qty} {name} extras',\n aiCredits: '{qty} créditos de IA',\n periodicityDiscount: 'Desconto de periodicidade',\n couponDiscount: 'Cupom de desconto',\n billing: 'Cobrança {period}',\n },\n usageReport: {\n title: 'Relatório de uso',\n madeBy: 'Feito por <b>{author}</b>',\n creditsLabel: '{credits} créditos',\n creditsAdded: '{count} créditos adicionados',\n creditsUsed: '{consumed} de {total} créditos utilizados',\n expired: 'Expirado',\n expiresInOneDay: 'Expira em 1 dia',\n expiresInDays: 'Expira em {days} dias',\n noHistory: 'Nenhum histórico de créditos encontrado.',\n viewPage: 'Ver página',\n defaultRef: 'Uso de créditos',\n defaultUser: 'Usuário',\n },\n planDetails: {\n title: 'Seu plano atual',\n planName: 'Plano {name}',\n noName: 'sem nome',\n validity: 'Validade:',\n cancelledBadge: 'Cancelado',\n includedInPlan: 'Incluso no plano',\n unlimitedDomains: 'Domínios ilimitados',\n domainsSummary: '{total} domínios contratados ({base} inclusos no plano + {extra} extras)',\n domainsSummaryNoExtra: '{total} domínios contratados ({base} inclusos no plano)',\n abTestUnlimited: 'Experimentos (Test A/B) ilimitados',\n heatmap: 'Heatmap',\n domainBucketPrice: '{count} a {price}',\n domainPromoPrice: '{count} a {price} · preço promocional',\n domainTooltip: 'O preço base é o valor de um domínio extra contratado hoje. Os preços promocionais foram contratados em condições anteriores e seguem válidos até você removê-los.',\n manageAddons: 'Você pode gerenciar seus adicionais.',\n manageAddonsLink: 'Clique aqui',\n paymentInfo: 'Informações de pagamento',\n valueLabel: 'Valor',\n paymentMethodLabel: 'Forma de pagamento',\n periodicityLabel: 'Periodicidade',\n planValidityLabel: 'Validade do plano',\n paymentMethodBoleto: 'Boleto',\n paymentMethodCard: 'Cartão',\n periodicityMonthly: 'Mensalmente',\n periodicitySemiannual: 'Semestralmente',\n periodicityAnnual: 'Anualmente',\n trialPeriod: 'Período de teste',\n couponLabel: 'Cupom aplicado',\n couponValuePercent: '{code} (-{percent}%)',\n couponValueAmount: '{code} (-{amount})',\n },\n billingAddress: {\n title: 'Endereço de cobrança',\n personTypeLabel: 'Tipo de pessoa',\n personTypePf: 'Pessoa Física',\n personTypePj: 'Pessoa Jurídica',\n locationTitle: 'Localização',\n locationDescription: 'Preencha os dados de endereço da empresa.',\n fantasyName: 'Nome fantasia',\n fantasyNamePlaceholder: 'Nome da empresa',\n fullName: 'Nome completo',\n fullNamePlaceholder: 'Seu nome completo',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'email@exemplo.com',\n addressLabel: 'Endereço',\n addressPlaceholder: 'Rua, Avenida...',\n numberLabel: 'Número',\n numberPlaceholder: 'Nº',\n complementLabel: 'Complemento',\n complementPlaceholder: 'Apto, sala...',\n neighborhoodLabel: 'Bairro',\n neighborhoodPlaceholder: 'Bairro',\n cityLabel: 'Cidade',\n cityPlaceholder: 'Cidade',\n stateLabel: 'Estado (UF)',\n statePlaceholder: 'UF',\n countryLabel: 'País',\n countryPlaceholder: 'Selecione',\n cepNotFound: 'CEP não encontrado',\n successToast: 'Endereço de cobrança atualizado!',\n errorToast: 'Erro ao salvar. Tente novamente.',\n requiredFields: 'Preencha todos os campos obrigatórios',\n invalidCnpj: 'CNPJ inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n invalidCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n requiredField: 'Campo obrigatório',\n },\n payCharge: {\n title: 'Pagar fatura',\n dueDate: 'Vencimento: {date}',\n domains: 'Domínios',\n aiCredits: 'Créditos de IA',\n abTest: 'Teste A/B',\n abTestActive: 'Ativo',\n payment: 'Pagamento',\n boletoTooltip: 'Pagamento por boleto disponível somente para assinaturas anuais',\n boletoInfo: 'Boleto com vencimento em 3 dias úteis. A assinatura é ativada após a confirmação do pagamento.\\n\\nSe o boleto vencer, a assinatura não será ativada.',\n pixInfo: 'Clique em <b>\"Ver código PIX\"</b> para visualizar o QR code e copiar o código de pagamento.',\n processing: 'Processando...',\n payNow: 'Pagar agora',\n viewPixCode: 'Ver código PIX',\n viewBoleto: 'Ver dados do boleto',\n generatingBoleto: 'Gerando...',\n generateBoleto: 'Gerar boleto',\n successToast: 'Pagamento realizado com sucesso!',\n errorPayment: 'Erro ao processar pagamento. Tente novamente.',\n errorBoleto: 'Erro ao gerar boleto. Tente novamente.',\n },\n receipt: {\n generalInfo: 'Informações gerais',\n chargeLabel: 'Cobrança',\n detailsLabel: 'Detalhes',\n statusLabel: 'Status',\n noTitle: 'Sem título',\n paymentSection: 'Pagamento',\n totalValue: 'Valor total',\n dueDate: 'Data do vencimento',\n paymentDate: 'Data do pagamento',\n paymentMethod: 'Forma de pagamento',\n paymentMethodCreditCard: 'Cartão de crédito',\n paymentMethodBoleto: 'Boleto',\n paymentMethodPix: 'PIX',\n viewPixCode: 'Ver código PIX',\n payBoleto: 'Pagar boleto',\n viewBoletoDetails: 'Ver dados do boleto',\n retryPayment: 'Tentar cobrar novamente',\n changeCard: 'Alterar cartão',\n downloadReceipt: 'Baixar recibo',\n notaFiscal: 'Baixar nota fiscal',\n notaFiscalEmpty: 'A nota fiscal ainda está sendo gerada e pode levar alguns minutos para ser emitida. Tente novamente mais tarde.',\n notaFiscalError: 'Não foi possível obter a nota fiscal. Tente novamente.',\n },\n boletoDetails: {\n title: 'Dados do boleto',\n valueLabel: 'Valor',\n dueDate: 'Vencimento',\n digitableLine: 'Linha digitável',\n copyCode: 'Copiar código',\n openBoleto: 'Abrir boleto',\n copiedToast: 'Código copiado com sucesso!',\n },\n pixDetails: {\n title: 'Pix gerado',\n subtitle: 'Escaneie o QR code para pagar',\n dueDate: 'Vencimento',\n value: 'Valor',\n dueDateToday: 'Hoje',\n dueDateTomorrow: 'Amanhã',\n payIn: 'Pague em',\n qrCodeAlt: 'QR Code Pix',\n qrCodeUnavailable: 'O QR Code visual não foi disponibilizado pela integração.',\n generating: 'Gerando um novo código PIX...',\n refreshError: 'Não foi possível gerar um novo código PIX. Tente novamente em instantes.',\n orCopyCode: 'OU COPIE O CÓDIGO PIX ABAIXO',\n copyCode: 'Copiar código',\n copiedToast: 'Código copiado com sucesso!',\n },\n planCard: {\n noSubscription: 'Sem assinatura',\n readFailed: 'Não foi possível carregar sua assinatura',\n readFailedRetry: 'Tentar de novo',\n freePlan: 'Plano FREE',\n choosePlan: 'Escolher um plano agora',\n hirePlan: 'Contratar plano',\n planName: 'Plano {name}',\n noName: 'sem nome',\n trialBadge: '(Período de teste)',\n trialDaysRemaining: 'Você tem {days} dias de teste',\n moreDetails: 'Mais detalhes',\n current: 'Atual',\n cancelled: 'Cancelado',\n frozen: 'Congelado',\n expired: 'Expirado',\n overdueDate: 'Atrasado desde {date}',\n expiresOn: 'Expira em {date}',\n pendingDate: 'Em {date}',\n details: 'Detalhes',\n changePlan: 'Alterar plano',\n paySubscription: 'Pagar assinatura',\n billingAddress: 'Endereço de cobrança',\n cancelPlan: 'Cancelar plano',\n noActiveCredits: 'Sem créditos ativos',\n creditsExpireInOneDay: '{credits} créditos expiram em 1 dia',\n creditsExpireInDays: '{credits} créditos expiram em {days} dias',\n aiCreditsTotal: '{total} créditos de IA',\n creditsExpireAriaLabel: 'Informação sobre créditos que expiram',\n creditsExpireTooltip:\n 'Este é o lote de créditos mais próximo de vencer. Veja mais detalhes em Relatório de uso.',\n buyCredits: 'Comprar créditos',\n usageReport: 'Relatório de uso',\n aiCreditsPromoTitle: 'Créditos IA',\n aiCreditsPromoDescription: 'Acelere suas tarefas com o poder da IA',\n },\n paymentInfo: {\n title: 'Informações de pagamento',\n defaultCard: 'Cartão padrão',\n validUntil: 'Válido até {date}',\n manageTitle: 'Gerenciamento de cartões',\n noCards: 'Nenhum cartão cadastrado',\n noCardAdded: 'Nenhum cartão adicionado',\n loadFailed: 'Não foi possível carregar seus cartões',\n retry: 'Tentar novamente',\n },\n charges: {\n title: 'Todos os seus recibos',\n noReceipts: 'Nenhum recibo encontrado',\n defaultTitle: 'Cobrança',\n filter: 'Filtrar',\n filterPending: 'Pendente',\n filterPaid: 'Pago',\n filterFailed: 'Falha ao pagar',\n filterCancelled: 'Cancelado',\n pay: 'Pagar',\n downloadReceipt: 'Baixar recibo',\n details: 'Detalhes',\n status: {\n pending: 'Pendente',\n paid: 'Pago',\n failed: 'Falha ao pagar',\n cancelled: 'Invoice cancelado',\n },\n },\n\n // Fluxo: ChangePlanSheet (gerenciamento do plano, troca e recontratação).\n changePlan: {\n titleManagement: 'Gerenciamento de Plano',\n titleChange: 'Trocar de plano',\n billingRow: 'Cobrança {period}',\n toasts: {\n couponNotValidForPlan: 'O cupom {code} não é válido para o plano selecionado.',\n couponNotValidForPeriod: 'O cupom {code} não é válido para a periodicidade selecionada.',\n couponRemovedInvalidPlan: 'Cupom {code} removido: não é válido para este plano.',\n couponRemovedInvalidPeriod:\n 'Cupom {code} removido: não é válido para a periodicidade selecionada.',\n pixNotGenerated: 'Não foi possível gerar o PIX. Tente novamente.',\n boletoGenerated: 'Boleto gerado! Abra os dados dele pela lista de cobranças.',\n planReactivated: 'Plano {planName} reativado',\n reactivateError: 'Erro ao recontratar plano. Tente novamente.',\n planUpdated: 'Plano atualizado. As alterações entram em vigor na próxima fatura.',\n updateError: 'Erro ao atualizar o plano. Tente novamente.',\n },\n planView: {\n currentPlanLabel: 'Plano atual',\n changePlanButton: 'Mudar de plano',\n },\n planComparison: {\n badgeCurrent: 'Atual',\n badgeNew: 'Novo',\n newFeaturesTitle: 'Novas funcionalidades incluídas',\n lostFeaturesTitle: 'O que você perde ao trocar de plano',\n },\n paymentSummary: {\n paymentTitle: 'Pagamento',\n boletoInfo: 'Clique em <b>\"Atualizar plano\"</b> e seu boleto será gerado automaticamente!',\n pixInfo: 'Clique em <b>\"Atualizar plano\"</b> e seu código PIX será gerado automaticamente!',\n immediateChargeNote:\n 'Uma cobrança proporcional será realizada agora e o novo valor passa a valer a partir da próxima fatura.',\n downgradeNote: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultNote: 'As alterações entram em vigor no momento do pagamento.',\n paymentMethodChangeNote:\n 'As próximas cobranças desta assinatura passarão a ser feitas via <b>{method}</b>.',\n submitButton: 'Atualizar plano',\n retryAuthButton: 'Tentar autenticação de novo',\n },\n reactivationConfig: {\n currentPlanLabel: 'Plano atual',\n changePlanButton: 'Mudar de plano',\n },\n reactivationPayment: {\n paymentTitle: 'Pagamento',\n boletoInfo: 'Clique em <b>\"Contratar plano\"</b> e seu boleto será gerado automaticamente!',\n pixInfo: 'Clique em <b>\"Contratar plano\"</b> e seu código PIX será gerado automaticamente!',\n submitButton: 'Contratar plano',\n billingDataRequired:\n 'Boleto e PIX emitem nota fiscal: complete seus dados de cobrança para continuar.',\n billingDataAction: 'Completar dados de cobrança',\n retryAuthButton: 'Tentar autenticação de novo',\n },\n paymentMethodLabels: { card: 'cartão', boleto: 'boleto', pix: 'PIX' },\n addons: {\n title: 'Adicionais do plano',\n credits: { option: '{credits} créditos de IA / mês', priceDefault: 'Padrão' },\n domains: {\n included: '{count} Domínios conectados',\n extras: '(+{count} extras)',\n extraPrice: '{price}{period} por domínio extra',\n },\n abTest: {\n name: 'Experimentos e Teste A/B',\n details: 'Mais detalhes',\n includedInPlan: 'Incluso no plano',\n },\n },\n alternativeBuckets: {\n sectionTitle: 'Outros domínios cadastrados',\n domainSingular: 'domínio',\n domainPlural: 'domínios',\n bucketLabel: '{count} {domainLabel} a {price}',\n },\n summary: {\n title: 'Resumo',\n planRow: 'Plano {planName}',\n domainAddonSuffix: 'a {price}',\n aiAddon: '{credits} créditos de IA',\n periodDiscount: 'Desconto {pct} ({period})',\n couponDiscount: 'Cupom {code}',\n immediateCharge: 'Cobrança imediata',\n billingRow: 'Cobrança {period}',\n },\n coupon: { addButton: 'Cupom de desconto' },\n couponDialog: {\n title: 'Cupom de desconto',\n codeLabel: 'Código do cupom',\n codePlaceholder: 'Digite aqui',\n apply: 'Aplicar cupom',\n applying: 'Aplicando...',\n notFoundOrInvalid: 'O cupom {code} não existe ou não é mais válido.',\n notUsableAccount: 'O cupom {code} não pode ser usado nesta conta.',\n },\n abTestDialog: { learnMore: 'Saiba mais' },\n lostFeatures: {\n domains15: '15 Domínios conectados',\n projectManagement: 'Gestão de Projetos',\n onboardingMeeting: 'Reunião de Onboarding',\n domains3: '3 Domínios conectados',\n unlimitedPages: 'Páginas ilimitadas',\n },\n downgradeReason: {\n title: 'Por que você está fazendo downgrade?',\n subtitle: 'Sua resposta nos ajuda a melhorar a {wlName} para você.',\n reasonLabel: 'Motivo da troca de plano',\n reasonRequired: '*',\n reasonPlaceholder: 'Descreva o motivo da sua escolha',\n continueWithDowngrade: 'Continuar com downgrade',\n },\n downgradeReasons: {\n 'problemas-tecnicos': 'Estou enfrentando muitos problemas técnicos',\n preco: 'O preço não compensa para mim no momento',\n 'pouco-uso': 'Não estou usando a ferramenta com frequência',\n 'falta-recursos': 'Sinto falta de recursos importantes',\n outro: 'Outro motivo',\n },\n },\n\n // Contratação: seletor de período e cupom de duração limitada.\n checkout: {\n billing: {\n sectionLabel: 'Cobrança',\n annual: 'Assinatura Anual',\n monthly: 'Assinatura Mensal',\n suffixAnnual: '/ano',\n suffixMonthly: '/mês',\n billedUpfront: '{price} à vista',\n discountBadge: '{percent}% OFF',\n catalogDiscountBadge: 'até {percent}% off',\n },\n firstPeriod: {\n firstMonthly: '1º mês {price}',\n firstSemiannual: '1º semestre {price}',\n firstAnnual: '1º ano {price}',\n firstMonths: 'primeiros {count} meses {price}',\n then: 'depois {price}{suffix}',\n },\n },\n\n // Fluxo: CannotDowngradeDialog (o que ajustar antes de descer de plano).\n cannotDowngrade: {\n heading: 'Antes de mudar para o Plano {planName}',\n alertDomains:\n 'Sua conta possui {registeredDomains, plural, one {1 domínio cadastrado} other {# domínios cadastrados}}, mas o plano {planName} permite apenas {planIncludedDomains, plural, one {1 domínio conectado} other {# domínios conectados}}.',\n alertDomainsNone:\n 'Sua conta possui {registeredDomains, plural, one {1 domínio cadastrado} other {# domínios cadastrados}}, mas o plano {planName} não permite domínios conectados.',\n alertPages:\n 'Sua conta possui {publishedPages, plural, one {1 página publicada} other {# páginas publicadas}}, mas o plano {planName} permite apenas {planIncludedPages, plural, one {1 página publicada} other {# páginas publicadas}}.',\n alertReviewSteps: 'Para continuar, revise as etapas abaixo e escolha o que deseja manter.',\n alertReady:\n 'Tudo certo! Sua conta já está dentro dos limites do plano {planName}. É só finalizar a mudança.',\n stepReviewTitle: 'Revisar limites',\n stepDomainsTitle: 'Revisar domínios',\n stepPagesTitle: 'Revisar páginas',\n stepDomainsSubtitle:\n 'Você precisa remover {count, plural, one {1 domínio} other {# domínios}} para continuar',\n stepDomainsAction: 'Apagar {count, plural, one {1 domínio} other {# domínios}}',\n stepDomainsDone: 'Sua conta já está dentro do limite de domínios do plano',\n stepPagesSubtitle:\n 'Você precisa deixar apenas {limit, plural, one {1 página publicada} other {# páginas publicadas}} para continuar',\n stepPagesAction: 'Despublicar {count, plural, one {1 página} other {# páginas}}',\n stepPagesDone: 'Sua conta já está dentro do limite de páginas do plano',\n stepConfirmTitle: 'Confirmar alteração',\n stepConfirmSubtitle: 'Revise tudo antes de concluir a mudança',\n stepConfirmAction: 'Finalizar',\n },\n\n // Fluxo: AddFirstCardWarningModal (primeiro cartão da conta).\n addFirstCard: {\n title: 'Atenção ao adicionar um cartão',\n description1:\n 'Ao adicionar este cartão, ele será utilizado como meio de pagamento da sua assinatura.',\n description2:\n 'A próxima fatura da sua assinatura será cobrada automaticamente neste novo cartão.',\n continue: 'Continuar',\n },\n\n // Fluxo: SwitchPaymentToCardModal (assinatura passa a ser cobrada no cartão novo).\n switchPaymentToCard: {\n title: 'Usar este cartão na sua assinatura?',\n intro: 'Confirme para aplicar as mudanças abaixo agora:',\n introFirstCard:\n 'Este é o primeiro cartão da sua conta. Confirme para aplicar as mudanças abaixo agora:',\n changeMethod:\n 'A cobrança da assinatura deixa de ser por {method} e passa para este cartão',\n changeDefault: 'Este cartão passa a ser o padrão da conta',\n chargeNow:\n 'Se houver fatura em aberto desta assinatura, ela é cobrada agora neste cartão',\n declineHint: 'Se preferir, o cartão fica cadastrado e nada muda na cobrança.',\n confirm: 'Usar este cartão',\n decline: 'Agora não',\n successToast: 'Pronto, sua assinatura passou a ser cobrada neste cartão.',\n successWithCharge:\n 'Pronto. Sua assinatura passou a ser cobrada neste cartão e a fatura de {value} foi paga.',\n pendingBlocked:\n 'A troca não foi aplicada: há um pagamento pendente nesta assinatura. Conclua o pagamento e tente de novo.',\n switchedChargeFailed:\n 'Cartão definido para a assinatura, mas a fatura em aberto não foi paga agora. A cobrança será tentada de novo automaticamente.',\n authError: 'Não foi possível autenticar o pagamento com o banco.',\n errorToast: 'Não foi possível trocar a forma de pagamento. Tente novamente.',\n methodBoleto: 'boleto',\n methodPix: 'pix',\n },\n\n // Fluxo: PlansCatalogDialog (vitrine de planos).\n plansCatalog: {\n title: 'Planos de assinatura',\n periodMonthly: 'Mensal',\n periodAnnual: 'Anual',\n discountCatalog: 'até {percent}% off',\n discountBadge: '{percent}% OFF',\n },\n\n // Fluxo: PaymentConfirmationDialog (cobrança no cartão confirmada).\n paymentConfirmation: {\n subscriptionConfirmed: 'Assinatura confirmada 🚀',\n youSubscribed: 'Você acabou de assinar o <b>{planName}</b>',\n price: 'por <b>{price}</b>',\n immediateCharge: 'Uma cobrança proporcional de <b>{amount}</b> foi realizada agora.',\n manageInfo:\n 'Para gerenciar seu plano, acessar faturas ou fazer alterações, basta abrir a aba \"Assinatura\" em Minha conta.',\n },\n\n // Fluxo: PixPaymentDialog (QR code do pix gerado na troca/contratação).\n pixPayment: {\n title: 'Pix gerado',\n subtitle: 'Escaneie um código QR para pagar',\n payNowLabel: 'Você paga agora',\n payIn: 'Pague em',\n qrCodeAlt: 'QR Code Pix',\n orCopyCode: 'OU COPIE O CÓDIGO PIX ABAIXO',\n copyCode: 'Copiar código',\n copiedToast: 'Código copiado com sucesso!',\n paidToast: 'Pagamento efetuado com sucesso.',\n waitingPayment: 'Aguardando a confirmação do pagamento...',\n paidTitle: 'PIX pago',\n rejectedTitle: 'Pix recusado',\n expiredTitle: 'Código PIX expirado',\n rejectedOrExpiredDescription: 'Clique abaixo para gerar um novo código PIX',\n generateAnother: 'Gerar outro código',\n rejected: 'Pix recusado. Feche e gere um novo código para tentar de novo.',\n expired: 'Código PIX expirado. Feche e gere um novo código para tentar de novo.',\n },\n },\n },\n },\n\n // Modais de créditos de IA.\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acesse sua área de assinatura.',\n externalButton: 'Acessar área de assinatura',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'O pagamento será processado no momento da confirmação.',\n nextInvoiceChanges: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultPrice: 'Padrão',\n immediateCharge: 'Cobrança imediata',\n totalPlanValue: 'Valor total do plano',\n confirmAndPay: 'Confirmar e pagar',\n creditsChangedToast: 'Créditos de IA alterados para {credits}',\n purchaseSuccessToast: 'Compra concluída! {credits} créditos de IA foram adicionados ao seu saldo.',\n pixConfirmedToast: 'Pagamento confirmado! {credits} créditos de IA já estão no seu saldo.',\n },\n disabled: {\n title: 'Compra de créditos indisponível',\n descriptionLine1: 'Apenas administradores e proprietários podem comprar créditos de IA.',\n descriptionLine2:\n 'Peça a um administrador ou proprietário da conta para adquirir mais créditos.',\n understood: 'Entendi',\n },\n paidPlanRequired: {\n defaultTitle: 'Recurso disponível em planos pagos',\n defaultDescription: 'Para acessar este recurso, faça upgrade para um plano pago',\n knowPlans: 'Conhecer planos',\n },\n },\n\n // Cartões: adicionar, formulário, excluir, não-pode-excluir, item, info de pagamento.\n cards: {\n add: {\n stepBilling: 'Cobrança',\n stepCard: 'Cartão',\n externalTitle: 'Gerenciamento de cartões indisponível',\n externalDescription: 'Acesse sua área de assinatura para gerenciar formas de pagamento.',\n externalButton: 'Acessar área de assinatura',\n title: 'Adicionar cartão',\n billingHeading: 'Adicione suas informações de cobrança',\n cardHeading: 'Adicione informações do seu cartão',\n authenticating: 'Autenticando...',\n submitting: 'Adicionando cartão...',\n submit: 'Adicionar cartão',\n errorInitAuth: 'Não foi possível iniciar a autenticação do cartão, tente novamente.',\n errorAuth: 'Falha na autenticação do cartão.',\n errorAuthStatus: 'Autenticação não concluída (status: {status}).',\n statusUnknown: 'desconhecido',\n successToast: 'Cartão adicionado com sucesso.',\n errorSave: 'Não foi possível salvar o seu novo cartão, tente novamente.',\n },\n form: {\n nameOnCard: 'Nome impresso no cartão',\n typeHere: 'Digite aqui',\n cardNumber: 'Número do cartão',\n cardExpiry: 'Data de validade',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecione',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n cardNumberRequired: 'Número do cartão é obrigatório',\n cardExpiryRequired: 'Data de validade é obrigatória',\n cardCvcRequired: 'Código de segurança é obrigatório',\n },\n delete: {\n title: 'Excluir cartão',\n description: 'Deseja realmente excluir o cartão:',\n confirmLabel: 'Digite EXCLUIR abaixo',\n confirmPlaceholder: 'EXCLUIR',\n deleting: 'Excluindo...',\n successToast: 'O cartão •••• {digits} foi excluído com sucesso',\n errorToast: 'Não foi possível excluir o cartão',\n },\n cannotDelete: {\n title: 'Não é possível excluir este cartão',\n description: 'Este cartão está em uso e tem uma assinatura ativa vinculada a ele. Selecione outro cartão como padrão ou adicione um novo.',\n selectDefault: 'Selecione um cartão como padrão:',\n addNewCard: 'Adicionar novo cartão',\n errorUpdateCard: 'Erro ao atualizar cartão da assinatura',\n },\n item: {\n defaultBadge: 'Padrão',\n makeDefault: 'Tornar padrão',\n setDefaultSuccess: 'Cartão definido como padrão',\n setDefaultError: 'Erro ao definir cartão padrão',\n digitsUnavailable: 'Número não disponível',\n },\n paymentInfo: {\n email: 'E-mail',\n payment: 'Pagamento',\n addCard: 'Adicionar cartão',\n selectPaymentMethod: 'Selecione a forma de pagamento',\n manageCards: 'Gerenciar cartões',\n newPaymentMethod: 'Nova forma de pagamento',\n },\n },\n\n // Componente: RequiredBillingDataModal.\n billing: {\n requiredData: {\n title: 'Complete seus dados de cobrança',\n description:\n 'Precisamos dessas informações para emitir a nota fiscal dos seus pagamentos. O preenchimento é obrigatório para continuar usando a plataforma.',\n descriptionInternational:\n 'Como sua cobrança é fora do Brasil, precisamos apenas do nome e do e-mail para os recibos dos seus pagamentos.',\n addressHeading: 'Endereço de cobrança',\n select: 'Selecione',\n typeHere: 'Digite aqui',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n companyName: 'Razão social',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'financeiro@empresa.com',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n country: 'País',\n submit: 'Salvar e continuar',\n submitting: 'Salvando...',\n successToast: 'Dados de cobrança salvos com sucesso.',\n errorToast: 'Não foi possível salvar os dados de cobrança, tente novamente.',\n requiredField: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n },\n },\n\n // Componentes de navegação: banners de assinatura, seletor de projeto, links de rodapé, créditos, plano.\n navigation: {\n banners: {\n cancelled: {\n message: 'Assinatura cancelada! Suas páginas foram retiradas do ar.',\n choosePlan: 'Escolher um novo plano',\n },\n overdue: {\n message: 'Sua assinatura está atrasada e suas páginas podem ser retiradas do ar a qualquer momento.',\n attemptsMessage: 'Pagamento falhou. {count, plural, one {Resta # tentativa} other {Restam # tentativas}} antes do cancelamento. Atualize sua forma de pagamento.',\n details: 'Detalhes',\n },\n pending: {\n message: 'Sua assinatura foi cancelada, você possui até {limitDate} com suas páginas online.',\n reactivate: 'Reativar assinatura',\n },\n upcoming: {\n message: 'Fatura em aberto. Pague até {dueDate} para evitar a suspensão das suas páginas.',\n details: 'Detalhes',\n },\n trial: {\n message: 'Período de teste: {days, plural, =0 {seu teste termina hoje!} one {falta # dia para terminar} other {faltam # dias para terminar}}.',\n choosePlan: 'Assinar agora',\n },\n },\n projectSelector: {\n title: 'Projetos',\n searchPlaceholder: 'Busque aqui',\n emptyLine1: 'Nenhum projeto encontrado.',\n emptyLine2: 'Crie um projeto para começar.',\n noResults: 'Nenhum resultado encontrado.',\n manageProjects: 'Gerenciar projetos',\n },\n bottomLinks: {\n news: 'Novidades',\n helpCenter: 'Central de ajuda',\n sendSuggestions: 'Enviar sugestões',\n },\n creditsCard: {\n label: 'Créditos usados',\n },\n planCard: {\n knowPlans: 'Conheça os planos',\n },\n },\n\n // Congelamento por falta de pagamento (date_due + 7d) — banner, aviso de\n // véspera e modal única entre as 3 aplicações.\n subscription: {\n frozen: {\n banner: {\n message: 'Os recursos da sua conta estão bloqueados por falta de pagamento.',\n regularize: 'Regularizar assinatura',\n },\n warningBanner: {\n message: 'Pagamento em atraso: os recursos da sua conta serão bloqueados em {freezeDate}. Regularize para não perder o acesso.',\n details: 'Detalhes',\n },\n modal: {\n title: 'Recursos da sua conta bloqueados',\n description: 'Sua conta está com os recursos bloqueados por falta de pagamento. Regularize a assinatura para liberar.',\n descriptionWithResources: 'O pagamento não foi identificado, então estes recursos estão bloqueados:',\n warningDescriptionWithResources: 'O pagamento está em atraso. Se não for identificado até lá, estes recursos serão bloqueados:',\n warningTitle: 'Seus recursos serão bloqueados em {freezeDate}',\n warningDescription: 'O pagamento está em atraso. Regularize para não perder o acesso aos recursos da sua conta.',\n keepsWorking: 'Suas páginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.',\n resources: {\n pages: {\n title: 'Gerenciar páginas',\n description: 'Publicar, criar e editar páginas, configurações, testes A/B, upload de arquivos e exportar leads',\n },\n projects: {\n title: 'Gerenciar projetos',\n description: 'Criar e editar projetos, convidar usuários e alterar permissões da equipe',\n },\n domains: {\n title: 'Gerenciar domínios',\n description: 'Conectar novos domínios e gerenciar integrações',\n },\n },\n cta: 'Regularizar assinatura',\n },\n },\n },\n\n // Nomes dos idiomas exibidos no seletor.\n // Planos: features e main features (mapApiPlanToUiPlan).\n // Nomes dos adicionais do plano.\n addons: {\n domains: 'Domínios',\n pages: 'Páginas',\n projects: 'Projetos',\n abTestName: 'Experimentos e Teste A/B',\n abTestShortName: 'Teste A/B',\n abTestDescription: 'O Teste A/B é uma técnica usada para comparar duas versões de um mesmo conteúdo, como uma página ou anúncio, e identificar qual gera melhores resultados. Parte do público vê a versão A e outra parte vê a versão B, permitindo analisar dados reais e tomar decisões mais eficazes para melhorar conversões e desempenho.',\n heatmap: 'Heatmap',\n aiCredits: 'Créditos de IA',\n },\n\n plans: {\n tooltips: {\n domains:\n 'Conecte domínios externos e personalizados para sua página. Ex: www.seudominio.com.br',\n users: 'Adicione quantos usuários quiser ao projeto para colaborar na criação.',\n sharePages: 'Compartilhamento de páginas (Templates) entre contas da plataforma',\n projectManagement:\n 'Organize melhor seu fluxo de trabalho separando suas páginas em projetos distintos.',\n },\n card: {\n mostPopular: 'Mais popular',\n currentPlan: 'Seu plano atual',\n selectPlan: 'Selecionar plano',\n promoBadge: 'Valor promocional',\n promoFrom: 'De',\n defaultPrice: 'Padrão',\n aiCreditsLabel: '{credits} créditos de IA',\n aiCreditsIncluded: '{credits} créditos de IA inclusos',\n abTestIncluded: 'Experimentos e Teste A/B',\n upfrontNoteAnnual: '*Plano anual de {price} à vista. Valor mensal apenas para referência.',\n upfrontNoteSemiannual:\n '*Plano semestral de {price} à vista. Valor mensal apenas para referência.',\n },\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitadas',\n sharePages: 'Compartilhar páginas',\n hosting: 'Hospedagem inclusa',\n freeTemplates: 'Templates gratuitos',\n onboarding: 'Reunião de Onboarding',\n projectManagement: 'Gestão de projetos',\n },\n names: {\n '415': 'Iniciante',\n '1': 'Essencial',\n '2': 'Negócio',\n '3': 'Agência',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Domínios ilimitados',\n domainSingular: '1 domínio externo',\n domainsPlural: '{count} domínios externos',\n usersUnlimited: 'Usuários ilimitados',\n },\n usdNotConfigured: 'Internacional não configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'Não foi possível autenticar o pagamento com seu banco.',\n methodToggle: {\n card: 'Cartão',\n boleto: 'Boleto',\n pix: 'PIX',\n boletoTooltip: 'Somente para assinaturas anuais',\n cardTooltip: 'Não permitido pelo cupom aplicado',\n pixTooltip: 'Somente para assinaturas anuais',\n },\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensal',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mês',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/ano',\n labelMonthly: 'mensal',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Português (Brasil)',\n 'en-us': 'Inglês (EUA)',\n 'es-es': 'Espanhol',\n },\n\n // Componentes de formulário e entrada.\n forms: {\n combobox: {\n placeholder: 'Selecione uma opção',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhuma opção encontrada.',\n },\n datePicker: {\n placeholder: 'Selecione a data',\n },\n dateRangePicker: {\n placeholder: 'Selecione o período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'Nenhum país encontrado',\n },\n select: {\n placeholder: 'Selecione uma opção',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar link',\n successDefault: 'Link copiado',\n errorMessage: 'Não foi possível copiar o link',\n },\n circularProgress: {\n ariaLabel: 'Progresso de exportação',\n },\n },\n\n // Componentes: ImageCropModal, ImageTooSmallModal.\n imageUpload: {\n cropTitle: 'Ajustar imagem',\n cropHint: 'Arraste para ajustar a área de corte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muito pequena',\n tooSmallBodyFileWithDimension: 'O arquivo \"{fileName}\" é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'O arquivo \"{fileName}\" é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n tooSmallBodyNoFileWithDimension: 'A imagem selecionada é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'A imagem selecionada é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n sendAnother: 'Enviar outra',\n errorSvg: 'Formato SVG não é suportado. Use PNG, JPEG, WebP ou GIF.',\n errorFormat: 'Formato não suportado. Use PNG, JPEG, WebP ou GIF.',\n errorTooLarge: 'Arquivo muito grande. Máximo {maxSize}MB.',\n },\n\n // Componentes: NotificationPageContent (Notifications.tsx), NotificationsPopover.tsx.\n notifications: {\n page: {\n title: 'Notificações',\n subtitle: 'Tenha controle total sobre páginas, experiências e conversões.',\n markAllReadDesktop: 'Marcar todos como lidos',\n markAllReadMobile: 'Marcar como lidos',\n tabAll: 'Todas as notificações',\n tabUnread: 'Não lidas',\n details: 'Detalhes',\n empty: 'Nenhuma notificação encontrada.',\n markAllSuccess: 'Todas as notificações foram marcadas como lidas',\n markAllError: 'Erro ao marcar notificações como lidas',\n },\n popover: {\n title: 'Últimas notificações',\n empty: 'Sem notificações por enquanto',\n viewAll: 'Todas as notificações',\n },\n },\n\n // Componentes: NavBar.tsx, ProfilePopover.tsx, UsersSelectorPopover.tsx.\n layout: {\n navbar: {\n expandMenu: 'Expandir menu',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n greatDomain: 'GreatDomain',\n domains: 'Domínios',\n },\n profile: {\n usedCredits: 'Créditos usados',\n loggingOut: 'Saindo da sua conta...',\n logout: 'Sair',\n },\n usersSelector: {\n title: 'Usuários',\n add: 'Adicionar',\n searchPlaceholder: 'Busque aqui',\n empty: 'Nenhum usuário encontrado.',\n noResults: 'Nenhum resultado encontrado.',\n addToProject: 'Adicionar ao projeto',\n removeFromProject: 'Remover do projeto',\n manageTeam: 'Gerenciar equipe',\n },\n },\n\n // Componente: NotFoundPage.tsx.\n notFound: {\n title: 'Página não foi encontrada!',\n description: 'A página que você está procurando não existe. Verifique se digitou corretamente o link que está procurando.',\n backToHome: 'Voltar para o início',\n },\n\n // Modais promocionais compartilhados entre app/accounts/editor.\n promo: {\n // Componente: AiCreditsOfferModal (movido verbatim do gpages — pendência de copy: ver PR).\n aiCreditsOffer: {\n eyebrow: 'Pacote primeira compra',\n title: '{credits} créditos de IA <break></break>com {discount}',\n bullets: {\n first: 'Crie uma página inteira com um prompt.',\n second: 'Gere textos e imagens direto no editor.',\n third: 'Créditos avulsos: não mexem no seu plano.',\n },\n discountBadge: '{percent}% OFF',\n cta: 'Quero meus créditos com {discount}',\n ctaAddCard: 'Cadastrar cartão e garantir o desconto',\n later: 'Agora não',\n editPayment: 'Editar informações de pagamento',\n close: 'Fechar',\n successToast: 'Pronto! {credits} créditos de IA entraram na sua conta.',\n errorToast: 'Não foi possível concluir a compra. Tente novamente.',\n cardVerification: 'Seu cartão pediu uma verificação extra. Tente outro cartão.',\n illustration: {\n credits: 'créditos',\n },\n exit: {\n title: 'Quer mesmo perder {discount}?',\n description: 'Esta tela não volta. Saindo agora, os {credits} créditos voltam a custar {price}.',\n descriptionNoPrice: 'Esta tela não volta. Saindo agora, os {credits} créditos voltam ao preço cheio.',\n keep: 'Voltar para a oferta',\n lose: 'Perder minha oferta',\n },\n },\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/messages/pt-br.ts"],"sourcesContent":["/**\n * Catálogo de traduções pt-br dos componentes da @greatapps/common.\n * Os apps consumidores mesclam este objeto sob o namespace `common`.\n *\n * Padrão modular: cada chave de primeiro nível é um **módulo** (um agrupamento por\n * componente/domínio). Para adicionar traduções, crie/edite o módulo correspondente aqui\n * e replique a mesma estrutura em `en-us.ts` e `es-es.ts`.\n *\n * pt-br é a fonte da verdade — os textos saem verbatim do que o componente já exibe hoje.\n */\nconst messages = {\n // Vocabulário global de ações (botões, comandos).\n actions: {\n save: 'Salvar',\n saveChanges: 'Salvar alterações',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Excluir',\n edit: 'Editar',\n close: 'Fechar',\n back: 'Voltar',\n continue: 'Continuar',\n add: 'Adicionar',\n connect: 'Conectar',\n remove: 'Remover',\n search: 'Buscar',\n loading: 'Carregando...',\n saving: 'Salvando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n // Mensagens de validação de formulário.\n validations: {\n required: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidPhone: 'Telefone inválido',\n },\n\n // Componente: PreferencesSection.\n preferences: {\n title: 'Preferências',\n companyName: 'Nome da empresa',\n companyNamePlaceholder: 'Digite o nome da empresa',\n language: 'Idioma',\n languagePlaceholder: 'Selecione o idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moeda',\n currencyPlaceholder: 'Selecione a moeda',\n currencySearch: 'Buscar moeda...',\n general: 'Geral',\n generalDescription: 'Nome da empresa, idioma e moeda',\n timeDisplay: 'Exibição hora',\n timeDisplayDescription: 'Fuso horário e formato das horas',\n timezone: 'Fuso horário',\n timezonePlaceholder: 'Selecione o fuso horário',\n timezoneSearch: 'Buscar fuso horário...',\n timeFormat: 'Formato hora',\n timeFormatPlaceholder: 'Selecione o formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferências salvas com sucesso',\n saveError: 'Erro ao salvar preferências',\n },\n\n // Conta — modais e seções. `<b>` = trecho em negrito (rich text); `{count}` = interpolação.\n account: {\n unsavedChanges: {\n title: 'Sair sem salvar?',\n description: 'Você fez alterações que ainda não foram salvas. Deseja salvar antes de sair?',\n discard: 'Sair sem salvar',\n },\n notificationTypes: {\n projectUpdates: 'Atualizações de projetos',\n securityAlerts: 'Alertas de segurança',\n planBilling: 'Mudanças no plano ou faturamento',\n scheduledMaintenance: 'Manutenções programadas',\n },\n deleteAccount: {\n title: 'Excluir conta',\n description:\n 'Esta ação é <b>irreversível</b>. Ao confirmar, sua conta e todos os seus dados serão excluídos.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Explique sua decisão...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Senha',\n passwordPlaceholder: 'Informe sua senha',\n submit: 'Excluir conta',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n noFeature: 'A ferramenta não possui uma função que eu preciso',\n technical: 'Encontrei problemas técnicos ou erros no sistema',\n support: 'Tive problemas com o suporte ou atendimento',\n updates: 'As atualizações demoram mais do que o esperado',\n temporary: 'O cancelamento é temporário',\n other: 'Outro motivo',\n },\n },\n deletionWarning: {\n title: 'Sua conta será excluída',\n descriptionLine1:\n 'Sua assinatura está cancelada há 90 dias ou mais. Sua conta e todos os dados serão excluídos permanentemente.',\n descriptionLine2:\n 'Para manter suas informações, reative sua assinatura antes da exclusão. Após esse prazo, não será possível recuperar os dados.',\n reactivate: 'Reativar assinatura',\n },\n confirmDelete: {\n title: 'Uma pena te ver ir!',\n warning:\n 'Todas suas <b>{count} páginas</b> serão deletadas permanentemente. Essa ação é <b>irreversível!</b>',\n sessionExpired: 'Sessão expirada. Preencha os campos novamente.',\n success: 'Conta excluída com sucesso',\n error: 'Erro ao excluir. Tente novamente.',\n keepAccount: 'Manter minha conta',\n deleteAnyway: 'Excluir mesmo assim',\n deleting: 'Excluindo...',\n },\n cantDelete: {\n title: 'Não é possível excluir a conta',\n description:\n 'Você tem uma assinatura ativa. Para excluir sua conta, <b>primeiro cancele a assinatura</b> na página Assinatura e depois tente novamente.',\n confirm: 'Ok, entendi',\n goToSubscription: 'Ir para assinatura',\n },\n twoFactor: {\n title: 'Autenticação de dois fatores',\n instructions:\n 'Instale um aplicativo autenticador no seu celular (ex.: <link>Google Authenticator</link>), escaneie o QR Code ao lado ou copie a chave no aplicativo e, em seguida, digite o código de 6 dígitos gerado para continuar.',\n qrAlt: 'QR Code para autenticação de dois fatores',\n retry: 'Tentar novamente',\n pasteDigits: 'Cole os 6 dígitos abaixo',\n activating: 'Ativando...',\n activate: 'Ativar autenticação',\n recoveryTitle: 'Códigos de segurança',\n recoveryHeading: 'Salve estes códigos de recuperação de emergência',\n recoveryText1:\n 'Se você perder acesso ao seu telefone, não será possível fazer login em sua conta sem um código de dois fatores.',\n recoveryText2: 'Imprima, copie ou escreva em um local seguro os códigos abaixo.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados com sucesso',\n generateError: 'Erro ao gerar QR Code. Tente novamente.',\n confirmError: 'Erro ao confirmar código. Tente novamente.',\n disableTitle: 'Desabilitar autenticação 2FA',\n disableDescription:\n 'Informe o código de 6 dígitos do seu aplicativo autenticador para confirmar a desativação.',\n authenticatorCode: 'Código do autenticador',\n disabling: 'Desabilitando...',\n disable: 'Desabilitar 2FA',\n disabledSuccess: 'Autenticação de dois fatores desabilitada',\n disableError: 'Erro ao desabilitar 2FA. Tente novamente.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Erro ao reenviar código. Tente novamente.',\n },\n profile: {\n title: 'Meu perfil',\n avatarAlt: 'Foto do usuário',\n changePhoto: 'Alterar foto',\n name: 'Nome',\n namePlaceholder: 'Digite seu nome',\n lastName: 'Sobrenome',\n lastNamePlaceholder: 'Digite seu sobrenome',\n gender: 'Gênero',\n genderPlaceholder: 'Selecione seu gênero',\n genderOptions: {\n male: 'Masculino',\n female: 'Feminino',\n },\n phone: 'Telefone',\n change: 'Alterar',\n yourData: 'Seus dados',\n yourDataDescription: 'Confira os dados da sua conta',\n accessData: 'Dados de acesso',\n accessDataDescription: 'Como você entra na sua conta',\n email: 'E-mail',\n savedSuccess: 'Perfil atualizado com sucesso',\n saveError: 'Erro ao atualizar perfil',\n },\n otp: {\n validationCode: 'Código de validação',\n incorrectCode: 'Código incorreto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar em <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Alterar e-mail',\n confirm: 'Alterar e-mail',\n sentCodeTo: 'Enviamos um código de validação para o E-mail <b>{email}.</b>',\n updateTitle: 'Atualizar E-mail de contato',\n updateDescription: 'Informe o seu novo E-mail para manter seu contato atualizado.',\n newEmail: 'Novo e-mail',\n newEmailPlaceholder: 'Digite seu novo e-mail',\n emailChanged: 'E-mail alterado com sucesso',\n emailExistsError: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n changePhone: {\n titleEdit: 'Alterar telefone',\n titleAdd: 'Adicionar telefone',\n sentCodeTo: 'Enviamos um código de validação para o número atual <b>{phone}.</b>',\n confirm: 'Alterar telefone',\n updateTitle: 'Atualizar telefone de contato',\n addTitle: 'Adicionar telefone de contato',\n updateDescription: 'Informe o novo número para manter seu contato atualizado.',\n addDescription: 'Informe seu número de telefone para contato.',\n newNumber: 'Novo número',\n numberLabel: 'Número de telefone',\n phoneChanged: 'Telefone alterado',\n phoneAdded: 'Telefone adicionado',\n invalidNumber: 'Número de telefone inválido',\n saveError: 'Ocorreu um erro ao salvar o telefone. Tente novamente mais tarde.',\n numberExistsError: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n security: {\n title: 'Segurança',\n googleLinkedTitle: 'Conta Google vinculada',\n googleLinkedDescription:\n 'Sua conta está vinculada ao Google. Se desvincular, use \"Esqueci minha senha\" para redefinir uma senha de acesso por e-mail.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Erro ao desvincular conta Google.',\n deleteAccountDescription:\n 'Esta ação é permanente e não pode ser desfeita. Todos os seus dados, projetos e configurações serão removidos definitivamente.',\n deleteMyAccount: 'Excluir minha conta',\n },\n token: {\n title: 'Token da conta',\n label: 'Token',\n copySuccess: 'Token copiado com sucesso',\n copyError: 'Não foi possível copiar o token',\n info: 'Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.',\n docsLink: 'Acessar a documentação',\n },\n changePassword: {\n title: 'Alterar senha',\n currentPassword: 'Senha atual',\n currentPasswordPlaceholder: 'Digite sua senha atual',\n newPassword: 'Nova senha',\n newPasswordPlaceholder: 'Digite sua nova senha',\n submit: 'Salvar nova senha',\n changeError: 'Erro ao alterar senha',\n changedSuccess: 'Senha alterada com sucesso',\n genericError: 'Erro ao alterar senha. Tente novamente.',\n },\n globalPreferences: {\n title: 'Alterar preferências globais',\n srDescription: 'Confirmação de alteração de preferências globais da conta',\n warning:\n 'Você está alterando configurações que impactam <b>todos os usuários da conta</b>. Deseja confirmar?',\n },\n // Componente: MyAccountModal (Minha conta e workspace).\n workspace: {\n title: 'Minha conta',\n groups: {\n account: 'Configurações',\n workspace: 'Workspace',\n },\n nav: {\n subscription: 'Assinatura',\n projects: 'Projetos',\n team: 'Minha equipe',\n affiliates: 'Afiliados',\n },\n pagination: {\n previous: 'Página anterior',\n next: 'Próxima página',\n },\n loadFailed: 'Não foi possível carregar esses dados',\n loadFailedRetry: 'Tentar novamente',\n projects: {\n newProject: 'Novo projeto',\n searchPlaceholder: 'Encontrar projetos',\n empty: 'Nenhum projeto encontrado',\n details: 'Detalhes',\n delete: 'Excluir',\n userAlt: 'Usuário',\n seeMoreUsers: 'Ver mais usuários',\n form: {\n nameRequired: 'Nome do projeto é obrigatório',\n },\n sheet: {\n changeLogo: 'Alterar logo',\n projectName: 'Nome do projeto',\n namePlaceholder: 'Ex: Projeto vendas',\n selectUsers: 'Selecione os usuários',\n connectAnotherUser: 'Conectar outro usuário',\n searchUsers: 'Busque por usuários',\n noUsersFound: 'Nenhum usuário encontrado',\n allUsersAdded: 'Todos os usuários já foram adicionados',\n addProject: 'Adicionar projeto',\n saveChanges: 'Salvar alterações',\n created: 'Projeto \"{name}\" criado',\n createError: 'Erro ao criar projeto',\n changesSaved: 'Alterações salvas',\n updateError: 'Erro ao atualizar projeto',\n },\n deleteModal: {\n title: 'Excluir projeto',\n descriptionOnlyProject:\n 'Não é possível excluir o único projeto. Crie outro projeto antes de excluir <b>\"{projectName}\"</b>.',\n description:\n 'Deseja realmente excluir seu projeto <b>\"{projectName}\"</b>? O conteúdo será movido para outro projeto.',\n moveContentTo: 'Mover conteúdo para',\n selectProject: 'Selecione um projeto',\n searchProject: 'Buscar projeto...',\n noProjectFound: 'Nenhum projeto encontrado.',\n typeDelete: 'Digite EXCLUIR abaixo',\n deleteWord: 'EXCLUIR',\n deleting: 'Excluindo...',\n deleted: 'Projeto \"{projectName}\" excluído com sucesso',\n deleteError: 'Erro ao excluir projeto',\n },\n disabledModal: {\n title: 'Você não possui Gestão de Projetos',\n description1: 'Sua assinatura atual não inclui a funcionalidade de Gestão de Projetos.',\n description2: 'Faça upgrade do seu plano para criar e gerenciar múltiplos projetos.',\n upgrade: 'Fazer upgrade de plano',\n },\n },\n team: {\n addUser: 'Adicionar usuário',\n noPermissionToAdd: 'Você não tem permissão para adicionar usuários',\n searchPlaceholder: 'Encontrar usuários',\n empty: 'Nenhum usuário encontrado',\n noProjects: 'Nenhum projeto',\n inProject: 'Em {total} projeto',\n inProjects: 'Em {total} projetos',\n edit: 'Editar',\n delete: 'Excluir',\n filter: 'Filtrar',\n profiles: {\n viewer: 'Visualizador',\n collaborator: 'Colaborador',\n admin: 'Administrador',\n owner: 'Proprietário',\n },\n sheet: {\n titleAdd: 'Adicionar usuário',\n titleEdit: 'Editar usuário',\n tabInformation: 'Informações',\n tabProjects: 'Projetos',\n tabNotifications: 'Notificações',\n selectedOne: 'selecionado',\n selectedMany: 'selecionados',\n sendInvite: 'Enviar convite',\n sending: 'Enviando...',\n saving: 'Salvando...',\n saveChanges: 'Salvar alterações',\n inviteSent: 'Convite enviado para o E-mail {userEmail}',\n changesSaved: 'Alterações de {userName} salvas com sucesso',\n createError: 'Não foi possível criar o usuário',\n updateError: 'Não foi possível atualizar o usuário',\n },\n informationStep: {\n sectionTitle: 'Informações',\n changePhoto: 'Trocar foto',\n addPhoto: 'Adicionar foto',\n firstName: 'Nome',\n namePlaceholder: 'Digite aqui',\n lastName: 'Sobrenome',\n phone: 'Celular',\n phonePlaceholder: '00 0 0000-0000',\n email: 'E-mail',\n emailPlaceholder: 'exemplo@gmail.com',\n checkingEmail: 'Verificando e-mail...',\n emailAlreadyRegistered: 'Este e-mail já está cadastrado',\n change: 'Alterar',\n inviteInfo:\n 'Um e-mail com os dados de acesso será enviado. Certifique-se de informar o e-mail correto.',\n securityTitle: 'Segurança',\n twoFactor: 'Autenticação de dois fatores',\n enable: 'Habilitar',\n disable: 'Desabilitar',\n twoFactorSaving: 'Salvando...',\n twoFactorEnabled: 'Autenticação de dois fatores habilitada com sucesso',\n twoFactorDisabled: 'Autenticação de dois fatores desabilitada com sucesso',\n twoFactorError: 'Erro ao alterar autenticação de dois fatores',\n changePassword: 'Alterar senha de acesso',\n changePasswordButton: 'Alterar senha',\n roleTitle: 'Função desse usuário',\n profileOwner: 'Proprietário da conta com acesso total e irrestrito.',\n profileAdmin:\n 'Acesso a todas as funcionalidades. Ideal para quem precisa de controle completo.',\n profileCollaborator: 'Permissões limitadas às funções essenciais para o dia a dia.',\n profileViewer:\n 'Ideal para acompanhar dados, relatórios e informações, sem realizar alterações.',\n photoAlt: 'Foto',\n },\n projectsStep: {\n sectionTitle: 'Projetos',\n descriptionAdmin: 'Administradores e proprietários possuem acesso a todos os projetos',\n descriptionReadOnly: 'Projetos aos quais você tem acesso',\n descriptionDefault: 'Selecione quais projetos esse usuário terá acesso',\n connectAnotherProject: 'Conectar outro projeto',\n searchProject: 'Buscar por projeto',\n noProjectFound: 'Nenhum projeto encontrado',\n allProjectsAdded: 'Todos os projetos já foram adicionados',\n minimumOneProject: 'O usuário deve ter pelo menos um projeto',\n },\n notificationsStep: {\n sectionTitle: 'Notificações',\n smsTitle: 'SMS',\n smsDescription: 'Receber notificações importantes por SMS',\n emailTitle: 'E-mail',\n emailDescription: 'Receber notificações e atualizações por email',\n typesTitle: 'Tipos de notificações incluem:',\n },\n deleteModal: {\n title: 'Excluir usuário',\n description:\n 'Deseja realmente excluir o(a) usuário(a) \"{userName}\" da sua lista de usuários?',\n typeDelete: 'Digite EXCLUIR abaixo',\n deleteWord: 'EXCLUIR',\n deletingUser: 'Excluindo usuário...',\n deleteUser: 'Excluir usuário',\n deleted: 'O usuário \"{userEmail}\" foi excluído com sucesso',\n deleteError: 'Não foi possível excluir o usuário',\n },\n invalidUser: 'Usuário inválido para vincular projetos',\n invalidUserRemove: 'Usuário inválido para remover projetos',\n },\n dateFilter: {\n today: 'Hoje',\n yesterday: 'Ontem',\n last7Days: 'Últimos 7 dias',\n last30Days: 'Últimos 30 dias',\n lastMonth: 'Mês passado',\n allTime: 'Todo período',\n },\n affiliates: {\n requestWithdrawal: 'Solicitar saque',\n receivingAccount: 'Conta de recebimento',\n listLeads: 'Listar meus leads',\n terms: 'Termos e regras',\n tabs: {\n link: 'Link de afiliados',\n commissions: 'Comissões',\n reports: 'Relatórios',\n },\n stats: {\n heading: 'Números relevantes',\n totalAffiliates: 'Total de afiliados',\n clicks: 'Cliques',\n leads: 'Leads',\n balance: 'Saldo',\n selectedPeriod: 'Período selecionado',\n minBalance: 'Saldo mínimo de R$25 para saque.',\n },\n steps: {\n inviteTitle: 'Envie seu convite',\n inviteDescription: 'Envie seu link de afiliado para seus parceiros',\n registerTitle: 'Registro',\n registerDescription: 'Seu parceiro se cadastra na plataforma',\n trialTitle: 'Período de teste',\n trialDescription: 'Seu parceiro tem 7 dias como período de teste',\n },\n commissionCard: {\n title: 'Comissão de {percent}%',\n affiliateCode: 'Código de afiliado',\n commission: 'Comissão',\n discount: 'Desconto',\n shareLink: 'Link de compartilhamento',\n copyTooltip: 'Copiar link',\n linkCopied: 'Link copiado',\n },\n transactions: {\n total: 'Total de {total} transações',\n filter: 'Filtrar',\n filterApproval: 'Em aprovação',\n value: 'Valor',\n date: 'Data',\n type: 'Tipo',\n statusColumn: 'Status',\n empty: 'Nenhuma comissão encontrada.',\n pendingTooltip:\n 'O status pendente fica por 30 dias. Se o usuário não solicitar reembolso, o valor é consolidado após esse período.',\n refusedTooltip: 'Saque recusado. O valor voltou para o seu saldo.',\n refusedReason: 'Motivo: {reason}',\n viewAttachment: 'Visualizar anexo',\n typeCommission: 'Recebimento de comissão',\n typeWithdrawal: 'Solicitação de saque',\n typeFallback: 'Tipo {type}',\n status: {\n pending: 'Pendente',\n consolidated: 'Consolidado',\n canceled: 'Cancelado',\n refused: 'Recusado',\n },\n },\n chart: {\n title: 'Acompanhamento de indicadores',\n clicks: 'Cliques (Prospect)',\n leads: 'Cadastros (Leads)',\n customers: 'Clientes',\n },\n joinProgram: {\n title: 'Participar do programa de afiliados',\n description:\n 'Ao clicar em participar você declara que aceita todos os termos e condições do programa de parcerias do {whitelabelName}. Para mais informações acesse os',\n termsLink: 'Termos do programa de afiliados',\n join: 'Participar',\n joining: 'Participando...',\n decline: 'Não participar',\n joinError: 'Erro ao participar do programa de afiliados. Tente novamente.',\n },\n withdrawal: {\n sheetTitle: 'Solicitar saque',\n availableBalance: 'Saldo disponível',\n receivingAccount: 'Conta de recebimento',\n holderLabel: 'Titular',\n pixKeyLabel: 'Chave Pix',\n holderDocumentLabel: 'CPF/CNPJ',\n withdrawalValueLabel: 'Valor a sacar',\n withdrawalValuePlaceholder: 'R$ 0,00',\n withdrawalValueHint: 'Valor mínimo: R$ {minValue}',\n invoiceWarningCnpj: 'É obrigatório enviar a nota fiscal para saques com conta CNPJ.',\n attachInvoiceButton: 'Anexar nota',\n uploadAreaText: 'Arraste ou envie aqui o arquivo',\n uploadAreaExt: '.PDF',\n processingInfo: 'O processamento do saque pode levar até 7 dias úteis.',\n processingInfoSub: 'Você receberá uma confirmação por email.',\n contactInfo: 'Para dúvidas, entre em contato com o financeiro:',\n submitButton: 'Solicitar saque',\n errorPdfOnly: 'Apenas arquivos PDF são aceitos.',\n errorRequestDeposit: 'Erro ao solicitar saque.',\n validationMinValue: 'Valor mínimo: R$ {minValue}',\n validationMaxBalance: 'Valor não pode ser maior que o disponível para saque ({balance})',\n validationRequired: 'Informe o valor',\n removeAttachmentAriaLabel: 'Remover arquivo',\n cpfMonthlyLimit: 'Limite mensal (CPF): {value}',\n cpfMonthlyRemaining: '· Disponível este mês: {value}',\n reviewTitle: 'Revisar solicitação de saque',\n reviewValueLabel: 'Valor',\n reviewPixLabel: 'Chave PIX',\n reviewDeadlineLabel: 'Prazo',\n reviewDeadlineValue: '7 dias úteis',\n reviewInvoiceLabel: 'Nota fiscal',\n reviewWarning:\n 'Revise os dados da solicitação antes de confirmar. Após confirmar, o saque será enviado para processamento.',\n reviewConfirmButton: 'Confirmar saque',\n blockedTitle: 'Corrija sua conta de recebimento',\n blockedDescription:\n 'A chave Pix cadastrada é um CPF/CNPJ diferente do documento do titular. Ajuste a chave ou o documento para voltar a solicitar saques.',\n blockedEditAccountButton: 'Editar conta de recebimento',\n },\n bankAccount: {\n dialogTitle: 'Conta de recebimento',\n pixKeyLabel: 'Chave Pix',\n pixKeyPlaceholder: 'E-mail, CPF, Telefone...',\n pixKeyHint:\n 'Você é responsável pela chave Pix informada. Confira se está correta — os repasses serão enviados exatamente para esta chave.',\n holderNameLabel: 'Titular da conta',\n holderNamePlaceholder: 'Nome completo',\n holderDocumentLabel: 'CPF/CNPJ do titular',\n holderDocumentPlaceholder: '000.000.000-00',\n saveSuccess: 'Conta de recebimento salva com sucesso.',\n saveError: 'Erro ao salvar conta.',\n validationPix: 'Informe a chave Pix',\n validationHolder: 'Informe o titular',\n validationDocument: 'Informe CPF/CNPJ do titular',\n validationDocumentLength: 'Informe um CPF (11 dígitos) ou CNPJ (14 dígitos)',\n validationCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n validationCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n validationPixDocumentMismatch:\n 'A chave Pix informada é um CPF/CNPJ diferente do documento do titular. Use uma chave do mesmo documento ou corrija o CPF/CNPJ do titular.',\n pixCnpjInvoiceNotice:\n 'Conta CNPJ: o saque passa a exigir nota fiscal em PDF e não usa o limite mensal de CPF.',\n },\n noBankAccount: {\n title: 'Cadastre uma conta de recebimento',\n description:\n 'Para solicitar um saque, você precisa cadastrar uma conta bancária para recebimento.',\n registerButton: 'Cadastrar conta',\n },\n viewAttachment: {\n title: 'Nota fiscal anexada',\n iframeTitle: 'Nota fiscal',\n noAttachment: 'Nenhum anexo disponível.',\n },\n leadsSheet: {\n title: 'Listar meus leads',\n emptyState: 'Nenhum lead encontrado.',\n noDate: 'Sem data',\n months: {\n january: 'Janeiro',\n february: 'Fevereiro',\n march: 'Março',\n april: 'Abril',\n may: 'Maio',\n june: 'Junho',\n july: 'Julho',\n august: 'Agosto',\n september: 'Setembro',\n october: 'Outubro',\n november: 'Novembro',\n december: 'Dezembro',\n },\n },\n },\n subscription: {\n cancelPlan: {\n title: 'Cancelar Plano {planName}',\n description: 'Você pode usar a {whitelabelName} até o dia <b>{dueDate}</b>. Após essa data, suas páginas serão retiradas do ar e o acesso ao editor e demais funcionalidades do plano será limitado.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Descreva aqui....',\n charactersCount: '{count}/400',\n submit: 'Cancelar assinatura',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n tooExpensive: 'O preço está alto demais',\n missingFeatures: 'A ferramenta não possui uma função que eu preciso',\n switchedService: 'Migrei para outro serviço',\n unused: 'Não estou usando a ferramenta',\n customerService: 'Tive problemas com o suporte ou atendimento',\n tooComplex: 'A ferramenta é muito complexa de usar',\n lowQuality: 'A qualidade não atendeu minhas expectativas',\n other: 'Outro motivo',\n },\n },\n confirmCancel: {\n title: 'Uma pena te ver ir!',\n projectsAndPages: 'Todos os seus <b><totalProjects></totalProjects> projetos</b> e todas suas <b><totalPages></totalPages> páginas</b> ficarão impossibilitados de editar e visualizar até a assinatura de um novo plano!',\n daysUntilEnd: 'Seus sites sairão do ar em {daysUntilEnd} {unit} após o cancelamento',\n dayUnit: 'dia',\n daysUnit: 'dias',\n submit: 'Cancelar assinatura',\n keep: 'Manter assinatura',\n successToast: 'Assinatura cancelada',\n errorToast: 'Erro ao cancelar assinatura. Tente novamente.',\n },\n pendingChange: {\n title: 'Resumo',\n startsOn: 'Início em {date}',\n addonExtras: '{qty} {name} extras',\n aiCredits: '{qty} créditos de IA',\n periodicityDiscount: 'Desconto de periodicidade',\n couponDiscount: 'Cupom de desconto',\n billing: 'Cobrança {period}',\n },\n usageReport: {\n title: 'Relatório de uso',\n madeBy: 'Feito por <b>{author}</b>',\n creditsLabel: '{credits} créditos',\n creditsAdded: '{count} créditos adicionados',\n creditsUsed: '{consumed} de {total} créditos utilizados',\n expired: 'Expirado',\n expiresInOneDay: 'Expira em 1 dia',\n expiresInDays: 'Expira em {days} dias',\n noHistory: 'Nenhum histórico de créditos encontrado.',\n viewPage: 'Ver página',\n defaultRef: 'Uso de créditos',\n defaultUser: 'Usuário',\n },\n planDetails: {\n title: 'Seu plano atual',\n planName: 'Plano {name}',\n noName: 'sem nome',\n validity: 'Validade:',\n cancelledBadge: 'Cancelado',\n includedInPlan: 'Incluso no plano',\n unlimitedDomains: 'Domínios ilimitados',\n domainsSummary: '{total} domínios contratados ({base} inclusos no plano + {extra} extras)',\n domainsSummaryNoExtra: '{total} domínios contratados ({base} inclusos no plano)',\n abTestUnlimited: 'Experimentos (Test A/B) ilimitados',\n heatmap: 'Heatmap',\n domainBucketPrice: '{count} a {price}',\n domainPromoPrice: '{count} a {price} · preço promocional',\n domainTooltip: 'O preço base é o valor de um domínio extra contratado hoje. Os preços promocionais foram contratados em condições anteriores e seguem válidos até você removê-los.',\n manageAddons: 'Você pode gerenciar seus adicionais.',\n manageAddonsLink: 'Clique aqui',\n paymentInfo: 'Informações de pagamento',\n valueLabel: 'Valor',\n paymentMethodLabel: 'Forma de pagamento',\n periodicityLabel: 'Periodicidade',\n planValidityLabel: 'Validade do plano',\n paymentMethodBoleto: 'Boleto',\n paymentMethodCard: 'Cartão',\n periodicityMonthly: 'Mensalmente',\n periodicitySemiannual: 'Semestralmente',\n periodicityAnnual: 'Anualmente',\n trialPeriod: 'Período de teste',\n couponLabel: 'Cupom aplicado',\n couponValuePercent: '{code} (-{percent}%)',\n couponValueAmount: '{code} (-{amount})',\n },\n billingAddress: {\n title: 'Endereço de cobrança',\n personTypeLabel: 'Tipo de pessoa',\n personTypePf: 'Pessoa Física',\n personTypePj: 'Pessoa Jurídica',\n locationTitle: 'Localização',\n locationDescription: 'Preencha os dados de endereço da empresa.',\n fantasyName: 'Nome fantasia',\n fantasyNamePlaceholder: 'Nome da empresa',\n fullName: 'Nome completo',\n fullNamePlaceholder: 'Seu nome completo',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'email@exemplo.com',\n addressLabel: 'Endereço',\n addressPlaceholder: 'Rua, Avenida...',\n numberLabel: 'Número',\n numberPlaceholder: 'Nº',\n complementLabel: 'Complemento',\n complementPlaceholder: 'Apto, sala...',\n neighborhoodLabel: 'Bairro',\n neighborhoodPlaceholder: 'Bairro',\n cityLabel: 'Cidade',\n cityPlaceholder: 'Cidade',\n stateLabel: 'Estado (UF)',\n statePlaceholder: 'UF',\n countryLabel: 'País',\n countryPlaceholder: 'Selecione',\n cepNotFound: 'CEP não encontrado',\n successToast: 'Endereço de cobrança atualizado!',\n errorToast: 'Erro ao salvar. Tente novamente.',\n requiredFields: 'Preencha todos os campos obrigatórios',\n invalidCnpj: 'CNPJ inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n invalidCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n requiredField: 'Campo obrigatório',\n },\n payCharge: {\n title: 'Pagar fatura',\n dueDate: 'Vencimento: {date}',\n domains: 'Domínios',\n aiCredits: 'Créditos de IA',\n abTest: 'Teste A/B',\n abTestActive: 'Ativo',\n payment: 'Pagamento',\n boletoTooltip: 'Pagamento por boleto disponível somente para assinaturas anuais',\n boletoInfo: 'Boleto com vencimento em 3 dias úteis. A assinatura é ativada após a confirmação do pagamento.\\n\\nSe o boleto vencer, a assinatura não será ativada.',\n pixInfo: 'Clique em <b>\"Ver código PIX\"</b> para visualizar o QR code e copiar o código de pagamento.',\n processing: 'Processando...',\n payNow: 'Pagar agora',\n viewPixCode: 'Ver código PIX',\n viewBoleto: 'Ver dados do boleto',\n generatingBoleto: 'Gerando...',\n generateBoleto: 'Gerar boleto',\n successToast: 'Pagamento realizado com sucesso!',\n errorPayment: 'Erro ao processar pagamento. Tente novamente.',\n errorBoleto: 'Erro ao gerar boleto. Tente novamente.',\n },\n receipt: {\n generalInfo: 'Informações gerais',\n chargeLabel: 'Cobrança',\n detailsLabel: 'Detalhes',\n statusLabel: 'Status',\n noTitle: 'Sem título',\n paymentSection: 'Pagamento',\n totalValue: 'Valor total',\n dueDate: 'Data do vencimento',\n paymentDate: 'Data do pagamento',\n paymentMethod: 'Forma de pagamento',\n paymentMethodCreditCard: 'Cartão de crédito',\n paymentMethodBoleto: 'Boleto',\n paymentMethodPix: 'PIX',\n viewPixCode: 'Ver código PIX',\n payBoleto: 'Pagar boleto',\n viewBoletoDetails: 'Ver dados do boleto',\n retryPayment: 'Tentar cobrar novamente',\n changeCard: 'Alterar cartão',\n downloadReceipt: 'Baixar recibo',\n notaFiscal: 'Baixar nota fiscal',\n notaFiscalEmpty: 'A nota fiscal ainda está sendo gerada e pode levar alguns minutos para ser emitida. Tente novamente mais tarde.',\n notaFiscalError: 'Não foi possível obter a nota fiscal. Tente novamente.',\n },\n boletoDetails: {\n title: 'Dados do boleto',\n valueLabel: 'Valor',\n dueDate: 'Vencimento',\n digitableLine: 'Linha digitável',\n copyCode: 'Copiar código',\n openBoleto: 'Abrir boleto',\n copiedToast: 'Código copiado com sucesso!',\n },\n pixDetails: {\n title: 'Pix gerado',\n subtitle: 'Escaneie o QR code para pagar',\n dueDate: 'Vencimento',\n value: 'Valor',\n dueDateToday: 'Hoje',\n dueDateTomorrow: 'Amanhã',\n payIn: 'Pague em',\n qrCodeAlt: 'QR Code Pix',\n qrCodeUnavailable: 'O QR Code visual não foi disponibilizado pela integração.',\n generating: 'Gerando um novo código PIX...',\n refreshError: 'Não foi possível gerar um novo código PIX. Tente novamente em instantes.',\n orCopyCode: 'OU COPIE O CÓDIGO PIX ABAIXO',\n copyCode: 'Copiar código',\n copiedToast: 'Código copiado com sucesso!',\n },\n planCard: {\n noSubscription: 'Sem assinatura',\n readFailed: 'Não foi possível carregar sua assinatura',\n readFailedRetry: 'Tentar de novo',\n freePlan: 'Plano FREE',\n choosePlan: 'Escolher um plano agora',\n hirePlan: 'Contratar plano',\n planName: 'Plano {name}',\n noName: 'sem nome',\n trialBadge: '(Período de teste)',\n trialDaysRemaining: 'Você tem {days} dias de teste',\n moreDetails: 'Mais detalhes',\n current: 'Atual',\n cancelled: 'Cancelado',\n frozen: 'Congelado',\n expired: 'Expirado',\n overdueDate: 'Atrasado desde {date}',\n expiresOn: 'Expira em {date}',\n pendingDate: 'Em {date}',\n details: 'Detalhes',\n changePlan: 'Alterar plano',\n paySubscription: 'Pagar assinatura',\n billingAddress: 'Endereço de cobrança',\n cancelPlan: 'Cancelar plano',\n noActiveCredits: 'Sem créditos ativos',\n creditsExpireInOneDay: '{credits} créditos expiram em 1 dia',\n creditsExpireInDays: '{credits} créditos expiram em {days} dias',\n aiCreditsTotal: '{total} créditos de IA',\n creditsExpireAriaLabel: 'Informação sobre créditos que expiram',\n creditsExpireTooltip:\n 'Este é o lote de créditos mais próximo de vencer. Veja mais detalhes em Relatório de uso.',\n buyCredits: 'Comprar créditos',\n usageReport: 'Relatório de uso',\n aiCreditsPromoTitle: 'Créditos IA',\n aiCreditsPromoDescription: 'Acelere suas tarefas com o poder da IA',\n },\n paymentInfo: {\n title: 'Informações de pagamento',\n defaultCard: 'Cartão padrão',\n validUntil: 'Válido até {date}',\n manageTitle: 'Gerenciamento de cartões',\n noCards: 'Nenhum cartão cadastrado',\n noCardAdded: 'Nenhum cartão adicionado',\n loadFailed: 'Não foi possível carregar seus cartões',\n retry: 'Tentar novamente',\n },\n charges: {\n title: 'Todos os seus recibos',\n noReceipts: 'Nenhum recibo encontrado',\n defaultTitle: 'Cobrança',\n filter: 'Filtrar',\n filterPending: 'Pendente',\n filterPaid: 'Pago',\n filterFailed: 'Falha ao pagar',\n filterCancelled: 'Cancelado',\n pay: 'Pagar',\n downloadReceipt: 'Baixar recibo',\n details: 'Detalhes',\n status: {\n pending: 'Pendente',\n paid: 'Pago',\n failed: 'Falha ao pagar',\n cancelled: 'Invoice cancelado',\n },\n },\n\n // Fluxo: ChangePlanSheet (gerenciamento do plano, troca e recontratação).\n changePlan: {\n titleManagement: 'Gerenciamento de Plano',\n titleChange: 'Trocar de plano',\n billingRow: 'Cobrança {period}',\n toasts: {\n couponNotValidForPlan: 'O cupom {code} não é válido para o plano selecionado.',\n couponNotValidForPeriod: 'O cupom {code} não é válido para a periodicidade selecionada.',\n couponRemovedInvalidPlan: 'Cupom {code} removido: não é válido para este plano.',\n couponRemovedInvalidPeriod:\n 'Cupom {code} removido: não é válido para a periodicidade selecionada.',\n pixNotGenerated: 'Não foi possível gerar o PIX. Tente novamente.',\n boletoGenerated: 'Boleto gerado! Abra os dados dele pela lista de cobranças.',\n planReactivated: 'Plano {planName} reativado',\n reactivateError: 'Erro ao recontratar plano. Tente novamente.',\n planUpdated: 'Plano atualizado. As alterações entram em vigor na próxima fatura.',\n updateError: 'Erro ao atualizar o plano. Tente novamente.',\n },\n planView: {\n currentPlanLabel: 'Plano atual',\n changePlanButton: 'Mudar de plano',\n },\n planComparison: {\n badgeCurrent: 'Atual',\n badgeNew: 'Novo',\n newFeaturesTitle: 'Novas funcionalidades incluídas',\n lostFeaturesTitle: 'O que você perde ao trocar de plano',\n },\n paymentSummary: {\n paymentTitle: 'Pagamento',\n boletoInfo: 'Clique em <b>\"Atualizar plano\"</b> e seu boleto será gerado automaticamente!',\n pixInfo: 'Clique em <b>\"Atualizar plano\"</b> e seu código PIX será gerado automaticamente!',\n immediateChargeNote:\n 'Uma cobrança proporcional será realizada agora e o novo valor passa a valer a partir da próxima fatura.',\n downgradeNote: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultNote: 'As alterações entram em vigor no momento do pagamento.',\n paymentMethodChangeNote:\n 'As próximas cobranças desta assinatura passarão a ser feitas via <b>{method}</b>.',\n submitButton: 'Atualizar plano',\n retryAuthButton: 'Tentar autenticação de novo',\n },\n reactivationConfig: {\n currentPlanLabel: 'Plano atual',\n changePlanButton: 'Mudar de plano',\n },\n reactivationPayment: {\n paymentTitle: 'Pagamento',\n boletoInfo: 'Clique em <b>\"Contratar plano\"</b> e seu boleto será gerado automaticamente!',\n pixInfo: 'Clique em <b>\"Contratar plano\"</b> e seu código PIX será gerado automaticamente!',\n submitButton: 'Contratar plano',\n billingDataRequired:\n 'Boleto e PIX emitem nota fiscal: complete seus dados de cobrança para continuar.',\n billingDataAction: 'Completar dados de cobrança',\n retryAuthButton: 'Tentar autenticação de novo',\n },\n paymentMethodLabels: { card: 'cartão', boleto: 'boleto', pix: 'PIX' },\n addons: {\n title: 'Adicionais do plano',\n credits: { option: '{credits} créditos de IA / mês', priceDefault: 'Padrão' },\n domains: {\n included: '{count} Domínios conectados',\n extras: '(+{count} extras)',\n extraPrice: '{price}{period} por domínio extra',\n },\n abTest: {\n name: 'Experimentos e Teste A/B',\n details: 'Mais detalhes',\n includedInPlan: 'Incluso no plano',\n },\n },\n alternativeBuckets: {\n sectionTitle: 'Outros domínios cadastrados',\n domainSingular: 'domínio',\n domainPlural: 'domínios',\n bucketLabel: '{count} {domainLabel} a {price}',\n },\n summary: {\n title: 'Resumo',\n planRow: 'Plano {planName}',\n domainAddonSuffix: 'a {price}',\n aiAddon: '{credits} créditos de IA',\n periodDiscount: 'Desconto {pct} ({period})',\n couponDiscount: 'Cupom {code}',\n immediateCharge: 'Cobrança imediata',\n billingRow: 'Cobrança {period}',\n },\n coupon: { addButton: 'Cupom de desconto' },\n couponDialog: {\n title: 'Cupom de desconto',\n codeLabel: 'Código do cupom',\n codePlaceholder: 'Digite aqui',\n apply: 'Aplicar cupom',\n applying: 'Aplicando...',\n notFoundOrInvalid: 'O cupom {code} não existe ou não é mais válido.',\n notUsableAccount: 'O cupom {code} não pode ser usado nesta conta.',\n },\n abTestDialog: { learnMore: 'Saiba mais' },\n lostFeatures: {\n domains15: '15 Domínios conectados',\n projectManagement: 'Gestão de Projetos',\n onboardingMeeting: 'Reunião de Onboarding',\n domains3: '3 Domínios conectados',\n unlimitedPages: 'Páginas ilimitadas',\n },\n downgradeReason: {\n title: 'Por que você está fazendo downgrade?',\n subtitle: 'Sua resposta nos ajuda a melhorar a {wlName} para você.',\n reasonLabel: 'Motivo da troca de plano',\n reasonRequired: '*',\n reasonPlaceholder: 'Descreva o motivo da sua escolha',\n continueWithDowngrade: 'Continuar com downgrade',\n },\n downgradeReasons: {\n 'problemas-tecnicos': 'Estou enfrentando muitos problemas técnicos',\n preco: 'O preço não compensa para mim no momento',\n 'pouco-uso': 'Não estou usando a ferramenta com frequência',\n 'falta-recursos': 'Sinto falta de recursos importantes',\n outro: 'Outro motivo',\n },\n },\n\n // Contratação: seletor de período e cupom de duração limitada.\n checkout: {\n billing: {\n sectionLabel: 'Cobrança',\n annual: 'Assinatura Anual',\n monthly: 'Assinatura Mensal',\n suffixAnnual: '/ano',\n suffixMonthly: '/mês',\n billedUpfront: '{price} à vista',\n discountBadge: '{percent}% OFF',\n catalogDiscountBadge: 'até {percent}% off',\n },\n firstPeriod: {\n firstMonthly: '1º mês {price}',\n firstSemiannual: '1º semestre {price}',\n firstAnnual: '1º ano {price}',\n firstMonths: 'primeiros {count} meses {price}',\n then: 'depois {price}{suffix}',\n },\n },\n\n // Fluxo: CannotDowngradeDialog (o que ajustar antes de descer de plano).\n cannotDowngrade: {\n heading: 'Antes de mudar para o Plano {planName}',\n alertDomains:\n 'Sua conta possui {registeredDomains, plural, one {1 domínio cadastrado} other {# domínios cadastrados}}, mas o plano {planName} permite apenas {planIncludedDomains, plural, one {1 domínio conectado} other {# domínios conectados}}.',\n alertDomainsNone:\n 'Sua conta possui {registeredDomains, plural, one {1 domínio cadastrado} other {# domínios cadastrados}}, mas o plano {planName} não permite domínios conectados.',\n alertPages:\n 'Sua conta possui {publishedPages, plural, one {1 página publicada} other {# páginas publicadas}}, mas o plano {planName} permite apenas {planIncludedPages, plural, one {1 página publicada} other {# páginas publicadas}}.',\n alertReviewSteps: 'Para continuar, revise as etapas abaixo e escolha o que deseja manter.',\n alertReady:\n 'Tudo certo! Sua conta já está dentro dos limites do plano {planName}. É só finalizar a mudança.',\n stepReviewTitle: 'Revisar limites',\n stepDomainsTitle: 'Revisar domínios',\n stepPagesTitle: 'Revisar páginas',\n stepDomainsSubtitle:\n 'Você precisa remover {count, plural, one {1 domínio} other {# domínios}} para continuar',\n stepDomainsAction: 'Apagar {count, plural, one {1 domínio} other {# domínios}}',\n stepDomainsDone: 'Sua conta já está dentro do limite de domínios do plano',\n stepPagesSubtitle:\n 'Você precisa deixar apenas {limit, plural, one {1 página publicada} other {# páginas publicadas}} para continuar',\n stepPagesAction: 'Despublicar {count, plural, one {1 página} other {# páginas}}',\n stepPagesDone: 'Sua conta já está dentro do limite de páginas do plano',\n stepConfirmTitle: 'Confirmar alteração',\n stepConfirmSubtitle: 'Revise tudo antes de concluir a mudança',\n stepConfirmAction: 'Finalizar',\n },\n\n // Fluxo: AddFirstCardWarningModal (primeiro cartão da conta).\n addFirstCard: {\n title: 'Atenção ao adicionar um cartão',\n description1:\n 'Ao adicionar este cartão, ele será utilizado como meio de pagamento da sua assinatura.',\n description2:\n 'A próxima fatura da sua assinatura será cobrada automaticamente neste novo cartão.',\n continue: 'Continuar',\n },\n\n // Fluxo: SwitchPaymentToCardModal (assinatura passa a ser cobrada no cartão novo).\n switchPaymentToCard: {\n title: 'Usar este cartão na sua assinatura?',\n intro: 'Confirme para aplicar as mudanças abaixo agora:',\n introFirstCard:\n 'Este é o primeiro cartão da sua conta. Confirme para aplicar as mudanças abaixo agora:',\n changeMethod:\n 'A cobrança da assinatura deixa de ser por {method} e passa para este cartão',\n changeDefault: 'Este cartão passa a ser o padrão da conta',\n chargeNow:\n 'Se houver fatura em aberto desta assinatura, ela é cobrada agora neste cartão',\n declineHint: 'Se preferir, o cartão fica cadastrado e nada muda na cobrança.',\n confirm: 'Usar este cartão',\n decline: 'Agora não',\n successToast: 'Pronto, sua assinatura passou a ser cobrada neste cartão.',\n successWithCharge:\n 'Pronto. Sua assinatura passou a ser cobrada neste cartão e a fatura de {value} foi paga.',\n pendingBlocked:\n 'A troca não foi aplicada: há um pagamento pendente nesta assinatura. Conclua o pagamento e tente de novo.',\n switchedChargeFailed:\n 'Cartão definido para a assinatura, mas a fatura em aberto não foi paga agora. A cobrança será tentada de novo automaticamente.',\n authError: 'Não foi possível autenticar o pagamento com o banco.',\n errorToast: 'Não foi possível trocar a forma de pagamento. Tente novamente.',\n methodBoleto: 'boleto',\n methodPix: 'pix',\n },\n\n // Fluxo: PlansCatalogDialog (vitrine de planos).\n plansCatalog: {\n title: 'Planos de assinatura',\n periodMonthly: 'Mensal',\n periodAnnual: 'Anual',\n discountCatalog: 'até {percent}% off',\n discountBadge: '{percent}% OFF',\n },\n\n // Fluxo: PaymentConfirmationDialog (cobrança no cartão confirmada).\n paymentConfirmation: {\n subscriptionConfirmed: 'Assinatura confirmada 🚀',\n youSubscribed: 'Você acabou de assinar o <b>{planName}</b>',\n price: 'por <b>{price}</b>',\n immediateCharge: 'Uma cobrança proporcional de <b>{amount}</b> foi realizada agora.',\n manageInfo:\n 'Para gerenciar seu plano, acessar faturas ou fazer alterações, basta abrir a aba \"Assinatura\" em Minha conta.',\n },\n\n // Fluxo: PixPaymentDialog (QR code do pix gerado na troca/contratação).\n pixPayment: {\n title: 'Pix gerado',\n subtitle: 'Escaneie um código QR para pagar',\n payNowLabel: 'Você paga agora',\n payIn: 'Pague em',\n qrCodeAlt: 'QR Code Pix',\n orCopyCode: 'OU COPIE O CÓDIGO PIX ABAIXO',\n copyCode: 'Copiar código',\n copiedToast: 'Código copiado com sucesso!',\n paidToast: 'Pagamento efetuado com sucesso.',\n waitingPayment: 'Aguardando a confirmação do pagamento...',\n paidTitle: 'PIX pago',\n rejectedTitle: 'Pix recusado',\n expiredTitle: 'Código PIX expirado',\n rejectedOrExpiredDescription: 'Clique abaixo para gerar um novo código PIX',\n generateAnother: 'Gerar outro código',\n rejected: 'Pix recusado. Feche e gere um novo código para tentar de novo.',\n expired: 'Código PIX expirado. Feche e gere um novo código para tentar de novo.',\n },\n },\n },\n },\n\n // Modais de créditos de IA.\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acesse sua área de assinatura.',\n externalButton: 'Acessar área de assinatura',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'O pagamento será processado no momento da confirmação.',\n nextInvoiceChanges: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultPrice: 'Padrão',\n immediateCharge: 'Cobrança imediata',\n totalPlanValue: 'Valor total do plano',\n confirmAndPay: 'Confirmar e pagar',\n creditsChangedToast: 'Créditos de IA alterados para {credits}',\n purchaseSuccessToast: 'Compra concluída! {credits} créditos de IA foram adicionados ao seu saldo.',\n pixConfirmedToast: 'Pagamento confirmado! {credits} créditos de IA já estão no seu saldo.',\n },\n disabled: {\n title: 'Compra de créditos indisponível',\n descriptionLine1: 'Apenas administradores e proprietários podem comprar créditos de IA.',\n descriptionLine2:\n 'Peça a um administrador ou proprietário da conta para adquirir mais créditos.',\n understood: 'Entendi',\n },\n paidPlanRequired: {\n defaultTitle: 'Recurso disponível em planos pagos',\n defaultDescription: 'Para acessar este recurso, faça upgrade para um plano pago',\n knowPlans: 'Conhecer planos',\n },\n },\n\n // Cartões: adicionar, formulário, excluir, não-pode-excluir, item, info de pagamento.\n cards: {\n add: {\n stepBilling: 'Cobrança',\n stepCard: 'Cartão',\n externalTitle: 'Gerenciamento de cartões indisponível',\n externalDescription: 'Acesse sua área de assinatura para gerenciar formas de pagamento.',\n externalButton: 'Acessar área de assinatura',\n title: 'Adicionar cartão',\n billingHeading: 'Adicione suas informações de cobrança',\n cardHeading: 'Adicione informações do seu cartão',\n authenticating: 'Autenticando...',\n submitting: 'Adicionando cartão...',\n submit: 'Adicionar cartão',\n errorInitAuth: 'Não foi possível iniciar a autenticação do cartão, tente novamente.',\n errorAuth: 'Falha na autenticação do cartão.',\n errorAuthStatus: 'Autenticação não concluída (status: {status}).',\n statusUnknown: 'desconhecido',\n successToast: 'Cartão adicionado com sucesso.',\n errorSave: 'Não foi possível salvar o seu novo cartão, tente novamente.',\n },\n form: {\n nameOnCard: 'Nome impresso no cartão',\n typeHere: 'Digite aqui',\n cardNumber: 'Número do cartão',\n cardExpiry: 'Data de validade',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecione',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n cardNumberRequired: 'Número do cartão é obrigatório',\n cardExpiryRequired: 'Data de validade é obrigatória',\n cardCvcRequired: 'Código de segurança é obrigatório',\n },\n delete: {\n title: 'Excluir cartão',\n description: 'Deseja realmente excluir o cartão:',\n confirmLabel: 'Digite EXCLUIR abaixo',\n confirmPlaceholder: 'EXCLUIR',\n deleting: 'Excluindo...',\n successToast: 'O cartão •••• {digits} foi excluído com sucesso',\n errorToast: 'Não foi possível excluir o cartão',\n },\n cannotDelete: {\n title: 'Não é possível excluir este cartão',\n description: 'Este cartão está em uso e tem uma assinatura ativa vinculada a ele. Selecione outro cartão como padrão ou adicione um novo.',\n selectDefault: 'Selecione um cartão como padrão:',\n addNewCard: 'Adicionar novo cartão',\n errorUpdateCard: 'Erro ao atualizar cartão da assinatura',\n },\n item: {\n defaultBadge: 'Padrão',\n makeDefault: 'Tornar padrão',\n setDefaultSuccess: 'Cartão definido como padrão',\n setDefaultError: 'Erro ao definir cartão padrão',\n digitsUnavailable: 'Número não disponível',\n },\n paymentInfo: {\n email: 'E-mail',\n payment: 'Pagamento',\n addCard: 'Adicionar cartão',\n selectPaymentMethod: 'Selecione a forma de pagamento',\n manageCards: 'Gerenciar cartões',\n newPaymentMethod: 'Nova forma de pagamento',\n },\n },\n\n // Componente: RequiredBillingDataModal.\n billing: {\n requiredData: {\n title: 'Complete seus dados de cobrança',\n description:\n 'Precisamos dessas informações para emitir a nota fiscal dos seus pagamentos. O preenchimento é obrigatório para continuar usando a plataforma.',\n descriptionInternational:\n 'Como sua cobrança é fora do Brasil, precisamos apenas do nome e do e-mail para os recibos dos seus pagamentos.',\n addressHeading: 'Endereço de cobrança',\n select: 'Selecione',\n typeHere: 'Digite aqui',\n document: 'CPF ou CNPJ',\n documentPlaceholder: 'Digite seu CPF ou CNPJ',\n fullName: 'Nome completo',\n companyName: 'Razão social',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'financeiro@empresa.com',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n country: 'País',\n submit: 'Salvar e continuar',\n submitting: 'Salvando...',\n successToast: 'Dados de cobrança salvos com sucesso.',\n errorToast: 'Não foi possível salvar os dados de cobrança, tente novamente.',\n requiredField: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido, confira os dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido, confira os dígitos verificadores',\n },\n },\n\n // Componentes de navegação: banners de assinatura, seletor de projeto, links de rodapé, créditos, plano.\n navigation: {\n banners: {\n cancelled: {\n message: 'Assinatura cancelada! Suas páginas foram retiradas do ar.',\n choosePlan: 'Escolher um novo plano',\n },\n overdue: {\n message: 'Sua assinatura está atrasada e suas páginas podem ser retiradas do ar a qualquer momento.',\n attemptsMessage: 'Pagamento falhou. {count, plural, one {Resta # tentativa} other {Restam # tentativas}} antes do cancelamento. Atualize sua forma de pagamento.',\n details: 'Detalhes',\n },\n pending: {\n message: 'Sua assinatura foi cancelada, você possui até {limitDate} com suas páginas online.',\n reactivate: 'Reativar assinatura',\n },\n upcoming: {\n message: 'Fatura em aberto. Pague até {dueDate} para evitar a suspensão das suas páginas.',\n details: 'Detalhes',\n },\n trial: {\n message: 'Período de teste: {days, plural, =0 {seu teste termina hoje!} one {falta # dia para terminar} other {faltam # dias para terminar}}.',\n choosePlan: 'Assinar agora',\n },\n },\n projectSelector: {\n title: 'Projetos',\n searchPlaceholder: 'Busque aqui',\n emptyLine1: 'Nenhum projeto encontrado.',\n emptyLine2: 'Crie um projeto para começar.',\n noResults: 'Nenhum resultado encontrado.',\n manageProjects: 'Gerenciar projetos',\n },\n bottomLinks: {\n news: 'Novidades',\n helpCenter: 'Central de ajuda',\n sendSuggestions: 'Enviar sugestões',\n },\n creditsCard: {\n label: 'Créditos usados',\n },\n planCard: {\n knowPlans: 'Conheça os planos',\n },\n },\n\n // Congelamento por falta de pagamento (date_due + 7d) — banner, aviso de\n // véspera e modal única entre as 3 aplicações.\n subscription: {\n frozen: {\n banner: {\n message: 'Os recursos da sua conta estão bloqueados por falta de pagamento.',\n regularize: 'Regularizar assinatura',\n },\n warningBanner: {\n message: 'Pagamento em atraso: os recursos da sua conta serão bloqueados em {freezeDate}. Regularize para não perder o acesso.',\n details: 'Detalhes',\n },\n modal: {\n title: 'Recursos da sua conta bloqueados',\n description: 'Sua conta está com os recursos bloqueados por falta de pagamento. Regularize a assinatura para liberar.',\n descriptionWithResources: 'O pagamento não foi identificado, então estes recursos estão bloqueados:',\n warningDescriptionWithResources: 'O pagamento está em atraso. Se não for identificado até lá, estes recursos serão bloqueados:',\n warningTitle: 'Seus recursos serão bloqueados em {freezeDate}',\n warningDescription: 'O pagamento está em atraso. Regularize para não perder o acesso aos recursos da sua conta.',\n keepsWorking: 'Suas páginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.',\n resources: {\n pages: {\n title: 'Gerenciar páginas',\n description: 'Publicar, criar e editar páginas, configurações, testes A/B, upload de arquivos e exportar leads',\n },\n projects: {\n title: 'Gerenciar projetos',\n description: 'Criar e editar projetos, convidar usuários e alterar permissões da equipe',\n },\n domains: {\n title: 'Gerenciar domínios',\n description: 'Conectar novos domínios e gerenciar integrações',\n },\n },\n cta: 'Regularizar assinatura',\n },\n },\n },\n\n // Nomes dos idiomas exibidos no seletor.\n // Planos: features e main features (mapApiPlanToUiPlan).\n // Nomes dos adicionais do plano.\n addons: {\n domains: 'Domínios',\n pages: 'Páginas',\n projects: 'Projetos',\n abTestName: 'Experimentos e Teste A/B',\n abTestShortName: 'Teste A/B',\n abTestDescription: 'O Teste A/B é uma técnica usada para comparar duas versões de um mesmo conteúdo, como uma página ou anúncio, e identificar qual gera melhores resultados. Parte do público vê a versão A e outra parte vê a versão B, permitindo analisar dados reais e tomar decisões mais eficazes para melhorar conversões e desempenho.',\n heatmap: 'Heatmap',\n aiCredits: 'Créditos de IA',\n },\n\n plans: {\n tooltips: {\n domains:\n 'Conecte domínios externos e personalizados para sua página. Ex: www.seudominio.com.br',\n users: 'Adicione quantos usuários quiser ao projeto para colaborar na criação.',\n sharePages: 'Compartilhamento de páginas (Templates) entre contas da plataforma',\n projectManagement:\n 'Organize melhor seu fluxo de trabalho separando suas páginas em projetos distintos.',\n },\n card: {\n mostPopular: 'Mais popular',\n currentPlan: 'Seu plano atual',\n selectPlan: 'Selecionar plano',\n promoBadge: 'Valor promocional',\n promoFrom: 'De',\n defaultPrice: 'Padrão',\n aiCreditsLabel: '{credits} créditos de IA',\n aiCreditsIncluded: '{credits} créditos de IA inclusos',\n abTestIncluded: 'Experimentos e Teste A/B',\n upfrontNoteAnnual: '*Plano anual de {price} à vista. Valor mensal apenas para referência.',\n upfrontNoteSemiannual:\n '*Plano semestral de {price} à vista. Valor mensal apenas para referência.',\n },\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitadas',\n sharePages: 'Compartilhar páginas',\n hosting: 'Hospedagem inclusa',\n freeTemplates: 'Templates gratuitos',\n onboarding: 'Reunião de Onboarding',\n projectManagement: 'Gestão de projetos',\n },\n names: {\n '415': 'Iniciante',\n '1': 'Essencial',\n '2': 'Negócio',\n '3': 'Agência',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Domínios ilimitados',\n domainSingular: '1 domínio externo',\n domainsPlural: '{count} domínios externos',\n usersUnlimited: 'Usuários ilimitados',\n },\n usdNotConfigured: 'Internacional não configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'Não foi possível autenticar o pagamento com seu banco.',\n methodToggle: {\n card: 'Cartão',\n boleto: 'Boleto',\n pix: 'PIX',\n boletoTooltip: 'Somente para assinaturas anuais',\n cardTooltip: 'Não permitido pelo cupom aplicado',\n pixTooltip: 'Somente para assinaturas anuais',\n },\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensal',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mês',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/ano',\n labelMonthly: 'mensal',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Português (Brasil)',\n 'en-us': 'Inglês (EUA)',\n 'es-es': 'Espanhol',\n },\n\n // Componentes de formulário e entrada.\n forms: {\n combobox: {\n placeholder: 'Selecione uma opção',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhuma opção encontrada.',\n },\n datePicker: {\n placeholder: 'Selecione a data',\n },\n dateRangePicker: {\n placeholder: 'Selecione o período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'Nenhum país encontrado',\n },\n select: {\n placeholder: 'Selecione uma opção',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar link',\n successDefault: 'Link copiado',\n errorMessage: 'Não foi possível copiar o link',\n },\n circularProgress: {\n ariaLabel: 'Progresso de exportação',\n },\n },\n\n // Componentes: ImageCropModal, ImageTooSmallModal.\n imageUpload: {\n cropTitle: 'Ajustar imagem',\n cropHint: 'Arraste para ajustar a área de corte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muito pequena',\n tooSmallBodyFileWithDimension: 'O arquivo \"{fileName}\" é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'O arquivo \"{fileName}\" é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n tooSmallBodyNoFileWithDimension: 'A imagem selecionada é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'A imagem selecionada é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n sendAnother: 'Enviar outra',\n errorSvg: 'Formato SVG não é suportado. Use PNG, JPEG, WebP ou GIF.',\n errorFormat: 'Formato não suportado. Use PNG, JPEG, WebP ou GIF.',\n errorTooLarge: 'Arquivo muito grande. Máximo {maxSize}MB.',\n },\n\n // Componentes: NotificationPageContent (Notifications.tsx), NotificationsPopover.tsx.\n notifications: {\n page: {\n title: 'Notificações',\n subtitle: 'Tenha controle total sobre páginas, experiências e conversões.',\n markAllReadDesktop: 'Marcar todos como lidos',\n markAllReadMobile: 'Marcar como lidos',\n tabAll: 'Todas as notificações',\n tabUnread: 'Não lidas',\n details: 'Detalhes',\n empty: 'Nenhuma notificação encontrada.',\n markAllSuccess: 'Todas as notificações foram marcadas como lidas',\n markAllError: 'Erro ao marcar notificações como lidas',\n },\n popover: {\n title: 'Últimas notificações',\n empty: 'Sem notificações por enquanto',\n viewAll: 'Todas as notificações',\n },\n },\n\n // Componentes: NavBar.tsx, ProfilePopover.tsx, UsersSelectorPopover.tsx.\n layout: {\n navbar: {\n expandMenu: 'Expandir menu',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n greatDomain: 'GreatDomain',\n domains: 'Domínios',\n },\n profile: {\n usedCredits: 'Créditos usados',\n loggingOut: 'Saindo da sua conta...',\n logout: 'Sair',\n },\n usersSelector: {\n title: 'Usuários',\n add: 'Adicionar',\n searchPlaceholder: 'Busque aqui',\n empty: 'Nenhum usuário encontrado.',\n noResults: 'Nenhum resultado encontrado.',\n addToProject: 'Adicionar ao projeto',\n removeFromProject: 'Remover do projeto',\n manageTeam: 'Gerenciar equipe',\n },\n },\n\n // Componente: NotFoundPage.tsx.\n notFound: {\n title: 'Página não foi encontrada!',\n description: 'A página que você está procurando não existe. Verifique se digitou corretamente o link que está procurando.',\n backToHome: 'Voltar para o início',\n },\n\n // Modais promocionais compartilhados entre app/accounts/editor.\n promo: {\n // Componente: AiCreditsOfferModal (movido verbatim do gpages — pendência de copy: ver PR).\n aiCreditsOffer: {\n eyebrow: 'Pacote primeira compra',\n title: '{credits} créditos de IA <break></break>com {discount}',\n bullets: {\n first: 'Crie uma página inteira com um prompt.',\n second: 'Gere textos e imagens direto no editor.',\n third: 'Créditos avulsos: não mexem no seu plano.',\n },\n discountBadge: '{percent}% OFF',\n cta: 'Quero meus créditos com {discount}',\n ctaAddCard: 'Cadastrar cartão e garantir o desconto',\n later: 'Agora não',\n editPayment: 'Editar informações de pagamento',\n close: 'Fechar',\n successToast: 'Pronto! {credits} créditos de IA entraram na sua conta.',\n errorToast: 'Não foi possível concluir a compra. Tente novamente.',\n cardVerification: 'Seu cartão pediu uma verificação extra. Tente outro cartão.',\n illustration: {\n credits: 'créditos',\n },\n exit: {\n title: 'Quer mesmo perder {discount}?',\n description: 'Esta tela não volta. Saindo agora, os {credits} créditos voltam a custar {price}.',\n descriptionNoPrice: 'Esta tela não volta. Saindo agora, os {credits} créditos voltam ao preço cheio.',\n keep: 'Voltar para a oferta',\n lose: 'Perder minha oferta',\n },\n },\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isValidCNPJ, isValidCPF } from "../../../utils/validators/common";
|
|
1
2
|
const REQUIRED_BILLING_FIELDS = [
|
|
2
3
|
"financial_document",
|
|
3
4
|
"financial_name",
|
|
@@ -17,12 +18,18 @@ function isBrazilianBillingAccount(account) {
|
|
|
17
18
|
function isFilled(value) {
|
|
18
19
|
return typeof value === "string" && value.trim().length > 0;
|
|
19
20
|
}
|
|
21
|
+
function hasValidDocument(document) {
|
|
22
|
+
const digits = (document ?? "").replace(/\D/g, "");
|
|
23
|
+
if (digits.length === 11) return isValidCPF(digits);
|
|
24
|
+
if (digits.length === 14) return isValidCNPJ(digits);
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
20
27
|
function hasCompleteBillingData(account) {
|
|
21
28
|
if (!account) return false;
|
|
22
29
|
for (const field of REQUIRED_BILLING_FIELDS) {
|
|
23
30
|
if (!isFilled(account[field])) return false;
|
|
24
31
|
}
|
|
25
|
-
return
|
|
32
|
+
return hasValidDocument(account.financial_document);
|
|
26
33
|
}
|
|
27
34
|
export {
|
|
28
35
|
hasCompleteBillingData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/accounts/utils/billing-data.ts"],"sourcesContent":["import type { Account } from '../types';\n\nexport type BillingDataSnapshot = Pick<\n Account,\n | 'financial_document'\n | 'financial_name'\n | 'financial_email'\n | 'zipcode'\n | 'address'\n | 'address_number'\n | 'neighborhood'\n | 'city'\n | 'state'\n | 'country'\n>;\n\ntype BillingField = keyof BillingDataSnapshot;\n\n/**\n * Campos exigidos pra emitir a NF-e — sem qualquer um deles a nota não sai.\n *\n * `financial_email` NÃO entra: o backend cai no e-mail do usuário quando ele está\n * vazio (`financial_email || userDocument.email`, accounts/services.js), então a\n * nota sai do mesmo jeito. Exigi-lo aqui bloquearia 4.7k contas pagantes da wl 1\n * em vez das ~460 que de fato estão sem cadastro fiscal. O campo continua no\n * formulário, pré-preenchido — só não é critério de bloqueio.\n *\n * `address_complement` é opcional de verdade.\n */\nconst REQUIRED_BILLING_FIELDS: readonly BillingField[] = [\n 'financial_document',\n 'financial_name',\n 'zipcode',\n 'address',\n 'address_number',\n 'neighborhood',\n 'city',\n 'state',\n 'country',\n];\n\n/**\n * Conta sujeita à NF-e brasileira. Só ela entra no bloqueio: o formulário pede\n * CPF/CNPJ e CEP de 8 dígitos, que um cliente de fora não tem como fornecer —\n * e o modal é bloqueante, então seria tranca sem saída.\n *\n * País vazio conta como Brasil: é o default do cadastro e a origem da esmagadora\n * maioria da base (155 contas pagas da wl 1 estão assim).\n */\nexport function isBrazilianBillingAccount(\n account: Pick<BillingDataSnapshot, 'country'> | null | undefined,\n): boolean {\n if (!account) return false;\n const country = account.country?.trim().toUpperCase();\n return !country || country === 'BR';\n}\n\nfunction isFilled(value: string | null | undefined): boolean {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\n/**\n * A conta tem todos os dados de cobrança/fiscais necessários pra emissão de nota.\n * Retorna `false` quando a conta ainda não carregou — quem decide bloquear é o\n * chamador, que checa o loading antes (ver `useRequiredBillingData`).\n */\nexport function hasCompleteBillingData(\n account: BillingDataSnapshot | null | undefined,\n): boolean {\n if (!account) return false;\n\n for (const field of REQUIRED_BILLING_FIELDS) {\n if (!isFilled(account[field])) return false;\n }\n\n return
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/accounts/utils/billing-data.ts"],"sourcesContent":["import type { Account } from '../types';\nimport { isValidCNPJ, isValidCPF } from '../../../utils/validators/common';\n\nexport type BillingDataSnapshot = Pick<\n Account,\n | 'financial_document'\n | 'financial_name'\n | 'financial_email'\n | 'zipcode'\n | 'address'\n | 'address_number'\n | 'neighborhood'\n | 'city'\n | 'state'\n | 'country'\n>;\n\ntype BillingField = keyof BillingDataSnapshot;\n\n/**\n * Campos exigidos pra emitir a NF-e — sem qualquer um deles a nota não sai.\n *\n * `financial_email` NÃO entra: o backend cai no e-mail do usuário quando ele está\n * vazio (`financial_email || userDocument.email`, accounts/services.js), então a\n * nota sai do mesmo jeito. Exigi-lo aqui bloquearia 4.7k contas pagantes da wl 1\n * em vez das ~460 que de fato estão sem cadastro fiscal. O campo continua no\n * formulário, pré-preenchido — só não é critério de bloqueio.\n *\n * `address_complement` é opcional de verdade.\n */\nconst REQUIRED_BILLING_FIELDS: readonly BillingField[] = [\n 'financial_document',\n 'financial_name',\n 'zipcode',\n 'address',\n 'address_number',\n 'neighborhood',\n 'city',\n 'state',\n 'country',\n];\n\n/**\n * Conta sujeita à NF-e brasileira. Só ela entra no bloqueio: o formulário pede\n * CPF/CNPJ e CEP de 8 dígitos, que um cliente de fora não tem como fornecer —\n * e o modal é bloqueante, então seria tranca sem saída.\n *\n * País vazio conta como Brasil: é o default do cadastro e a origem da esmagadora\n * maioria da base (155 contas pagas da wl 1 estão assim).\n */\nexport function isBrazilianBillingAccount(\n account: Pick<BillingDataSnapshot, 'country'> | null | undefined,\n): boolean {\n if (!account) return false;\n const country = account.country?.trim().toUpperCase();\n return !country || country === 'BR';\n}\n\nfunction isFilled(value: string | null | undefined): boolean {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\n/**\n * Documento preenchido não é documento bom. O caso que originou isto: uma conta pagava desde\n * junho/2025 com um CNPJ de um dígito trocado, a prefeitura recusava a NFS-e todo mês e o modal\n * nunca abria, porque o campo estava preenchido. Conferir o dígito verificador aqui é o que faz\n * o cliente ser levado a corrigir — o backend já recusa a escrita de um documento inválido desde\n * 28/05/2026, então o formulário não tem como salvar um valor ruim por cima.\n */\nfunction hasValidDocument(document: string | null | undefined): boolean {\n const digits = (document ?? '').replace(/\\D/g, '');\n if (digits.length === 11) return isValidCPF(digits);\n if (digits.length === 14) return isValidCNPJ(digits);\n return false;\n}\n\n/**\n * A conta tem todos os dados de cobrança/fiscais necessários pra emissão de nota.\n * Retorna `false` quando a conta ainda não carregou — quem decide bloquear é o\n * chamador, que checa o loading antes (ver `useRequiredBillingData`).\n */\nexport function hasCompleteBillingData(\n account: BillingDataSnapshot | null | undefined,\n): boolean {\n if (!account) return false;\n\n for (const field of REQUIRED_BILLING_FIELDS) {\n if (!isFilled(account[field])) return false;\n }\n\n return hasValidDocument(account.financial_document);\n}\n"],"mappings":"AACA,SAAS,aAAa,kBAAkB;AA6BxC,MAAM,0BAAmD;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUO,SAAS,0BACd,SACS;AACT,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,UAAU,QAAQ,SAAS,KAAK,EAAE,YAAY;AACpD,SAAO,CAAC,WAAW,YAAY;AACjC;AAEA,SAAS,SAAS,OAA2C;AAC3D,SAAO,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS;AAC5D;AASA,SAAS,iBAAiB,UAA8C;AACtE,QAAM,UAAU,YAAY,IAAI,QAAQ,OAAO,EAAE;AACjD,MAAI,OAAO,WAAW,GAAI,QAAO,WAAW,MAAM;AAClD,MAAI,OAAO,WAAW,GAAI,QAAO,YAAY,MAAM;AACnD,SAAO;AACT;AAOO,SAAS,uBACd,SACS;AACT,MAAI,CAAC,QAAS,QAAO;AAErB,aAAW,SAAS,yBAAyB;AAC3C,QAAI,CAAC,SAAS,QAAQ,KAAK,CAAC,EAAG,QAAO;AAAA,EACxC;AAEA,SAAO,iBAAiB,QAAQ,kBAAkB;AACpD;","names":[]}
|