Card navigation hub
Each panel has a hub page: a grid of cards, one per destination in the panel, instead of the sidebar tree — for when the question “where do I see X?” is real. There are three:
| Hub | Panel | URL | Born |
|---|---|---|---|
HubDeInfraestrutura |
/infra |
/infra/hub-de-infraestrutura |
on — sixteen destinations in four groups, half of them with untranslated plugin labels |
HubDeAdministracao |
/admin |
/admin/hub-de-administracao |
off |
HubDoNegocio |
/app |
/app{/org}/hub-do-negocio |
off |
The flag is KIT_HUB (config/kit.php → hub, default false). It turns on the /admin and
/app hubs; off, both pages leave the menu, the URL and the ⌘K search. /infra does not depend
on it: it is the only panel where the grid beats the tree by default, and the asymmetry is a
recorded decision (ADR-03 of the hub-de-cards-opcional wiki). Setting KIT_HUB=true needs
nothing else — FilamentCardsPlugin is already registered on all three panels and the cards’ CSS is
already published.
The cards come from App\Filament\Concerns\DescobreCardsDoPainel, which scans the panel’s resources
and pages and filters by each destination’s canAccess() — whoever can’t reach the screen doesn’t
see the card. The hub adds to the sidebar, it doesn’t replace it: no item leaves the navigation.
The browser test is tests/Browser/HubDeCardsTest.php: the /infra grid painted, with the
description inside the card — because the package registers no CSS and without
resources/css/filament/cards.css the HTML is the same and the grid becomes a list of loose links.