summaryrefslogtreecommitdiffstats
path: root/vendor/ipl/web/src/Widget/StateBall.php
blob: 5a1216d761bfaedd56ce8650bd79803e10f76ea1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

namespace ipl\Web\Widget;

use ipl\Html\BaseHtmlElement;

/**
 * State ball element that supports different sizes and colors
 */
class StateBall extends BaseHtmlElement
{
    const SIZE_TINY = 'xs';
    const SIZE_SMALL = 's';
    const SIZE_MEDIUM = 'm';
    const SIZE_MEDIUM_LARGE = 'ml';
    const SIZE_BIG = 'l';
    const SIZE_LARGE = 'xl';

    protected $tag = 'span';

    /**
     * Create a new state ball element
     *
     * @param string $state
     * @param string $size
     */
    public function __construct($state = 'none', $size = self::SIZE_SMALL)
    {
        $state = trim($state);

        if (empty($state)) {
            $state = 'none';
        }

        $size = trim($size);

        if (empty($size)) {
            $size = self::SIZE_MEDIUM;
        }

        $this->defaultAttributes = ['class' => "state-ball state-$state ball-size-$size"];
    }
}