xref: /template/strap/ComboStrap/TextColor.php (revision 37748cd8654635afbeca80942126742f0f4cc346)
1*37748cd8SNickeau<?php
2*37748cd8SNickeau
3*37748cd8SNickeau
4*37748cd8SNickeaunamespace ComboStrap;
5*37748cd8SNickeau
6*37748cd8SNickeau
7*37748cd8SNickeauclass TextColor
8*37748cd8SNickeau{
9*37748cd8SNickeau
10*37748cd8SNickeau    const TEXT_COLOR_ATTRIBUTE = "text-color";
11*37748cd8SNickeau    const CSS_ATTRIBUTE = "color";
12*37748cd8SNickeau    const CANONICAL = self::TEXT_COLOR_ATTRIBUTE;
13*37748cd8SNickeau    const TEXT_TAGS = [
14*37748cd8SNickeau        \syntax_plugin_combo_text::TAG,
15*37748cd8SNickeau        \syntax_plugin_combo_itext::TAG
16*37748cd8SNickeau    ];
17*37748cd8SNickeau    const TEXT_COLORS = array(
18*37748cd8SNickeau        'primary',
19*37748cd8SNickeau        'secondary',
20*37748cd8SNickeau        'success',
21*37748cd8SNickeau        'danger',
22*37748cd8SNickeau        'warning',
23*37748cd8SNickeau        'info',
24*37748cd8SNickeau        'light',
25*37748cd8SNickeau        'dark',
26*37748cd8SNickeau        'body',
27*37748cd8SNickeau        'muted',
28*37748cd8SNickeau        'white',
29*37748cd8SNickeau        'black-50',
30*37748cd8SNickeau        'white-50'
31*37748cd8SNickeau    );
32*37748cd8SNickeau
33*37748cd8SNickeau    /**
34*37748cd8SNickeau     * @param TagAttributes $attributes
35*37748cd8SNickeau     */
36*37748cd8SNickeau    public static function processTextColorAttribute(TagAttributes &$attributes)
37*37748cd8SNickeau    {
38*37748cd8SNickeau
39*37748cd8SNickeau        $colorAttributes = [TextColor::CSS_ATTRIBUTE, TextColor::TEXT_COLOR_ATTRIBUTE];
40*37748cd8SNickeau        foreach ($colorAttributes as $colorAttribute) {
41*37748cd8SNickeau            if ($attributes->hasComponentAttribute($colorAttribute)) {
42*37748cd8SNickeau                $colorValue = $attributes->getValueAndRemove($colorAttribute);
43*37748cd8SNickeau                $lowerCase = strtolower($colorValue);
44*37748cd8SNickeau                if (in_array($lowerCase, self::TEXT_COLORS)) {
45*37748cd8SNickeau                    /**
46*37748cd8SNickeau                     * The bootstrap text class
47*37748cd8SNickeau                     * https://getbootstrap.com/docs/5.0/utilities/colors/#colors
48*37748cd8SNickeau                     */
49*37748cd8SNickeau                    $attributes->addClassName("text-$lowerCase");
50*37748cd8SNickeau                } else {
51*37748cd8SNickeau                    /**
52*37748cd8SNickeau                     * Other Text Colors
53*37748cd8SNickeau                     */
54*37748cd8SNickeau                    $colorValue = ColorUtility::getColorValue($colorValue);
55*37748cd8SNickeau                    if (!empty($colorValue)) {
56*37748cd8SNickeau                        $attributes->addStyleDeclaration(TextColor::CSS_ATTRIBUTE, $colorValue);
57*37748cd8SNickeau                    }
58*37748cd8SNickeau                }
59*37748cd8SNickeau                break;
60*37748cd8SNickeau            }
61*37748cd8SNickeau        }
62*37748cd8SNickeau
63*37748cd8SNickeau
64*37748cd8SNickeau    }
65*37748cd8SNickeau
66*37748cd8SNickeau
67*37748cd8SNickeau
68*37748cd8SNickeau}
69