default() ->id('admin') ->path('admin') ->viteTheme('resources/css/filament/admin/theme.css') ->login() ->brandName(config('hr.company_name')) ->viteTheme('resources/css/filament/admin/theme.css') ->colors([ 'primary' => Color::Blue, 'gray' => Color::Slate, ]) ->font('Inter', provider: GoogleFontProvider::class) ->navigationGroups( collect(NavigationGroupEnum::cases()) ->mapWithKeys(fn (NavigationGroupEnum $case): array => [ $case->name => FilamentNavigationGroup::make() ->label(fn (): ?string => $case->getLabel()), ]) ->all(), ) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages') ->pages([ Dashboard::class, ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets') ->widgets([]) ->plugins([ FilamentShieldPlugin::make() ->navigationGroup(NavigationGroupEnum::System), ActivityTimelinePlugin::make() ->resource(AuditLogResource::class) ->navigationIcon('heroicon-o-clipboard-document-list') ->navigationSort(3) ->causerIcons([ User::class => 'heroicon-m-user', ]) ->systemCauserIcon('heroicon-m-cog-6-tooth') ->subjectLabelNamespace('hr.audit') ->fieldLabelNamespace('changes'), ]) ->middleware([ EncryptCookies::class, AddQueuedCookiesToResponse::class, StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, PreventRequestForgery::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, ]) ->authMiddleware([ Authenticate::class, ]); } }