6 Commits
1.0.0 ... 1.1.0

Author SHA1 Message Date
brabli
0d9fbc3aed Update readme 2025-11-13 16:37:38 +00:00
brabli
14fd9ca2ec Tweak error message 2025-11-13 16:36:58 +00:00
brabli
93c4dd1e64 Add accent badge colour 2025-11-13 16:34:58 +00:00
brabli
61eaa62406 Update changelog 2025-11-13 16:30:22 +00:00
brabli
bcd97f20a3 Add zinc badge colour 2025-11-13 16:30:11 +00:00
brabli
9c1c0c1ba1 Add new colours 2025-11-13 16:26:35 +00:00
3 changed files with 23 additions and 1 deletions

View File

@@ -1,5 +1,9 @@
# Changelog # Changelog
## [1.1.0] - 2025-11-13
- Add new badge colours
- Tweak error message
## [1.0.0] - 2025-02-26 ## [1.0.0] - 2025-02-26
- Add label attribute to set badge text - Add label attribute to set badge text
- Rename `Badge` enum to `BadgeColour` - Rename `Badge` enum to `BadgeColour`

View File

@@ -8,40 +8,58 @@ use Pcm\BadgeBundle\Model\BadgePalette;
enum BadgeColour enum BadgeColour
{ {
case ACCENT;
case AMBER; case AMBER;
case BLACK; case BLACK;
case BLUE; case BLUE;
case BROWN;
case DEFAULT; case DEFAULT;
case EMERALD;
case FOREST; case FOREST;
case FUCHSIA;
case GOLD;
case GREEN; case GREEN;
case GREY; case GREY;
case LIME;
case RED; case RED;
case ROSE; case ROSE;
case SKY;
case MAROON; case MAROON;
case NAVY; case NAVY;
case OCHRE; case OCHRE;
case ORANGE; case ORANGE;
case PINK;
case STRIPE; case STRIPE;
case YELLOW; case YELLOW;
case ZINC;
public function getPalette(): BadgePalette public function getPalette(): BadgePalette
{ {
return match ($this) { return match ($this) {
$this::ACCENT => new BadgePalette('text-accent', 'border-accent', 'bg-accent'),
$this::AMBER => new BadgePalette('text-amber-500', 'border-amber-500', 'bg-amber-500'), $this::AMBER => new BadgePalette('text-amber-500', 'border-amber-500', 'bg-amber-500'),
$this::BLACK => new BadgePalette('text-zinc-900', 'border-zinc-900', 'bg-zinc-900'), $this::BLACK => new BadgePalette('text-zinc-900', 'border-zinc-900', 'bg-zinc-900'),
$this::BLUE => new BadgePalette('text-sky-700', 'border-sky-700', 'bg-sky-700'), $this::BLUE => new BadgePalette('text-sky-700', 'border-sky-700', 'bg-sky-700'),
$this::BROWN => new BadgePalette('text-orange-900', 'border-orange-900', 'bg-orange-900'),
$this::DEFAULT => new BadgePalette('text-primary', 'border-primary', 'bg-primary'), $this::DEFAULT => new BadgePalette('text-primary', 'border-primary', 'bg-primary'),
$this::EMERALD => new BadgePalette('text-emerald-600', 'border-emerald-600', 'bg-emerald-600'),
$this::FOREST => new BadgePalette('text-green-800', 'border-green-800', 'bg-green-800'), $this::FOREST => new BadgePalette('text-green-800', 'border-green-800', 'bg-green-800'),
$this::FUCHSIA => new BadgePalette('text-fuchsia-500', 'border-fuchsia-500', 'bg-fuchsia-500'),
$this::GOLD => new BadgePalette('text-yellow-600', 'border-yellow-600', 'bg-yellow-600'),
$this::GREEN => new BadgePalette('text-green-600', 'border-green-600', 'bg-green-600'), $this::GREEN => new BadgePalette('text-green-600', 'border-green-600', 'bg-green-600'),
$this::GREY => new BadgePalette('text-neutral-400', 'border-neutral-400', 'bg-neutral-400'), $this::GREY => new BadgePalette('text-neutral-400', 'border-neutral-400', 'bg-neutral-400'),
$this::LIME => new BadgePalette('text-lime-600', 'border-lime-600', 'bg-lime-600'),
$this::RED => new BadgePalette('text-red-600', 'border-red-600', 'bg-red-600'), $this::RED => new BadgePalette('text-red-600', 'border-red-600', 'bg-red-600'),
$this::ROSE => new BadgePalette('text-rose-600', 'border-rose-600', 'bg-rose-600'), $this::ROSE => new BadgePalette('text-rose-600', 'border-rose-600', 'bg-rose-600'),
$this::SKY => new BadgePalette('text-sky-500', 'border-sky-500', 'bg-sky-500'),
$this::MAROON => new BadgePalette('text-red-900', 'border-red-900', 'bg-red-900'), $this::MAROON => new BadgePalette('text-red-900', 'border-red-900', 'bg-red-900'),
$this::NAVY => new BadgePalette('text-blue-900', 'border-blue-900', 'bg-blue-900'), $this::NAVY => new BadgePalette('text-blue-900', 'border-blue-900', 'bg-blue-900'),
$this::OCHRE => new BadgePalette('text-yellow-800', 'border-yellow-800', 'bg-yellow-800'), $this::OCHRE => new BadgePalette('text-yellow-800', 'border-yellow-800', 'bg-yellow-800'),
$this::ORANGE => new BadgePalette('text-orange-500', 'border-orange-500', 'bg-orange-500'), $this::ORANGE => new BadgePalette('text-orange-500', 'border-orange-500', 'bg-orange-500'),
$this::PINK => new BadgePalette('text-pink-400', 'border-pink-400', 'bg-pink-400'),
$this::STRIPE => new BadgePalette('text-indigo-500', 'border-indigo-500', 'bg-indigo-500'), $this::STRIPE => new BadgePalette('text-indigo-500', 'border-indigo-500', 'bg-indigo-500'),
$this::YELLOW => new BadgePalette('text-yellow-500', 'border-yellow-500', 'bg-yellow-500'), $this::YELLOW => new BadgePalette('text-yellow-500', 'border-yellow-500', 'bg-yellow-500'),
$this::ZINC => new BadgePalette('text-zinc-500', 'border-zinc-500', 'bg-zinc-500'),
}; };
} }
} }

View File

@@ -48,7 +48,7 @@ final class Badge
if (!in_array($colour, $cases)) { if (!in_array($colour, $cases)) {
$formattedCases = implode(', ', array_map(fn (string $s) => '"'.$s.'"', $cases)); $formattedCases = implode(', ', array_map(fn (string $s) => '"'.$s.'"', $cases));
throw new \RuntimeException(sprintf('"%s" is not a valid Badge colour. Available options are: %s', $colour, $formattedCases)); throw new \RuntimeException(sprintf('"%s" is not a valid badge colour. Available options are: %s.', $colour, $formattedCases));
} }
$colour = strtoupper($colour); $colour = strtoupper($colour);