default() ->id('admin') ->path('admin') ->login() ->colors(['primary' => config('branding.colours')]) ->viteTheme('resources/css/filament/admin/theme.css') ->sidebarCollapsibleOnDesktop() ->sidebarWidth('16rem') ->globalSearch(true) ->globalSearchKeyBindings(['command+k', 'ctrl+k']) ->globalSearchDebounce('300ms') ->navigationGroups([ // ── Daily Work (always visible, top of sidebar) ── NavigationGroup::make('Daily') ->collapsible(false), // ── Fundraising (campaigns, review queue) ── NavigationGroup::make('Fundraising') ->icon('heroicon-o-megaphone') ->collapsible(), // ── Setup (rarely touched config) ── NavigationGroup::make('Setup') ->icon('heroicon-o-cog-6-tooth') ->collapsible() ->collapsed(), ]) ->brandLogo(Helpers::getCurrentLogo(true)) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') ->pages([\Filament\Pages\Dashboard::class]) ->userMenuItems([ 'profile' => MenuItem::make() ->label('Edit profile') ->url(url('user/profile')), 'back2site' => MenuItem::make() ->label('Return to site') ->icon('heroicon-o-home') ->url(url('/')), ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') ->middleware([ EncryptCookies::class, AddQueuedCookiesToResponse::class, StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, ]) ->authMiddleware([ Authenticate::class, ]) ->login(null) ->registration(null) ->darkMode(false) ->databaseNotifications(); } }