public static function kebabCase($value)
    {
        $key = $value;
        if (isset(static::$kebabCache[$key])) {
            return static::$kebabCache[$key];
        }

        $value = preg_replace('/\s+/', '', ucwords($value));
        $value = str_replace('_', '-', $value);
        $value = static::normalizeScreamingCase($value);
        return static::$kebabCache[$key] =  strtolower(preg_replace('~(?<=\\w)([A-Z])~', '-$1', $value));
    }