src/Neutrino/Cli/Output/Helper.php
public static function strPad($str, $size, $pad, $type = STR_PAD_RIGHT)
    {
        $washLen = self::strlenWithoutDecoration($str);

        switch ($type) {
            case STR_PAD_BOTH:
                $m = $size - $washLen;

                return str_repeat($pad, floor($m / 2)) . $str . str_repeat($pad, ceil($m / 2));
            case STR_PAD_LEFT:
                return str_repeat($pad, $size - $washLen) . $str;
            case STR_PAD_RIGHT:
            default:
                return $str . str_repeat($pad, $size - $washLen);
        }
    }
public static function strPad($str, $size, $pad, $type = STR_PAD_RIGHT)
    {
        $washLen = self::strlenWithoutDecoration($str);

        switch ($type) {
            case STR_PAD_BOTH:
                $m = $size - $washLen;

                return str_repeat($pad, floor($m / 2)) . $str . str_repeat($pad, ceil($m / 2));
            case STR_PAD_LEFT:
                return str_repeat($pad, $size - $washLen) . $str;
            case STR_PAD_RIGHT:
            default:
                return $str . str_repeat($pad, $size - $washLen);
        }
    }
Correct Str::pad wrong output when str is decorate

@param string $str
@param int    $size
@param string $pad
@param int    $type

@return string