1*37748cd8SNickeau<?php 2*37748cd8SNickeau 3*37748cd8SNickeau 4*37748cd8SNickeaunamespace ComboStrap; 5*37748cd8SNickeau 6*37748cd8SNickeau 7*37748cd8SNickeauuse syntax_plugin_combo_text; 8*37748cd8SNickeau 9*37748cd8SNickeauclass LineSpacing 10*37748cd8SNickeau{ 11*37748cd8SNickeau 12*37748cd8SNickeau const CANONICAL = syntax_plugin_combo_text::TAG; 13*37748cd8SNickeau 14*37748cd8SNickeau 15*37748cd8SNickeau /** 16*37748cd8SNickeau * Process the line-spacing attribute 17*37748cd8SNickeau * https://getbootstrap.com/docs/5.0/utilities/text/#line-height 18*37748cd8SNickeau * @param TagAttributes $attributes 19*37748cd8SNickeau */ 20*37748cd8SNickeau public static function processLineSpacingAttributes(&$attributes) 21*37748cd8SNickeau { 22*37748cd8SNickeau 23*37748cd8SNickeau // Spacing is just a class 24*37748cd8SNickeau $lineSpacing = "line-spacing"; 25*37748cd8SNickeau if ($attributes->hasComponentAttribute($lineSpacing)) { 26*37748cd8SNickeau 27*37748cd8SNickeau $bootstrapVersion = Bootstrap::getBootStrapMajorVersion(); 28*37748cd8SNickeau if ($bootstrapVersion != Bootstrap::BootStrapFiveMajorVersion) { 29*37748cd8SNickeau LogUtility::msg("The line-spacing attribute is only implemented with Bootstrap 5. If you want to use this attribute, you should " . PluginUtility::getUrl(Bootstrap::CANONICAL, "change the Bootstrap version") . ".", self::CANONICAL); 30*37748cd8SNickeau return; 31*37748cd8SNickeau } 32*37748cd8SNickeau 33*37748cd8SNickeau $lineSpacingValue = trim(strtolower($attributes->getValueAndRemove($lineSpacing))); 34*37748cd8SNickeau switch ($lineSpacingValue) { 35*37748cd8SNickeau case "xs": 36*37748cd8SNickeau case "extra-small": 37*37748cd8SNickeau $attributes->addClassName("lh-1"); 38*37748cd8SNickeau break; 39*37748cd8SNickeau case "sm": 40*37748cd8SNickeau case "small": 41*37748cd8SNickeau $attributes->addClassName("lh-sm"); 42*37748cd8SNickeau break; 43*37748cd8SNickeau case "md": 44*37748cd8SNickeau case "medium": 45*37748cd8SNickeau $attributes->addClassName("lh-base"); 46*37748cd8SNickeau break; 47*37748cd8SNickeau case "lg": 48*37748cd8SNickeau case "large": 49*37748cd8SNickeau $attributes->addClassName("lh-lg"); 50*37748cd8SNickeau break; 51*37748cd8SNickeau default: 52*37748cd8SNickeau LogUtility::msg("The line-spacing value ($lineSpacingValue) is not a valid value.", LogUtility::LVL_MSG_ERROR, self::CANONICAL); 53*37748cd8SNickeau break; 54*37748cd8SNickeau } 55*37748cd8SNickeau } 56*37748cd8SNickeau } 57*37748cd8SNickeau 58*37748cd8SNickeau} 59