xref: /template/strap/ComboStrap/LineSpacing.php (revision c3437056399326d621a01da73b649707fbb0ae69)
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