@fayz-ai/core 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access/engine.d.ts +15 -1
- package/dist/access/engine.d.ts.map +1 -1
- package/dist/access/index.js +2 -2
- package/dist/access/index.js.map +1 -1
- package/dist/app/app-config.d.ts +25 -0
- package/dist/app/app-config.d.ts.map +1 -1
- package/dist/{chunk-ED6NBH6U.js → chunk-3TRR2YLM.js} +2 -2
- package/dist/{chunk-ED6NBH6U.js.map → chunk-3TRR2YLM.js.map} +1 -1
- package/dist/{chunk-AOIYRUTF.js → chunk-4SPEISNL.js} +19 -5
- package/dist/chunk-4SPEISNL.js.map +1 -0
- package/dist/chunk-6TVRNKWW.js +17 -0
- package/dist/chunk-6TVRNKWW.js.map +1 -0
- package/dist/{chunk-OHH26S4N.js → chunk-7M4NWLIT.js} +9 -8
- package/dist/chunk-7M4NWLIT.js.map +1 -0
- package/dist/{chunk-2VY5IJW7.js → chunk-H6XDQXN5.js} +42 -14
- package/dist/chunk-H6XDQXN5.js.map +1 -0
- package/dist/{chunk-BCI743RH.js → chunk-HVWFFFKN.js} +4 -3
- package/dist/chunk-HVWFFFKN.js.map +1 -0
- package/dist/chunk-RBPDK2WB.js +104 -0
- package/dist/chunk-RBPDK2WB.js.map +1 -0
- package/dist/{chunk-2ZAUJVYP.js → chunk-S3EEGDEK.js} +122 -48
- package/dist/chunk-S3EEGDEK.js.map +1 -0
- package/dist/{chunk-KJUD6JA5.js → chunk-ZGAGCTQM.js} +6 -5
- package/dist/chunk-ZGAGCTQM.js.map +1 -0
- package/dist/connector-runtime/index.js +1 -1
- package/dist/data/archetype.d.ts +16 -0
- package/dist/data/archetype.d.ts.map +1 -1
- package/dist/data/bulk.d.ts.map +1 -1
- package/dist/data/index.js +3 -2
- package/dist/data/resolve.d.ts.map +1 -1
- package/dist/data/supabase.d.ts.map +1 -1
- package/dist/data/types.d.ts +13 -0
- package/dist/data/types.d.ts.map +1 -1
- package/dist/events/log.d.ts +1 -1
- package/dist/events/log.d.ts.map +1 -1
- package/dist/fields/store.d.ts +1 -1
- package/dist/fields/store.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +11 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/shell-translations.en.d.ts.map +1 -1
- package/dist/i18n/shell-translations.pt-br.d.ts.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -12
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +8 -8
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +4 -3
- package/dist/integrations/request.d.ts +2 -2
- package/dist/integrations/request.d.ts.map +1 -1
- package/dist/integrations/runtime.d.ts +1 -1
- package/dist/integrations/runtime.d.ts.map +1 -1
- package/dist/integrations/settings.d.ts +1 -1
- package/dist/integrations/settings.d.ts.map +1 -1
- package/dist/integrations/store.d.ts +7 -7
- package/dist/integrations/store.d.ts.map +1 -1
- package/dist/interaction/haptics.d.ts +5 -0
- package/dist/interaction/haptics.d.ts.map +1 -0
- package/dist/interaction/index.d.ts +7 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +3 -0
- package/dist/interaction/index.js.map +1 -0
- package/dist/interaction/keymap.d.ts +17 -0
- package/dist/interaction/keymap.d.ts.map +1 -0
- package/dist/interaction/roving.d.ts +9 -0
- package/dist/interaction/roving.d.ts.map +1 -0
- package/dist/lib/error-message.d.ts +21 -0
- package/dist/lib/error-message.d.ts.map +1 -0
- package/dist/orders/index.d.ts +114 -0
- package/dist/orders/index.d.ts.map +1 -0
- package/dist/orders/index.js +168 -0
- package/dist/orders/index.js.map +1 -0
- package/dist/plugin/index.js +2 -1
- package/dist/plugin/runtime.d.ts.map +1 -1
- package/dist/registry/extension-points.d.ts.map +1 -1
- package/dist/{shell-translations.pt-br-ZSSVWG6H.js → shell-translations.pt-br-GFBWBZZJ.js} +28 -12
- package/dist/shell-translations.pt-br-GFBWBZZJ.js.map +1 -0
- package/dist/testing/index.js +5 -4
- package/dist/testing.d.ts.map +1 -1
- package/dist/types/auth.d.ts +12 -0
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/crud.d.ts +42 -0
- package/dist/types/crud.d.ts.map +1 -1
- package/dist/types/onboarding.d.ts +25 -0
- package/dist/types/onboarding.d.ts.map +1 -1
- package/dist/types/plugins.d.ts +43 -0
- package/dist/types/plugins.d.ts.map +1 -1
- package/dist/types/setup-guide.d.ts +120 -0
- package/dist/types/setup-guide.d.ts.map +1 -0
- package/package.json +12 -3
- package/dist/chunk-2VY5IJW7.js.map +0 -1
- package/dist/chunk-2ZAUJVYP.js.map +0 -1
- package/dist/chunk-AOIYRUTF.js.map +0 -1
- package/dist/chunk-BCI743RH.js.map +0 -1
- package/dist/chunk-KJUD6JA5.js.map +0 -1
- package/dist/chunk-OHH26S4N.js.map +0 -1
- package/dist/shell-translations.pt-br-ZSSVWG6H.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/i18n/shell-translations.pt-br.ts"],"names":[],"mappings":"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","file":"shell-translations.pt-br-GFBWBZZJ.js","sourcesContent":["// Shared shell/CRUD/framework translations — pt-BR locale.\n// Split per-locale so only the active locale ships in the bundle: 'en' is the\n// eager fallback; other locales load via dynamic import in i18n/index.ts.\nexport const shellTranslationsPtBr: Record<string, string> = {\n \"common.save\": \"Salvar\",\n \"common.saveChanges\": \"Salvar Alterações\",\n \"common.saving\": \"Salvando...\",\n \"common.cancel\": \"Cancelar\",\n \"common.delete\": \"Excluir\",\n \"common.edit\": \"Editar\",\n \"common.you\": \"Você\",\n \"common.close\": \"Fechar\",\n \"common.confirm\": \"Confirmar\",\n \"common.back\": \"Voltar\",\n \"common.add\": \"Adicionar\",\n \"common.loading\": \"Carregando...\",\n \"common.error\": \"Algo deu errado\",\n \"common.noResults\": \"Nenhum resultado encontrado.\",\n \"common.search\": \"Buscar\",\n \"common.new\": \"Novo\",\n \"common.settings\": \"Configurações\",\n \"common.actionsMenu\": \"Mais ações\",\n \"common.actions\": \"Ações\",\n \"common.continue\": \"Continuar\",\n \"common.done\": \"Pronto\",\n \"common.yes\": \"Sim\",\n \"common.no\": \"Não\",\n \"common.active\": \"Ativo\",\n \"common.inactive\": \"Inativo\",\n \"common.overview\": \"Visão Geral\",\n \"common.notFound\": \"Não Encontrado\",\n \"common.untitled\": \"Sem título\",\n \"common.noContentYet\": \"Nenhum conteúdo ainda\",\n \"common.selectDate\": \"Selecionar data\",\n \"common.plugins\": \"Plugins\",\n \"auth.login.title\": \"Entrar\",\n \"auth.login.titleCentered\": \"Bem-vindo de Volta\",\n \"auth.login.subtitle\": \"Insira suas credenciais para acessar sua conta\",\n \"auth.login.emailLabel\": \"E-mail\",\n \"auth.login.emailPlaceholder\": \"voce@exemplo.com\",\n \"auth.login.passwordLabel\": \"Senha\",\n \"auth.login.passwordPlaceholder\": \"Digite sua senha\",\n \"auth.login.forgotPassword\": \"Esqueceu a senha?\",\n \"auth.login.submit\": \"Entrar\",\n \"auth.login.submitting\": \"Entrando...\",\n \"auth.login.error\": \"Falha ao entrar. Tente novamente.\",\n \"auth.login.oauthDivider\": \"ou continue com\",\n \"auth.login.noAccount\": \"Não tem uma conta?\",\n \"auth.login.noAccountCentered\": \"Ainda não tem uma conta?\",\n \"auth.login.signUpLink\": \"Cadastre-se\",\n \"auth.login.socialProof\": \"Junte-se a milhares de empresas que já usam {{appName}}\",\n \"auth.signup.title\": \"Criar conta\",\n \"auth.signup.titleCentered\": \"Criar Conta\",\n \"auth.signup.subtitle\": \"Comece com sua nova conta\",\n \"auth.signup.nameLabel\": \"Nome completo\",\n \"auth.signup.namePlaceholder\": \"João Silva\",\n \"auth.signup.emailLabel\": \"E-mail\",\n \"auth.signup.emailPlaceholder\": \"voce@exemplo.com\",\n \"auth.signup.passwordLabel\": \"Senha\",\n \"auth.signup.passwordPlaceholder\": \"Pelo menos 8 caracteres\",\n \"auth.signup.confirmPasswordLabel\": \"Confirmar senha\",\n \"auth.signup.confirmPasswordPlaceholder\": \"Repita sua senha\",\n \"auth.signup.termsPrefix\": \"Ao criar uma conta, você concorda com nossos\",\n \"auth.signup.termsOfService\": \"Termos de Serviço\",\n \"auth.signup.privacyPolicy\": \"Política de Privacidade\",\n \"auth.signup.submit\": \"Criar conta\",\n \"auth.signup.submitting\": \"Criando conta...\",\n \"auth.signup.error\": \"Falha ao criar conta. Tente novamente.\",\n \"auth.signup.passwordMismatch\": \"As senhas não conferem.\",\n \"auth.signup.passwordTooShort\": \"A senha deve ter pelo menos 8 caracteres.\",\n \"auth.signup.success\": \"Conta criada para {{email}}. Verifique sua caixa de entrada para confirmar seu e-mail.\",\n \"auth.signup.hasAccount\": \"Já tem uma conta?\",\n \"auth.signup.signInLink\": \"Entrar\",\n \"auth.recovery.title\": \"Redefinir senha\",\n \"auth.recovery.titleCentered\": \"Redefinir Senha\",\n \"auth.recovery.instruction\": \"Insira seu e-mail e enviaremos um link para redefinir sua senha.\",\n \"auth.recovery.subtitle\": \"Enviaremos um link de redefinição\",\n \"auth.recovery.emailLabel\": \"E-mail\",\n \"auth.recovery.emailPlaceholder\": \"voce@exemplo.com\",\n \"auth.recovery.submit\": \"Enviar link\",\n \"auth.recovery.submitting\": \"Enviando...\",\n \"auth.recovery.error\": \"Falha ao enviar e-mail. Tente novamente.\",\n \"auth.recovery.successHeading\": \"Verifique seu e-mail\",\n \"auth.recovery.successMessage\": \"Enviamos um link de redefinição para {{email}}. Verifique sua caixa de entrada e siga as instruções.\",\n \"auth.recovery.backToLogin\": \"Voltar ao login\",\n \"auth.oauth.continueWith\": \"Continuar com {{provider}}\",\n \"auth.signIn\": \"Entrar\",\n \"auth.signUp\": \"Cadastrar\",\n \"auth.signOut\": \"Sair\",\n \"auth.email\": \"E-mail\",\n \"auth.password\": \"Senha\",\n \"auth.forgotPassword\": \"Esqueceu a Senha?\",\n \"crud.list.emptyGeneric\": \"Nenhum registro ainda\",\n \"crud.list.empty\": \"Nenhum(a) {{entities}} ainda\",\n \"crud.list.addFirst\": \"Adicione seu(sua) primeiro(a) {{entity}}\",\n \"crud.list.totalCount\": \"{{count}} {{entities}} no total\",\n \"crud.list.searchPlaceholder\": \"Buscar {{entities}}...\",\n \"crud.list.allFacet\": \"Todos\",\n \"crud.list.addButton\": \"+ Adicionar {{entity}}\",\n \"crud.list.pageN\": \"Página {{page}}\",\n \"crud.list.rangeCount\": \"{{from}}–{{to}} de {{total}} {{entities}}\",\n \"crud.list.pageOf\": \"{{page}} / {{pages}}\",\n \"crud.list.prevPage\": \"Página anterior\",\n \"crud.list.nextPage\": \"Próxima página\",\n \"crud.list.emptyFilteredGeneric\": \"Nenhum resultado para esta busca\",\n \"crud.list.emptyFiltered\": \"Nenhum resultado em {{entities}} para esta busca\",\n \"crud.list.emptyHintGeneric\": \"O que você cadastrar aparece aqui.\",\n \"crud.list.emptyHint\": \"Os seus {{entities}} aparecem aqui depois de cadastrados.\",\n \"crud.list.loadFailedGeneric\": \"Não foi possível carregar\",\n \"crud.list.loadFailed\": \"Não foi possível carregar os {{entities}}\",\n \"crud.list.refresh\": \"Atualizar\",\n \"crud.list.refreshCached\": \"Dados locais (cache) — clique para atualizar da rede\",\n \"crud.list.sort\": \"Ordenar\",\n \"crud.list.sortBy\": \"Ordenar por\",\n \"crud.list.sortAsc\": \"Crescente\",\n \"crud.list.sortDesc\": \"Decrescente\",\n \"crud.list.sortCreatedAt\": \"Criado em\",\n \"crud.list.sortUpdatedAt\": \"Última edição\",\n \"crud.list.selectRow\": \"Selecionar linha\",\n \"crud.list.selectAllRows\": \"Selecionar todas as linhas\",\n \"crud.list.selectedOne\": \"1 selecionado\",\n \"crud.list.selectedMany\": \"{{count}} selecionados\",\n \"crud.list.selectAllCount\": \"Selecionar todos os {{total}}\",\n \"crud.list.deselectAll\": \"Limpar seleção\",\n \"crud.list.bulkActions\": \"Ações para a seleção\",\n \"crud.list.moreActions\": \"Mais ações\",\n \"crud.list.bulkDelete\": \"Excluir\",\n \"crud.list.bulkDeleteTitle\": \"Excluir {{count}} {{entities}}?\",\n \"crud.list.bulkDeleteConfirm\": \"Os {{count}} registros selecionados serão excluídos. Esta ação não pode ser desfeita.\",\n \"crud.list.bulkDeleteDone\": \"{{count}} excluídos\",\n \"crud.list.bulkDeleteFailed\": \"{{count}} não puderam ser excluídos\",\n \"crud.detail.notFound\": \"{{entity}} não encontrado(a).\",\n \"crud.detail.backTo\": \"Voltar para {{entities}}\",\n \"crud.detail.createdAt\": \"Criado em {{date}}\",\n \"crud.detail.createdBy\": \"por {{user}}\",\n \"crud.detail.updatedAt\": \"Última edição {{date}}\",\n \"crud.form.addTitle\": \"Adicionar {{entity}}\",\n \"crud.form.requiredField\": \"Preencha {{field}}\",\n \"crud.form.requiredFields\": \"Preencha: {{fields}}\",\n \"crud.form.editTitle\": \"Editar {{entity}}\",\n \"crud.form.createSubtitle\": \"Criar um(a) novo(a) {{entity}}.\",\n \"crud.form.editSubtitle\": \"Atualizar detalhes de {{entity}}.\",\n \"crud.form.newBreadcrumb\": \"Novo(a) {{entity}}\",\n \"crud.form.selectPlaceholder\": \"Selecione {{label}}...\",\n \"crud.form.saveError\": \"Falha ao salvar {{entity}}\",\n \"crud.form.saving\": \"Salvando...\",\n \"crud.form.changeImage\": \"Trocar imagem\",\n \"crud.form.imageAfterSave\": \"Foto depois de salvar\",\n \"crud.delete.title\": \"Excluir {{entity}}?\",\n \"crud.delete.confirmNamed\": \"Tem certeza que deseja excluir \\\"{{displayValue}}\\\"? Esta ação não pode ser desfeita.\",\n \"crud.delete.confirmGeneric\": \"Tem certeza que deseja excluir este(a) {{entity}}? Esta ação não pode ser desfeita.\",\n \"crud.delete.cancel\": \"Cancelar\",\n \"crud.delete.delete\": \"Excluir\",\n \"crud.tabs.access\": \"Acesso\",\n \"crud.tabs.schedule\": \"Agenda\",\n \"crud.tabs.documents\": \"Documentos\",\n \"crud.tabs.financial\": \"Extrato\",\n \"crud.tabs.activity\": \"Atividade\",\n \"crud.tabs.inventory\": \"Estoque\",\n \"crud.tabs.suppliers\": \"Fornecedores\",\n \"crud.tabs.pricing\": \"Preços\",\n \"crud.tabs.members\": \"Equipe\",\n \"crud.tabs.stats\": \"Estatísticas\",\n \"crud.tabs.availability\": \"Disponibilidade\",\n \"crud.tabs.orders\": \"Pedidos\",\n \"crud.orders.all\": \"Todos\",\n \"crud.orders.columnDate\": \"Data\",\n \"crud.orders.columnStage\": \"Etapa\",\n \"crud.orders.columnDescription\": \"Descrição\",\n \"crud.orders.columnAmount\": \"Valor\",\n \"crud.orders.searchPlaceholder\": \"Buscar pedidos...\",\n \"crud.orders.noDocuments\": \"Nenhum pedido ainda\",\n \"crud.orders.stage.draft\": \"Rascunho\",\n \"crud.orders.stage.quoted\": \"Orçado\",\n \"crud.orders.stage.booked\": \"Agendado\",\n \"crud.orders.stage.invoiced\": \"Faturado\",\n \"crud.orders.stage.paid\": \"Pago\",\n \"crud.orders.stage.partial\": \"Parcial\",\n \"crud.orders.stage.overdue\": \"Vencido\",\n \"crud.orders.stage.cancelled\": \"Cancelado\",\n \"crud.orders.stage.no_show\": \"Não Compareceu\",\n \"crud.orders.stage.completed\": \"Concluído\",\n \"layout.userMenu.profile\": \"Perfil\",\n \"layout.userMenu.settings\": \"Configurações\",\n \"layout.userMenu.billing\": \"Faturamento\",\n \"layout.userMenu.help\": \"Ajuda\",\n \"layout.userMenu.lightMode\": \"Modo claro\",\n \"layout.userMenu.darkMode\": \"Modo escuro\",\n \"layout.userMenu.systemMode\": \"Sistema\",\n \"layout.userMenu.language\": \"Idioma\",\n \"layout.userMenu.selectLocation\": \"Selecionar local\",\n \"layout.switchingLocation\": \"Trocando de local…\",\n \"layout.userMenu.signOut\": \"Sair\",\n \"layout.topbar.searchPlaceholder\": \"Buscar...\",\n \"layout.sidebar.collapse\": \"Recolher barra lateral\",\n \"layout.sidebar.expand\": \"Expandir barra lateral\",\n \"layout.commandPalette.placeholder\": \"Buscar páginas, pessoas, produtos, serviços...\",\n \"layout.commandPalette.resultsCount\": \"{{count}} resultado{{plural}}\",\n \"layout.commandPalette.noResults\": \"Nenhum resultado encontrado.\",\n \"layout.commandPalette.searching\": \"Buscando…\",\n \"layout.commandPalette.refreshCached\": \"Resultados do cache — buscar de novo\",\n \"layout.commandPalette.refresh\": \"Atualizar resultados\",\n \"billing.title\": \"Faturamento\",\n \"billing.subtitle\": \"Gerencie sua assinatura e faturamento.\",\n \"billing.currentPlan\": \"Plano Atual\",\n \"billing.subscription.title\": \"Assinatura\",\n \"billing.subscription.subtitle\": \"Gerencie seu plano e desbloqueie mais recursos.\",\n \"billing.changeToPlan\": \"Mudar para este plano\",\n \"billing.featureMatrix\": \"Comparativo de recursos\",\n \"billing.changePlanConfirmTitle\": \"Mudar de plano?\",\n \"billing.changePlanConfirmBody\": \"Você está mudando para o plano {{plan}}.\",\n \"billing.changePlanConfirm\": \"Mudar de plano\",\n \"billing.planChanged\": \"Agora você está no plano {{plan}}.\",\n \"billing.planChangeFailed\": \"Não foi possível mudar seu plano. Tente novamente.\",\n \"billing.noPlans\": \"Nenhum plano configurado.\",\n \"billing.pro\": \"Pro\",\n \"billing.upgrade\": \"Fazer Upgrade\",\n \"billing.downgrade\": \"Fazer Downgrade\",\n \"billing.monthly\": \"Mensal\",\n \"billing.yearly\": \"Anual\",\n \"billing.yearlySave\": \"Economize 20%\",\n \"billing.free\": \"Gratuito\",\n \"billing.cancelSubscription\": \"Cancelar Assinatura\",\n \"billing.canceling\": \"Cancelando...\",\n \"billing.resumeSubscription\": \"Retomar Assinatura\",\n \"billing.resuming\": \"Retomando...\",\n \"billing.features\": \"Recursos\",\n \"billing.perMonth\": \"/mês\",\n \"billing.perYear\": \"/ano\",\n \"billing.getStarted\": \"Começar\",\n \"billing.processing\": \"Processando...\",\n \"billing.mostPopular\": \"Mais Popular\",\n \"billing.nextBilling\": \"Próxima cobrança: {{date}}\",\n \"billing.cancelsOn\": \"Cancela em {{date}}\",\n \"billing.trialEnds\": \"Período de teste termina em {{date}}\",\n \"billing.pastDueWarning\": \"Seu pagamento está atrasado. Atualize seu método de pagamento para evitar interrupção do serviço.\",\n \"billing.status.active\": \"Ativo\",\n \"billing.status.trialing\": \"Período de Teste\",\n \"billing.status.pastDue\": \"Atrasado\",\n \"billing.status.canceled\": \"Cancelado\",\n \"billing.status.paused\": \"Pausado\",\n \"organization.invite\": \"Convidar\",\n \"organization.members\": \"Membros\",\n \"organization.memberCount\": \"{{count}} membro{{plural}} nesta organização.\",\n \"organization.role\": \"Função\",\n \"organization.emailPlaceholder\": \"equipe@exemplo.com\",\n \"organization.sendInvites\": \"Enviar Convites\",\n \"organization.sending\": \"Enviando...\",\n \"organization.pending\": \"Convites Pendentes\",\n \"organization.remove\": \"Remover membro\",\n \"organization.resend\": \"Reenviar\",\n \"organization.revoke\": \"Revogar\",\n \"organization.inviteTitle\": \"Convidar Membros da Equipe\",\n \"organization.inviteDescription\": \"Envie convites para entrar na sua organização.\",\n \"organization.inviteSent\": \"Convites enviados\",\n \"organization.inviteSentDescription\": \"Seus membros receberão um e-mail com instruções para entrar.\",\n \"organization.emailAddresses\": \"Endereços de e-mail\",\n \"organization.addAnother\": \"Adicionar outro\",\n \"organization.selectRole\": \"Selecione uma função\",\n \"organization.you\": \"(você)\",\n \"organization.joined\": \"Entrou\",\n \"organization.onboarding.title\": \"Configure seu espaço de trabalho\",\n \"organization.onboarding.namePrompt\": \"Como devemos chamar seu espaço de trabalho?\",\n \"organization.onboarding.preferencesPrompt\": \"Preferências regionais\",\n \"organization.onboarding.workspaceName\": \"Nome do espaço de trabalho\",\n \"organization.onboarding.workspaceNamePlaceholder\": \"Minha Empresa\",\n \"organization.onboarding.timezone\": \"Fuso horário\",\n \"organization.onboarding.currency\": \"Moeda\",\n \"organization.onboarding.creating\": \"Configurando seu espaço de trabalho\",\n \"organization.onboarding.creatingDescription\": \"Isso levará apenas um momento...\",\n \"organization.onboarding.createWorkspace\": \"Criar Espaço de Trabalho\",\n \"settings.title\": \"Configurações\",\n \"settings.subtitle\": \"Gerencie sua conta e preferências da organização.\",\n \"settings.backToHome\": \"Voltar para o início\",\n \"settings.navLinks\": \"Configurações\",\n \"settings.general\": \"Geral\",\n \"settings.properties\": \"Propriedades\",\n \"settings.profile\": \"Perfil\",\n \"settings.branding\": \"Marca\",\n \"settings.security\": \"Segurança\",\n \"settings.sites\": \"Sites\",\n \"settings.connectors\": \"Conectores\",\n \"settings.subscription\": \"Assinatura\",\n \"upgrade.title\": \"Recurso premium\",\n \"upgrade.description\": \"Este recurso está disponível em um plano superior. Faça upgrade para liberá-lo.\",\n \"upgrade.descriptionFeature\": \"O recurso {feature} está disponível em um plano superior. Faça upgrade para liberá-lo.\",\n \"contactPicker.search\": \"Buscar contato...\",\n \"contactPicker.newContact\": \"Novo contato\",\n \"contactPicker.name\": \"Nome\",\n \"contactPicker.phone\": \"Telefone\",\n \"contactPicker.emailOptional\": \"E-mail (opcional)\",\n \"contactPicker.create\": \"Cadastrar\",\n \"contactPicker.creating\": \"Cadastrando...\",\n \"contactPicker.cancel\": \"Cancelar\",\n \"contactPicker.clear\": \"Remover contato\",\n \"contactPicker.createFailed\": \"Não foi possível cadastrar o contato\",\n \"contactPicker.addField\": \"Adicionar {label}\",\n \"upgrade.includes\": \"Inclui {feature}\",\n \"upgrade.cta\": \"Ver planos\",\n \"upgrade.badgeTooltip\": \"Disponível em um plano superior\",\n \"upgrade.unlock\": \"Desbloqueie {feature}\",\n \"upgrade.currentPlan\": \"Seu plano: {plan}\",\n \"upgrade.recommended\": \"Recomendado\",\n \"upgrade.ctaUpgrade\": \"Fazer upgrade\",\n \"upgrade.ctaUpgradeTo\": \"Fazer upgrade para {plan}\",\n \"upgrade.compareAll\": \"Comparar todos os planos\",\n \"upgrade.valueGeneric\": \"Tudo o que você precisa para crescer — incluso nos planos abaixo.\",\n \"upgrade.value.marketing\": \"Campanhas, funil e conteúdo para crescer sua base de clientes.\",\n \"upgrade.value.reports\": \"Relatórios avançados e insights para decidir com mais precisão.\",\n \"upgrade.value.fin_reconciliation\": \"Concilie pagamentos e mantenha seu fluxo de caixa sob controle.\",\n \"upgrade.value.assistant\": \"Seu copiloto de operações — pergunte, analise e aja com IA.\",\n \"upgrade.feature.assistant\": \"Assistente de IA\",\n \"billing.unlimited\": \"Ilimitado\",\n \"billing.upTo\": \"Até {count}\",\n \"banner.overLimit\": \"Você excedeu o limite de {label} do seu plano — faça upgrade para continuar crescendo.\",\n \"banner.overLimit.title\": \"Você usou todos os seus {resource}\",\n \"banner.overLimit.planLabel\": \"Plano {plan}\",\n \"banner.overLimit.unlock\": \"Nada foi bloqueado. O {plan} tira esse teto do seu caminho.\",\n \"banner.overLimit.body\": \"Nada foi bloqueado — mas esse é o teto do seu plano.\",\n \"banner.overLimit.ctaPriced\": \"Assinar {plan} — {price}/mês\",\n \"banner.overLimit.ctaPlan\": \"Assinar {plan}\",\n \"banner.overLimit.perMonth\": \"{price}/mês\",\n \"banner.overLimit.compare\": \"Comparar planos\",\n \"banner.overLimit.more\": \"+{count} outro(s) limite(s) no teto.\",\n \"limit.label.clients\": \"clientes\",\n \"limit.label.users\": \"membros da equipe\",\n \"limit.label.locations\": \"locais\",\n \"limit.label.bookings_month\": \"agendamentos mensais\",\n \"limit.label.leads\": \"leads\",\n \"limit.label.quotes\": \"orçamentos\",\n \"limit.label.conversations_month\": \"conversas mensais\",\n \"limit.label.ai_credits_month\": \"créditos de IA por mês\",\n \"limit.label.recipes\": \"receitas\",\n \"limit.label.form_templates\": \"modelos de formulário\",\n \"limit.label.documents_month\": \"documentos mensais\",\n \"limit.label.content_posts_month\": \"posts de conteúdo mensais\",\n \"limit.label.blog_posts\": \"posts de blog\",\n \"limit.label.products\": \"produtos\",\n \"limit.label.students\": \"alunos\",\n \"limit.label.courses\": \"cursos\",\n \"limit.label.contacts\": \"contatos\",\n \"limit.label.deals\": \"negócios\",\n \"limit.label.menu_items\": \"itens do cardápio\",\n \"limit.label.orders_month\": \"pedidos mensais\",\n \"limit.label.connected_banks\": \"bancos conectados\",\n \"limit.label.movements_month\": \"movimentações mensais\",\n \"settings.team\": \"Equipe\",\n \"settings.permissions\": \"Permissões\",\n \"settings.locations\": \"Locais\",\n \"settings.holidays\": \"Feriados\",\n \"settings.fieldRules\": \"Regras de Campos\",\n \"settings.notifications\": \"Notificações\",\n \"settings.save\": \"Salvar Alterações\",\n \"settings.saving\": \"Salvando...\",\n \"settings.companyInfo\": \"Informações da Empresa\",\n \"settings.companyInfoDescription\": \"Atualize os dados da sua organização e preferências regionais.\",\n \"settings.companyName\": \"Nome da Empresa\",\n \"settings.companyNamePlaceholder\": \"Minha Empresa LTDA\",\n \"settings.timezone\": \"Fuso Horário\",\n \"settings.timezonePlaceholder\": \"Selecione o fuso horário\",\n \"settings.currency\": \"Moeda\",\n \"settings.currencyPlaceholder\": \"Selecione a moeda\",\n \"settings.locale\": \"Idioma\",\n \"settings.localePlaceholder\": \"Selecione o idioma\",\n \"settings.uploadLogo\": \"Enviar Logo\",\n \"settings.uiLanguage\": \"Idioma da Interface\",\n \"settings.uiLanguageDescription\": \"Escolha o idioma da interface. Aplica-se apenas à sua sessão.\",\n \"notifications.title\": \"Notificações\",\n \"notifications.markAllRead\": \"Marcar todas como lidas\",\n \"notifications.empty\": \"Sem notificações\",\n \"notifications.whatsNew\": \"Novidades\",\n \"notifications.inbox\": \"Caixa de Entrada\",\n \"app.notFound.title\": \"404\",\n \"app.notFound.heading\": \"Página não encontrada\",\n \"app.notFound.message\": \"A página que você procura não existe ou foi movida.\",\n \"app.notFound.goToDashboard\": \"Ir para o Painel\",\n \"app.accessDenied.heading\": \"Acesso Negado\",\n \"app.accessDenied.message\": \"Você não tem permissão para acessar esta página.\",\n \"shell.accessDenied.title\": \"Acesso restrito\",\n \"shell.accessDenied.message\": \"Você não tem permissão para acessar esta página.\",\n \"shell.error.title\": \"Não foi possível carregar esta tela\",\n \"shell.error.message\": \"Algo deu errado do nosso lado. O resto do sistema continua funcionando — você pode voltar e tentar de novo.\",\n \"shell.error.retry\": \"Tentar de novo\",\n \"shell.error.copy\": \"Copiar detalhes do erro\",\n \"shell.error.copied\": \"Copiado\",\n \"shell.error.reference\": \"Informe este código ao falar com o suporte\",\n \"organization.workspaces\": \"Áreas de trabalho\",\n \"organization.chooseWorkspace\": \"Escolha uma área de trabalho\",\n \"organization.chooseWorkspaceDescription\": \"Você tem acesso a mais de uma. Selecione em qual deseja entrar.\",\n \"organization.lastUsed\": \"último acesso\",\n \"organization.rememberChoice\": \"Não perguntar novamente neste dispositivo\",\n \"organization.enter\": \"Entrar\",\n \"organization.entryPreference\": \"Ao entrar\",\n \"organization.entryAsk\": \"Perguntar sempre\",\n \"organization.entryLast\": \"Abrir a última usada\",\n \"organization.switching.eyebrow\": \"Entrando em\",\n \"organization.switching.step1\": \"Alterando organização\",\n \"organization.switching.step2\": \"Garantindo segurança dos dados\",\n \"organization.switching.step3\": \"Carregando suas informações\",\n \"organization.switchLaterHint\": \"Você pode trocar a qualquer momento pelo seletor no topo da tela.\",\n \"organization.onlyWorkspace\": \"Esta é a sua única área de trabalho.\",\n \"crud.form.requiredIndicator\": \"*\",\n \"crud.form.createDescription\": \"Criar um(a) novo(a) {{entity}}.\",\n \"crud.form.editDescription\": \"Atualizar detalhes de {{entity}}.\",\n \"crud.form.failedToSave\": \"Falha ao salvar {{entity}}\",\n \"crud.form.saveChanges\": \"Salvar Alterações\",\n \"crud.form.showAllFields\": \"Preencher mais campos\",\n \"crud.form.showEssentialFields\": \"Mostrar só o essencial\",\n \"crud.form.select\": \"Selecione {{field}}...\",\n \"crud.list.records\": \"registros\",\n \"crud.list.addEntity\": \"Adicionar {{entity}}\",\n \"crud.list.aiHint\": \"Descreva e eu cadastro para você.\",\n \"crud.list.aiPlaceholder\": \"Descreva o que cadastrar…\",\n \"crud.list.newHint\": \"Preencher um cadastro à mão\",\n \"crud.list.searchGeneric\": \"Buscar...\",\n \"crud.list.search\": \"Buscar {{entities}}...\",\n \"crud.import.action\": \"Importar\",\n \"crud.import.hint\": \"Trazer vários de uma planilha CSV\",\n \"crud.import.title\": \"Importar {{entity}}\",\n \"crud.import.step.download\": \"Modelo\",\n \"crud.import.step.upload\": \"Upload\",\n \"crud.import.step.mapping\": \"Mapeamento\",\n \"crud.import.step.importing\": \"Importar\",\n \"crud.import.downloadTitle\": \"Baixe o modelo\",\n \"crud.import.downloadDescription\": \"Baixe um modelo CSV com todos os campos disponíveis para {{entity}}. Preencha e envie no próximo passo.\",\n \"crud.import.downloadTemplate\": \"Baixar modelo CSV\",\n \"crud.import.downloadHint\": \"{{count}} campos disponíveis\",\n \"crud.import.alreadyHaveFile\": \"Já tenho um arquivo\",\n \"crud.import.uploadTitle\": \"Arraste seu arquivo CSV aqui ou clique para buscar\",\n \"crud.import.uploadHint\": \"Apenas arquivos .csv são aceitos\",\n \"crud.import.invalidFile\": \"Envie um arquivo .csv.\",\n \"crud.import.emptyFile\": \"O arquivo parece estar vazio.\",\n \"crud.import.noRows\": \"O arquivo tem cabeçalho mas nenhuma linha de dados.\",\n \"crud.import.mappingTitle\": \"Mapeie suas colunas\",\n \"crud.import.mappingDescription\": \"{{file}} — {{columns}} colunas, {{rows}} linhas\",\n \"crud.import.mappedCount\": \"{{count}} de {{total}} mapeados\",\n \"crud.import.csvColumn\": \"Coluna CSV\",\n \"crud.import.mapsTo\": \"Mapeia para\",\n \"crud.import.preview\": \"Prévia\",\n \"crud.import.skip\": \"— Ignorar esta coluna\",\n \"crud.import.startImport\": \"Iniciar importação\",\n \"crud.import.importing\": \"Importando...\",\n \"crud.import.importingHint\": \"Processando {{count}} linhas\",\n \"crud.import.progressCount\": \"{{processed}} de {{total}} linhas processadas\",\n \"crud.import.doneSuccess\": \"Importação concluída!\",\n \"crud.import.doneWithErrors\": \"Importação concluída com erros\",\n \"crud.import.doneCount\": \"{{success}} de {{total}} linhas importadas com sucesso\",\n \"crud.import.rowNumber\": \"Linha {{row}}:\",\n \"crud.import.toastSuccess\": \"{{count}} registros importados\",\n \"crud.import.noConnection\": \"Sem conexão com o banco de dados. A importação requer uma conexão ativa.\",\n \"crud.import.limitExceeded\": \"Esta importação excede o limite do seu plano. Faça upgrade ou importe menos linhas.\",\n \"crud.export.action\": \"Exportar\",\n \"crud.export.noData\": \"Sem dados para exportar.\",\n \"crud.export.toastSuccess\": \"{{count}} registros exportados\",\n \"layout.topbar.keyboardShortcut\": \"⌘K\",\n \"layout.topbar.search\": \"Buscar...\",\n \"layout.commandPalette.commandsCount\": \"{{count}} comando{{plural}}\",\n \"layout.commandPalette.navigate\": \"navegar\",\n \"layout.commandPalette.open\": \"abrir\",\n \"layout.commandPalette.commandCount\": \"{{count}} comando{{plural}}\",\n \"layout.commandPalette.description\": \"Buscar páginas, ações, pessoas, produtos e serviços\",\n \"layout.commandPalette.resultCount\": \"{{count}} resultado{{plural}}\",\n \"layout.commandPalette.title\": \"Paleta de comandos\",\n \"layout.bottomNav.chat\": \"Chat\",\n \"layout.mobileDrawer.description\": \"Links de navegação do aplicativo\",\n \"layout.mobileDrawer.title\": \"Menu de navegação\",\n \"organization.sent\": \"Enviado {{date}}\",\n \"organization.failedInvites\": \"Falha ao enviar convites\",\n \"organization.onboarding.failedCreate\": \"Falha ao criar espaço de trabalho\",\n \"organization.createOrg\": \"Nova área de trabalho\",\n \"organization.createOrgDescription\": \"Crie um novo espaço de trabalho para sua equipe.\",\n \"organization.createOrgTitle\": \"Criar Organização\",\n \"organization.creating\": \"Criando...\",\n \"organization.orgNamePlaceholder\": \"Nome da organização\",\n \"organization.onboarding.oneMoment\": \"Isso levará apenas um momento...\",\n \"organization.onboarding.preferences\": \"Preferências regionais\",\n \"organization.onboarding.settingUp\": \"Configurando seu espaço de trabalho\",\n \"organization.onboarding.setupWorkspace\": \"Configure seu espaço de trabalho\",\n \"organization.onboarding.whatName\": \"Como devemos chamar seu espaço de trabalho?\",\n \"organization.invite.addAnother\": \"Adicionar outro\",\n \"organization.invite.description\": \"Envie convites para entrar na sua organização.\",\n \"organization.invite.emailLabel\": \"Endereços de e-mail\",\n \"organization.invite.roleLabel\": \"Função\",\n \"organization.invite.rolePlaceholder\": \"Selecione uma função\",\n \"organization.invite.sendInvites\": \"Enviar Convites\",\n \"organization.invite.sending\": \"Enviando...\",\n \"organization.invite.sent\": \"Convites enviados\",\n \"organization.invite.sentDescription\": \"Seus membros receberão um e-mail com instruções para entrar.\",\n \"organization.invite.title\": \"Convidar Membros da Equipe\",\n \"organization.permissions.createCustom\": \"Criar Perfil Personalizado\",\n \"organization.permissions.newWithAIHint\": \"Descreva quem é o perfil e eu monto a matriz.\",\n \"organization.permissions.newByHand\": \"Criar manualmente\",\n \"organization.permissions.newByHandHint\": \"Marcar as permissões uma a uma.\",\n \"organization.permissions.askPlaceholder\": \"Descreva o perfil…\",\n \"organization.permissions.askPersona\": \"Administrador de acessos\",\n \"organization.permissions.askPitch\": \"Diga quem é o perfil e o que ele faz.\",\n \"organization.permissions.askDescription\": \"Conheço todas as áreas deste app. Descreva o cargo — o que a pessoa precisa ver, o que precisa lançar e o que não pode alcançar — e eu monto a matriz. Você confirma antes de qualquer coisa ser salva.\",\n \"organization.permissions.askSuggestion.0\": \"Recepção: vê agenda e clientes, não vê financeiro\",\n \"organization.permissions.askSuggestion.1\": \"Profissional: só a própria agenda e os próprios atendimentos\",\n \"organization.permissions.askSuggestion.2\": \"Gerente: tudo menos permissões e cobrança\",\n \"organization.permissions.createProfile\": \"Criar Perfil\",\n \"organization.permissions.duplicate\": \"Duplicar\",\n \"organization.permissions.copyName\": \"{{name}} (cópia)\",\n \"organization.permissions.description\": \"Descrição\",\n \"organization.permissions.descriptionPlaceholder\": \"Descrição opcional\",\n \"organization.permissions.editProfile\": \"Editar: {{name}}\",\n \"organization.permissions.manageBilling\": \"Gerenciar Faturamento\",\n \"organization.permissions.managePermissions\": \"Gerenciar Permissões\",\n \"organization.permissions.manageSettings\": \"Gerenciar Configurações\",\n \"organization.permissions.manageTeam\": \"Gerenciar Equipe\",\n \"organization.permissions.memberCount\": \"{{count}} membro{{plural}}\",\n \"organization.permissions.previewAs\": \"Visualizar como\",\n \"organization.permissions.previewingAs\": \"Visualizando como\",\n \"organization.permissions.exitPreview\": \"Sair da Visualização\",\n \"organization.permissions.searchFeatures\": \"Buscar recursos...\",\n \"organization.permissions.profile\": \"Perfil\",\n \"organization.permissions.profileName\": \"Nome do Perfil\",\n \"organization.permissions.profileNamePlaceholder\": \"ex.: Função Personalizada\",\n \"organization.permissions.subtitle\": \"Gerencie funções e suas permissões.\",\n \"organization.permissions.system\": \"Sistema\",\n \"organization.permissions.systemPermissions\": \"Permissões do Sistema\",\n \"organization.permissions.title\": \"Perfis de Permissão\",\n \"organization.permissions.updateProfile\": \"Atualizar Perfil\",\n \"organization.team.invite\": \"Convidar\",\n \"organization.team.joined\": \"Entrou\",\n \"organization.team.member\": \"Membro\",\n \"organization.team.memberCount\": \"{{count}} membro{{plural}} nesta organização.\",\n \"organization.team.pendingInvites\": \"Convites Pendentes\",\n \"organization.team.removeMember\": \"Remover membro\",\n \"organization.team.unitAccess\": \"Acessos por unidade\",\n \"organization.team.resend\": \"Reenviar\",\n \"organization.team.revoke\": \"Revogar\",\n \"organization.team.inviteResent\": \"Convite reenviado\",\n \"organization.team.inviteRevoked\": \"Convite revogado\",\n \"organization.team.inviteActionFailed\": \"Não foi possível concluir\",\n \"organization.team.role\": \"Função\",\n \"organization.team.sent\": \"Enviado {{date}}\",\n \"organization.team.title\": \"Membros\",\n \"organization.team.you\": \"(você)\",\n \"user.profile\": \"Perfil\",\n \"user.settings\": \"Configurações\",\n \"user.help\": \"Ajuda\",\n \"user.shortcuts\": \"Atalhos de Teclado\",\n \"user.theme\": \"Tema\",\n \"user.themeLight\": \"Claro\",\n \"user.themeDark\": \"Escuro\",\n \"user.themeSystem\": \"Sistema\",\n \"notifications.noUpdates\": \"Nenhuma atualização ainda\",\n \"common.create\": \"Criar\",\n \"common.feature\": \"Recurso\",\n \"common.message\": \"Mensagem...\",\n \"common.more\": \"Mais\",\n \"common.noContent\": \"Nenhum conteúdo ainda\",\n \"chat.defaultTitle\": \"Assistente\",\n \"assistant.invite.placeholder\": \"Pergunte sobre o seu negócio...\",\n \"assistant.invite.dismiss\": \"Agora não\",\n \"assistant.invite.suggested\": \"Sugestões\",\n \"chat.tryAsking\": \"Experimente perguntar\",\n \"chat.fab.tryIt\": \"Experimente\",\n \"chat.fab.dismiss\": \"Não mostrar sugestões aqui\",\n \"chat.fab.open\": \"Abrir assistente\",\n \"chat.fab.close\": \"Fechar assistente\",\n \"chat.attachments.add\": \"Anexar arquivo\",\n \"chat.attachments.dropHere\": \"Solte para anexar\",\n \"chat.attachments.dropHint\": \"Planilhas, PDFs e imagens. Eu leio e uso na resposta.\",\n \"chat.attachments.parsing\": \"lendo…\",\n \"chat.attachments.hasWarnings\": \"com avisos\",\n \"chat.attachments.error.excelUnsupported\": \"formato de Excel não suportado — salve como .xlsx ou .csv\",\n \"chat.whatsapp.continue\": \"Continuar no WhatsApp\",\n \"chat.whatsapp.defaultMessage\": \"Oi! Vim pelo app.\",\n \"chat.messagePlaceholder\": \"Como posso ajudar?\",\n \"chat.upload.send\": \"Ler {{count}} foto(s)\",\n \"chat.upload.addMoreImages\": \"Adicionar mais uma foto\",\n \"chat.upload.addMoreFiles\": \"Adicionar mais um arquivo\",\n \"chat.upload.working\": \"Lendo...\",\n \"chat.upload.browseImage\": \"Ou escolher uma imagem deste aparelho\",\n \"chat.upload.browseFile\": \"Ou escolher um arquivo deste aparelho\",\n \"chat.send\": \"Enviar mensagem\",\n \"chat.notConfigured\": \"Assistente não configurado — defina chat.apiEndpoint para habilitar conversas.\",\n \"chat.unavailable\": \"Assistente indisponível\",\n \"chat.greeting\": \"Como posso ajudar?\",\n \"chat.greetingNamed\": \"Oi {{name}}, como posso ajudar?\",\n \"chat.greetingHint\": \"Peça com suas palavras — ou toque no microfone e fale. Eu consulto seus dados, crio e atualizo cadastros, e explico o que está acontecendo no seu negócio.\",\n \"chat.disclaimer\": \"A IA pode errar. Confira o que for importante.\",\n \"chat.agent.talkTo\": \"Falar com\",\n \"chat.staff.handoffFrom\": \"{{from}} passou para {{to}}\",\n \"chat.staff.handoffTo\": \"{{to}} assumiu\",\n \"chat.opener.capabilities\": \"O que você consegue fazer aqui?\",\n \"chat.opener.today\": \"Como está o negócio hoje?\",\n \"chat.opener.findRecord\": \"Procura um cadastro pra mim\",\n \"chat.history.title\": \"Conversas\",\n \"chat.recording.pending\": \"Nada foi gravado ainda.\",\n \"chat.recording.running\": \"Gravando. Pode navegar pelo app — a gravação continua.\",\n \"chat.recording.paused\": \"Gravação pausada.\",\n \"chat.recording.finished\": \"Gravação encerrada.\",\n \"chat.status.ready\": \"Pronto\",\n \"chat.status.working\": \"Trabalhando nisso...\",\n \"chat.status.offline\": \"Sem conexão\",\n \"chat.jumpToLatest\": \"Ir para o fim\",\n \"chat.confirmAction.title\": \"Confirmar esta ação?\",\n \"chat.confirmAction.confirm\": \"Confirmar\",\n \"chat.confirmAction.cancel\": \"Cancelar\",\n \"chat.confirmAction.always\": \"Sempre permitir\",\n \"chat.confirmAction.alwaysSession\": \"Permitir nesta sessão\",\n \"chat.confirmAction.alwaysHint\": \"Parar de perguntar antes de \\\"{{label}}\\\"\",\n \"chat.confirmAction.autoApproved\": \"auto\",\n \"chat.confirmAction.autoApprovedHint\": \"Executado sem perguntar — você liberou esta ação\",\n \"chat.confirmAction.blocked\": \"Responda a confirmação acima primeiro\",\n \"chat.confirmAction.fillRequired\": \"Preencha para continuar: {{fields}}\",\n \"chat.confirmAction.showAll\": \"Preencher mais campos ({{count}})\",\n \"chat.confirmAction.showLess\": \"Mostrar menos campos\",\n \"chat.confirmAction.queued\": \"Mais {{count}} igual a esta na fila\",\n \"chat.confirmAction.confirmAll\": \"Confirmar todas ({{count}})\",\n \"chat.confirmAction.cancelAll\": \"Recusar todas\",\n \"chat.tool.createAppointment\": \"Marcar horário\",\n \"chat.tool.createRecord\": \"Criar registro\",\n \"chat.tool.updateRecord\": \"Atualizar registro\",\n \"chat.tool.deleteRecord\": \"Excluir registro\",\n \"chat.tool.createOrder\": \"Criar pedido\",\n \"chat.tool.createInvoice\": \"Emitir cobrança\",\n \"chat.tool.markPaymentReceived\": \"Marcar pagamento como recebido\",\n \"chat.tool.createCampaign\": \"Criar campanha\",\n \"chat.tool.sendMessage\": \"Enviar mensagem\",\n \"chat.tool.seatGuests\": \"Acomodar clientes\",\n \"chat.tool.toggleMenuItemAvailability\": \"Alterar disponibilidade do item\",\n \"chat.tool.createShopOrder\": \"Criar pedido da loja\",\n \"chat.tool.chargeShopOrder\": \"Gerar cobrança do pedido\",\n \"chat.tool.setShopOrderAddress\": \"Anotar endereço de entrega\",\n \"chat.autoApprovals.title\": \"Ações liberadas\",\n \"chat.autoApprovals.revoke\": \"Voltar a perguntar\",\n \"chat.autoApprovals.revokeAll\": \"Perguntar sempre\",\n \"chat.suggestions.show\": \"Mostrar sugestões\",\n \"chat.suggestions.hide\": \"Ocultar sugestões\",\n \"chat.voice.start\": \"Falar\",\n \"chat.voice.stop\": \"Parar gravação\",\n \"chat.voice.listening\": \"Ouvindo — pode falar\",\n \"chat.voice.transcribing\": \"Transcrevendo...\",\n \"chat.voice.denied\": \"Microfone bloqueado. Libere o acesso nas configurações do navegador.\",\n \"chat.voice.network\": \"Não consegui falar com o serviço de transcrição.\",\n \"chat.voice.failed\": \"Não consegui entender — tente de novo.\",\n \"chat.voice.speakOn\": \"Responder em voz alta\",\n \"chat.voice.speakOff\": \"Silenciar respostas faladas\",\n \"chat.signingIn\": \"Um instante — ainda estou confirmando sua sessão.\",\n \"chat.history\": \"Conversas anteriores\",\n \"chat.history.search\": \"Buscar conversas\",\n \"chat.history.empty\": \"Nenhuma conversa encontrada.\",\n \"chat.history.today\": \"Hoje\",\n \"chat.history.yesterday\": \"Ontem\",\n \"chat.history.week\": \"Últimos 7 dias\",\n \"chat.history.older\": \"Mais antigas\",\n \"chat.newConversation\": \"Nova conversa\",\n \"chat.untitledConversation\": \"Conversa sem título\",\n \"chat.recentConversations\": \"Recentes\",\n \"chat.backToConversations\": \"Voltar para as conversas\",\n \"chat.renameConversation\": \"Renomear\",\n \"chat.saveTitle\": \"Salvar título\",\n \"chat.toolsAvailable\": \"{{count}} ferramentas disponíveis\",\n \"chat.suggestion.dashboard.kpi-summary.0\": \"Como está meu negócio hoje?\",\n \"chat.suggestion.dashboard.kpi-summary.1\": \"Qual o faturamento de hoje?\",\n \"chat.suggestion.dashboard.kpi-summary.2\": \"Me dê um resumo do dia\",\n \"chat.suggestion.agenda.list-appointments.0\": \"O que tem na agenda hoje?\",\n \"chat.suggestion.agenda.list-appointments.1\": \"Mostre os agendamentos de amanhã\",\n \"chat.suggestion.agenda.list-appointments.2\": \"Quem tem mais atendimentos esta semana?\",\n \"chat.suggestion.agenda.create-appointment.0\": \"Agende um corte para Sarah amanhã às 10h\",\n \"chat.suggestion.agenda.check-availability.0\": \"Quando Ana está disponível amanhã?\",\n \"chat.suggestion.agenda.check-availability.1\": \"Encontre um horário de 90 minutos para Carlos esta semana\",\n \"chat.suggestion.financial.get-revenue.0\": \"Quanto faturamos hoje?\",\n \"chat.suggestion.financial.get-revenue.1\": \"Qual o faturamento deste mês?\",\n \"chat.suggestion.financial.get-revenue.2\": \"Compare o faturamento desta semana com a anterior\",\n \"chat.suggestion.financial.create-invoice.0\": \"Crie uma fatura para um novo cliente\",\n \"chat.suggestion.financial.list-payables.0\": \"Mostre as contas em atraso\",\n \"chat.suggestion.financial.list-payables.1\": \"Quais contas vencem esta semana?\",\n \"chat.suggestion.inventory.low-stock.0\": \"Quais produtos estão com estoque baixo?\",\n \"chat.suggestion.inventory.low-stock.1\": \"Mostre um resumo do estoque\",\n \"chat.suggestion.inventory.low-stock.2\": \"Quais são os produtos mais usados?\",\n \"chat.suggestion.crm.count-customers.0\": \"Quantos clientes temos?\",\n \"chat.suggestion.crm.count-customers.1\": \"Quem são meus melhores clientes?\",\n \"chat.suggestion.crm.list-leads.0\": \"Mostre os leads novos desta semana\",\n \"chat.suggestion.crm.list-leads.1\": \"Quais leads precisam de follow-up?\",\n \"chat.suggestion.crm.list-leads.2\": \"Qual nossa taxa de conversão?\",\n \"chat.suggestion.custom_forms.list-templates.0\": \"Quais formulários temos?\",\n \"chat.suggestion.custom_forms.list-templates.1\": \"Mostre os modelos de anamnese\",\n \"chat.suggestion.custom_forms.list-documents.0\": \"Mostre os documentos deste cliente\",\n \"billing.invoice.amount\": \"Valor\",\n \"billing.invoice.date\": \"Data\",\n \"billing.invoice.invoice\": \"Fatura\",\n \"billing.invoice.noInvoices\": \"Nenhuma fatura ainda\",\n \"billing.invoice.status\": \"Status\",\n \"billing.paywall.notAvailable\": \"Este recurso não está disponível no seu plano atual.\",\n \"billing.paywall.requiresPlan\": \"Este recurso requer o plano {{plan}} ou superior.\",\n \"billing.paywall.upgradeRequired\": \"Upgrade Necessário\",\n \"billing.paywall.viewPlans\": \"Ver Planos\",\n \"auth.login.enterCredentials\": \"Insira suas credenciais para acessar sua conta\",\n \"auth.login.failedDefault\": \"Falha ao entrar. Tente novamente.\",\n \"auth.login.failedWithProvider\": \"Falha ao entrar com {{provider}}.\",\n \"auth.login.orContinueWith\": \"ou continue com\",\n \"auth.login.placeholder.email\": \"voce@exemplo.com\",\n \"auth.login.placeholder.password\": \"Digite sua senha\",\n \"auth.login.signingIn\": \"Entrando...\",\n \"auth.login.welcomeBack\": \"Bem-vindo de Volta\",\n \"auth.login.welcomeTo\": \"Bem-vindo ao {{appName}}\",\n \"auth.recovery.checkEmail\": \"Verifique seu e-mail\",\n \"auth.recovery.description\": \"Insira seu e-mail e enviaremos um link para redefinir sua senha.\",\n \"auth.recovery.failedDefault\": \"Falha ao enviar e-mail. Tente novamente.\",\n \"auth.recovery.resetLinkSent\": \"Enviamos um link de redefinição para <strong>{{email}}</strong>. Verifique sua caixa de entrada e siga as instruções.\",\n \"auth.recovery.sendResetLink\": \"Enviar link de redefinição\",\n \"auth.recovery.sending\": \"Enviando...\",\n \"auth.signup.confirmPassword\": \"Confirmar senha\",\n \"auth.signup.creating\": \"Criando conta...\",\n \"auth.signup.emailVerification\": \"Conta criada para {{email}}. Verifique sua caixa de entrada para confirmar seu e-mail.\",\n \"auth.signup.failedDefault\": \"Falha ao criar conta. Tente novamente.\",\n \"auth.signup.fullName\": \"Nome completo\",\n \"auth.signup.getStarted\": \"Comece com sua nova conta\",\n \"auth.signup.passwordMinLength\": \"A senha deve ter pelo menos 8 caracteres.\",\n \"auth.signup.passwordsMismatch\": \"As senhas não conferem.\",\n \"auth.signup.placeholder.confirm\": \"Repita sua senha\",\n \"auth.signup.placeholder.name\": \"João Silva\",\n \"auth.signup.placeholder.password\": \"Pelo menos 8 caracteres\",\n \"auth.signup.termsAgreement\": \"Ao criar uma conta, você concorda com nossos\",\n \"settings.branding.accentColor\": \"Cor de Destaque\",\n \"settings.branding.chooseFile\": \"Escolher Arquivo\",\n \"settings.branding.favicon\": \"Favicon\",\n \"settings.branding.faviconHint\": \"Recomendado: 32x32px, PNG ou ICO\",\n \"settings.branding.logo\": \"Logo\",\n \"settings.branding.logoHint\": \"Recomendado: 200x50px, PNG ou SVG\",\n \"settings.branding.preview\": \"Pré-visualização\",\n \"settings.branding.primaryColor\": \"Cor Primária\",\n \"settings.branding.saveBranding\": \"Salvar Marca\",\n \"settings.branding.subtitle\": \"Personalize a aparência do seu espaço de trabalho.\",\n \"settings.branding.title\": \"Marca\",\n \"settings.company.currency\": \"Moeda\",\n \"settings.company.currencyPlaceholder\": \"Selecione a moeda\",\n \"settings.company.locale\": \"Idioma\",\n \"settings.company.localePlaceholder\": \"Selecione o idioma\",\n \"settings.company.name\": \"Nome da Empresa\",\n \"settings.company.subtitle\": \"Atualize os dados da sua organização e preferências regionais.\",\n \"settings.company.timezone\": \"Fuso Horário\",\n \"settings.company.timezonePlaceholder\": \"Selecione o fuso horário\",\n \"settings.company.title\": \"Informações da Empresa\",\n \"settings.holidays.addHoliday\": \"Adicionar Feriado\",\n \"settings.holidays.annual\": \"Anual\",\n \"settings.holidays.descriptionPlaceholder\": \"Descrição (opcional)\",\n \"settings.holidays.empty\": \"Nenhum feriado configurado ainda.\",\n \"settings.holidays.namePlaceholder\": \"Nome do feriado *\",\n \"settings.holidays.newHoliday\": \"Novo Feriado\",\n \"settings.holidays.recurringAnnually\": \"Recorrente anualmente\",\n \"settings.holidays.subtitle\": \"Dias não úteis e feriados recorrentes.\",\n \"settings.holidays.title\": \"Feriados\",\n \"settings.fieldRules.subtitle\": \"Configure quais campos são obrigatórios ou visíveis para cada tipo de cadastro.\",\n \"settings.fieldRules.required\": \"Obrigatório\",\n \"settings.fieldRules.inForm\": \"Formulário\",\n \"settings.fieldRules.inTable\": \"Tabela\",\n \"settings.fieldRules.inDetail\": \"Detalhe\",\n \"settings.fieldRules.field\": \"Campo\",\n \"settings.fieldRules.resetDefaults\": \"Restaurar Padrões\",\n \"settings.fieldRules.resetConfirm\": \"Restaurar todas as regras de campos de {{entity}} para seus padrões?\",\n \"settings.fieldRules.saved\": \"Regras de campos salvas\",\n \"settings.fieldRules.saveFailed\": \"Falha ao salvar regras de campos\",\n \"settings.fieldRules.modified\": \"{{count}} modificado(s)\",\n \"settings.fieldRules.searchPlaceholder\": \"Buscar tipos de cadastro...\",\n \"settings.fieldRules.noEntities\": \"Nenhum tipo de cadastro disponível.\",\n \"settings.fieldRules.coreRegisters\": \"Tipos de Cadastro\",\n \"settings.fieldRules.otherRegisters\": \"Outros\",\n \"settings.fieldRules.showMore\": \"{{count}} tipos de cadastro a mais...\",\n \"settings.fieldRules.showLess\": \"Mostrar menos\",\n \"settings.locations.addFirst\": \"Adicione seu primeiro local\",\n \"settings.locations.addLocation\": \"Adicionar Local\",\n \"settings.locations.adding\": \"Adicionando...\",\n \"settings.locations.addressPlaceholder\": \"Endereço\",\n \"settings.locations.cityPlaceholder\": \"Cidade\",\n \"settings.locations.countDescription\": \"{{count}} local{{plural}} cadastrado(s).\",\n \"settings.locations.countryPlaceholder\": \"País\",\n \"settings.locations.empty\": \"Nenhum local foi adicionado a esta organização ainda.\",\n \"settings.locations.headquarters\": \"Sede\",\n \"settings.locations.namePlaceholder\": \"Nome do local *\",\n \"settings.locations.newLocation\": \"Novo Local\",\n \"settings.locations.noLocations\": \"Nenhum local configurado ainda.\",\n \"settings.locations.phonePlaceholder\": \"Telefone\",\n \"settings.locations.statePlaceholder\": \"Estado\",\n \"settings.locations.title\": \"Locais\",\n \"settings.profile.email\": \"E-mail\",\n \"settings.profile.emailHelp\": \"O e-mail não pode ser alterado diretamente. Entre em contato com o suporte.\",\n \"settings.profile.fullName\": \"Nome Completo\",\n \"settings.profile.saveProfile\": \"Salvar Perfil\",\n \"settings.profile.subtitle\": \"Gerencie suas informações pessoais e configurações da conta.\",\n \"settings.profile.title\": \"Perfil\",\n \"settings.security.inviteOnly\": \"Acesso Apenas por Convite\",\n \"settings.security.inviteOnlyDescription\": \"Novos usuários só podem entrar nesta organização via convite.\",\n \"settings.security.linkSent\": \"Link Enviado\",\n \"settings.security.orgSecuritySubtitle\": \"Políticas de segurança aplicadas a todos os membros desta organização.\",\n \"settings.security.orgSecurityTitle\": \"Segurança da Organização\",\n \"settings.security.passwordSubtitle\": \"Gerencie a senha da sua conta. Um link de redefinição será enviado para seu e-mail.\",\n \"settings.security.passwordTitle\": \"Senha\",\n \"settings.security.require2FA\": \"Exigir Autenticação de Dois Fatores\",\n \"settings.security.require2FADescription\": \"Todos os membros devem ativar 2FA para acessar esta organização.\",\n \"settings.security.resetLinkDescription\": \"Enviar um link de redefinição de senha para seu e-mail.\",\n \"settings.security.resetLinkSent\": \"Link de redefinição enviado — verifique sua caixa de entrada.\",\n \"settings.security.resetPassword\": \"Redefinir Senha\",\n \"settings.security.sessionTimeout\": \"Tempo Limite da Sessão\",\n \"settings.security.sessionTimeoutDescription\": \"Desconectar automaticamente usuários inativos após este período.\",\n \"settings.plugin.agenda\": \"Agenda\",\n \"settings.plugin.financial\": \"Financeiro\",\n \"settings.plugin.inventory\": \"Estoque\",\n \"settings.plugin.crm\": \"Vendas & CRM\",\n \"crud.archetype.comingSoon\": \"Em Breve\",\n \"crud.archetype.access.title\": \"Acesso e Permissões\",\n \"crud.archetype.access.description\": \"Gerencie credenciais de login, atribua perfis de permissão e controle o que esta pessoa pode acessar no sistema.\",\n \"crud.access.accountStatus\": \"Status da Conta\",\n \"crud.access.statusLinked\": \"Ativo\",\n \"crud.access.statusPending\": \"Convite pendente\",\n \"crud.access.statusAccepted\": \"Aceito\",\n \"crud.access.statusExpired\": \"Convite expirado\",\n \"crud.access.statusRevoked\": \"Revogado\",\n \"crud.access.acceptedAt\": \"Aceito em {{date}}\",\n \"crud.access.revokedDesc\": \"O acesso foi revogado. Você pode enviar um novo convite.\",\n \"crud.access.grantAccess\": \"Conceder Acesso\",\n \"crud.access.account\": \"Conta\",\n \"crud.access.accountDesc\": \"Credenciais de login e status da conta desta pessoa.\",\n \"crud.access.resetPassword\": \"Redefinir Senha\",\n \"crud.access.passwordResetSent\": \"E-mail de redefinição de senha enviado.\",\n \"crud.access.profileUpdated\": \"Perfil de permissão atualizado.\",\n \"crud.access.inviteResent\": \"Convite reenviado.\",\n \"crud.access.inviteRevoked\": \"Convite revogado.\",\n \"crud.access.accessRemoved\": \"Acesso removido.\",\n \"crud.access.dangerZone\": \"Zona de Perigo\",\n \"crud.access.dangerZoneDesc\": \"Ações irreversíveis que afetam o acesso desta pessoa ao sistema.\",\n \"crud.access.removeAccess\": \"Remover Acesso\",\n \"crud.access.revokeInvite\": \"Revogar Convite\",\n \"crud.access.confirmRemoveTitle\": \"Tem certeza?\",\n \"crud.access.confirmRemoveDesc\": \"Esta pessoa perderá todo o acesso ao sistema imediatamente. Esta ação não pode ser desfeita.\",\n \"crud.access.accountLinked\": \"Conta vinculada\",\n \"crud.access.noAccount\": \"Nenhuma conta vinculada\",\n \"crud.access.noAccountDesc\": \"Esta pessoa não possui uma conta de acesso e não pode entrar no sistema.\",\n \"crud.access.setupDesc\": \"Configure o acesso ao sistema para esta pessoa informando o e-mail e escolhendo um perfil de permissão.\",\n \"crud.access.emailPlaceholder\": \"pessoa@exemplo.com\",\n \"crud.access.sendInvite\": \"Enviar Convite\",\n \"crud.access.invitePending\": \"Convite pendente\",\n \"crud.access.inviteSent\": \"Convite enviado em {{date}}\",\n \"crud.access.permissionProfile\": \"Perfil de Permissão\",\n \"crud.access.profileDesc\": \"Defina o que esta pessoa pode acessar e fazer no sistema.\",\n \"crud.access.systemAccess\": \"Acesso ao Sistema\",\n \"crud.access.effectivePermissions\": \"Permissões Efetivas\",\n \"crud.access.effectiveDesc\": \"O que esta pessoa pode fazer com base no perfil atribuído.\",\n \"crud.access.feature\": \"Funcionalidade\",\n \"crud.access.joined\": \"Entrou em {{date}}\",\n \"crud.access.noEmail\": \"Sem endereço de e-mail\",\n \"crud.access.noEmailDesc\": \"Adicione um endereço de e-mail a esta pessoa para vinculá-la a uma conta do sistema.\",\n \"crud.access.manageTeam\": \"Gerenciar Equipe\",\n \"crud.access.manageBilling\": \"Gerenciar Faturamento\",\n \"crud.access.manageSettings\": \"Gerenciar Configurações\",\n \"crud.access.managePermissions\": \"Gerenciar Permissões\",\n \"crud.archetype.activity.title\": \"Linha do Tempo\",\n \"crud.archetype.activity.description\": \"Veja um registro cronológico de todas as ações, alterações e eventos relacionados a esta pessoa.\",\n \"crud.archetype.documents.title\": \"Documentos\",\n \"crud.archetype.documents.description\": \"Anexe e gerencie arquivos, contratos, certificações e outros documentos desta pessoa.\",\n \"crud.archetype.addresses.title\": \"Endereços\",\n \"crud.archetype.addresses.add\": \"Adicionar endereço\",\n \"crud.archetype.addresses.addTitle\": \"Novo endereço\",\n \"crud.archetype.addresses.editTitle\": \"Editar endereço\",\n \"crud.archetype.addresses.formDescription\": \"CEP, rua e cidade são obrigatórios; o resto é opcional.\",\n \"crud.archetype.addresses.emptyTitle\": \"Nenhum endereço cadastrado\",\n \"crud.archetype.addresses.emptyDescription\": \"Cadastre onde esta pessoa recebe entregas, é coletada ou é cobrada.\",\n \"crud.archetype.addresses.fallbackLabel\": \"Endereço\",\n \"crud.archetype.addresses.labelPlaceholder\": \"Casa, Trabalho…\",\n \"crud.archetype.addresses.default\": \"Padrão\",\n \"crud.archetype.addresses.setDefault\": \"Usar como endereço padrão\",\n \"crud.archetype.addresses.kind.both\": \"Entrega e cobrança\",\n \"crud.archetype.addresses.kind.shipping\": \"Entrega\",\n \"crud.archetype.addresses.kind.billing\": \"Cobrança\",\n \"crud.archetype.addresses.field.label\": \"Identificação\",\n \"crud.archetype.addresses.field.kind\": \"Uso\",\n \"crud.archetype.addresses.cepNotFound\": \"CEP não encontrado. Preencha o endereço à mão.\",\n \"crud.archetype.addresses.cepFailed\": \"Não deu para consultar o CEP agora. Preencha à mão ou tente de novo.\",\n \"crud.archetype.addresses.field.postalCode\": \"CEP\",\n \"crud.archetype.addresses.field.street\": \"Rua\",\n \"crud.archetype.addresses.field.number\": \"Número\",\n \"crud.archetype.addresses.field.complement\": \"Complemento\",\n \"crud.archetype.addresses.field.district\": \"Bairro\",\n \"crud.archetype.addresses.field.city\": \"Cidade\",\n \"crud.archetype.addresses.field.state\": \"UF\",\n \"crud.archetype.addresses.field.recipient\": \"Quem recebe\",\n \"crud.archetype.addresses.field.phone\": \"Telefone\",\n \"crud.archetype.addresses.created\": \"Endereço adicionado\",\n \"crud.archetype.addresses.updated\": \"Endereço atualizado\",\n \"crud.archetype.addresses.deleted\": \"Endereço removido\",\n \"crud.archetype.addresses.deleteTitle\": \"Remover este endereço?\",\n \"crud.archetype.addresses.loadFailed\": \"Não foi possível carregar os endereços.\",\n \"crud.archetype.addresses.saveFailed\": \"Não foi possível salvar o endereço.\",\n \"crud.archetype.addresses.deleteFailed\": \"Não foi possível remover o endereço.\",\n \"crud.archetype.addresses.noTenant\": \"Nenhuma organização ativa — recarregue a página e tente de novo.\",\n \"crud.archetype.schedule.title\": \"Agenda\",\n \"crud.archetype.schedule.description\": \"Visualize e gerencie compromissos, turnos e disponibilidade desta pessoa.\",\n \"crud.archetype.bookable.title\": \"Aparece na agenda\",\n \"crud.archetype.bookable.descriptionOn\": \"Clientes podem ser marcados com esta pessoa, e ela ganha coluna própria na agenda.\",\n \"crud.archetype.bookable.descriptionOff\": \"Esta pessoa não atende clientes. Os horários abaixo continuam guardados, mas ninguém é marcado com ela.\",\n \"crud.archetype.bookable.on\": \"Agora aparece na agenda\",\n \"crud.archetype.bookable.off\": \"Saiu da agenda\",\n \"crud.archetype.bookable.saveFailed\": \"Não foi possível mudar a presença na agenda.\",\n \"crud.archetype.inventory.title\": \"Estoque\",\n \"crud.archetype.inventory.description\": \"Acompanhe níveis de estoque, histórico de movimentação, alertas de reposição e gerencie o inventário entre locais.\",\n \"crud.archetype.suppliers.title\": \"Fornecedores\",\n \"crud.archetype.suppliers.description\": \"Veja e gerencie quais fornecedores oferecem este produto, compare custos e acompanhe pedidos de compra.\",\n \"crud.archetype.pricing.title\": \"Histórico de Preços\",\n \"crud.archetype.pricing.description\": \"Veja alterações de preço ao longo do tempo, gerencie preços promocionais e defina preços por local.\",\n \"crud.archetype.productActivity.title\": \"Atividade\",\n \"crud.archetype.productActivity.description\": \"Veja um registro de todas as alterações, ajustes de estoque e eventos relacionados a este produto.\",\n \"crud.archetype.availability.title\": \"Disponibilidade\",\n \"crud.archetype.availability.description\": \"Configure quando este serviço pode ser agendado, defina regras de duração e gerencie limites de capacidade.\",\n \"crud.archetype.servicePricing.title\": \"Faixas de Preço\",\n \"crud.archetype.servicePricing.description\": \"Gerencie faixas de preço, descontos para membros e preços por local para este serviço.\",\n \"crud.archetype.serviceActivity.title\": \"Atividade\",\n \"crud.archetype.serviceActivity.description\": \"Veja um registro de todos os agendamentos, alterações e eventos relacionados a este serviço.\",\n \"crud.archetype.members.title\": \"Equipe\",\n \"crud.archetype.members.description\": \"Veja e gerencie a equipe atribuída a este local, seus cargos e horários.\",\n \"crud.archetype.locationSchedule.title\": \"Horário de Funcionamento\",\n \"crud.archetype.locationSchedule.description\": \"Defina horário comercial, feriados e horários especiais para este local.\",\n \"crud.archetype.locationStats.title\": \"Estatísticas\",\n \"crud.archetype.locationStats.description\": \"Veja métricas de desempenho, faturamento e atividade deste local.\",\n \"crud.archetype.locationActivity.title\": \"Atividade\",\n \"crud.archetype.locationActivity.description\": \"Veja um registro de todos os eventos, alterações e operações neste local.\",\n \"crud.archetype.owner.noOwner\": \"Nenhum responsável atribuído\",\n \"crud.archetype.owner.assignHint\": \"Edite este registro para atribuir um responsável.\",\n \"crud.archetype.owner.name\": \"Nome\",\n \"crud.archetype.owner.phone\": \"Telefone\",\n \"crud.archetype.owner.email\": \"E-mail\",\n \"crud.archetype.owner.document\": \"Documento\",\n \"crud.archetype.owner.address\": \"Endereço\",\n \"crud.archetype.owner.active\": \"Ativo\",\n \"crud.archetype.owner.inactive\": \"Inativo\",\n \"crud.archetype.history.title\": \"Histórico\",\n \"crud.archetype.history.description\": \"Veja o histórico de visitas, relatórios anteriores, tratamentos e linha do tempo de eventos.\",\n \"crud.archetype.subjectDocuments.title\": \"Documentos\",\n \"crud.archetype.subjectDocuments.description\": \"Anexe e gerencie arquivos, resultados de exames, imagens e certificados.\",\n \"schedule.days.sun\": \"Dom\",\n \"schedule.days.mon\": \"Seg\",\n \"schedule.days.tue\": \"Ter\",\n \"schedule.days.wed\": \"Qua\",\n \"schedule.days.thu\": \"Qui\",\n \"schedule.days.fri\": \"Sex\",\n \"schedule.days.sat\": \"Sáb\",\n \"schedule.editor.weeklyTitle\": \"Horário de Trabalho Semanal\",\n \"schedule.editor.weeklyDescription\": \"Defina quando este profissional está regularmente disponível\",\n \"schedule.editor.unavailable\": \"Indisponível\",\n \"schedule.editor.newInterval\": \"Novo intervalo para {{day}}\",\n \"schedule.editor.addHoursFor\": \"Adicionar horários para {{day}}\",\n \"schedule.editor.removeInterval\": \"Remover intervalo\",\n \"schedule.editor.copyToAll\": \"Copiar para todos os dias\",\n \"schedule.editor.bufferTooltip\": \"Tempo de intervalo entre atendimentos\",\n \"schedule.editor.min\": \"min\",\n \"schedule.editor.exceptionsTitle\": \"Exceções de Data\",\n \"schedule.editor.exceptionsDescription\": \"Substituir horário de trabalho para datas específicas\",\n \"schedule.editor.addException\": \"Adicionar Exceção\",\n \"schedule.editor.noExceptions\": \"Nenhuma exceção de data configurada\",\n \"schedule.editor.startDate\": \"Data de início\",\n \"schedule.editor.endDate\": \"Data de término\",\n \"schedule.editor.type\": \"Tipo\",\n \"schedule.editor.customHours\": \"Horário personalizado\",\n \"schedule.editor.workingHours\": \"Horário de trabalho\",\n \"schedule.editor.to\": \"até\",\n \"schedule.editor.addTimeBlock\": \"Adicionar bloco de horário\",\n \"schedule.editor.notes\": \"Observações\",\n \"schedule.editor.notesPlaceholder\": \"ex. Férias, Feriado, Treinamento...\",\n \"schedule.editor.saveException\": \"Salvar Exceção\",\n \"schedule.editor.removeException\": \"Remover exceção\",\n \"schedule.editor.failedToLoad\": \"Falha ao carregar agenda\",\n \"schedule.editor.saved\": \"Horário de trabalho salvo\",\n \"schedule.editor.failedToSave\": \"Falha ao salvar\",\n \"schedule.editor.selectStartDate\": \"Selecione uma data de início\",\n \"schedule.editor.endDateAfterStart\": \"A data de término deve ser posterior à data de início\",\n \"schedule.editor.exceptionAdded\": \"Exceção adicionada\",\n \"schedule.editor.failedToSaveException\": \"Falha ao salvar exceção\",\n \"schedule.editor.exceptionRemoved\": \"Exceção removida\",\n \"schedule.editor.failedToDelete\": \"Falha ao excluir\",\n \"schedule.blockSettings.title\": \"Configurações do Bloco\",\n \"schedule.blockSettings.location\": \"Local\",\n \"schedule.blockSettings.noLocation\": \"Sem local\",\n \"schedule.blockSettings.maxConcurrent\": \"Máx. simultâneos\",\n \"schedule.blockSettings.minAdvance\": \"Antecedência mín.\",\n \"schedule.blockSettings.maxAdvance\": \"Antecedência máx.\",\n \"schedule.blockSettings.hrs\": \"hrs\",\n \"schedule.blockSettings.days\": \"dias\",\n \"schedule.blockSettings.label\": \"Rótulo\",\n \"schedule.blockSettings.labelPlaceholder\": \"ex. Manhã – Apenas cortes\",\n \"schedule.blockSettings.allowedServices\": \"Serviços permitidos\",\n \"schedule.blockSettings.allServices\": \"Todos os serviços\",\n \"schedule.blockSettings.oneService\": \"1 serviço\",\n \"schedule.blockSettings.nServices\": \"{{count}} serviços\",\n \"registry.suppliers\": \"Fornecedor\",\n \"registry.suppliers.description\": \"Gerencie seus fornecedores de produtos e materiais\",\n \"registry.product-categories\": \"Categoria de Produto\",\n \"registry.product-categories.description\": \"Categorias de produtos para organização\",\n \"registry.stock-locations\": \"Local de Estoque\",\n \"registry.stock-locations.description\": \"Locais físicos de armazenamento do estoque\",\n \"registry.measurement-units\": \"Unidade de Medida\",\n \"registry.measurement-units.description\": \"Unidades padrão de medida\",\n \"registry.payment-methods\": \"Método de Pagamento\",\n \"registry.chart-of-accounts\": \"Plano de Contas\",\n \"registry.cost-centers\": \"Centro de Custo\",\n \"registry.bank-accounts\": \"Conta Bancária\",\n \"registry.commission-rules\": \"Regra de Comissão\",\n \"registry.price-tables\": \"Tabela de Preços\",\n \"registry.price-variations\": \"Variação de Preço\",\n \"registry.payment-method-types\": \"Tipo de Pagamento\",\n \"registry.card-brands\": \"Bandeira de Cartão\",\n \"registry.lead-sources\": \"Origem de Lead\",\n \"registry.tags\": \"Tag\",\n \"registry.activity-types\": \"Tipo de Atividade\",\n \"org.connectionError.title\": \"Falha na conexão\",\n \"org.connectionError.description\": \"Não foi possível conectar ao servidor. Verifique sua conexão com a internet e tente novamente.\",\n \"org.connectionError.retry\": \"Tentar novamente\",\n \"app.mockMode.banner\": \"Você está no modo offline. Os dados exibidos podem não estar atualizados.\",\n\n // Barra de controles das Análises — período, comparação e filtros.\n \"analytics.range.today\": \"Hoje\",\n \"analytics.range.yesterday\": \"Ontem\",\n \"analytics.range.last_7_days\": \"Últimos 7 dias\",\n \"analytics.range.last_30_days\": \"Últimos 30 dias\",\n \"analytics.range.last_90_days\": \"Últimos 90 dias\",\n \"analytics.range.this_month\": \"Este mês\",\n \"analytics.range.last_month\": \"Mês passado\",\n \"analytics.range.this_quarter\": \"Este trimestre\",\n \"analytics.range.this_year\": \"Este ano\",\n \"analytics.range.custom\": \"Período personalizado\",\n \"analytics.range.label\": \"Período\",\n \"analytics.range.from\": \"De\",\n \"analytics.range.to\": \"Até\",\n \"analytics.compare.previous_period\": \"Período anterior\",\n \"analytics.compare.previous_year\": \"Ano anterior\",\n \"analytics.compare.none\": \"Sem comparação\",\n \"analytics.compare.label\": \"Comparar\",\n \"analytics.filters\": \"Filtros\",\n \"analytics.filters.search\": \"Buscar filtros\",\n \"analytics.filters.none\": \"Nenhum filtro encontrado\",\n \"analytics.filters.noOptions\": \"Nenhuma opção disponível\",\n \"analytics.filters.apply\": \"Aplicar\",\n \"analytics.filters.clear\": \"Limpar\",\n \"analytics.filters.general\": \"Geral\",\n \"analytics.filters.selected\": \"{{count}} selecionados\",\n \"analytics.filters.remove\": \"Remover filtro\",\n \"analytics.refresh\": \"Atualizar\",\n \"assistant.askAI\": \"Criar com IA\",\n // Tasks moved from plugin-tasks into the shell with 047, so the strings had\n // to come with it — an app without the plugin would otherwise show raw keys.\n // The plugin still registers its own copy; last one in wins and they match.\n \"tasks.drawer.title\": \"Tarefas\",\n \"tasks.drawer.subtitle\": \"Gerencie as tarefas da equipe\",\n \"tasks.quickAdd.placeholder\": \"Adicionar tarefa...\",\n \"tasks.filter.all\": \"Todas\",\n \"tasks.filter.todo\": \"A Fazer\",\n \"tasks.filter.inProgress\": \"Em Andamento\",\n \"tasks.filter.done\": \"Concluídas\",\n \"tasks.filter.mine\": \"Minhas\",\n \"tasks.group.onboarding\": \"Primeiros passos\",\n // The same words as the group header — the tag is that header travelling\n // with the row into the filtered views, where there is no header.\n \"tasks.source.onboarding\": \"Primeiros passos\",\n \"tasks.source.agent\": \"Assistente\",\n \"tasks.status.todo\": \"A Fazer\",\n \"tasks.status.in_progress\": \"Em Andamento\",\n \"tasks.status.done\": \"Concluída\",\n \"tasks.status.cancelled\": \"Cancelada\",\n \"tasks.priority.low\": \"Baixa\",\n \"tasks.priority.medium\": \"Média\",\n \"tasks.priority.high\": \"Alta\",\n \"tasks.priority.urgent\": \"Urgente\",\n \"tasks.detail.descriptionPlaceholder\": \"Adicionar descrição...\",\n \"tasks.detail.dueDate\": \"Data de Vencimento\",\n \"tasks.detail.subtasks\": \"Subtarefas\",\n \"tasks.detail.delete\": \"Excluir Tarefa\",\n \"tasks.detail.deleteConfirm\": \"Tem certeza que deseja excluir esta tarefa?\",\n \"tasks.detail.created\": \"Criada em\",\n \"tasks.detail.updated\": \"Atualizada em\",\n \"tasks.detail.chatWithAi\": \"Conversar com IA\",\n \"tasks.detail.chatWithAi.prompt\": \"Assuma esta tarefa e me ajude a resolver agora, usando suas ferramentas quando precisar:\",\n \"tasks.detail.addSubtask\": \"Adicionar subtarefa...\",\n \"tasks.detail.back\": \"Voltar à lista\",\n \"tasks.detail.title\": \"Tarefa\",\n \"tasks.summary.overdue\": \"atrasadas\",\n \"tasks.summary.dueToday\": \"vencem hoje\",\n \"tasks.empty\": \"Nenhuma tarefa ainda\",\n \"tasks.empty.description\": \"Adicione sua primeira tarefa usando o campo acima\",\n \"analytics.moveBar\": \"Mover a barra (arraste, ou setas do teclado; duplo clique volta ao lugar)\",\n}\n"]}
|
package/dist/testing/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { PluginContractError, assertConnectorContract, assertPluginManifestContract, bespokeConnectorTables } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { PluginContractError, assertConnectorContract, assertPluginManifestContract, bespokeConnectorTables } from '../chunk-ZGAGCTQM.js';
|
|
2
|
+
import '../chunk-7M4NWLIT.js';
|
|
3
|
+
import '../chunk-3TRR2YLM.js';
|
|
4
|
+
import '../chunk-HVWFFFKN.js';
|
|
5
|
+
import '../chunk-6TVRNKWW.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAgB/C,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAUD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAsN3E;AAiID,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAK7D;AAYD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAiBlE"}
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -52,5 +52,17 @@ export interface AuthAdapter {
|
|
|
52
52
|
resendConfirmation?(email: string, options?: {
|
|
53
53
|
redirectTo?: string;
|
|
54
54
|
}): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Adopt a session a sibling application handed over.
|
|
57
|
+
*
|
|
58
|
+
* The Fayz products share one Supabase project but not one origin, so the
|
|
59
|
+
* same account still has a separate session per app. The switcher carries the
|
|
60
|
+
* tokens across in the URL fragment and this is where they are redeemed —
|
|
61
|
+
* through the provider's own `setSession`, so tokens that do not verify are
|
|
62
|
+
* refused by the provider rather than trusted for looking well-formed.
|
|
63
|
+
* Returns null when they do not, and the caller falls through to the login
|
|
64
|
+
* screen. Optional: adapters with no notion of a portable session (mock) omit it.
|
|
65
|
+
*/
|
|
66
|
+
adoptSession?(accessToken: string, refreshToken: string): Promise<AuthSession | null>;
|
|
55
67
|
}
|
|
56
68
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/types/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;oCAEgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACtE,iBAAiB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC9D,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1D;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5G;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;oCAEgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACtE,iBAAiB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC9D,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1D;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5G;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpF;;;;;;;;;;OAUG;IACH,YAAY,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CACtF"}
|
package/dist/types/crud.d.ts
CHANGED
|
@@ -12,6 +12,12 @@ export interface FieldRelation {
|
|
|
12
12
|
valueField?: string;
|
|
13
13
|
/** Column shown as the option label. Default 'name'. */
|
|
14
14
|
labelField?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Rótulo composto por mais de uma coluna, juntadas por espaço — e ordenado
|
|
17
|
+
* pela PRIMEIRA. Um plano de contas se lê pelo código ("10.1 EQUIPAMENTOS"),
|
|
18
|
+
* e ordenar 88 contas por nome embaralha a árvore. Vence `labelField`.
|
|
19
|
+
*/
|
|
20
|
+
labelFields?: string[];
|
|
15
21
|
/** Scope options to the active tenant via tenant_id. Default true. */
|
|
16
22
|
tenantScoped?: boolean;
|
|
17
23
|
/** Schema the table lives in (rarely needed now core is in public). Default public. */
|
|
@@ -118,6 +124,30 @@ export interface DetailTab {
|
|
|
118
124
|
* financial plugin enabling a per-person statement tab). Hidden when no widget. */
|
|
119
125
|
requiresWidgetZone?: string;
|
|
120
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* A child list shown as a tab on the parent's detail page.
|
|
129
|
+
*
|
|
130
|
+
* The one-to-many that a foreign key already states, said once so the screen
|
|
131
|
+
* can be built from it: a Zone owns Tables, a Pipeline owns Stages. Without
|
|
132
|
+
* this, "the tables in this zone" is a bespoke tab component per pairing, and
|
|
133
|
+
* every app rewrites the same filtered list.
|
|
134
|
+
*
|
|
135
|
+
* The child list is the SAME CRUD as the standalone one — same entity, same
|
|
136
|
+
* store, same create/edit — only filtered by `foreignKey` and embedded. A row
|
|
137
|
+
* created from the tab is stamped with the parent id, so the tab you opened it
|
|
138
|
+
* from is the tab it appears in.
|
|
139
|
+
*/
|
|
140
|
+
export interface RelatedList {
|
|
141
|
+
/** Tab id. Defaults to the child entity's plural name, lowercased. */
|
|
142
|
+
id?: string;
|
|
143
|
+
/** Tab label. Defaults to the child entity's `namePlural`. */
|
|
144
|
+
label?: string;
|
|
145
|
+
icon?: string;
|
|
146
|
+
/** The child entity, exactly as it would be declared on its own. */
|
|
147
|
+
entity: EntityDef<any>;
|
|
148
|
+
/** The child field holding the parent's id (e.g. 'zoneId'). */
|
|
149
|
+
foreignKey: string;
|
|
150
|
+
}
|
|
121
151
|
export type FormLayout = 'person' | 'product' | 'service' | 'location' | 'order' | 'subject' | 'generic';
|
|
122
152
|
/**
|
|
123
153
|
* What an entity's READ path does when the network is unreachable.
|
|
@@ -183,6 +213,8 @@ export interface EntityDef<T = Record<string, unknown>> {
|
|
|
183
213
|
*/
|
|
184
214
|
formColumns?: 1 | 2;
|
|
185
215
|
detailTabs?: DetailTab[];
|
|
216
|
+
/** One-to-many children rendered as tabs on this entity's detail page. */
|
|
217
|
+
relatedLists?: RelatedList[];
|
|
186
218
|
data?: {
|
|
187
219
|
table: string;
|
|
188
220
|
schema?: string;
|
|
@@ -193,6 +225,16 @@ export interface EntityDef<T = Record<string, unknown>> {
|
|
|
193
225
|
columnMap?: Record<string, string>;
|
|
194
226
|
archetype?: EntityArchetype;
|
|
195
227
|
archetypeKind?: string;
|
|
228
|
+
/**
|
|
229
|
+
* Campos desta entidade que moram dentro de `custom_fields` (jsonb) em vez
|
|
230
|
+
* de numa coluna própria.
|
|
231
|
+
*
|
|
232
|
+
* É o que permite a uma entidade de pessoa PURA (`table: 'people'`, sem
|
|
233
|
+
* tabela de extensão) manter campos que o arquétipo não tem. Sem declarar
|
|
234
|
+
* aqui, esses campos são descartados em SILÊNCIO ao salvar — vão para o
|
|
235
|
+
* balde da tabela de extensão, que numa entidade pura não existe.
|
|
236
|
+
*/
|
|
237
|
+
customFields?: string[];
|
|
196
238
|
filters?: Record<string, string>;
|
|
197
239
|
defaults?: Record<string, unknown>;
|
|
198
240
|
cacheTTL?: number;
|
package/dist/types/crud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/types/crud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/types/crud.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,10 +103,35 @@ export interface OnboardingStepDef {
|
|
|
103
103
|
icon?: string;
|
|
104
104
|
/** Where the step's action goes. Never stored. */
|
|
105
105
|
route?: string;
|
|
106
|
+
/**
|
|
107
|
+
* The step IS its screen — drop it entirely when the app cannot serve the
|
|
108
|
+
* route, instead of keeping a line with nowhere to go.
|
|
109
|
+
*
|
|
110
|
+
* "Publique seu site" in a product with no site is not a step somebody can
|
|
111
|
+
* do; it is a permanently open row holding the checklist at 4 de 5 forever.
|
|
112
|
+
* Off by default, because most steps still say something useful as plain
|
|
113
|
+
* text (`hasRoute` just strips the link).
|
|
114
|
+
*/
|
|
115
|
+
requiresRoute?: boolean;
|
|
106
116
|
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
107
117
|
dueInDays?: number;
|
|
108
118
|
/** Only offered for these verticals. Absent means every vertical. */
|
|
109
119
|
verticals?: string[];
|
|
120
|
+
/**
|
|
121
|
+
* Only offered when the SETUP ANSWERS say so.
|
|
122
|
+
*
|
|
123
|
+
* The vertical is a coarse filter — every retailer gets the retailer's steps.
|
|
124
|
+
* But the wizard already asked what they sell, where they sell it, how they
|
|
125
|
+
* get paid and how it ships, and a step that ignores all of that is how a
|
|
126
|
+
* digital-only shop gets told to set up a shipping carrier. The answers come
|
|
127
|
+
* in raw, with their option ids intact (`retail.channels: ['marketplace']`),
|
|
128
|
+
* because those are stable where the labels are not.
|
|
129
|
+
*
|
|
130
|
+
* Called with `{}` for a workspace that predates the questionnaire, so the
|
|
131
|
+
* safe shape is "hide when the answers RULE IT OUT" — never "show only when
|
|
132
|
+
* they rule it in", which would hand every older tenant an empty checklist.
|
|
133
|
+
*/
|
|
134
|
+
appliesWhen?: (answers: Record<string, unknown>) => boolean;
|
|
110
135
|
/**
|
|
111
136
|
* A step from the platform's base checklist this one SUPERSEDES, by key.
|
|
112
137
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/types/onboarding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/types/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc;AACxB,6BAA6B;AAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACjC,0DAA0D;GACxD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC/B;;;;GAIG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AACxF,6EAA6E;GAC3E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAClC;;;;;;;;;GASG;GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC7D;AACH;;;;GAIG;GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAC3D;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;IACzB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/B;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAC3B;AAED,uDAAuD;AACvD,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACxD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB"}
|
package/dist/types/plugins.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { AnalyticsCardDef, ResolvedAnalyticsCard } from './analytics';
|
|
|
6
6
|
import type { FeatureDeclaration, PermissionAction } from './permissions';
|
|
7
7
|
import type { LimitDeclaration } from './entitlements';
|
|
8
8
|
import type { OnboardingProgramDef, ResolvedOnboardingProgram } from './onboarding';
|
|
9
|
+
import type { SetupGuideDef, ResolvedSetupGuide } from './setup-guide';
|
|
9
10
|
import type { ConnectorDefinition } from '../integrations';
|
|
10
11
|
import type { DataProvider } from '../data/types';
|
|
11
12
|
export type VerticalId = 'beauty' | 'food' | 'health' | 'services' | 'retail' | 'education' | (string & {});
|
|
@@ -78,6 +79,17 @@ export interface PluginSettingsTab {
|
|
|
78
79
|
order?: number;
|
|
79
80
|
permission?: PluginPermissionRequirement;
|
|
80
81
|
}
|
|
82
|
+
/** A control a plugin mounts in the shell header (see `headerControls`). */
|
|
83
|
+
export interface PluginHeaderControlDef {
|
|
84
|
+
id: string;
|
|
85
|
+
component: React.ComponentType<unknown>;
|
|
86
|
+
/** Lower sorts first; notifications sit at 100. */
|
|
87
|
+
order?: number;
|
|
88
|
+
permission?: PluginPermissionRequirement;
|
|
89
|
+
}
|
|
90
|
+
export interface ResolvedHeaderControl extends PluginHeaderControlDef {
|
|
91
|
+
pluginId: string;
|
|
92
|
+
}
|
|
81
93
|
export interface PluginRouteDefinition {
|
|
82
94
|
path: string;
|
|
83
95
|
/** Component or a registered component id — exactly one is required. */
|
|
@@ -88,6 +100,12 @@ export interface PluginRouteDefinition {
|
|
|
88
100
|
permission?: PluginPermissionRequirement;
|
|
89
101
|
/** Render edge-to-edge with no page padding/animation wrapper (chat, kanban, canvas). */
|
|
90
102
|
fullBleed?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* The page draws its own top bar, so the shell contributes none on desktop.
|
|
105
|
+
* For a canvas (a site preview, a map) that comes with its own window chrome.
|
|
106
|
+
* Implies fullBleed.
|
|
107
|
+
*/
|
|
108
|
+
immersive?: boolean;
|
|
91
109
|
/** Archetypes this page displays (`archetype` or `archetype:kind`, e.g.
|
|
92
110
|
* `'schedule:appointment'`). A CRUD page claims its own; a hand-built page
|
|
93
111
|
* must declare it or records it owns resolve to no route. */
|
|
@@ -557,6 +575,19 @@ export interface PluginManifest {
|
|
|
557
575
|
widgets?: PluginWidgetDefinition[];
|
|
558
576
|
/** Dashboard widgets this plugin contributes to the dashboard registry. */
|
|
559
577
|
dashboardWidgets?: DashboardWidgetDef[];
|
|
578
|
+
/**
|
|
579
|
+
* Controls this plugin puts in the SHELL header, beside notifications.
|
|
580
|
+
*
|
|
581
|
+
* For the thing an operator reaches for from any screen, not from the module
|
|
582
|
+
* that owns it. The caixa is the case that forced it: a receptionist opens her
|
|
583
|
+
* drawer once, at the counter, and then charges people from the agenda, the
|
|
584
|
+
* check-in queue and the invoice — three screens that are not the Financeiro.
|
|
585
|
+
* Nesting the control inside the module meant leaving the counter to reach it.
|
|
586
|
+
*
|
|
587
|
+
* A control is a mounted COMPONENT, not an action: it carries live state (an
|
|
588
|
+
* open session shows a dot) and opens its own dialog in place.
|
|
589
|
+
*/
|
|
590
|
+
headerControls?: PluginHeaderControlDef[];
|
|
560
591
|
/**
|
|
561
592
|
* Analytics cards this plugin contributes. Each one is simultaneously an
|
|
562
593
|
* overview tile, a row in the report list and a full-page report — see
|
|
@@ -629,6 +660,15 @@ export interface PluginManifest {
|
|
|
629
660
|
/** Backend prerequisites the plugin needs; surfaced by `fayz doctor`. */
|
|
630
661
|
diagnostics?: PluginDiagnostic[];
|
|
631
662
|
onboarding?: PluginOnboarding;
|
|
663
|
+
/**
|
|
664
|
+
* How each of this plugin's features gets STARTED — see {@link SetupGuideDef}.
|
|
665
|
+
*
|
|
666
|
+
* Separate from `onboarding`, and the line between them is what a new tenant
|
|
667
|
+
* is asked to do on day one (the program) versus what anybody can ask about
|
|
668
|
+
* on any day ("como eu começo a emitir nota?"). A guide outlives the
|
|
669
|
+
* checklist; the checklist is a handful of guides with a deadline.
|
|
670
|
+
*/
|
|
671
|
+
setupGuides?: SetupGuideDef[];
|
|
632
672
|
locales?: Record<string, Record<string, string>>;
|
|
633
673
|
}
|
|
634
674
|
export interface TenantPluginBinding {
|
|
@@ -671,6 +711,7 @@ export interface PluginRuntime {
|
|
|
671
711
|
settingsTabs: PluginSettingsTab[];
|
|
672
712
|
widgets: ResolvedPluginWidget[];
|
|
673
713
|
dashboardWidgets: ResolvedDashboardWidget[];
|
|
714
|
+
headerControls: ResolvedHeaderControl[];
|
|
674
715
|
analyticsCards: ResolvedAnalyticsCard[];
|
|
675
716
|
/** Events declared by ACTIVE plugins. A disabled module emits nothing, so its
|
|
676
717
|
* facts drop off the list too. */
|
|
@@ -687,5 +728,7 @@ export interface PluginRuntime {
|
|
|
687
728
|
/** Activation programs declared by ACTIVE plugins, ordered. A disabled module
|
|
688
729
|
* asks nothing of a new tenant, so its steps drop off the checklist too. */
|
|
689
730
|
onboardingPrograms: ResolvedOnboardingProgram[];
|
|
731
|
+
/** Setup guides from ACTIVE plugins. What the assistant may offer to set up. */
|
|
732
|
+
setupGuides: ResolvedSetupGuide[];
|
|
690
733
|
}
|
|
691
734
|
//# sourceMappingURL=plugins.d.ts.map
|