xref: /plugin/combo/ComboStrap/TextColor.php (revision 82a60d039cd81033dc8147c27f0a50716b7a5301)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau
437748cd8SNickeaunamespace ComboStrap;
537748cd8SNickeau
637748cd8SNickeau
737748cd8SNickeauclass TextColor
837748cd8SNickeau{
937748cd8SNickeau
1037748cd8SNickeau    const TEXT_COLOR_ATTRIBUTE = "text-color";
1137748cd8SNickeau    const CSS_ATTRIBUTE = "color";
1237748cd8SNickeau    const CANONICAL = self::TEXT_COLOR_ATTRIBUTE;
1337748cd8SNickeau    const TEXT_TAGS = [
1437748cd8SNickeau        \syntax_plugin_combo_text::TAG,
1537748cd8SNickeau        \syntax_plugin_combo_itext::TAG
1637748cd8SNickeau    ];
1737748cd8SNickeau    const TEXT_COLORS = array(
1837748cd8SNickeau        'primary',
1937748cd8SNickeau        'secondary',
2037748cd8SNickeau        'success',
2137748cd8SNickeau        'danger',
2237748cd8SNickeau        'warning',
2337748cd8SNickeau        'info',
2437748cd8SNickeau        'light',
2537748cd8SNickeau        'dark',
2637748cd8SNickeau        'body',
2737748cd8SNickeau        'muted',
2837748cd8SNickeau        'white',
2937748cd8SNickeau        'black-50',
3037748cd8SNickeau        'white-50'
3137748cd8SNickeau    );
3237748cd8SNickeau
3337748cd8SNickeau    /**
3437748cd8SNickeau     * @param TagAttributes $attributes
3537748cd8SNickeau     */
3637748cd8SNickeau    public static function processTextColorAttribute(TagAttributes &$attributes)
3737748cd8SNickeau    {
3837748cd8SNickeau
3937748cd8SNickeau        $colorAttributes = [TextColor::CSS_ATTRIBUTE, TextColor::TEXT_COLOR_ATTRIBUTE];
4037748cd8SNickeau        foreach ($colorAttributes as $colorAttribute) {
4137748cd8SNickeau            if ($attributes->hasComponentAttribute($colorAttribute)) {
4237748cd8SNickeau                $colorValue = $attributes->getValueAndRemove($colorAttribute);
4337748cd8SNickeau                $lowerCase = strtolower($colorValue);
4437748cd8SNickeau                if (in_array($lowerCase, self::TEXT_COLORS)) {
4537748cd8SNickeau                    /**
4637748cd8SNickeau                     * The bootstrap text class
4737748cd8SNickeau                     * https://getbootstrap.com/docs/5.0/utilities/colors/#colors
4837748cd8SNickeau                     */
4937748cd8SNickeau                    $attributes->addClassName("text-$lowerCase");
5037748cd8SNickeau                } else {
5137748cd8SNickeau                    /**
5237748cd8SNickeau                     * Other Text Colors
5337748cd8SNickeau                     */
5437748cd8SNickeau                    $colorValue = ColorUtility::getColorValue($colorValue);
5537748cd8SNickeau                    if (!empty($colorValue)) {
56*82a60d03SNickeau                        $attributes->addStyleDeclarationIfNotSet(TextColor::CSS_ATTRIBUTE, $colorValue);
5737748cd8SNickeau                    }
5837748cd8SNickeau                }
5937748cd8SNickeau                break;
6037748cd8SNickeau            }
6137748cd8SNickeau        }
6237748cd8SNickeau
6337748cd8SNickeau
6437748cd8SNickeau    }
6537748cd8SNickeau
6637748cd8SNickeau
6737748cd8SNickeau
6837748cd8SNickeau}
69