app library
API de mais alto nível do Flenx: um main.server.dart declarativo.
Cada rota é definida UMA vez (FlenxRoute = SEO + componente juntos). O app
só lista as rotas e chama FlenxApp.run(...). Pensado para iniciantes.
Importe package:flenx/app.dart (lado servidor).
Classes
- AdPlacement
- Uma regra de anúncio: qual unidade (slot) e ONDE ela aparece (por caminho e/ou por categoria). Listas vazias = sem restrição naquele eixo.
- AdsConfig
-
Configuração central de anúncios. clientId é o
ca-pub-...do Google AdSense. Defina uma vez e passe aoFlenxApp.run(ads: ...)— o loader vai no<head>. Onde mostrar é controlado pelas placements (por página/categoria). - AdSlot
-
Renderiza um anúncio: uma unidade do AdSense (
ins.adsbygoogle+ push) ou um HTML custom. Precisa do loader do AdSense no<head>(oFlenxApp.run(ads: ...)injeta automaticamente). - ApiAction
- Ação declarativa executada por um endpoint. O runtime Dart e o gerador PHP sabem executar cada uma. Ações de listagem são sempre paginadas.
- ApiConfig
- Configuração base aplicada a todas as chamadas (middlewares padrão): CORS, limites de paginação. Pensada para o usuário não precisar configurar.
- ApiEndpoint
- Definição declarativa de um endpoint de API. A mesma definição vira um handler Dart (runtime) ou um arquivo PHP (gerado).
- ApiResponse
-
Envelope de retorno padrão de toda chamada de API do Flenx.
Mesma forma em sucesso e erro, com
metade paginação quando aplicável. - AppBinding
- Main class that provide services (also known as "bindings").
- AsaasGateway
- Gateway do Asaas (link de pagamento — Pix/cartão/boleto).
-
AsyncSnapshot<
T> - Immutable representation of the most recent interaction with an asynchronous computation.
- BingUet
- Microsoft Advertising (Bing UET). Bom para decisores B2B (Edge/Outlook).
- Blog
-
Facade do blog — ponto único de uso. Carrega os
.md, monta a taxonomia, expõe a fonte de rotas para o SEO e resolve qualquer caminho/blog*no componente a ser renderizado. Cria um post = soltar um arquivo markdown. - BlogPost
- Um post de blog carregado de um arquivo markdown (frontmatter + corpo).
- BlogPostMapper
-
Converte BlogPost de/para uma linha de banco (
Map). É o equivalente do frontmatter para a fonte de banco: define como o post é persistido nas colunas e como volta a virar objeto. Robusto a valores em texto (o runtime da API serializa tudo como String). - BlogRepository
-
Carrega posts de blog de uma pasta de arquivos
.mdno filesystem. - BlogRouteSource
- Converte o blog (posts + categorias + tags + índice) em RouteMetas, integrando o conteúdo markdown à camada SEO: cada item gera sozinho sua entrada no sitemap, no llms.txt e seu JSON-LD.
- BlogScaffold
-
Cria posts de blog já com o frontmatter padrão. A geração do conteúdo
(
markdown) é pura (testável);creategrava o arquivo. - BlogSource
-
Fonte de posts do blog. Abstrai DE ONDE os posts vêm — arquivos
.md, banco de dados, API externa, etc. O Blog agrega uma ou mais fontes, então um mesmo site pode ter posts em Markdown e posts no banco. - Breadcrumb
-
Item de trilha de navegação, usado para gerar JSON-LD
BreadcrumbList(rich result de breadcrumb no SERP). O último item costuma vir sempath. - BuildableElement
- An Element that has a build method.
- BuildContext
- The BuildContext supplied to a Components build() method.
- Builder
- A stateless utility component whose build method uses its builder callback to create the component's child.
- BuildOwner
-
CachingIterable<
E> - A lazy caching version of Iterable.
- Category
-
Categoria de blog — hierárquica como no WordPress (ex.:
Tutoriais/Flutter). O segments guarda os nomes; slugPath os slugs correspondentes. - ChangeNotifier
- A class that can be extended or mixed in that provides a change notification API using VoidCallback for notifications.
- ChannelResult
- Resultado do envio por um canal.
- ClientAnnotation
- Use with client to annotate a client component.
- CommercialDoc
-
Um documento comercial exibido na Central (
FlenxDocHub) e servido em/{base}/{slug}— proposta, cartão de visita, tabela de preços, etc. - Component
- Describes the configuration for an Element.
- CompositeBlogSource
-
Agrega várias BlogSource em uma só (Markdown + banco + ...). Carrega todas
em paralelo, deduplica por
slug(a PRIMEIRA fonte vence — defina a ordem de prioridade ao montar) e ordena do mais novo para o mais antigo. - CrawlerRule
-
Regra de um grupo
User-agentno robots.txt. - CustomPixel
- Provedor genérico: cole o snippet do fornecedor e pronto — cobre Taboola, Outbrain, Pinterest, TikTok, Hotjar, Clarity ou qualquer pixel futuro sem alterar a lib.
- DatabaseBlogSource
-
Fonte de posts no banco de dados: lê de uma tabela (padrão
blog_posts) via DbExecutor. Permite criar/editar posts pela API/admin sem tocar em arquivos. Funciona com qualquer executor (em memória, JSONL, MySQL). - DbColumn
-
Coluna de uma tabela. A "notação do banco" do model: tipo, nulo, único,
chave primária e chave estrangeira (references, no formato
'tabela.coluna') para relacionar tabelas. - DbConfig
-
Configuração de conexão ao banco — lida do ambiente (
.env), só no servidor. Nunca embuta credenciais no código nem no cliente. - DbExecutor
-
Abstração de acesso ao banco usada pelo runtime Dart. Implementações:
InMemoryDbExecutor (testes/dev),
JsonlDbExecutor(arquivo) e, em produção, umMySqlExecutor(mysql_client). O alvo PHP gera PDO equivalente. - DbModel
- Definição declarativa de uma tabela: colunas (com notação de banco) e relações. É a fonte para gerar migration, queries e código Dart/PHP.
- DbRegistry
-
Registro do backend de banco. Você escolhe por
DB_PROVIDER(supabase,firebase,rest,jsonl...) e adiciona as credenciais — mesma ideia do pagamento. Provedores novos entram comDbRegistry.register('x', ...). - DbRelation
-
Relação entre dois models — usada para gerar joins/includes padronizados.
Ex.: um pedido
belongsTocliente; um clientehasManypedidos. - DecoderAnnotation
- Use with decoder to annotate an decoder function for a custom model.
- DeleteById
-
Remove um registro por
id. - DividerBlock
- Divisor temático entre seções do post (linha horizontal).
- Document
- DomComponent
- Represents a html element in the DOM
- DomElement
-
DynamicRouteSource<
T> -
Esquema GENÉRICO para rotas dinâmicas (ex.:
/blog/:slug,/produtos/:id) gerarem sitemap/llms automaticamente. - Element
- An instantiation of a Component at a particular location in the tree.
- ElementSlot
- EmbedBlock
- Conteúdo incorporado (vídeo do YouTube, tweet, iframe). O html é inserido como bloco — use para players e widgets que um post de portal costuma ter.
- EncoderAnnotation
- Use with encoder to annotate an encoder function for a custom model.
-
Factory<
T> - A factory interface that also reports the type of the created objects.
- FaqItem
-
Par pergunta/resposta usado para gerar JSON-LD
FAQPage(forte em AEO/GEO: motores de resposta extraem perguntas estruturadas diretamente). - FcmPushChannel
-
Canal de push via Firebase Cloud Messaging (FCM). Ativo quando há
FCM_SERVER_KEYno.env. Envia para odeviceTokenda mensagem. - Feature
- Um recurso exibido na grade de features da landing (ícone + título + texto).
- FeaturesSection
- Seção de recursos — grade de cards (ícone, título, descrição), montada com o kit Dart (sem HTML/CSS). Textos e features são personalizáveis.
- Field
- Campo de entrada de um endpoint, com validação declarativa. A mesma regra é aplicada no alvo Dart (runtime) e gerada no PHP.
- FileLeadStore
-
Armazenamento simples em arquivo (
content/leads.jsonl), uma linha por lead. - FindById
-
Busca um registro por
id(parâmetroid). - FirebasePush
-
Push web via Firebase Cloud Messaging (FCM). config é o objeto JS de
configuração do Firebase (ex.:
"{apiKey:'..',projectId:'..',appId:'..'}"), vapidKey é a chave Web Push do projeto e tokenEndpoint (opcional) recebe o token via POST para o backend salvar. Requer o workerfirebase-messaging-sw.jsna raiz pública do site (com a mesma config). Sem consent mode → pede permissão e registra o token só após o aceite. - FirestoreDbExecutor
-
DbExecutor que persiste no Firebase Firestore (via REST). Mesma
interface dos demais. Como o Firestore é NoSQL, há um pequeno mapeamento:
cada documento vira um
Mapcom a chaveid(o id do documento) somada aos campos.insertdevolve o id como int quando numérico (senão 0 — use oidretornado nas listagens). - FlenxAccordion
- Lista acordeão — itens expansíveis com animação suave (CSS puro, sem JS).
- FlenxAccordionItem
- Um item do FlenxAccordion: título clicável + conteúdo expansível.
- FlenxAds
-
Renderiza todos os anúncios configurados para um contexto. É só dropar
onde quiser exibir:
FlenxAds(ads, path: ctx.path)ouFlenxAds(ads, category: 'Tecnologia', position: AdPosition.top). - FlenxAlert
- Caixa de alerta com ícone, título opcional e mensagem. Use para validações, avisos e confirmações — sem escrever HTML/CSS.
- FlenxAnimated
- Envolve qualquer componente com uma animação — scroll-reveal ou loop.
- FlenxApi
- Runtime do alvo Dart: transforma a lista declarativa de ApiEndpoint em rotas shelf, já com os middlewares padrão (JSON, CORS, validação, tratamento de erro) e o envelope/paginação padronizados.
- FlenxApp
- Ponto de entrada declarativo do site Flenx.
- FlenxAudioPlayer
- Player de áudio — reproduz arquivos locais ou streams (rádio online). Play/pause controlado por JS; sem bibliotecas externas.
- FlenxAudioPlayerFloat
- Player de áudio flutuante — barra fixa no bottom da tela, persiste durante o scroll. Ideal para rádio online ou trilha sonora do site.
- FlenxBanner
- Barra de anúncio no topo da página — promoções, avisos de manutenção, novidades. Exibe message e um action opcional. Sem HTML/CSS.
- FlenxBenefit
- Um benefício exibido na faixa acima do rodapé.
- FlenxBenefitsBar
- Faixa de benefícios (frete, parcelamento, troca...) acima do rodapé.
- FlenxBlogLayout
- Moldura pronta para as páginas de blog: header + rodapé + WhatsApp do site (SiteLayout) já com o CSS do blog injetado. Genérica e editável — passe a marca, os menus e o rodapé do seu site.
- FlenxBrandItem
- Um item da tira de marcas/departamentos.
- FlenxBrandStrip
- Tira de marcas/departamentos com botão "Confira".
- FlenxBusinessCard
- Cartão de visita imprimível (frente + verso), 85×55 mm — pronto para gráfica. Tudo em Dart: logo, nome, cargo, linhas de contato, tagline e cores.
- FlenxButton
-
Botão/link — como um
ElevatedButton/TextButton. Aponta para href. Tem hover predefinido (clareia + sobe levemente) ativado por padrão; é só um parâmetro Dart (hover) — você nunca escreve CSS. O componente injeta o:hoverscoped por baixo (inline não faz:hover). - FlenxCard
-
Cartão — um contêiner com fundo, borda e cantos arredondados (como um
Card/Containerdo Flutter). Estilo por parâmetros; nada de CSS. - FlenxChecklist
- Lista densa de itens com marcador — para apresentar MUITOS recursos, diferenciais ou dores sem virar um grid de cards genérico. Marcador de "check" (positivo) ou "×" (negativo, ex.: seção "o desafio").
- FlenxChecklistItem
- Item de uma FlenxChecklist: título e (opcional) descrição curta.
- FlenxCodeCard
- Cartão de código (estilo "janela de editor") — você passa só o texto do código; o componente desenha a janela. Nada de HTML/CSS da sua parte.
- FlenxColumn
-
Coluna (vertical) — como o
Columndo Flutter. gap é o espaço entre os filhos (px). Gera flexbox por baixo; você não escreve CSS. - FlenxCompare
- Tabela comparativa "nós x eles" — quebra a objeção de preço/valor mostrando, de forma escaneável, o que muda entre a sua marca e a alternativa comum. Componente só-Dart (o CSS fica encapsulado aqui, sem HTML/CSS no site).
- FlenxCompareRow
- Linha de um FlenxCompare: o recurso e se cada lado o oferece.
- FlenxConsent
-
Banner de consentimento (LGPD/cookies). Genérico e themeável: cores via
tokens (
--surface/--ink/--border/--primary), textos configuráveis. Fica escondido para quem já decidiu; ao aceitar/recusar chamaflenx.grantConsent()/flenx.denyConsent()(do FlenxTracking). - FlenxCta
- Chamada para ação (CTA): título, subtítulo e um botão, num cartão centrado.
- FlenxDocBar
-
Barra fixa no topo de um documento: voltar à Central + imprimir.
Não aparece na impressão. O botão dispara
window.print(). - FlenxDocCover
- Capa de documento: imagem de fundo (cover) + gradiente + conteúdo alinhado na base. Na tela ocupa quase a altura toda; na impressão ocupa uma página A4 inteira e força a quebra de página em seguida (o resto começa na página 2).
- FlenxDocHub
- Central de Documentos Comerciais: lista os docs em cards, com filtro por tipo, e links para abrir/imprimir cada um. Servida em basePath.
- FlenxDocPage
- Página de um documento comercial: barra (voltar + imprimir) + invólucro de impressão conforme CommercialDoc.format + o conteúdo do documento.
- FlenxEvent
-
Nomes de evento padrão (compatíveis com Meta Pixel e GA4) e helper para
disparar
flenx.tracka partir de qualquer componente (onclick/onsubmit). - FlenxFaq
-
Seção de FAQ visível (AEO) — perguntas/respostas em
<details>nativo, sem JS. Reusa o model FaqItem. Para o rich result FAQPage, passe os MESMOS itens emRouteMeta.faqs(o schema é emitido no<head>pela lib). - FlenxFeatureSpotlight
- Seção "spotlight": um texto (eyebrow + título + descrição + bullets) ao lado de uma imagem/screenshot com moldura. Alterna o lado com imageLeft. Responsivo: em telas estreitas vira uma coluna (imagem embaixo).
- FlenxFloatingButton
- Botão de ação flutuante e fixo (canto da tela) — para WhatsApp ou qualquer chat/ação (Telegram, Messenger, chat próprio, telefone…). Só Dart.
- Rodapé pronto: marca + frase + colunas de links + linha de copyright. Tudo por parâmetros (Dart); o componente desenha o HTML por baixo.
- Uma coluna de links do rodapé.
- FlenxFormField
- Campo de um FlenxLeadForm.
- FlenxFullscreen
- Contêiner que ocupa a tela inteira (100% × 100vh, sem margem) — usado para hospedar uma ilha Flutter em tela cheia (ex.: o painel admin).
- FlenxGrid
-
Grade responsiva — coloca os filhos lado a lado e quebra a linha sozinha
quando a tela estreita (cada item tem largura mínima minItemWidth).
Substitui aqueles
div(flex: ...)na mão: você só passa os componentes. - FlenxHeading
-
Título — como um
Textde destaque. level 1–3 vira<h1>..<h3>(bom para SEO); o tamanho default segue o nível, mas pode ser sobrescrito com size. - FlenxHero
- Hero pronto da landing: olho (eyebrow), título, subtítulo, botões (actions) e um conteúdo opcional à direita (aside, ex.: FlenxCodeCard). Tudo por parâmetros — você não escreve HTML/CSS.
- FlenxHeroBanner
- Banner principal (hero) da loja — eyebrow, título, subtítulo, preço de chamada e botão. Setas e indicadores são decorativos.
- FlenxHeroCarousel
- Hero em carrossel: vários slides com imagem de fundo que trocam automaticamente (fade), com indicadores. Cada slide tem eyebrow, título, subtítulo, preço de chamada e botão. Só Dart — o HTML/JS fica aqui na lib.
- FlenxHeroCover
- Hero de tela cheia com imagem de fundo (com zoom Ken Burns), logo opcional flutuando acima do título e conteúdo com animação de entrada. Só Dart — o CSS/keyframes vão embutidos no próprio componente.
- FlenxHeroSlide
- Um slide do hero/carrossel da loja.
- FlenxHeroSplit
- Hero em duas colunas: texto à esquerda, imagem à direita. No mobile a imagem se converte em fundo desfocado atrás do texto.
- FlenxImage
-
Imagem — como o
Imagedo Flutter. src é a URL/caminho. Estilo por parâmetros; nada de CSS. - FlenxInsets
-
Espaçamento (padding/margin) no estilo
EdgeInsetsdo Flutter, mas puro-Dart — não depende dedart:ui(que não roda na geração estática). - FlenxLeadForm
- Formulário de captura de leads configurável, só-Dart (o CSS/JS fica encapsulado aqui — nada de HTML no site). Envia por mailto compondo o corpo com todos os campos (sem back-end). Renderize dentro de um hero/section.
- FlenxLottie
-
Animação Lottie — carrega um arquivo
.jsonvia lottie-web. O runtime JS é carregado do CDN automaticamente (uma vez por página). - FlenxMostRead
- Bloco "Mais lidas" (estilo G1): lista numerada com números na cor primária.
- FlenxNewsCard
- Cartão de notícia (estilo G1): thumb 16:9, chapéu (editoria) e título.
- FlenxNewsHeader
-
Cabeçalho de portal de notícias (estilo G1): barra branca fixa com logo
(duas palavras) e, abaixo, a faixa de editorias com rolagem no mobile.
A cor do logo e dos hovers vem de
var(--primary)(defina no FlenxPage). - FlenxNewsHighlight
- Manchete principal (estilo G1): imagem larga 16:9, chapéu da editoria, título grande responsivo, linha-fina e meta (autor · data).
- FlenxNewsSectionTitle
-
Título de bloco/editoria (estilo G1): texto com barra à esquerda na cor
primária (
var(--primary)). - FlenxNotFound
- Página 404 pronta — usa o SiteLayout do site. Genérica e editável: textos (code, title, message) e botões (actions) são personalizáveis. O primeiro botão sai destacado; os demais, suaves.
- FlenxPage
-
Raiz de uma página do site — agrupa os blocos (header, seções, footer) e já
injeta o estilo-base do Flenx por baixo. Use no lugar daquele
div(classes: 'flenx-site')+<style>na mão:FlenxPage([SiteHeader(...), FlenxHero(...), ...]). - FlenxPalette
- Paleta central do Flenx — fonte única de cores para o site (CSS) e o painel (tema Flutter). Dart puro (sem Flutter) para poder ser usada também no servidor. Edite aqui e tudo (site claro + admin claro/escuro) acompanha.
- FlenxPdfViewer
- Visualizador de um PDF em tela cheia: opcionalmente uma barra (voltar + imprimir + baixar) por cima do PDF embutido. Usado para servir um documento comercial já gerado em PDF — imprime/baixa sempre igual, sem depender do CSS de impressão do navegador.
- FlenxPricePill
- Uma pílula de preço (ex.: "A PARTIR DE R$ 99,90").
- FlenxPricePills
- Faixa de pílulas de preço ("A PARTIR DE R$ ...").
- FlenxProductCard
- Card de produto estilo marketplace de moda: foto/ícone, selo de desconto, marca, nome, preço antigo riscado, preço, parcelas e botão comprar. Tudo por parâmetros Dart — o componente desenha o HTML por baixo.
- FlenxProductDetail
- Página de detalhe de um produto (estilo marketplace): trilha, foto grande, marca, nome, preço (antigo/atual), parcelas, selo e botões de compra + descrição. Tudo por parâmetros Dart.
- FlenxProductGrid
- Grade de produtos (catálogo) usando os mesmos cards.
- FlenxProductShelf
- Prateleira de produtos: cabeçalho colorido (com contador opcional) + carrossel horizontal de cards. Passe os cards prontos em products.
- FlenxPromo
-
Uma campanha de propaganda agendada exibida no
PromoModal. - FlenxPromoModal
-
Modal de propaganda no centro da tela, agendado por período. Passe uma lista
de
Promocom datas; o modal escolhe, no navegador, a primeira campanha ativa (dentro do período e ainda não fechada) e a exibe centralizada, com overlay, carrossel de imagens opcional, botão de fechar e ação opcional. Renderize viafloatingButtons. - FlenxRedirect
-
Página de redirecionamento (client-side) — leva o visitante a to na hora
(meta refresh +
location.replace), com um link de fallback. Ideal para links curtos/de campanha (ex.:/wpp→ WhatsApp). Só-Dart. - FlenxRive
-
Animação Rive — carrega um arquivo
.rivvia @rive-app/canvas. O runtime JS é carregado do CDN automaticamente (uma vez por página). - FlenxRoute
- Uma rota do site: o SEO (meta) e o componente (builder) juntos — uma única definição alimenta o render, as meta tags, o sitemap e o llms.txt.
- FlenxRow
-
Linha (horizontal) — como o
Rowdo Flutter. Com wraptrue, quebra para baixo quando a tela é estreita (responsivo automático, sem media query). - FlenxSection
- Seção da página — uma faixa com espaçamento vertical e um contêiner central de largura máxima (como um bloco de tela). Estilo por parâmetros; sem CSS.
- FlenxSheet
- Invólucro de "folha" branca centralizada (A4) para documentos longos — propostas, contratos, cartas. Fundo cinza na tela; imprime limpo em A4.
- FlenxSidebarLayout
- Layout de duas colunas (estilo portal): conteúdo principal largo + barra lateral. Empilha sozinho no mobile (flex-wrap), sem media query.
- FlenxSpacer
-
Espaçamento vertical fixo — como o
SizedBox(height: X)do Flutter. Use dentro deFlenxColumnquando precisar de espaçamento pontual diferente dogapuniforme da coluna. - FlenxStatItem
- Um número de destaque do FlenxStats: valor grande + rótulo curto.
- FlenxStats
- Faixa de estatísticas / prova social (números que geram confiança). Só-Dart — o CSS fica encapsulado aqui. Ideal logo abaixo do hero.
- FlenxStep
- Um passo do "como funciona".
- FlenxSteps
-
Seção de passos numerados.
FlenxSteps(title: '...', steps: [FlenxStep(...)]). - FlenxStoreShell
- Raiz de uma página de loja (marketplace de moda). Injeta o CSS do kit de e-commerce e desenha o cabeçalho (logo, CEP, busca, conta/desejos/carrinho), a barra de categorias, a faixa de cupom e o rodapé. O miolo vem em children (hero, pílulas, prateleiras, grade...). O app só passa Dart.
- FlenxStyle
-
Estilo global no padrão Flutter (nomes de propriedades tipados), convertido
em CSS pela flenx. Puro-Dart (seguro na geração estática — sem
dart:ui). - FlenxSvg
-
Componente SVG — arquivo externo (via
<img>) ou inline (string SVG direto no DOM, permitindo estilização via CSS). - FlenxText
-
Texto — como o
Textdo Flutter, com estilo por parâmetros (nada de CSS). - FlenxTracking
-
Configuração de rastreamento/omnipresença do site. Genérica: passe só os
provedores que o projeto usa (nenhum é fixo). O dispatcher
flenx.trackdistribui um evento para TODOS os provedores de uma vez. - FlenxTrustBar
-
Barra de "construído sobre / parceiros": um rótulo opcional + uma lista de
nomes em destaque. Substitui aquele bloco de
div/spanpor puro Dart:FlenxTrustBar(label: 'Construído sobre', items: ['jaspr','Flutter','Dart']). - FlenxViewEvent
-
Dispara um evento de
flenx.trackno carregamento da página — drop-in para páginas de serviço/conteúdo (ex.:ViewContent). Configurável: event e params. Sem rastreamento configurado é no-op (o runtimeflenxenfileira e respeita o consentimento). - Fragment
- A utility component that renders its children without any wrapper element.
-
FutureBuilder<
T> - Component that builds itself based on the latest snapshot of interaction with a Future.
- Ga4
- Google Analytics 4. Respeita Consent Mode → init imediato.
- GlobalKey
- A key that is unique across the entire app.
-
GlobalNodeKey<
T extends Node> -
A global key that provides access to the dom
web.Nodethat is associated with its element. - GlobalObjectKey
- A global key that takes its identity from the object used as its value.
-
GlobalObjectNodeKey<
T extends Node> - A global node key that takes its identity from the object used as its value.
-
GlobalObjectStateKey<
T extends State< StatefulComponent> > - A global state key that takes its identity from the object used as its value.
-
GlobalStateKey<
T extends State< StatefulComponent> > - A global key that provides access to the State that is associated with its element.
- GoogleAds
-
Google Ads. conversions mapeia evento →
AW-XXX/label(dispara conversão). - HeadingBlock
- Subtítulo (intertítulo) dentro do corpo. level vai de 2 a 4 — o título principal (H1) é o título do post, não um bloco.
- IframeEmbed
-
Embute uma URL qualquer (outro site, vídeo do YouTube, mapa, formulário…)
dentro do seu site, num
<iframe>responsivo e seguro. - ILeadStore
- Persiste leads capturados pelo formulário. Implementação padrão grava em um arquivo JSONL; o usuário pode trocar por banco/API/CRM facilmente.
- ImageBlock
-
Imagem com legenda e crédito (estilo G1). Renderiza como
<figure>para permitir legenda semântica — o renderer Markdown deixa HTML de bloco passar. - Import
- Define a platform specific import with auto-generated stubbing.
- InheritedComponent
- Base class for components that efficiently propagate information down the tree.
- InheritedElement
- An Element that uses an InheritedComponent as its configuration.
-
InheritedModel<
T> -
InheritedModelElement<
T> - InMemoryDbExecutor
- Implementação em memória — para testes e desenvolvimento.
- InsertInto
- Insere os campos recebidos na tabela do model.
- IRouteSource
- Contrato de uma fonte de rotas. Cada fonte sabe produzir a lista de RouteMeta que representa — estáticas ou expandidas de dados dinâmicos.
- JasprBadge
- A "Built with Jaspr" badge component.
- JsonlDbExecutor
-
Executor que persiste cada tabela como um arquivo
<dir>/<tabela>.jsonl(uma linha JSON por registro). Útil para dev/demo sem instalar MySQL. Em produção use umMySqlExecutor; o alvo PHP gera PDO/MySQL. - JsonLdGenerator
- Constrói os objetos schema.org (JSON-LD) de uma página: Organization e WebSite (site-wide) + o tipo da página (Article/FAQPage/...) + BreadcrumbList.
- JwtService
-
Serviço de token JWT (HS256) — emite e valida tokens próprios do app.
Para Firebase Auth, veja
FirebaseAuthVerifier(valida o ID token do Firebase). - Key
- A Key is an identifier for Components and Elements.
- LabeledGlobalKey
- A global key with a debugging label.
-
LabeledGlobalNodeKey<
T extends Node> - A global node key with a debugging label.
-
LabeledGlobalStateKey<
T extends State< StatefulComponent> > - A global state key with a debugging label.
- Lead
- Lead capturado pelo formulário de contato.
- LeadForm
- Formulário de captura de leads (nome, e-mail, mensagem). Envia via POST (HTML puro, sem JS) para action. Estilizado inline (sem classes CSS); campos e textos personalizáveis. Mostra agradecimento quando submitted.
- LeafElement
- LeafRenderObjectElement
- LinkedInInsight
- LinkedIn Insight Tag. conversions mapeia evento → conversion id numérico.
- ListBlock
- Lista de itens — ordenada (números) ou não (marcadores).
- Listenable
- An object that maintains a list of listeners.
- ListenableBuilder
- ListPaginated
- Lista (paginada) registros da tabela.
- LlmsFullGenerator
-
Gera o
/llms-full.txt: todo o conteúdo do site concatenado em Markdown, para ingestão completa por LLMs/agentes. - LlmsTxtGenerator
-
Gera o
/llms.txtno formato llmstxt.org: H1 com o nome, blockquote de resumo e seções H2 com listas de links curados- [título](url): resumo. - LocalKey
- A key that is not a GlobalKey.
- LoginOption
- Opção dentro do menu/botão de login expansível (ex.: "Entrar", "Criar conta", "Entrar com Google").
- MarkdownBlogSource
-
Fonte de posts em Markdown: arquivos
.mdem uma pasta do filesystem. Mantém o fluxo clássico do Flenx (criar post = soltar um.md). - MarkdownRenderer
-
Converte Markdown em HTML (usado para renderizar o corpo dos posts no SSR).
Usa o pacote oficial
markdowncom extensões GitHub-flavored. - MenuLink
- Item do menu de topo institucional. Pode ser um link simples (clicável) ou um item expansível (dropdown) quando tem children. Menu 100% customizável.
- MercadoPagoGateway
- Gateway do Mercado Pago (Checkout Pro via Preferences).
- MetaPixel
- Meta Pixel (Facebook/Instagram). Sem consent mode → init após o aceite.
- MetaTagsBuilder
-
Constrói os componentes do
<head>para uma rota: meta description, robots, canonical, Open Graph, Twitter Cards, theme-color, hreflang e os blocos JSON-LD. O<title>é tratado peloDocument(title:). - MultiChildElement
- An Element that has multiple children based on a proxy list.
- MultiChildRenderObjectElement
- Notification
- A notification that can bubble up the component tree.
- NotificationCenter
- Central de notificações: ao notificar, dispara para todos os canais ativos automaticamente. Erros de um canal não afetam os outros.
- NotificationChannel
- Um meio de notificação (push, SMS, WhatsApp, e-mail...). Implemente para adicionar canais. enabled indica se está configurado/ativo.
- NotificationMessage
- Mensagem de notificação enviada a um ou mais meios. Carrega os destinos possíveis (e-mail, telefone, device token) — cada canal usa o que precisa.
- ObserverComponent
- Base class for components that observes the build execution of it's descendants in the Component tree.
- ObserverElement
- An Element that uses an ObserverComponent as its configuration. You can override willRebuildElement, didRebuildElement and didUnmountElement to execute the required logic.
- PageMeta
-
Metadados de paginação devolvidos no envelope (
meta). - PageRequest
-
Parâmetros de paginação de uma listagem (vêm de
?pagee?perPage). - PageResult
-
Resultado da resolução de uma rota pelo app: o componente a renderizar e se
ele é uma ilha Flutter (precisa do bootstrap do Flutter no
<head>). - ParagraphBlock
- Parágrafo de texto. O conteúdo aceita Markdown inline (negrito, links...).
- PaymentGateway
- Contrato comum de gateway de pagamento. Cada provedor (Asaas, Mercado Pago) implementa esta interface; o usuário só escolhe qual e passa as credenciais.
- PaymentRegistry
-
Registro de provedores de pagamento. Já vem com Asaas e Mercado Pago;
para um provedor novo basta
PaymentRegistry.register('stripe', ...)— nenhum arquivo da lib precisa ser alterado (Open/Closed). - PaymentRequest
- Dados para criar uma cobrança/checkout, independente do provedor.
- PaymentResult
- Resultado de uma criação de checkout.
- PaymentService
-
Fachada de pagamento: o usuário só escolhe o provedor em
PAYMENT_PROVIDER(asaas|mercadopago) e adiciona a credencial correspondente no.env. - PhpApiGenerator
-
Gera o backend em PHP (PDO + MySQL) a partir da MESMA definição
declarativa usada no alvo Dart. Emite um
_flenx.php(base:.env, PDO, envelope, paginação, CORS) e um arquivo por endpoint. O usuário não escreve PHP. - PostBlock
- Bloco de conteúdo de um post rico (estilo G1). Cada tipo de bloco (parágrafo, subtítulo, imagem, citação, lista, embed, divisor) é uma subclasse com seu próprio arquivo. Um bloco sabe se serializar para JSON (persistência estruturada) e para Markdown (render via MarkdownRenderer).
- PostBlockFactory
-
Reconstrói um PostBlock a partir do seu JSON (
{"type": ...}). Centraliza o mapeamento tipo→classe; blocos desconhecidos viram parágrafo (fail-safe). - PostDocument
- Documento de um post rico: uma sequência ordenada de PostBlock (estilo G1). É a representação que o editor manipula. Serializa para:
- QuoteBlock
- Citação / destaque. cite é a fonte opcional (autor, veículo).
- RawableRenderObject
- RawableRenderText
- Redirect
- Redireciona (303) para location — padrão Post/Redirect/Get.
- RenderElement
- RenderFragment
- RenderObject
- RenderText
- RespondJson
- Responde com um JSON fixo.
- RestApiDbExecutor
-
DbExecutor que persiste chamando uma API REST do Flenx (alvo Dart OU
PHP — é só apontar a URL). Usa o envelope padrão
{success, data, meta}e o contrato CRUD por tabela: - RobotsTxtGenerator
-
Gera o
robots.txta partir das regras por crawler do SeoConfig, referenciando o sitemap. Inclui buscadores tradicionais e crawlers de IA. - RouteContext
- Contexto passado para cada rota: caminho e query string.
- RouteMeta
- Metadados de UMA rota — a fonte única de verdade. A partir dela o framework deriva automaticamente: meta tags, Open Graph/Twitter, JSON-LD, entrada no sitemap, item do llms.txt e conteúdo do llms-full.txt.
- RouteRegistry
-
Agrega múltiplas IRouteSource (estáticas + dinâmicas) e resolve todas as
rotas do site num único conjunto deduplicado por
path. - SendEmail
- Envia um e-mail (servidor) para to.
- SeoAddress
- Endereço físico para schema.org LocalBusiness (PostalAddress + GeoCoordinates).
- SeoConfig
- Configuração global de SEO/GEO/AEO do site. Fonte única para baseUrl, identidade da organização e política de crawlers.
- SeoEndpoints
-
Monta os endpoints de otimização servidos automaticamente pelo servidor:
/robots.txt,/sitemap.xml,/llms.txte/llms-full.txt. - SeoService
-
Um serviço oferecido pela empresa — vira schema.org
Serviceno JSON-LD. Ajuda GEO/AEO: motores de IA citam serviços específicos ("quem faz X em SP?"). - ServerOptions
- Global options for configuring Jaspr on the server.
- SiteBrand
- Identidade da marca no header: logo (imagem ou texto) com link para a home.
- SiteConfig
- Configuração central do site institucional: marca, nav, contato e WhatsApp.
- SiteHeader
-
Header de site institucional: somente top menu. Logo com link home, menu
customizável (itens clicáveis ou dropdowns expansíveis) e botão de login
(clicável ou expansível). Responsivo: vira hambúrguer (
<details>) no mobile. - SiteLayout
- Moldura padrão de um site: header + estilo base + conteúdo + rodapé + botão de WhatsApp. Genérica — recebe marca, menus e rodapé por parâmetro, para o app de exemplo (ou qualquer dev) montar com o próprio conteúdo.
- SitemapIndexGenerator
-
Gera um
<sitemapindex>apontando para múltiplos sitemaps — usado quando o site excede 50.000 URLs (ou 50MB) por arquivo. - SitemapXmlGenerator
-
Gera um
sitemap.xml(urlset) válido conforme sitemaps.org 0.9, incluindolastmod,changefreq,prioritye alternâncias hreflang quando houver. - SiteSettings
-
Acesso (servidor) às configurações do site guardadas em
site_settings(registro único, colunadataem JSON). As páginas públicas leem daqui o que o admin editou (ex.: textos da home). VersettingsModel. - SqlMigrationGenerator
- Gera o SQL de criação das tabelas (MySQL) a partir dos DbModel, incluindo chaves primárias e estrangeiras (relações). Roda uma vez.
-
State<
T extends StatefulComponent> - The logic and internal state for a StatefulComponent.
- StatefulBuilder
- A platonic component that both has state and calls a closure to obtain its child component.
- StatefulComponent
- A component that has mutable state.
- StatefulElement
- An Element that uses a StatefulComponent as its configuration.
- StatelessComponent
- A component that does not require mutable state.
- StatelessElement
- An Element that uses a StatelessComponent as its configuration.
- StaticRouteSource
- Fonte de rotas estáticas — páginas fixas conhecidas em tempo de build (home, sobre, contato, etc.). Equivale às páginas do file-based routing.
-
StreamBuilder<
T> - Component that builds itself based on the latest snapshot of interaction with a Stream.
-
StreamBuilderBase<
T, S> - Base class for components that build themselves based on interaction with a specified Stream.
- SupabaseDbExecutor
- DbExecutor que persiste no Supabase (via PostgREST). Mesma interface dos demais — basta escolher e adicionar as credenciais.
- SyncAnnotation
-
SynchronousFuture<
T> - A Future whose then implementation calls the callback immediately.
- Tag
- Tag de blog — transversal e plana (várias por post), como no WordPress.
- Taxonomy
- Resultado da indexação taxonômica do blog: categorias e tags com seus posts.
- TaxonomyBuilder
- Indexa os posts em categorias e tags, produzindo as páginas de arquivo. Pura (sem disco) → fácil de testar.
- Text
- Represents a plain text node with no additional properties.
- TextElement
- TrackingProvider
- Contrato de um provedor de rastreamento. Cada provedor sabe emitir:
- TwilioSmsChannel
-
Canal de SMS via Twilio. Ativo quando há credenciais no
.env(TWILIO_SID,TWILIO_TOKEN,TWILIO_FROM). - TwilioWhatsappChannel
-
Canal de WhatsApp via Twilio (prefixo
whatsapp:). Ativo quando há credenciais no.env(TWILIO_SID,TWILIO_TOKEN,TWILIO_WHATSAPP_FROM). - UniqueKey
- A key that is only equal to itself.
- UpdateById
-
Atualiza um registro por
idcom os campos recebidos. -
ValueKey<
T> - A key that uses a value of a particular type to identify itself.
-
ValueListenable<
T> - An interface for subclasses of Listenable that expose a value.
-
ValueListenableBuilder<
T> -
ValueNotifier<
T> - A ChangeNotifier that holds a single value.
- WhatsappButton
- Botão flutuante de WhatsApp (canto inferior direito). Abre o wa.me com a mensagem pré-preenchida. Estilizado inline (sem classes CSS).
Enums
- AdPosition
- Posição sugerida de um anúncio numa página.
- ChangeFreq
- Frequência de mudança de uma URL no sitemap (spec sitemaps.org 0.9).
- ConnectionState
- The state of connection to an asynchronous computation.
- DocPrintFormat
- Como o documento comercial se comporta na tela e na impressão.
- FlenxAlertVariant
- Variante visual do FlenxAlert.
- FlenxAlign
- Alinhamento em FlenxColumn/FlenxRow (vira flexbox por baixo).
- FlenxAnimation
- Tipos de animação disponíveis no FlenxAnimated.
- FlenxButtonVariant
- Variante visual de FlenxButton.
- FlenxCardHover
- Estilo de animação ao passar o mouse sobre um FlenxCard.
- FlenxCorner
- Canto onde o botão flutuante fica fixado.
- FlenxPromoRepeat
- Frequência com que a campanha volta a aparecer após ser fechada.
- FlenxTextAlign
- Alinhamento de texto.
- HttpMethod
- Verbo HTTP de um endpoint.
- ImportPlatform
- Alinhamento dos menus no header institucional (configurável pelo usuário).
- PageKind
-
Tipo semântico de uma página. Mapeia para
og:type(Open Graph) e para o@typedo schema.org (JSON-LD), permitindo gerar dados estruturados certos. - PaymentStatus
- Situação de uma cobrança, normalizada entre provedores.
- RelationKind
- Tipo de relacionamento entre tabelas.
- SchedulerPhase
- SqlType
- Tipos de coluna suportados, mapeados para SQL (dialeto MySQL — comum em hospedagem PHP e no alvo Dart).
Mixins
- ComponentsBinding
- Main app binding, controls the root component and global state
- NotifiableElementMixin
- Mixin this class to allow receiving Notification objects dispatched by child elements.
- OnFirstBuild
- Mixin on StatelessComponent that performs some async task on the first build
-
PreloadStateMixin<
T extends StatefulComponent> - Mixin on State that preloads state on the server
- RenderObjectElement
- SchedulerBinding
-
SyncStateMixin<
T extends StatefulComponent, U> - Mixin on State that syncs state data from the server to the client.
Extensions
Constants
- blogCss → const String
- CSS do blog — listagem em cards e artigo com tipografia legível (prose). Usa os tokens (:root) definidos em flenxSiteCss.
- blogPostsModel → const DbModel
-
Schema da tabela de posts do blog (fonte de banco). Inclua em
dbModelspara gerar a migration e use em endpoints CRUD (InsertInto/UpdateById/...). O corpo fica embody(Markdown) e, opcionalmente, os blocos estruturados do editor emblocks(JSON) — ver PostDocument. - categoriesModel → const DbModel
-
Tabela de categorias do blog/portal (lista curada, editável pelo admin).
Inclua em
dbModelse use em endpoints CRUD. Oslugcasa com as páginas de arquivo do blog (/blog/categoria/<slug>); onameé exibido nos menus. - client → const ClientAnnotation
- Used to annotate a client component.
- decoder → const DecoderAnnotation
- Used to annotate an decoder function for a custom model.
- encoder → const EncoderAnnotation
- Used to annotate an encoder function for a custom model.
- factory → const Object
- Annotation on a function that creates new objects.
- immutable → const Immutable
- Annotation on an immutable class.
- kDebugMode → const bool
- A constant that is true if the application was compiled in debug mode.
- kGenerateMode → const bool
- A constant that is true if the application is running in static-site-generation mode.
- kIsWasm → const bool
- A constant that is true if the application was compiled to WebAssembly.
- kIsWeb → const bool
- A constant that is true if the application was compiled to run on the web.
- kReleaseMode → const bool
- A constant that is true if the application was compiled in release mode.
- kVerboseMode → const bool
- A constant that is true if the application was run in verbose mode.
- mustCallSuper → const Object
- Annotation on instance member that overriding members must call.
- nonVirtual → const Object
- Annotation on instance member that must not be overridden.
- optionalTypeArgs → const Object
- Annotation on type arguments that can safely be omitted.
- protected → const Object
- Annotation on instance member that should only be used by subclasses.
- settingsModel → const DbModel
-
Configurações do site em um único registro (id=1) com a coluna
data(JSON). Usado para editar a tela home e opções gerais pelo admin sem código: o admin grava o JSON, e as páginas públicas leem dele. VerFlenxSettingsPageeSiteSettings. - sync → const SyncAnnotation
- usersModel → const DbModel
-
Tabela de usuários do admin (com papel/permissões). Inclua em
dbModelspara gerar a migration e use em endpoints CRUD. O camporolecasa com os papéis deAppRole/AdminPermissions('Administrador', 'Editor', ...). - visibleForTesting → const Object
- Annotation on a public declaration that should only be used in tests.
Properties
- flenxSiteCss → String
-
CSS do site institucional Flenx — visual moderno (estilo Astra/landing).
As variáveis de cor (
:root) vêm da paleta central FlenxPalette.no setter
Functions
-
commercialDocsRoutes(
{required List< CommercialDoc> docs, required String title, String basePath = '/comercial', String eyebrow = 'Central Comercial', String subtitle = '', String? logoSrc, String accent = '#F36B16', String accentDark = '#D94E00', String accentLight = '#FF8A31', String ink = '#071C43', String ink2 = '#0F2F69', String barColor = '#071C43'}) → List<FlenxRoute> - Gera as rotas da Central de Documentos Comerciais a partir de uma lista de CommercialDoc. Basta espalhar o resultado nas rotas do site:
-
describeIdentity(
Object? object) → String -
Returns a summary of the runtime type and hash code of
object. -
flenxTrackJs(
String event, {Map< String, String> params = const {}}) → String -
Trecho JS para atributos
onclick/onsubmit: dispara o evento em TODOS os pixels de uma vez, sem quebrar a navegação. Ex.:attributes: {'onclick': flenxTrackJs(FlenxEvent.contact)}. -
lerpDuration(
Duration a, Duration b, double t) → Duration -
Linearly interpolate between two
Durations. -
objectRuntimeType(
Object? object, String optimizedValue) → String -
Framework code should use this method in favor of calling
toStringon Object.runtimeType. -
runApp(
Component app) → void - Main entry point for a jaspr app
-
shortHash(
Object? object) → String - Returns a 5 character long hexadecimal string generated from Object.hashCode's 20 least-significant bits.
Typedefs
-
AsyncCallback
= Future<
void> Function() - Signature of callbacks that have no arguments and return no data, but that return a Future to indicate when their work is complete.
-
AsyncComponentBuilder<
T> = Component Function(BuildContext context, AsyncSnapshot< T> snapshot) - Signature for strategies that build components based on asynchronous interaction.
-
AsyncValueGetter<
T> = Future< T> Function() - Signature for callbacks that are to asynchronously report a value on demand.
-
AsyncValueSetter<
T> = Future< void> Function(T value) - Signature for callbacks that report that a value has been set and return a Future that completes when the value has been saved.
- BlogLayoutBuilder = Component Function(Component blogPage)
- Transforma a página do blog no layout do site (header/footer).
- ComponentBuilder = Component Function(BuildContext context)
- Signature for a function that creates a component, e.g. StatelessComponent.build or State.build.
-
DbExecutorFactory
= DbExecutor Function(Map<
String, String> env, Client? client) -
Cria um DbExecutor a partir do ambiente (
.env) + client HTTP opcional. - ElementVisitor = void Function(Element element)
- Signature for the callback to BuildContext.visitChildElements.
-
EmailSender
= void Function(String to, String subject, Map<
String, String> data) - Hook de envio de e-mail (servidor).
- EventCallback = void Function(Event event)
- FlenxPageBuilder = Component Function(RouteContext ctx)
- Constrói o conteúdo de uma rota.
-
GatewayFactory
= PaymentGateway Function(Map<
String, String> env, Client? client) -
Cria um gateway a partir do ambiente (
.env) + client HTTP opcional. -
IterableFilter<
T> = Iterable< T> Function(Iterable<T> input) - Signature for callbacks that filter an iterable.
- StatefulComponentBuilder = Component Function(BuildContext context, StateSetter setState)
- Signature for the builder callback used by StatefulBuilder.
- StateSetter = void Function(VoidCallback fn)
- The signature of State.setState functions.
-
TokenVerifier
= FutureOr<
Map< Function(String token)String, Object?> ?> -
Verifica um token (Bearer) e devolve os claims, ou
nullse inválido. -
ValueChanged<
T> = void Function(T value) - Signature for callbacks that report that an underlying value has changed.
-
ValueGetter<
T> = T Function() - Signature for callbacks that are to report a value on demand.
-
ValueSetter<
T> = void Function(T value) - Signature for callbacks that report that a value has been set.
- VoidCallback = void Function()
- Signature of callbacks that have no arguments and return no data.