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