mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
wip
This commit is contained in:
@@ -41,11 +41,10 @@
|
||||
$color,
|
||||
shades: [
|
||||
50,
|
||||
300,
|
||||
400,
|
||||
...$icon ? [500] : [],
|
||||
600,
|
||||
...$isDeletable ? [700] : [],
|
||||
...$icon ? [500] : [],
|
||||
...$isDeletable ? [300, 700] : [],
|
||||
],
|
||||
alias: 'badge',
|
||||
) => $color !== 'gray',
|
||||
|
||||
@@ -11,11 +11,20 @@ class ColorManager
|
||||
*/
|
||||
protected array $colors = [];
|
||||
|
||||
protected array $shades = [];
|
||||
/**
|
||||
* @var array<int>
|
||||
*/
|
||||
protected array $overridingShades = [];
|
||||
|
||||
protected array $shadesToRemove = [];
|
||||
/**
|
||||
* @var array<int>
|
||||
*/
|
||||
protected array $addedShades = [];
|
||||
|
||||
protected array $shadesToAdd = [];
|
||||
/**
|
||||
* @var array<int>
|
||||
*/
|
||||
protected array $removedShades = [];
|
||||
|
||||
/**
|
||||
* @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> $colors
|
||||
@@ -80,13 +89,51 @@ class ColorManager
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int> $shades
|
||||
*/
|
||||
public function overrideShades(string $alias, array $shades): void
|
||||
{
|
||||
$this->shades[$alias] = $shades;
|
||||
$this->overridingShades[$alias] = $shades;
|
||||
}
|
||||
|
||||
public function resolveShades(string $alias): array
|
||||
/**
|
||||
* @return array<int> | null
|
||||
*/
|
||||
public function getOverridingShades(string $alias): ?array
|
||||
{
|
||||
return $this->shades[$alias] ?? [];
|
||||
return $this->overridingShades[$alias] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int> $shades
|
||||
*/
|
||||
public function addShades(string $alias, array $shades): void
|
||||
{
|
||||
$this->addedShades[$alias] = $shades;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<int> | null
|
||||
*/
|
||||
public function getAddedShades(string $alias): ?array
|
||||
{
|
||||
return $this->addedShades[$alias] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int> $shades
|
||||
*/
|
||||
public function removeShades(string $alias, array $shades): void
|
||||
{
|
||||
$this->removedShades[$alias] = $shades;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<int> | null
|
||||
*/
|
||||
public function getRemovedShades(string $alias): ?array
|
||||
{
|
||||
return $this->removedShades[$alias] ?? null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,14 @@ use Filament\Support\Colors\ColorManager;
|
||||
use Illuminate\Support\Facades\Facade;
|
||||
|
||||
/**
|
||||
* @method static array<int> addShades(string $alias, array<int> $shades)
|
||||
* @method static array<int> | 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<int> | null getOverridingShades(string $alias)
|
||||
* @method static array<int> | null getRemovedShades(string $alias)
|
||||
* @method static array<int> overrideShades(string $alias, array<int> $shades)
|
||||
* @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}> | string processColor(array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | string $color)
|
||||
* @method static array<int> removeShades(string $alias, array<int> $shades)
|
||||
*
|
||||
* @see ColorManager
|
||||
*/
|
||||
|
||||
@@ -59,7 +59,17 @@ if (! function_exists('Filament\Support\get_color_css_variables')) {
|
||||
}
|
||||
|
||||
if ($alias !== null) {
|
||||
$shades = FilamentColor::resolveShades($alias);
|
||||
if (($overridingShades = FilamentColor::getOverridingShades($alias)) !== null) {
|
||||
$shades = $overridingShades;
|
||||
}
|
||||
|
||||
if ($addedShades = FilamentColor::getAddedShades($alias)) {
|
||||
$shades = [...$shades, ...$addedShades];
|
||||
}
|
||||
|
||||
if ($removedShades = FilamentColor::getRemovedShades($alias)) {
|
||||
$shades = array_diff($shades, $removedShades);
|
||||
}
|
||||
}
|
||||
|
||||
$variables = [];
|
||||
|
||||
Reference in New Issue
Block a user