. The given
* name will be used as automatically added CSS class for the icon element in the format 'icon-$name'. In addition,
* the CSS class 'icon' will be automatically added too.
*
* @param string $name The name of the icon
* @param Attributes|array $attributes The HTML attributes for the element
*/
public function __construct(string $name, $attributes = null)
{
$this
->getAttributes()
->add('class', ['icon', "fa-$name"])
->add($attributes);
}
/**
* Get the icon style
*
* @return string
*/
public function getStyle(): string
{
return $this->style ?? $this->defaultStyle;
}
/**
* Set the icon style
*
* @param string $style Style class with prefix
*
* @return $this
*/
public function setStyle(string $style): self
{
$this->style = $style;
return $this;
}
protected function assemble()
{
$this->addAttributes(['class' => $this->getStyle()]);
}
}