From 3039a14e3c36afb0bf827ffd2a47ee05c4e2d766 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Sat, 16 Nov 2024 15:23:03 +0100 Subject: [PATCH 1/3] Support globally setting simple page max width --- packages/panels/docs/09-configuration.md | 18 ++++++++-- .../views/components/layout/simple.blade.php | 35 ++++++++++++------- packages/panels/src/FilamentManager.php | 5 +++ .../src/Panel/Concerns/HasMaxContentWidth.php | 14 ++++++++ 4 files changed, 58 insertions(+), 14 deletions(-) diff --git a/packages/panels/docs/09-configuration.md b/packages/panels/docs/09-configuration.md index 2ae1636cd26..cfdf4e7b89c 100644 --- a/packages/panels/docs/09-configuration.md +++ b/packages/panels/docs/09-configuration.md @@ -115,6 +115,20 @@ public function panel(Panel $panel): Panel } ``` +If you'd like to set the max width for pages of the type `SimplePage`, like login and registration pages, you may do so by using the `simplePageMaxWidth()` method. The default is `Large`: + +```php +use Filament\Panel; +use Filament\Support\Enums\MaxWidth; + +public function panel(Panel $panel): Panel +{ + return $panel + // ... + ->simplePageMaxWidth(MaxWidth::Small); +} +``` + ## Lifecycle hooks Hooks may be used to execute code during a panel's lifecycle. `bootUsing()` is a hook that gets run on every request that takes place within that panel. If you have multiple panels, only the current panel's `bootUsing()` will be run. The function gets run from middleware, after all service providers have been booted: @@ -230,7 +244,7 @@ use Filament\Resources\Pages\CreateRecord; class CreatePost extends CreateRecord { protected ?bool $hasDatabaseTransactions = false; - + // ... } ``` @@ -254,7 +268,7 @@ use Filament\Resources\Pages\CreateRecord; class CreatePost extends CreateRecord { protected ?bool $hasDatabaseTransactions = true; - + // ... } ``` diff --git a/packages/panels/resources/views/components/layout/simple.blade.php b/packages/panels/resources/views/components/layout/simple.blade.php index f5dafcfffb9..7643741fc28 100644 --- a/packages/panels/resources/views/components/layout/simple.blade.php +++ b/packages/panels/resources/views/components/layout/simple.blade.php @@ -30,18 +30,29 @@ class="fi-simple-main-ctn flex w-full flex-grow items-center justify-center"
'sm:max-w-xs', - MaxWidth::Small, 'sm' => 'sm:max-w-sm', - MaxWidth::Medium, 'md' => 'sm:max-w-md', - MaxWidth::ExtraLarge, 'xl' => 'sm:max-w-xl', - MaxWidth::TwoExtraLarge, '2xl' => 'sm:max-w-2xl', - MaxWidth::ThreeExtraLarge, '3xl' => 'sm:max-w-3xl', - MaxWidth::FourExtraLarge, '4xl' => 'sm:max-w-4xl', - MaxWidth::FiveExtraLarge, '5xl' => 'sm:max-w-5xl', - MaxWidth::SixExtraLarge, '6xl' => 'sm:max-w-6xl', - MaxWidth::SevenExtraLarge, '7xl' => 'sm:max-w-7xl', - default => 'sm:max-w-lg', + match ($maxWidth ??= (filament()->getSimplePageMaxWidth() ?? MaxWidth::Large)) { + MaxWidth::ExtraSmall, 'xs' => 'max-w-xs', + MaxWidth::Small, 'sm' => 'max-w-sm', + MaxWidth::Medium, 'md' => 'max-w-md', + MaxWidth::Large, 'lg' => 'max-w-lg', + MaxWidth::ExtraLarge, 'xl' => 'max-w-xl', + MaxWidth::TwoExtraLarge, '2xl' => 'max-w-2xl', + MaxWidth::ThreeExtraLarge, '3xl' => 'max-w-3xl', + MaxWidth::FourExtraLarge, '4xl' => 'max-w-4xl', + MaxWidth::FiveExtraLarge, '5xl' => 'max-w-5xl', + MaxWidth::SixExtraLarge, '6xl' => 'max-w-6xl', + MaxWidth::SevenExtraLarge, '7xl' => 'max-w-7xl', + MaxWidth::Full, 'full' => 'max-w-full', + MaxWidth::MinContent, 'min' => 'max-w-min', + MaxWidth::MaxContent, 'max' => 'max-w-max', + MaxWidth::FitContent, 'fit' => 'max-w-fit', + MaxWidth::Prose, 'prose' => 'max-w-prose', + MaxWidth::ScreenSmall, 'screen-sm' => 'max-w-screen-sm', + MaxWidth::ScreenMedium, 'screen-md' => 'max-w-screen-md', + MaxWidth::ScreenLarge, 'screen-lg' => 'max-w-screen-lg', + MaxWidth::ScreenExtraLarge, 'screen-xl' => 'max-w-screen-xl', + MaxWidth::ScreenTwoExtraLarge, 'screen-2xl' => 'max-w-screen-2xl', + default => $maxWidth, }, ]) > diff --git a/packages/panels/src/FilamentManager.php b/packages/panels/src/FilamentManager.php index 2453fd9f56f..482ed6c20a2 100644 --- a/packages/panels/src/FilamentManager.php +++ b/packages/panels/src/FilamentManager.php @@ -225,6 +225,11 @@ public function getMaxContentWidth(): MaxWidth | string | null return $this->getCurrentPanel()->getMaxContentWidth(); } + public function getSimplePageMaxWidth(): MaxWidth | string | null + { + return $this->getCurrentPanel()->getSimplePageMaxWidth(); + } + public function getModelResource(string | Model $model): ?string { return $this->getCurrentPanel()->getModelResource($model); diff --git a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php index 1530f77d17a..530bc376ca8 100644 --- a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php +++ b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php @@ -8,6 +8,8 @@ trait HasMaxContentWidth { protected MaxWidth | string | null $maxContentWidth = null; + protected MaxWidth | string | null $simplePageMaxWidth = null; + public function maxContentWidth(MaxWidth | string | null $maxContentWidth): static { $this->maxContentWidth = $maxContentWidth; @@ -19,4 +21,16 @@ public function getMaxContentWidth(): MaxWidth | string | null { return $this->maxContentWidth; } + + public function simplePageMaxWidth(MaxWidth | string | null $width): static + { + $this->simplePageMaxWidth = $width; + + return $this; + } + + public function getSimplePageMaxWidth(): MaxWidth | string | null + { + return $this->simplePageMaxWidth; + } } From 833335c1ac2b8706b995cdbd9f5fd1ed76d7f4d5 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Mon, 25 Nov 2024 07:53:15 +0100 Subject: [PATCH 2/3] Rename max simple page content width API --- packages/panels/docs/09-configuration.md | 4 ++-- .../resources/views/components/layout/simple.blade.php | 2 +- packages/panels/src/FilamentManager.php | 4 ++-- .../panels/src/Panel/Concerns/HasMaxContentWidth.php | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/panels/docs/09-configuration.md b/packages/panels/docs/09-configuration.md index cfdf4e7b89c..c5523510205 100644 --- a/packages/panels/docs/09-configuration.md +++ b/packages/panels/docs/09-configuration.md @@ -115,7 +115,7 @@ public function panel(Panel $panel): Panel } ``` -If you'd like to set the max width for pages of the type `SimplePage`, like login and registration pages, you may do so by using the `simplePageMaxWidth()` method. The default is `Large`: +If you'd like to set the max content width for pages of the type `SimplePage`, like login and registration pages, you may do so using the `maxSimplePageContentWidth()` method. The default is `Large`: ```php use Filament\Panel; @@ -125,7 +125,7 @@ public function panel(Panel $panel): Panel { return $panel // ... - ->simplePageMaxWidth(MaxWidth::Small); + ->maxSimplePageContentWidth(MaxWidth::Small); } ``` diff --git a/packages/panels/resources/views/components/layout/simple.blade.php b/packages/panels/resources/views/components/layout/simple.blade.php index 7643741fc28..fad751857fc 100644 --- a/packages/panels/resources/views/components/layout/simple.blade.php +++ b/packages/panels/resources/views/components/layout/simple.blade.php @@ -30,7 +30,7 @@ class="fi-simple-main-ctn flex w-full flex-grow items-center justify-center"
getSimplePageMaxWidth() ?? MaxWidth::Large)) { + match ($maxWidth ??= (filament()->getMaxSimplePageContentWidth() ?? MaxWidth::Large)) { MaxWidth::ExtraSmall, 'xs' => 'max-w-xs', MaxWidth::Small, 'sm' => 'max-w-sm', MaxWidth::Medium, 'md' => 'max-w-md', diff --git a/packages/panels/src/FilamentManager.php b/packages/panels/src/FilamentManager.php index 482ed6c20a2..142fff8d8ed 100644 --- a/packages/panels/src/FilamentManager.php +++ b/packages/panels/src/FilamentManager.php @@ -225,9 +225,9 @@ public function getMaxContentWidth(): MaxWidth | string | null return $this->getCurrentPanel()->getMaxContentWidth(); } - public function getSimplePageMaxWidth(): MaxWidth | string | null + public function getMaxSimplePageContentWidth(): MaxWidth | string | null { - return $this->getCurrentPanel()->getSimplePageMaxWidth(); + return $this->getCurrentPanel()->getMaxSimplePageContentWidth(); } public function getModelResource(string | Model $model): ?string diff --git a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php index 530bc376ca8..7b9e10b4041 100644 --- a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php +++ b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php @@ -8,7 +8,7 @@ trait HasMaxContentWidth { protected MaxWidth | string | null $maxContentWidth = null; - protected MaxWidth | string | null $simplePageMaxWidth = null; + protected MaxWidth | string | null $maxSimplePageContentWidth = null; public function maxContentWidth(MaxWidth | string | null $maxContentWidth): static { @@ -22,15 +22,15 @@ public function getMaxContentWidth(): MaxWidth | string | null return $this->maxContentWidth; } - public function simplePageMaxWidth(MaxWidth | string | null $width): static + public function maxSimplePageContentWidth(MaxWidth | string | null $width): static { - $this->simplePageMaxWidth = $width; + $this->maxSimplePageContentWidth = $width; return $this; } - public function getSimplePageMaxWidth(): MaxWidth | string | null + public function getMaxSimplePageContentWidth(): MaxWidth | string | null { - return $this->simplePageMaxWidth; + return $this->maxSimplePageContentWidth; } } From 32ba98e2377c4dee6819599a1f3d2807d30ac540 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Thu, 28 Nov 2024 08:09:21 +0100 Subject: [PATCH 3/3] Rename maxSimplePageContentWidth to simplePageMaxContentWidth --- packages/panels/docs/09-configuration.md | 4 ++-- .../resources/views/components/layout/simple.blade.php | 2 +- packages/panels/src/FilamentManager.php | 4 ++-- .../panels/src/Panel/Concerns/HasMaxContentWidth.php | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/panels/docs/09-configuration.md b/packages/panels/docs/09-configuration.md index c5523510205..d7d2ec67b69 100644 --- a/packages/panels/docs/09-configuration.md +++ b/packages/panels/docs/09-configuration.md @@ -115,7 +115,7 @@ public function panel(Panel $panel): Panel } ``` -If you'd like to set the max content width for pages of the type `SimplePage`, like login and registration pages, you may do so using the `maxSimplePageContentWidth()` method. The default is `Large`: +If you'd like to set the max content width for pages of the type `SimplePage`, like login and registration pages, you may do so using the `simplePageMaxContentWidth()` method. The default is `Large`: ```php use Filament\Panel; @@ -125,7 +125,7 @@ public function panel(Panel $panel): Panel { return $panel // ... - ->maxSimplePageContentWidth(MaxWidth::Small); + ->simplePageMaxContentWidth(MaxWidth::Small); } ``` diff --git a/packages/panels/resources/views/components/layout/simple.blade.php b/packages/panels/resources/views/components/layout/simple.blade.php index fad751857fc..34895433e43 100644 --- a/packages/panels/resources/views/components/layout/simple.blade.php +++ b/packages/panels/resources/views/components/layout/simple.blade.php @@ -30,7 +30,7 @@ class="fi-simple-main-ctn flex w-full flex-grow items-center justify-center"
getMaxSimplePageContentWidth() ?? MaxWidth::Large)) { + match ($maxWidth ??= (filament()->getSimplePageMaxContentWidth() ?? MaxWidth::Large)) { MaxWidth::ExtraSmall, 'xs' => 'max-w-xs', MaxWidth::Small, 'sm' => 'max-w-sm', MaxWidth::Medium, 'md' => 'max-w-md', diff --git a/packages/panels/src/FilamentManager.php b/packages/panels/src/FilamentManager.php index 142fff8d8ed..0065644098a 100644 --- a/packages/panels/src/FilamentManager.php +++ b/packages/panels/src/FilamentManager.php @@ -225,9 +225,9 @@ public function getMaxContentWidth(): MaxWidth | string | null return $this->getCurrentPanel()->getMaxContentWidth(); } - public function getMaxSimplePageContentWidth(): MaxWidth | string | null + public function getSimplePageMaxContentWidth(): MaxWidth | string | null { - return $this->getCurrentPanel()->getMaxSimplePageContentWidth(); + return $this->getCurrentPanel()->getSimplePageMaxContentWidth(); } public function getModelResource(string | Model $model): ?string diff --git a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php index 7b9e10b4041..44837ac5d45 100644 --- a/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php +++ b/packages/panels/src/Panel/Concerns/HasMaxContentWidth.php @@ -8,7 +8,7 @@ trait HasMaxContentWidth { protected MaxWidth | string | null $maxContentWidth = null; - protected MaxWidth | string | null $maxSimplePageContentWidth = null; + protected MaxWidth | string | null $simplePageMaxContentWidth = null; public function maxContentWidth(MaxWidth | string | null $maxContentWidth): static { @@ -22,15 +22,15 @@ public function getMaxContentWidth(): MaxWidth | string | null return $this->maxContentWidth; } - public function maxSimplePageContentWidth(MaxWidth | string | null $width): static + public function simplePageMaxContentWidth(MaxWidth | string | null $width): static { - $this->maxSimplePageContentWidth = $width; + $this->simplePageMaxContentWidth = $width; return $this; } - public function getMaxSimplePageContentWidth(): MaxWidth | string | null + public function getSimplePageMaxContentWidth(): MaxWidth | string | null { - return $this->maxSimplePageContentWidth; + return $this->simplePageMaxContentWidth; } }