diff --git a/app/Extensions/Features/Schemas/JavaVersionSchema.php b/app/Extensions/Features/Schemas/JavaVersionSchema.php index fc18a4fd9..4e47c1baf 100644 --- a/app/Extensions/Features/Schemas/JavaVersionSchema.php +++ b/app/Extensions/Features/Schemas/JavaVersionSchema.php @@ -56,8 +56,7 @@ class JavaVersionSchema implements FeatureSchemaInterface ->default(fn () => $server->image) ->notIn(fn () => $server->image) ->required() - ->preload() - ->native(false), + ->preload(), ]) ->action(function (array $data, DaemonServerRepository $serverRepository) use ($server) { try { diff --git a/app/Filament/Admin/Pages/Settings.php b/app/Filament/Admin/Pages/Settings.php index b894fafb4..5bc42f0e9 100644 --- a/app/Filament/Admin/Pages/Settings.php +++ b/app/Filament/Admin/Pages/Settings.php @@ -181,7 +181,6 @@ class Settings extends Page implements HasSchemas ->schema([ Select::make('FILAMENT_AVATAR_PROVIDER') ->label(trans('admin/setting.general.avatar_provider')) - ->native(false) ->options($this->avatarService->getMappings()) ->selectablePlaceholder(false) ->default(env('FILAMENT_AVATAR_PROVIDER', config('panel.filament.avatar-provider'))), @@ -217,7 +216,6 @@ class Settings extends Page implements HasSchemas ->default(env('APP_2FA_REQUIRED', config('panel.auth.2fa_required'))), Select::make('FILAMENT_WIDTH') ->label(trans('admin/setting.general.display_width')) - ->native(false) ->options(Width::class) ->selectablePlaceholder(false) ->default(env('FILAMENT_WIDTH', config('panel.filament.display-width'))), diff --git a/app/Filament/Admin/Resources/Eggs/Pages/CreateEgg.php b/app/Filament/Admin/Resources/Eggs/Pages/CreateEgg.php index b591848e8..533fc3c3c 100644 --- a/app/Filament/Admin/Resources/Eggs/Pages/CreateEgg.php +++ b/app/Filament/Admin/Resources/Eggs/Pages/CreateEgg.php @@ -257,7 +257,6 @@ class CreateEgg extends CreateRecord ->default('ghcr.io/pelican-eggs/installers:debian'), Select::make('script_entry') ->label(trans('admin/egg.script_entry')) - ->native(false) ->selectablePlaceholder(false) ->default('bash') ->options([ diff --git a/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php b/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php index cf756de95..c8d00fba6 100644 --- a/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php +++ b/app/Filament/Admin/Resources/Eggs/Pages/EditEgg.php @@ -248,7 +248,6 @@ class EditEgg extends EditRecord ->placeholder('ghcr.io/pelican-eggs/installers:debian'), Select::make('script_entry') ->label(trans('admin/egg.script_entry')) - ->native(false) ->selectablePlaceholder(false) ->options([ 'bash' => 'bash', diff --git a/app/Filament/Admin/Resources/Users/UserResource.php b/app/Filament/Admin/Resources/Users/UserResource.php index 6c2a2b2e3..866ee3dda 100644 --- a/app/Filament/Admin/Resources/Users/UserResource.php +++ b/app/Filament/Admin/Resources/Users/UserResource.php @@ -236,8 +236,7 @@ class UserResource extends Resource ->default(fn () => config('app.timezone', 'UTC')) ->selectablePlaceholder(false) ->options(fn () => collect(DateTimeZone::listIdentifiers())->mapWithKeys(fn ($tz) => [$tz => $tz])) - ->searchable() - ->native(false), + ->searchable(), Select::make('language') ->label(trans('profile.language')) ->columnSpan([ @@ -251,8 +250,7 @@ class UserResource extends Resource ->default('en') ->searchable() ->selectablePlaceholder(false) - ->options(fn (LanguageService $languageService) => $languageService->getAvailableLanguages()) - ->native(false), + ->options(fn (LanguageService $languageService) => $languageService->getAvailableLanguages()), FileUpload::make('avatar') ->visible(fn (?User $user, FileUpload $fileUpload) => $user ? $fileUpload->getDisk()->exists($fileUpload->getDirectory() . '/' . $user->id . '.png') : false) ->avatar() diff --git a/app/Filament/Components/Forms/Fields/CopyFrom.php b/app/Filament/Components/Forms/Fields/CopyFrom.php index eefa95d52..fa94293fa 100644 --- a/app/Filament/Components/Forms/Fields/CopyFrom.php +++ b/app/Filament/Components/Forms/Fields/CopyFrom.php @@ -21,8 +21,6 @@ class CopyFrom extends Select $this->searchable(); - $this->native(false); - $this->live(); } diff --git a/app/Filament/Pages/Auth/EditProfile.php b/app/Filament/Pages/Auth/EditProfile.php index 86d811af3..487967123 100644 --- a/app/Filament/Pages/Auth/EditProfile.php +++ b/app/Filament/Pages/Auth/EditProfile.php @@ -132,8 +132,7 @@ class EditProfile extends BaseEditProfile ->default(config('app.timezone', 'UTC')) ->selectablePlaceholder(false) ->options(fn () => collect(DateTimeZone::listIdentifiers())->mapWithKeys(fn ($tz) => [$tz => $tz])) - ->searchable() - ->native(false), + ->searchable(), Select::make('language') ->label(trans('profile.language')) ->required() @@ -143,8 +142,7 @@ class EditProfile extends BaseEditProfile ->selectablePlaceholder(false) ->helperText(fn ($state, LanguageService $languageService) => new HtmlString($languageService->isLanguageTranslated($state) ? '' : trans('profile.language_help', ['state' => $state]) . ' Update On Crowdin')) - ->options(fn (LanguageService $languageService) => $languageService->getAvailableLanguages()) - ->native(false), + ->options(fn (LanguageService $languageService) => $languageService->getAvailableLanguages()), FileUpload::make('avatar') ->visible(fn () => config('panel.filament.uploadable-avatars')) ->avatar() diff --git a/app/Filament/Server/Resources/Files/Pages/ListFiles.php b/app/Filament/Server/Resources/Files/Pages/ListFiles.php index b8dee2b2f..6dcb77151 100644 --- a/app/Filament/Server/Resources/Files/Pages/ListFiles.php +++ b/app/Filament/Server/Resources/Files/Pages/ListFiles.php @@ -308,7 +308,6 @@ class ListFiles extends ListRecords Select::make('extension') ->label(trans('server/file.actions.archive.extension')) ->selectablePlaceholder(false) - ->native(false) ->options([ 'tar.gz' => 'tar.gz', 'zip' => 'zip', @@ -417,7 +416,6 @@ class ListFiles extends ListRecords Select::make('extension') ->label(trans('server/file.actions.archive.extension')) ->selectablePlaceholder(false) - ->native(false) ->options([ 'tar.gz' => 'tar.gz', 'zip' => 'zip', diff --git a/app/Filament/Server/Resources/Schedules/ScheduleResource.php b/app/Filament/Server/Resources/Schedules/ScheduleResource.php index ccb949705..4ccca31df 100644 --- a/app/Filament/Server/Resources/Schedules/ScheduleResource.php +++ b/app/Filament/Server/Resources/Schedules/ScheduleResource.php @@ -255,8 +255,7 @@ class ScheduleResource extends Resource '6' => trans('server/schedule.time.saturday'), '0' => trans('server/schedule.time.sunday'), ]) - ->selectablePlaceholder(false) - ->native(false), + ->selectablePlaceholder(false), ]) ->action(function (Set $set, $data) { $set('cron_minute', '0'); diff --git a/app/Livewire/Installer/PanelInstaller.php b/app/Livewire/Installer/PanelInstaller.php index 276517b56..ba0f43c47 100644 --- a/app/Livewire/Installer/PanelInstaller.php +++ b/app/Livewire/Installer/PanelInstaller.php @@ -117,7 +117,6 @@ class PanelInstaller extends SimplePage implements HasForms ->selectablePlaceholder(false) ->options(fn (LanguageService $languageService) => $languageService->getAvailableLanguages()) ->afterStateUpdated(fn ($state, Application $app) => $app->setLocale($state ?? config('app.locale'))) - ->native(false) ->columnStart(4); } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 68b75514b..a686890f6 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -26,30 +26,18 @@ use App\Services\Helpers\SoftwareVersionService; use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; -use Filament\Forms\Components\Field; -use Filament\Forms\Components\TextInput\Actions\CopyAction; -use Filament\Support\Colors\Color; -use Filament\Support\Facades\FilamentColor; -use Filament\Support\Facades\FilamentView; -use Filament\View\PanelsRenderHook; use Illuminate\Config\Repository; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Foundation\Application; use Illuminate\Foundation\Console\AboutCommand; -use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Str; use Laravel\Sanctum\Sanctum; -use Livewire\Component; -use Livewire\Livewire; use Spatie\Health\Facades\Health; -use function Livewire\on; -use function Livewire\store; - class AppServiceProvider extends ServiceProvider { /** @@ -104,57 +92,6 @@ class AppServiceProvider extends ServiceProvider Scramble::registerApi('application', ['api_path' => 'api/application', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens); Scramble::registerApi('client', ['api_path' => 'api/client', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens); - FilamentColor::register([ - 'danger' => Color::Red, - 'gray' => Color::Zinc, - 'info' => Color::Sky, - 'primary' => Color::Blue, - 'success' => Color::Green, - 'warning' => Color::Amber, - 'blurple' => Color::hex('#5865F2'), - ]); - - FilamentView::registerRenderHook( - PanelsRenderHook::PAGE_START, - fn () => Blade::render('@livewire(\App\Livewire\AlertBannerContainer::class)'), - ); - - FilamentView::registerRenderHook( - PanelsRenderHook::FOOTER, - fn () => Blade::render('filament.layouts.footer'), - ); - - FilamentView::registerRenderHook( - PanelsRenderHook::STYLES_BEFORE, - fn () => Blade::render("@vite(['resources/css/app.css'])") - ); - - FilamentView::registerRenderHook( - PanelsRenderHook::SCRIPTS_AFTER, - fn () => Blade::render("@vite(['resources/js/app.js'])"), - ); - - on('dehydrate', function (Component $component) { - if (!Livewire::isLivewireRequest()) { - return; - } - - if (store($component)->has('redirect')) { - return; - } - - if (count(session()->get('alert-banners') ?? []) <= 0) { - return; - } - - $component->dispatch('alertBannerSent'); - }); - - Field::macro('hintCopy', function () { - /** @var Field $this */ - return $this->hintAction(CopyAction::make()); // @phpstan-ignore varTag.nativeType - }); - // Don't run any health checks during tests if (!$app->runningUnitTests()) { Health::checks([ diff --git a/app/Providers/Filament/FilamentServiceProvider.php b/app/Providers/Filament/FilamentServiceProvider.php new file mode 100644 index 000000000..8b3388f29 --- /dev/null +++ b/app/Providers/Filament/FilamentServiceProvider.php @@ -0,0 +1,82 @@ + Color::Red, + 'gray' => Color::Zinc, + 'info' => Color::Sky, + 'primary' => Color::Blue, + 'success' => Color::Green, + 'warning' => Color::Amber, + 'blurple' => Color::hex('#5865F2'), + ]); + + FilamentView::registerRenderHook( + PanelsRenderHook::PAGE_START, + fn () => Blade::render('@livewire(\App\Livewire\AlertBannerContainer::class)'), + ); + + FilamentView::registerRenderHook( + PanelsRenderHook::FOOTER, + fn () => Blade::render('filament.layouts.footer'), + ); + + FilamentView::registerRenderHook( + PanelsRenderHook::STYLES_BEFORE, + fn () => Blade::render("@vite(['resources/css/app.css'])") + ); + + FilamentView::registerRenderHook( + PanelsRenderHook::SCRIPTS_AFTER, + fn () => Blade::render("@vite(['resources/js/app.js'])"), + ); + + on('dehydrate', function (Component $component) { + if (!Livewire::isLivewireRequest()) { + return; + } + + if (store($component)->has('redirect')) { + return; + } + + if (count(session()->get('alert-banners') ?? []) <= 0) { + return; + } + + $component->dispatch('alertBannerSent'); + }); + + Field::macro('hintCopy', function () { + /** @var Field $this */ + return $this->hintAction(CopyAction::make()); // @phpstan-ignore varTag.nativeType + }); + + Select::configureUsing(fn (Select $select) => $select->native(false)); + } + + public function register(): void {} +} diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 62fd6a953..8a7824689 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -5,13 +5,14 @@ return [ App\Providers\AppServiceProvider::class, App\Providers\BackupsServiceProvider::class, App\Providers\EventServiceProvider::class, - App\Providers\Filament\AdminPanelProvider::class, - App\Providers\Filament\AppPanelProvider::class, - App\Providers\Filament\ServerPanelProvider::class, App\Providers\Extensions\AvatarServiceProvider::class, App\Providers\Extensions\CaptchaServiceProvider::class, App\Providers\Extensions\FeatureServiceProvider::class, App\Providers\Extensions\OAuthServiceProvider::class, + App\Providers\Filament\AdminPanelProvider::class, + App\Providers\Filament\AppPanelProvider::class, + App\Providers\Filament\FilamentServiceProvider::class, + App\Providers\Filament\ServerPanelProvider::class, App\Providers\RouteServiceProvider::class, SocialiteProviders\Manager\ServiceProvider::class, ];