1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
-
- namespace App\Enums;
-
- use App\Enums\Concerns\Utilities;
- use Filament\Support\Colors\Color;
- use Filament\Support\Contracts\HasColor;
- use Spatie\Color\Rgb;
- use UnexpectedValueException;
-
- enum PrimaryColor: string implements HasColor
- {
- use Utilities;
-
- case Slate = 'slate';
- case Gray = 'gray';
- case Zinc = 'zinc';
- case Neutral = 'neutral';
- case Stone = 'stone';
- case Red = 'red';
- case Orange = 'orange';
- case Amber = 'amber';
- case Yellow = 'yellow';
- case Lime = 'lime';
- case Green = 'green';
- case Emerald = 'emerald';
- case Teal = 'teal';
- case Cyan = 'cyan';
- case Sky = 'sky';
- case Blue = 'blue';
- case Indigo = 'indigo';
- case Violet = 'violet';
- case Purple = 'purple';
- case Fuchsia = 'fuchsia';
- case Pink = 'pink';
- case Rose = 'rose';
-
- public const DEFAULT = self::Indigo->value;
-
- public function getColor(): string | array | null
- {
- return match ($this) {
- self::Slate => Color::Slate,
- self::Gray => Color::Gray,
- self::Zinc => Color::Zinc,
- self::Neutral => Color::Neutral,
- self::Stone => Color::Stone,
- self::Red => Color::Red,
- self::Orange => Color::Orange,
- self::Amber => Color::Amber,
- self::Yellow => Color::Yellow,
- self::Lime => Color::Lime,
- self::Green => Color::Green,
- self::Emerald => Color::Emerald,
- self::Teal => Color::Teal,
- self::Cyan => Color::Cyan,
- self::Sky => Color::Sky,
- self::Blue => Color::Blue,
- self::Indigo => Color::Indigo,
- self::Violet => Color::Violet,
- self::Purple => Color::Purple,
- self::Fuchsia => Color::Fuchsia,
- self::Pink => Color::Pink,
- self::Rose => Color::Rose,
- };
- }
-
- /**
- * @throws UnexpectedValueException
- */
- public function getHexCode(): string
- {
- $colorArray = $this->getColor();
-
- if ($colorArray !== null && isset($colorArray[600])) {
- $rgbToString = $colorArray[600];
-
- return Rgb::fromString("rgb({$rgbToString})")->toHex();
- }
-
- throw new UnexpectedValueException("The color {$this->value} does not have a hex code.");
- }
- }
|