Fix tests

This commit is contained in:
Dan Harrin
2025-01-27 11:45:13 +00:00
parent 410bd30034
commit c9123df9c9
35 changed files with 153 additions and 149 deletions
@@ -86,7 +86,7 @@ trait CanOpenModal
protected string | Closure | null $modalIcon = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $modalIconColor = null;
@@ -145,7 +145,7 @@ trait CanOpenModal
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function modalIconColor(string | array | Closure | null $color = null): static
{
@@ -691,7 +691,7 @@ trait CanOpenModal
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getModalIconColor(): string | array | null
{
@@ -37,14 +37,14 @@ trait HasAffixes
protected string | Closure | null $prefixIcon = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $prefixIconColor = null;
protected string | Closure | null $suffixIcon = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $suffixIconColor = null;
@@ -138,7 +138,7 @@ trait HasAffixes
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function prefixIconColor(string | array | Closure | null $color = null): static
{
@@ -156,7 +156,7 @@ trait HasAffixes
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function suffixIconColor(string | array | Closure | null $color = null): static
{
@@ -242,7 +242,7 @@ trait HasAffixes
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getPrefixIconColor(): string | array | null
{
@@ -250,7 +250,7 @@ trait HasAffixes
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getSuffixIconColor(): string | array | null
{
@@ -10,12 +10,12 @@ use UnitEnum;
trait HasColors
{
/**
* @var array<string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null> | Arrayable | Closure | null
* @var array<string | array<int | string, string | int> | null> | Arrayable | Closure | null
*/
protected array | Arrayable | Closure | null $colors = null;
/**
* @param array<string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null> | Arrayable | Closure | null $colors
* @param array<string | array<int | string, string | int> | null> | Arrayable | Closure | null $colors
*/
public function colors(array | Arrayable | Closure | null $colors): static
{
@@ -25,7 +25,7 @@ trait HasColors
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(mixed $value): string | array | null
{
@@ -33,7 +33,7 @@ trait HasColors
}
/**
* @return array<string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null>
* @return array<string | array<int | string, string | int> | null>
*/
public function getColors(): array
{
@@ -20,7 +20,7 @@ trait HasHint
protected array $hintActions = [];
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $hintColor = null;
@@ -62,7 +62,7 @@ trait HasHint
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function hintColor(string | array | Closure | null $color): static
{
@@ -112,7 +112,7 @@ trait HasHint
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getHintColor(): string | array | null
{
@@ -7,17 +7,17 @@ use Closure;
trait HasToggleColors
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $offColor = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $onColor = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function offColor(string | array | Closure | null $color): static
{
@@ -27,7 +27,7 @@ trait HasToggleColors
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function onColor(string | array | Closure | null $color): static
{
@@ -37,7 +37,7 @@ trait HasToggleColors
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getOffColor(): string | array | null
{
@@ -45,7 +45,7 @@ trait HasToggleColors
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getOnColor(): string | array | null
{
@@ -9,12 +9,12 @@ use Filament\Support\Contracts\HasColor as ColorInterface;
trait HasColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | bool | Closure | null
* @var string | array<int | string, string | int> | bool | Closure | null
*/
protected string | array | bool | Closure | null $color = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | bool | Closure | null $color
* @param string | array<int | string, string | int> | bool | Closure | null $color
*/
public function color(string | array | bool | Closure | null $color): static
{
@@ -50,7 +50,7 @@ trait HasColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(mixed $state): string | array | null
{
@@ -19,7 +19,7 @@ trait HasHint
protected array $hintActions = [];
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $hintColor = null;
@@ -61,7 +61,7 @@ trait HasHint
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function hintColor(string | array | Closure | null $color): static
{
@@ -111,7 +111,7 @@ trait HasHint
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getHintColor(): string | array | null
{
@@ -7,12 +7,12 @@ use Closure;
trait HasIconColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $iconColor = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function iconColor(string | array | Closure | null $color): static
{
@@ -22,7 +22,7 @@ trait HasIconColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getIconColor(mixed $state): string | array | null
{
@@ -23,14 +23,14 @@ class IconEntry extends Entry
protected bool | Closure | null $isBoolean = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $falseColor = null;
protected string | Closure | null $falseIcon = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $trueColor = null;
@@ -46,7 +46,7 @@ class IconEntry extends Entry
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function false(string | Closure | null $icon = null, string | array | Closure | null $color = null): static
{
@@ -57,7 +57,7 @@ class IconEntry extends Entry
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function falseColor(string | array | Closure | null $color): static
{
@@ -76,7 +76,7 @@ class IconEntry extends Entry
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function true(string | Closure | null $icon = null, string | array | Closure | null $color = null): static
{
@@ -87,7 +87,7 @@ class IconEntry extends Entry
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function trueColor(string | array | Closure | null $color): static
{
@@ -137,7 +137,7 @@ class IconEntry extends Entry
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(mixed $state): string | array | null
{
@@ -157,7 +157,7 @@ class IconEntry extends Entry
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return string | array<int | string, string | int>
*/
public function getFalseColor(): string | array
{
@@ -172,7 +172,7 @@ class IconEntry extends Entry
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return string | array<int | string, string | int>
*/
public function getTrueColor(): string | array
{
@@ -11,7 +11,7 @@ trait HasIconColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getIconColor(): string | array | null
{
@@ -18,6 +18,6 @@ class UiAvatarsProvider implements Contracts\AvatarProvider
->map(fn (string $segment): string => filled($segment) ? mb_substr($segment, 0, 1) : '')
->join(' ');
return 'https://ui-avatars.com/api/?name=' . urlencode($name) . '&color=FFFFFF&background=' . FilamentColor::getColor('gray')[950] ?? Color::Gray[950];
return 'https://ui-avatars.com/api/?name=' . urlencode($name) . '&color=FFFFFF&background=' . (FilamentColor::getColor('gray')[950] ?? Color::Gray[950]);
}
}
+3 -3
View File
@@ -14,7 +14,7 @@ use Laravel\SerializableClosure\Serializers\Native;
class MenuItem extends Component
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $color = null;
@@ -45,7 +45,7 @@ class MenuItem extends Component
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function color(string | array | Closure | null $color): static
{
@@ -126,7 +126,7 @@ class MenuItem extends Component
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(): string | array | null
{
@@ -25,7 +25,7 @@ class NavigationItem extends Component
protected string | Closure | null $badge = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $badgeColor = null;
@@ -62,7 +62,7 @@ class NavigationItem extends Component
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function badge(string | Closure | null $badge, string | array | Closure | null $color = null): static
{
@@ -163,7 +163,7 @@ class NavigationItem extends Component
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getBadgeColor(): string | array | null
{
+1 -1
View File
@@ -185,7 +185,7 @@ abstract class Page extends BasePage
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public static function getNavigationBadgeColor(): string | array | null
{
@@ -7,12 +7,12 @@ use Closure;
trait HasColors
{
/**
* @var array<array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string> | Closure>
* @var array<array<string, array<int | string, string | int> | string> | Closure>
*/
protected array $colors = [];
/**
* @param array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string> | Closure $colors
* @param array<string, array<int | string, string | int> | string> | Closure $colors
*/
public function colors(array | Closure $colors): static
{
@@ -22,7 +22,7 @@ trait HasColors
}
/**
* @return array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string>
* @return array<string, array<int | string, string | int> | string>
*/
public function getColors(): array
{
@@ -140,7 +140,7 @@ trait HasNavigation
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public static function getNavigationBadgeColor(): string | array | null
{
@@ -50,10 +50,10 @@
}
&.fi-color {
@apply text-(--color-gray-100-text) ring-color-600 dark:text-(--color-gray-700-text) dark:ring-color-500;
@apply ring-color-600 dark:ring-color-500 text-(--color-gray-100-text) dark:text-(--color-gray-700-text);
&:not(.fi-disabled):not([disabled]) {
@apply hover:bg-(--hover-bg)/10 dark:hover:bg-(--dark-hover-bg)/10 focus-visible:ring-color-500/40 dark:focus-visible:ring-color-400/40;
@apply focus-visible:ring-color-500/40 dark:focus-visible:ring-color-400/40 hover:bg-(--hover-bg)/10 dark:hover:bg-(--dark-hover-bg)/10;
}
& > .fi-icon {
@@ -79,10 +79,10 @@
&.fi-color {
&:not(label) {
@apply bg-(--bg) dark:bg-(--dark-bg) text-(--text) dark:text-(--dark-text);
@apply bg-(--bg) text-(--text) dark:bg-(--dark-bg) dark:text-(--dark-text);
&:not(.fi-disabled):not([disabled]) {
@apply hover:bg-(--hover-bg) hover:text-(--hover-text) focus-visible:ring-color-500/50 dark:hover:bg-(--dark-hover-bg) dark:hover:text-(--dark-hover-text) dark:focus-visible:ring-color-400/50;
@apply focus-visible:ring-color-500/50 dark:focus-visible:ring-color-400/50 hover:bg-(--hover-bg) hover:text-(--hover-text) dark:hover:bg-(--dark-hover-bg) dark:hover:text-(--dark-hover-text);
}
& > .fi-icon {
@@ -92,12 +92,12 @@
&label {
input:checked + & {
@apply bg-(--bg) dark:bg-(--dark-bg) text-(--text) dark:text-(--dark-text) ring-0;
@apply bg-(--bg) text-(--text) ring-0 dark:bg-(--dark-bg) dark:text-(--dark-text);
}
&:not(.fi-disabled):not([disabled]) {
input:checked + & {
@apply hover:bg-(--hover-bg) dark:hover:bg-(--dark-hover-bg) hover:text-(--hover-text) dark:hover:text-(--dark-hover-text);
@apply hover:bg-(--hover-bg) hover:text-(--hover-text) dark:hover:bg-(--dark-hover-bg) dark:hover:text-(--dark-hover-text);
}
input:focus-visible + & {
@@ -129,7 +129,7 @@
($size instanceof ActionSize) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''),
is_string($labeledFrom) ? "fi-labeled-from-{$labeledFrom}" : null,
])
->color($color, Button::class)
->color(Button::class, $color)
}}
>
@if ($iconPosition === IconPosition::Before)
+3 -1
View File
@@ -3,7 +3,6 @@
namespace Filament\Support\Assets;
use Exception;
use Filament\Support\Colors\Color;
use Filament\Support\Facades\FilamentColor;
use Illuminate\Support\Arr;
@@ -286,6 +285,9 @@ class AssetManager
])->render();
}
/**
* @param array<int | string, string | int> $palette
*/
protected function resolveColorShadeFromPalette(array $palette, string | int $shade): string
{
$color = $palette[$shade];
+9 -9
View File
@@ -956,8 +956,8 @@ class Color
}
/**
* @param array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} $palette
* @return array{50-text: int, 100-text: int, 200-text: int, 300-text: int, 400-text: int, 500-text: int, 600-text: int, 700-text: int, 800-text: int, 900-text: int, 950-text: int}
* @param array<int | string, string | int> $palette
* @return array<string, int>
*/
public static function findMatchingAccessibleTextColorsForBackgroundColors(array $palette): array
{
@@ -1003,8 +1003,8 @@ class Color
}
/**
* @param array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} $palette
* @return array{white-text: int, gray-50-text: int, gray-100-text: int, gray-200-text: int, gray-300-text: int, gray-400-text: int, gray-500-text: int, gray-600-text: int, gray-700-text: int, gray-800-text: int, gray-900-text: int, gray-950-text: int}
* @param array<int | string, string | int> $palette
* @return array<string, int>
*/
public static function findMatchingAccessibleTextColorsForGrayBackgroundColors(array $palette): array
{
@@ -1083,7 +1083,7 @@ class Color
}
/**
* @return array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return array<int | string, string | int>
*/
public static function hex(string $color): array
{
@@ -1091,7 +1091,7 @@ class Color
}
/**
* @return array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return array<int | string, string | int>
*/
public static function rgb(string $color): array
{
@@ -1099,13 +1099,13 @@ class Color
}
/**
* @return array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return array<int | string, string | int>
*/
public static function generatePalette(string $color): array
{
$color = static::convertToOklch($color);
[$originalLightness, $chroma, $hue] = sscanf($color, 'oklch(%f %f %f)');
[, $chroma, $hue] = sscanf($color, 'oklch(%f %f %f)');
return array_map(
fn (float $lightness): string => "oklch({$lightness} {$chroma} {$hue})",
@@ -1126,7 +1126,7 @@ class Color
}
/**
* @return array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}>
* @return array<string, array<int | string, string | int>>
*/
public static function all(): array
{
+28 -28
View File
@@ -4,10 +4,9 @@ namespace Filament\Support\Colors;
use Closure;
use Filament\Support\Concerns\EvaluatesClosures;
use Filament\Support\Facades\FilamentColor;
use Filament\Support\View\Components\Contracts\DoesNotHaveGrayColor;
use Filament\Support\View\Components\Contracts\HasColor;
use Filament\Support\View\Components\Contracts\HasDefaultGrayColor;
use Illuminate\Support\Arr;
use Illuminate\View\ComponentAttributeBag;
class ColorManager
{
@@ -23,12 +22,12 @@ class ColorManager
];
/**
* @var array<array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string> | Closure>
* @var array<array<string, array<int | string, string | int> | string> | Closure>
*/
protected array $colors = [];
/**
* @var array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}>
* @var array<string, array<int | string, string | int>>
*/
protected array $cachedColors;
@@ -47,10 +46,13 @@ class ColorManager
*/
protected array $removedShades = [];
protected array $componentColorClasses = [];
/**
* @var array<class-string<HasColor>, array<string, array<string>>>
*/
protected array $componentClasses = [];
/**
* @param array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string> | Closure $colors
* @param array<string, array<int | string, string | int> | string> | Closure $colors
*/
public function register(array | Closure $colors): static
{
@@ -60,7 +62,7 @@ class ColorManager
}
/**
* @return array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}>
* @return array<string, array<int | string, string | int>>
*/
public function getColors(): array
{
@@ -70,10 +72,10 @@ class ColorManager
$this->cachedColors = static::DEFAULT_COLORS;
foreach ($this->colors as $index => $colors) {
$this->colors[$index] = $this->evaluate($colors);
foreach ($this->colors as $colors) {
$colors = $this->evaluate($colors);
foreach ($this->colors[$index] as $name => $color) {
foreach ($colors as $name => $color) {
if (is_string($color)) {
$color = Color::generatePalette($color);
} else {
@@ -85,7 +87,7 @@ class ColorManager
$shades = collect($color)
->keys()
->filter(fn (int | string $key): bool => is_numeric($key))
->filter(fn (int | string $shade): bool => is_numeric($shade))
->all();
$colorOnlyShades = Arr::only($color, $shades);
@@ -97,7 +99,7 @@ class ColorManager
];
}
if (! array_key_exists("white-text", $color)) {
if (! array_key_exists('white-text', $color)) {
$color = [
...Color::findMatchingAccessibleTextColorsForGrayBackgroundColors($colorOnlyShades),
...$color,
@@ -112,7 +114,7 @@ class ColorManager
}
/**
* @return array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return ?array<int | string, string | int>
*/
public function getColor(string $color): ?array
{
@@ -167,35 +169,33 @@ class ColorManager
return $this->removedShades[$alias] ?? null;
}
public function applyColorToComponentAttributes(string $color, string $component, ComponentAttributeBag $attributes): ComponentAttributeBag
/**
* @param class-string<HasColor> $component
* @return array<string>
*/
public function getComponentClasses(string $component, string $color): array
{
$component = app($component);
if (($color === 'gray') && ($component instanceof DoesNotHaveGrayColor)) {
return $attributes;
if (($color === 'gray') && ($component instanceof HasDefaultGrayColor)) {
return [];
}
if ($this->componentColorClasses[$component::class][$color] ?? []) {
return $attributes->class($this->componentColorClasses[$component::class][$color]);
if ($this->componentClasses[$component::class][$color] ?? []) {
return $this->componentClasses[$component::class][$color];
}
$classes = ['fi-color', "fi-color-{$color}"];
$resolvedColor = FilamentColor::getColor($color);
$resolvedColor = $this->getColor($color);
if (! $resolvedColor) {
$this->componentColorClasses[$component::class][$color] = $classes;
return $attributes->class($classes);
return $this->componentClasses[$component::class][$color] = $classes;
}
$classes = [
return $this->componentClasses[$component::class][$color] = [
...$classes,
...$component->getColorClasses($resolvedColor),
];
$this->componentColorClasses[$component::class][$color] = $classes;
return $attributes->class($classes);
}
}
+4 -4
View File
@@ -10,7 +10,7 @@ trait HasBadge
protected string | int | float | Closure | null $badge = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $badgeColor = null;
@@ -36,7 +36,7 @@ trait HasBadge
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function badgeColor(string | array | Closure | null $color): static
{
@@ -69,7 +69,7 @@ trait HasBadge
/**
* @deprecated Use `badgeColor()` instead.
*
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function indicatorColor(string | array | Closure | null $color): static
{
@@ -82,7 +82,7 @@ trait HasBadge
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getBadgeColor(): string | array | null
{
+5 -5
View File
@@ -7,17 +7,17 @@ use Closure;
trait HasColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $color = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $defaultColor = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function color(string | array | Closure | null $color): static
{
@@ -27,7 +27,7 @@ trait HasColor
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function defaultColor(string | array | Closure | null $color): static
{
@@ -37,7 +37,7 @@ trait HasColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(): string | array | null
{
@@ -7,12 +7,12 @@ use Closure;
trait HasIconColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $iconColor = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function iconColor(string | array | Closure | null $color): static
{
@@ -22,7 +22,7 @@ trait HasIconColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getIconColor(): string | array | null
{
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Filament\Support\Contracts;
interface HasColor
{
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(): string | array | null;
}
@@ -4,13 +4,15 @@ namespace Filament\Support\Facades;
use Closure;
use Filament\Support\Colors\ColorManager;
use Filament\Support\View\Components\Contracts\HasColor;
use Illuminate\Support\Facades\Facade;
/**
* @method static void addShades(string $alias, array<int | string> $shades)
* @method static array<int | string> | null getAddedShades(string $alias)
* @method static array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}> getColors()
* @method static array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} getColor(string $color)
* @method static array<string, array<int | string, string | int>> getColors()
* @method static ?array<int | string, string | int> getColor(string $color)
* @method static array<string> getComponentClasses(class-string<HasColor> $component, string $color)
* @method static array<int | string> | null getOverridingShades(string $alias)
* @method static array<int | string> | null getRemovedShades(string $alias)
* @method static void overrideShades(string $alias, array<int | string> $shades)
@@ -26,7 +28,7 @@ class FilamentColor extends Facade
}
/**
* @param array<string, array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string> | Closure $colors
* @param array<string, array<int | string, string | int> | string> | Closure $colors
*/
public static function register(array | Closure $colors): void
{
@@ -157,8 +157,8 @@ class SupportServiceProvider extends PackageServiceProvider
return preg_replace('/\s*@trim\s*/m', '', $view);
});
ComponentAttributeBag::macro('color', function (string | array $color, string $component): ComponentAttributeBag {
return FilamentColor::applyColorToComponentAttributes($color, $component, $this);
ComponentAttributeBag::macro('color', function (string $component, string $color): ComponentAttributeBag {
return $this->class(FilamentColor::getComponentClasses($component, $color));
});
ComponentAttributeBag::macro('grid', function (array | int | null $columns = [], GridDirection $direction = GridDirection::Row): ComponentAttributeBag {
@@ -3,14 +3,13 @@
namespace Filament\Support\View\Components;
use Filament\Support\Colors\Color;
use Filament\Support\Facades\FilamentColor;
use Filament\Support\View\Components\Contracts\DoesNotHaveGrayColor;
use Filament\Support\View\Components\Contracts\HasColor;
use Filament\Support\View\Components\Contracts\HasDefaultGrayColor;
class Button implements HasColor, DoesNotHaveGrayColor
class Button implements HasColor, HasDefaultGrayColor
{
/**
* @param array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} $color
* @param array<int | string, string | int> $color
* @return array<string>
*/
public function getColorClasses(array $color): array
@@ -29,7 +28,7 @@ class Button implements HasColor, DoesNotHaveGrayColor
];
}
$textLightnessIndex = $this->generateTextLightnessIndexForColor($color);
$textLightnessIndex = $this->generateTextLightnessIndexForColorShades($color);
if (blank($bg)) {
if ($textLightnessIndex[600] && $textLightnessIndex[500]) {
@@ -74,7 +73,11 @@ class Button implements HasColor, DoesNotHaveGrayColor
];
}
protected function generateTextLightnessIndexForColor(array $color): array
/**
* @param array<int | string, string | int> $color
* @return array<int, bool>
*/
protected function generateTextLightnessIndexForColorShades(array $color): array
{
$textLightnessIndex = [];
@@ -5,7 +5,7 @@ namespace Filament\Support\View\Components\Contracts;
interface HasColor
{
/**
* @param array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} $color
* @param array<int | string, string | int> $color
* @return array<string>
*/
public function getColorClasses(array $color): array;
@@ -2,7 +2,4 @@
namespace Filament\Support\View\Components\Contracts;
interface DoesNotHaveGrayColor
{
}
interface HasDefaultGrayColor {}
+1 -1
View File
@@ -63,7 +63,7 @@ if (! function_exists('Filament\Support\locale_has_pluralization')) {
if (! function_exists('Filament\Support\get_color_css_variables')) {
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null $color
* @param string | array<int | string, string | int> | null $color
* @param array<int> $shades
*/
function get_color_css_variables(string | array | null $color, array $shades, ?string $alias = null): ?string
@@ -9,12 +9,12 @@ use Filament\Tables\Columns\Column;
trait HasColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | bool | Closure | null
* @var string | array<int | string, string | int> | bool | Closure | null
*/
protected string | array | bool | Closure | null $color = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | bool | Closure | null $color
* @param string | array<int | string, string | int> | bool | Closure | null $color
*/
public function color(string | array | bool | Closure | null $color): static
{
@@ -50,7 +50,7 @@ trait HasColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(mixed $state): string | array | null
{
@@ -7,12 +7,12 @@ use Closure;
trait HasIconColor
{
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $iconColor = null;
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function iconColor(string | array | Closure | null $color): static
{
@@ -22,7 +22,7 @@ trait HasIconColor
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getIconColor(mixed $state): string | array | null
{
+9 -9
View File
@@ -29,14 +29,14 @@ class IconColumn extends Column implements HasEmbeddedView
protected bool | Closure | null $isBoolean = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $falseColor = null;
protected string | Closure | null $falseIcon = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null
* @var string | array<int | string, string | int> | Closure | null
*/
protected string | array | Closure | null $trueColor = null;
@@ -61,7 +61,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function false(string | Closure | null $icon = null, string | array | Closure | null $color = null): static
{
@@ -72,7 +72,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function falseColor(string | array | Closure | null $color): static
{
@@ -91,7 +91,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function true(string | Closure | null $icon = null, string | array | Closure | null $color = null): static
{
@@ -102,7 +102,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color
* @param string | array<int | string, string | int> | Closure | null $color
*/
public function trueColor(string | array | Closure | null $color): static
{
@@ -178,7 +178,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getColor(mixed $state): string | array | null
{
@@ -198,7 +198,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return string | array<int | string, string | int>
*/
public function getFalseColor(): string | array
{
@@ -213,7 +213,7 @@ class IconColumn extends Column implements HasEmbeddedView
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string}
* @return string | array<int | string, string | int>
*/
public function getTrueColor(): string | array
{
@@ -24,7 +24,7 @@ class Stat extends Component
protected ?array $chart = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @var string | array<int | string, string | int> | null
*/
protected string | array | null $chartColor = null;
@@ -35,7 +35,7 @@ class Stat extends Component
protected IconPosition | string | null $descriptionIconPosition = null;
/**
* @var string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @var string | array<int | string, string | int> | null
*/
protected string | array | null $descriptionColor = null;
@@ -62,7 +62,7 @@ class Stat extends Component
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null $color
* @param string | array<int | string, string | int> | null $color
*/
public function chartColor(string | array | null $color): static
{
@@ -79,7 +79,7 @@ class Stat extends Component
}
/**
* @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null $color
* @param string | array<int | string, string | int> | null $color
*/
public function descriptionColor(string | array | null $color): static
{
@@ -125,7 +125,7 @@ class Stat extends Component
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getChartColor(): string | array | null
{
@@ -138,7 +138,7 @@ class Stat extends Component
}
/**
* @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null
* @return string | array<int | string, string | int> | null
*/
public function getDescriptionColor(): string | array | null
{