Posted Tuesday at 10:12 AM5 days 📦 Estrutura base✅ Removido jQuery completamente do projeto✅ Substituído $(document).ready e delegações por Alpine declarativo✅ Recriado o script genesis.js com Alpine, utilizando fetch() ao invés de $.ajax()🧠 Alpine.js: ComponentizaçãoComponenteStatusDescriçãoGenesisLoader✅Carregamento de páginas via AJAX e controle de histórico com fetch() + Alpine reativoFormHandle✅Submissão de formulários via Alpine + fetch com feedback via SweetAlert2ThemeStorage✅Controle do tema global (light, dark, auto) e persistência em localStorageSidebarConfigs✅Comportamento reativo do menu lateral (collapse de itens e navegação persistente)SpinnerGlobal✅Spinner de carregamento controlado por Alpine com x-show e x-transition🎨 Tema dinâmico✅ Criada store Alpine: Alpine.store('tema')✅ Persistência do tema escolhido via localStorage✅ Aplicado dinamicamente no <html data-bs-theme="">✅ Ícones e botões reativos sincronizados com o tema atual🧩 Navegação & Collapse✅ Menu lateral refeito em Alpine com: <li x-data="{open:false}">✅ Transições suaves com x-transition✅ Removido uso de data-bs-toggle="dropdown" do Bootstrap JS✅ Cada grupo de links agora responde diretamente aos cliques com Alpine🚀 Spinner e carregamento✅ Removido $('#ajax-spinner').removeClass(...)✅ Substituído por x-show="spinner" via Alpine✅ Separado visualmente da animação giratória para evitar rotação do texto✅ Posicionado como overlay com position-fixed e z-index elevado para consistência📋 Back-end (Laravel & Blade)✅ Scripts reorganizados: Alpine e global.js inseridos via @include no <head>✅ Blade atualizado para usar x-data="genesisLoader" no contêiner principal✅ Adicionado suporte ao Laravel flash session('success') para ser exibido com SweetAlert via Alpine✅ Conteúdo da página principal movido para x-html="content" para permitir render dinâmico✅ Includes como @yield('content') permanecem como fallback estático🧪 Integração geral✅ Tippy.js, Feather Icons, ApexCharts e Swiper continuam funcionais, reinicializados via initComponents()✅ AJAX fallback e failover mantidos para compatibilidade total (redirecionamento em caso de erro)✅ Toda lógica de interatividade centralizada em Alpine para legibilidade e manutenção✅ Resultado Final🔥 Painel 100% livre de jQuery🌿 Interface reativa com Alpine declarativo⚡ Melhor performance e tempo de carregamento💾 Tema persistente entre sessões💬 Feedbacks mais elegantes e consistente
📦 Estrutura base
✅ Removido jQuery completamente do projeto
✅ Substituído
$(document).ready
e delegações por Alpine declarativo✅ Recriado o script
genesis.js
com Alpine, utilizandofetch()
ao invés de$.ajax()
🧠 Alpine.js: Componentização
Componente
Status
Descrição
GenesisLoader
✅
Carregamento de páginas via AJAX e controle de histórico com
fetch()
+ Alpine reativoFormHandle
✅
Submissão de formulários via Alpine + fetch com feedback via SweetAlert2
ThemeStorage
✅
Controle do tema global (
light
,dark
,auto
) e persistência em localStorageSidebarConfigs
✅
Comportamento reativo do menu lateral (collapse de itens e navegação persistente)
SpinnerGlobal
✅
Spinner de carregamento controlado por Alpine com
x-show
ex-transition
🎨 Tema dinâmico
✅ Criada store Alpine:
Alpine.store('tema')
✅ Persistência do tema escolhido via
localStorage
✅ Aplicado dinamicamente no
<html data-bs-theme="">
✅ Ícones e botões reativos sincronizados com o tema atual
🧩 Navegação & Collapse
✅ Menu lateral refeito em Alpine com:
<li x-data="{open:false}">
✅ Transições suaves com
x-transition
✅ Removido uso de
data-bs-toggle="dropdown"
do Bootstrap JS✅ Cada grupo de links agora responde diretamente aos cliques com Alpine
🚀 Spinner e carregamento
✅ Removido
$('#ajax-spinner').removeClass(...)
✅ Substituído por
x-show="spinner"
via Alpine✅ Separado visualmente da animação giratória para evitar rotação do texto
✅ Posicionado como overlay com
position-fixed
ez-index
elevado para consistência📋 Back-end (Laravel & Blade)
✅ Scripts reorganizados: Alpine e
global.js
inseridos via@include
no<head>
✅ Blade atualizado para usar
x-data="genesisLoader"
no contêiner principal✅ Adicionado suporte ao Laravel flash
session('success')
para ser exibido com SweetAlert via Alpine✅ Conteúdo da página principal movido para
x-html="content"
para permitir render dinâmico✅ Includes como
@yield('content')
permanecem como fallback estático🧪 Integração geral
✅ Tippy.js, Feather Icons, ApexCharts e Swiper continuam funcionais, reinicializados via
initComponents()
✅ AJAX fallback e failover mantidos para compatibilidade total (redirecionamento em caso de erro)
✅ Toda lógica de interatividade centralizada em Alpine para legibilidade e manutenção
✅ Resultado Final
🔥 Painel 100% livre de jQuery
🌿 Interface reativa com Alpine declarativo
⚡ Melhor performance e tempo de carregamento
💾 Tema persistente entre sessões
💬 Feedbacks mais elegantes e consistente