Bea.* — helpers úteis
Funções auxiliares disponíveis dentro do iframe do app. Importação não é necessária — Bea é global.
Hooks de estado
// Persiste em URL (?key=value) — bom pra filtros que devem entrar no histórico
const [filtro, setFiltro] = Bea.useUrlState("filtro", "todos");
// Persiste em localStorage — bom pra preferências do user
const [tema, setTema] = Bea.useLocalState("meu-app-tema", "dark");
Formatação BR
Bea.fmt.brl(1234.56); // "R$ 1.234,56"
Bea.fmt.brlCents(123456); // "R$ 1.234,56" (entrada em centavos)
Bea.fmt.percent(0.12345); // "12,35%"
Bea.fmt.cnpj("11222333000181"); // "11.222.333/0001-81"
Bea.fmt.cpf("12345678901"); // "123.456.789-01"
Bea.fmt.cep("01310100"); // "01310-100"
Bea.fmt.fone("11987654321"); // "(11) 98765-4321"
Bea.fmt.date(new Date()); // "08/05/2026"
Bea.fmt.dateTime(new Date()); // "08/05/2026 14:32"
Validação BR
Bea.validate.cpf("12345678901"); // boolean
Bea.validate.cnpj("11222333000181"); // boolean
Bea.validate.email("a@b.com"); // boolean
Bea.validate.cep("01310100"); // boolean
IA dentro do app
// completion textual
const resposta = await Bea.ai.complete({
prompt: "Resume essa nota fiscal: " + texto,
maxTokens: 300
});
// classificação rápida (yes/no, ou opções enum)
const cat = await Bea.ai.classify({
text: descricao,
options: ["receita", "despesa", "transferencia"]
});
Custos do Bea.ai
Bea.ai.complete e Bea.ai.classify chamam Claude internamente. Cada chamada conta no cap mensal do user que está usando o app. Se o app tem ML em loop (tipo classificar 10000 transações em uma vez), considere implementar com cache ou pedir confirmação antes.
Helpers de UX
// Toast (precisa BeaUI.ToastProvider envolvendo o app)
const { toast } = BeaUI.useToast();
toast("Salvo!", "success");
toast("Erro: " + e.message, "error");
// Confirm bloqueante
const ok = await Bea.confirm("Excluir este cliente?");
if (ok) { /* ... */ }
// Copy to clipboard
await Bea.copy("texto"); // boolean (true se funcionou)
Caminho de debug
Não tem console.log dentro do iframe?
Tem sim — abra DevTools antes de carregar o app. O console do iframe mostra junto com os logs da plataforma. Filtra por "iframe" no DevTools se quiser ver só o do seu app.