harvirsidhu/filament-cards
Turn any Filament page into a card-based navigation hub. Auto-discovers Cluster/Resource pages, respects navigation config, checks authorization, and supports grouping, columns/spans, visibility rules, manual links, and optional search—ideal for settings hubs and dashboards.
label, schema, visible, hidden, columnSpan), ensuring seamless adoption without disrupting the current architecture. It extends Filament’s navigation system rather than replacing it, making it ideal for projects already using Filament v4/v5.showInFilamentCards, getFilamentCardsGroup) and API methods (discoverClusterCards, discoverResourceCards). This minimizes merge conflicts and testing overhead.theme.css), which is standard for Filament projects. No additional frontend frameworks or build tools are needed.canAccess() checks, ensuring cards are only visible to authorized users. This aligns with Laravel’s gate/policy system.showInFilamentCards() is not explicitly set. Requires careful testing of exclusion logic ($excludedClusterComponents, $excludedResourcePages).shouldRegisterNavigation())?canAccess(), but does it support Filament’s new canAccessPage() or custom gate closures?navigationLabel is missing, how is this communicated to developers?canAccess()), service providers, and view composers. No Laravel-specific modifications are needed.CardsPage equivalents, using discoverClusterCards() for auto-generated cards.CardsPage (Use Case C).shouldRegisterNavigation() to hide redundant sidebar entries.// In a service provider
FilamentCards::registerDynamicCard(
CardItem::make(MyPluginPage::class)
);
navigationLabel or navigationIcon will fall back to class names, which may require cleanup.theme.css and postcss.config.js).npm run build).CardsPage for your first Cluster/Resource.discoverClusterCards() or discoverResourceCards().$excludedClusterComponents) to avoid unintended cards.CardGroup and CardItem for non-auto-discovered entries (e.g., external links).$searchable = true).canAccess()) for all cards.columnSpan on mobile/desktop).$excludedClusterComponents) simplify maintenance.dd(static::discoverClusterCards()) to debug why pages are included/excluded.vendor/harvirsidhu/filament-cards/resources/views).canAccess() is implemented correctly on target pages/resources.How can I help you explore Laravel packages today?