shell library
Shell de navegação do Flenx (widgets Flutter): AppShell responsivo com sidebar/drawer, top bar, perfil e notificações.
Depende de Flutter — importe SOMENTE no lado web/app (ex.: via
@Import.onWeb), nunca no servidor (que compila Dart puro, sem Flutter).
Classes
- ActivityItem
- Item da lista de atividade recente do dashboard.
- AdminPermissions
- Permissões e papéis padrão do Flenx (sirva-se ou defina os seus).
- AdminRestClient
-
Cliente HTTP genérico do admin: fala com os endpoints declarativos do Flenx
(envelope
{success, data, error, meta}) para qualquer recurso — posts, produtos, pedidos, usuários, configurações. É a ponte entre as telas Flutter do admin (ilha) e a API do servidor. - AppNotification
- Notificação exibida no menu de notificações da top bar.
- AppRole
-
Papel de usuário no admin: um nome e o conjunto de permissões.
*libera tudo. Use AdminPermissions para os papéis e permissões padrão, ou crie os seus. O FlenxAdminApp esconde itens de menu que o papel não pode acessar. - AppShell
- Shell de aplicação responsivo.
- AppUser
- Usuário logado exibido no shell (área de user/admin e menu de perfil).
- BlockCard
- Card de edição de UM bloco do post. Mostra os campos conforme o tipo e os controles de mover/remover. Edita o block e avisa via onChanged.
- BlogAdminPage
- Gerência de posts/notícias no admin: lista os posts do banco e abre o PostEditorPage para criar, editar ou excluir. Tela única reutilizável (news, demo) — alterna entre a lista e o editor.
- CardPanel
- Painel branco com título e conteúdo (container genérico do dashboard).
- DashboardStat
- Indicador do dashboard (ex.: Posts, Leads, Visitas).
- EditableBlock
-
Estado MUTÁVEL de um bloco enquanto é editado na tela. Cada instância tem um
id estável (para
ValueKeyao reordenar) e converte para o PostBlock imutável da lib na hora de salvar — e também reconstrói a partir de um PostBlock (para editar um post existente). - FlenxAdminApp
-
App de admin pronto — você só preenche as opções (igual ao AppShell):
usuário, notificações, itens de menu e as páginas (rota → conteúdo). Já vem
com tema claro/escuro e o botão de alternar funcionando. Use dentro de uma
ilha Flutter (
FlutterIsland) na rota/admin. - FlenxAdminTheme
- Temas padrão do painel admin do Flenx — claro e escuro, derivados da paleta central FlenxPalette (mesma identidade do site). Bonito por padrão:
- FlenxDashboard
- Dashboard pronto do Flenx: saudação, indicadores (stats) e atividade recente (activity). Genérico — você passa os dados e os textos.
- FlenxResourcePage
- Tela CRUD genérica do admin: lista os registros de um recurso e permite criar/editar/excluir — tudo a partir de um ResourceConfig. Usada para produtos, pedidos, usuários, etc., sem reescrever a UI.
- FlenxSettingsPage
-
Editor de configurações em forma de JSON num único registro (
site_settingsid=1, colunadata). Usado para editar a tela home (hero, destaques) e outras opções do site sem código. Carrega, edita os fields e salva o JSON. - IconChip
- Quadradinho colorido com ícone (usado em cards e listas do dashboard).
- Item de navegação do menu. Pode ser clicável (com route/onTap) ou expansível (quando tem children — submenu, estilo accordion).
- NotificationButton
- Botão de notificações da top bar — ícone com badge da contagem não lida e um menu suspenso listando as notificações.
- PostEditorPage
-
Editor de post completo (estilo G1): cabeçalho + blocos (parágrafo,
subtítulo, imagem c/ legenda, citação, lista, vídeo). Cria OU edita um post
no banco via a API (
createPath/updatePath). Reaproveitável por qualquer portal (news, demo) — salva o corpo em Markdown + os blocos em JSON. - PostMetaControllers
- Agrupa os controllers do cabeçalho (1 lugar para criar/dar dispose).
- PostMetaForm
- Campos de cabeçalho do post (estilo G1): manchete, linha-fina, resumo, autor, categoria, tags e imagem de capa. Guarda os controllers e os expõe para a página montar o payload.
- ProfileMenu
- Menu de perfil expansível na top bar: avatar que abre um popup com dados do usuário e ações (Perfil, Configurações, Sair).
- ResourceConfig
- Configuração declarativa de um recurso administrável (CRUD). Você só lista os endpoints e os campos; o FlenxResourcePage cuida da tela inteira (listar, criar, editar, excluir). Reaproveitável para qualquer entidade.
- ResourceField
- Descreve UM campo de um recurso (produto, usuário, pedido...). O FlenxResourcePage usa a lista de campos para montar a tabela e o formulário de criar/editar — sem você escrever UI específica.
- ResourceFormDialog
-
Diálogo de criar/editar um registro, montado a partir dos
ResourceConfig.fields. Devolve o
Mapcom os valores ao salvar, ounullse cancelado. Sem lógica de rede — quem chama decide create/update. - SectionPlaceholder
- Placeholder de seção "em construção" (Posts, Tags, etc.).
- SettingField
- Um campo editável da tela de configurações/home (chave no JSON + rótulo).
- ShellBreakpoints
- Breakpoints do shell. Por decisão de produto, mobile E tablet usam drawer; apenas desktop mantém a sidebar fixa.
- Sidebar
- Conteúdo da barra lateral: área de user/admin no topo, menu de navegação (com itens clicáveis e expansíveis) e o botão "Sair" no rodapé.
- StatCard
- Card de indicador do dashboard.
- TopBar
- Barra superior (sempre presente). Mostra o título, o botão de tema (opcional), notificações e o menu de perfil expansível. Em layouts com drawer, o Scaffold injeta automaticamente o botão de menu (hambúrguer) à esquerda.
Enums
- BlockType
- Tipos de bloco que o editor de post (estilo G1) oferece. Espelha os PostBlock da lib; cada um tem rótulo e ícone para o menu "adicionar".
- FieldKind
- Tipo de entrada de um campo de recurso no admin genérico.
- ShellLayout
- Classificação de largura da viewport para o shell responsivo.