Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

PrimaryColor.php 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Enums\Setting;
  3. use App\Enums\Concerns\Utilities;
  4. use Filament\Support\Colors\Color;
  5. use Filament\Support\Contracts\HasColor;
  6. use Filament\Support\Contracts\HasLabel;
  7. use Spatie\Color\Rgb;
  8. use UnexpectedValueException;
  9. enum PrimaryColor: string implements HasColor, HasLabel
  10. {
  11. use Utilities;
  12. case Slate = 'slate';
  13. case Gray = 'gray';
  14. case Zinc = 'zinc';
  15. case Neutral = 'neutral';
  16. case Stone = 'stone';
  17. case Red = 'red';
  18. case Orange = 'orange';
  19. case Amber = 'amber';
  20. case Yellow = 'yellow';
  21. case Lime = 'lime';
  22. case Green = 'green';
  23. case Emerald = 'emerald';
  24. case Teal = 'teal';
  25. case Cyan = 'cyan';
  26. case Sky = 'sky';
  27. case Blue = 'blue';
  28. case Indigo = 'indigo';
  29. case Violet = 'violet';
  30. case Purple = 'purple';
  31. case Fuchsia = 'fuchsia';
  32. case Pink = 'pink';
  33. case Rose = 'rose';
  34. public const DEFAULT = self::Indigo->value;
  35. public function getColor(): string | array | null
  36. {
  37. return match ($this) {
  38. self::Slate => Color::Slate,
  39. self::Gray => Color::Gray,
  40. self::Zinc => Color::Zinc,
  41. self::Neutral => Color::Neutral,
  42. self::Stone => Color::Stone,
  43. self::Red => Color::Red,
  44. self::Orange => Color::Orange,
  45. self::Amber => Color::Amber,
  46. self::Yellow => Color::Yellow,
  47. self::Lime => Color::Lime,
  48. self::Green => Color::Green,
  49. self::Emerald => Color::Emerald,
  50. self::Teal => Color::Teal,
  51. self::Cyan => Color::Cyan,
  52. self::Sky => Color::Sky,
  53. self::Blue => Color::Blue,
  54. self::Indigo => Color::Indigo,
  55. self::Violet => Color::Violet,
  56. self::Purple => Color::Purple,
  57. self::Fuchsia => Color::Fuchsia,
  58. self::Pink => Color::Pink,
  59. self::Rose => Color::Rose,
  60. };
  61. }
  62. public function getLabel(): ?string
  63. {
  64. return ucfirst(translate($this->value));
  65. }
  66. /**
  67. * @throws UnexpectedValueException
  68. */
  69. public function getHexCode(): string
  70. {
  71. $colorArray = $this->getColor();
  72. if ($colorArray !== null && isset($colorArray[600])) {
  73. $rgbToString = $colorArray[600];
  74. return Rgb::fromString("rgb({$rgbToString})")->toHex();
  75. }
  76. throw new UnexpectedValueException("The color {$this->value} does not have a hex code.");
  77. }
  78. }