Add badge outline

This commit is contained in:
2024-08-08 15:11:49 +01:00
parent 255d76daa3
commit 7da28adf6c

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace Pcm\BadgeBundle\Twig\Component;
use Pcm\BadgeBundle\Interface\BadgeableInterface;
use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
use TailwindMerge\TailwindMerge;
#[AsTwigComponent(name: 'Pcm:BadgeOutline', template: "@PcmBadge/Badge.html.twig")]
final class BadgeOutline
{
public string $finalClasses = '';
public function __construct(private string $baseClasses)
{
}
/**
* @param BadgeableInterface $object The object to be converted into a badge
* @param string $class Extra classes you want to add to the badge template
*/
public function mount(BadgeableInterface $object, string $class = ''): void
{
$palette = $object->getBadgeColour()->getPalette();
$merger = TailwindMerge::instance();
$this->finalClasses = $merger->merge(sprintf('bg-white %s %s %s %s', $palette->borderColourClass, $palette->textColourClass, $this->baseClasses, $class));
}
}