jksantos/jetax
Jetax é um design system opinativo para a TALL Stack em PHP 8.4+ e Laravel 12+: rode o instalador e tenha sidebar, topbar, workspace e 60+ componentes Blade/Livewire prontos, com dark mode nativo, tipografia Manrope/Inter e tudo publicável para customização.
applyPagination() agora chama ->withPath(url()->current()) — sem isso, $paginator->url(1) retornava um caminho relativo (ex: admin/tenants?page=1) e o window.location.href resolvia relativo ao diretório atual, causando path duplicado (/admin/admin/tenants → 404)applyPagination() agora chama ->appends(['per_page' => $perPage]) — sem isso, per_page= não estava na URL inicial e o regex do onchange (que procura per_page=X para substituir) nunca encontrava o parâmetro, fazendo a primeira troca de "Linhas por página" não ter efeitoperPage para per_page — o regex do JS em pagination.blade.php procurava per_page=, então o replace nunca encontrava o parâmetro e a mudança de itens por página não tinha efeitoper_page no config alterado de 15 para 10 — 15 não está entre as opções do seletor ([10, 25, 50, 100]), fazendo com que nenhuma opção ficasse visualmente selecionada na carga inicialheaderClass e footerClass para o consumidor sobrescrever classes do header/footer sem reimplementar o componentefooterClasses() (paridade com headerClasses())[@custom-variant](https://github.com/custom-variant) dark (&:where(.dark, .dark *)) no jetax.css — habilita class-based dark mode no pacote, sem depender da app consumidora declarar:root { --jetax-* } (42 tokens duplicados, sem uso). :root.dark agora sobrescreve --color-* em vez de --jetax-*, fazendo classes Tailwind (bg-primary, text-on-surface, etc.) responderem ao tema automaticamente--color-primary/--color-secondary em dark passam a #0D99FF (azul vívido) em vez de #00497e (escuro/invisível)--color-on-surface em dark #e2e8f0, --color-on-surface-variant rgba(255,255,255,0.45)--color-surface #0F121B, --color-surface-container-low/container #161B2A, --color-surface-container-high #1E2337--color-outline/--color-outline-variant em dark passam a usar rgba(255,255,255,0.07/0.08)#4ade80/#fbbf24/#60c5ff/#f87171)bg-white shadow-sm shadow-[#111A37]/5bg-[#161B2A] shadow-lg shadow-black/20 border border-white/[0.05]flex items-center gap-2 font-headline font-bold text-sm uppercase tracking-wide, cores text-secondary (light) / text-primary (dark) e separador inferior sutiltext-error + border-b border-error/20<span>), permitindo ícones inlinedark:bg-sidebar/80bg-surface-container-highbg-surface-container-high (em vez de -low)dark:text-slate-400 (mesma cor dos itens não-ativos da sidebar); search input texto digitado dark:text-slate-200ring-surface-container-lowest dark:ring-sidebar)bg-white sólidos, bg-slate-*, bg-gray-*, border-slate-* e hex hardcodes legacy #e2e6f1, #f3f3ff, #3d3d4e, #0061a5):
dialog, dropdown, popover, tag dropdown, modal) → bg-surface-container-hightable, data-table, card, accordion) → bg-surface-container-lowest; striped rows e hovers em bg-surface-container-low/bg-surface-containerinput, textarea, pin, color, tag field, pagination) → bg-surface-input + border-outline-variant + tokens de focustimeline, activity-feed, upload, step-item, clipboard, offcanvas, docs-layout, docs-preview-section, carousel) → tokens equivalentesdocs-layout: <body> ganha text-on-surface font-body antialiased para evitar que texto herde color: rgb(0,0,0) (preto invisível) em dark modedark:text-[#60b4ff]/dark:bg-[rgb(30,35,55)] espalhados pelos blades supriam a falta de overrides em --color-*. Removidostext-on-surface)--jetax-* (duplicação pura — var(--jetax-*) nunca foi consumido em lugar algum do pacote)x-jetax-layout), Auth Layout, Sidebar, Topbar, Page Headerclass e script anti-FOUCjetax:check para detectar views publicadas desatualizadasjetax_config() para leitura de configHow can I help you explore Laravel packages today?