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