Bea.* — helpers úteis
A plataforma expõe helpers prontos pra reutilizar — não reinvente a roda.
Formatadores brasileiros
Bea.fmt.brl(1234.56) // "R$ 1.234,56"
Bea.fmt.date("2026-01-15") // "15/01/2026"
Bea.fmt.dateTime(new Date()) // "30/04/2026 13:25"
Bea.fmt.timeAgo("2026-04-29") // "ontem"
Bea.fmt.duration(3661000) // "1h 1m 1s"
Parser
Bea.parse.brl("R$ 1.234,50") // 1234.5
Validadores
Bea.validate.cpf("123.456.789-09") // true/false
Bea.validate.cnpj("12.345.678/0001-90") // true/false
Máscaras
<input
onChange={(e) => setCpf(Bea.mask.cpf(e.target.value))}
/>
// "12345678900" → "123.456.789-00"
Bea.mask.cnpj("12345678000190") // "12.345.678/0001-90"
Bea.mask.phone("11987654321") // "(11) 98765-4321"
Bea.mask.cep("01310100") // "01310-100"
State persistido
// localStorage por device — mantém entre refresh
const [draft, setDraft] = Bea.useLocalState("client_draft", {});
// querystring — compartilhar URL com filtro/aba ativa
const [tab, setTab] = Bea.useUrlState("tab", "dashboard");
const doc = new jsPDF();
doc.text("Olá", 20, 20);
Bea.pdf.download(doc, "relatorio.pdf");
// Ou
Bea.pdf.openInNewTab(doc);
Search (busca semântica em texto)
const matches = Bea.search.text(rows, "termo", ["nome", "descricao"]);
// Retorna rows ordenadas por relevância
Realtime
// Escutar canal
Bea.realtime.subscribe("chat-room1", (data) => {
console.log("nova mensagem:", data);
});
// Publicar
Bea.realtime.publish("chat-room1", { user: "Ana", msg: "Oi" });
Files (upload)
const url = await Bea.files.upload(file); // retorna URL pra usar como <img src>