Add badge outline
This commit is contained in:
33
src/Twig/Component/BadgeOutline.php
Normal file
33
src/Twig/Component/BadgeOutline.php
Normal 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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user