137748cd8SNickeau<?php 237748cd8SNickeau 337748cd8SNickeau 437748cd8SNickeaunamespace ComboStrap; 537748cd8SNickeau 637748cd8SNickeau 737748cd8SNickeauuse syntax_plugin_combo_text; 837748cd8SNickeau 937748cd8SNickeauclass LineSpacing 1037748cd8SNickeau{ 1137748cd8SNickeau 1237748cd8SNickeau const CANONICAL = syntax_plugin_combo_text::TAG; 1337748cd8SNickeau 1437748cd8SNickeau 1537748cd8SNickeau /** 1637748cd8SNickeau * Process the line-spacing attribute 1737748cd8SNickeau * https://getbootstrap.com/docs/5.0/utilities/text/#line-height 1837748cd8SNickeau * @param TagAttributes $attributes 1937748cd8SNickeau */ 2037748cd8SNickeau public static function processLineSpacingAttributes(&$attributes) 2137748cd8SNickeau { 2237748cd8SNickeau 2337748cd8SNickeau // Spacing is just a class 2437748cd8SNickeau $lineSpacing = "line-spacing"; 2537748cd8SNickeau if ($attributes->hasComponentAttribute($lineSpacing)) { 2637748cd8SNickeau 2737748cd8SNickeau $bootstrapVersion = Bootstrap::getBootStrapMajorVersion(); 2837748cd8SNickeau if ($bootstrapVersion != Bootstrap::BootStrapFiveMajorVersion) { 29*c3437056SNickeau LogUtility::msg("The line-spacing attribute is only implemented with Bootstrap 5. If you want to use this attribute, you should " . PluginUtility::getDocumentationHyperLink(Bootstrap::CANONICAL, "change the Bootstrap version") . ".", self::CANONICAL); 3037748cd8SNickeau return; 3137748cd8SNickeau } 3237748cd8SNickeau 3337748cd8SNickeau $lineSpacingValue = trim(strtolower($attributes->getValueAndRemove($lineSpacing))); 3437748cd8SNickeau switch ($lineSpacingValue) { 3537748cd8SNickeau case "xs": 3637748cd8SNickeau case "extra-small": 3737748cd8SNickeau $attributes->addClassName("lh-1"); 3837748cd8SNickeau break; 3937748cd8SNickeau case "sm": 4037748cd8SNickeau case "small": 4137748cd8SNickeau $attributes->addClassName("lh-sm"); 4237748cd8SNickeau break; 4337748cd8SNickeau case "md": 4437748cd8SNickeau case "medium": 4537748cd8SNickeau $attributes->addClassName("lh-base"); 4637748cd8SNickeau break; 4737748cd8SNickeau case "lg": 4837748cd8SNickeau case "large": 4937748cd8SNickeau $attributes->addClassName("lh-lg"); 5037748cd8SNickeau break; 5137748cd8SNickeau default: 5237748cd8SNickeau LogUtility::msg("The line-spacing value ($lineSpacingValue) is not a valid value.", LogUtility::LVL_MSG_ERROR, self::CANONICAL); 5337748cd8SNickeau break; 5437748cd8SNickeau } 5537748cd8SNickeau } 5637748cd8SNickeau } 5737748cd8SNickeau 5837748cd8SNickeau} 59