# JavaScript (ES6), <s>87</s> <s>78</s> 76 bytes

*-9 bytes thanks to [@RickHitchcock][p1].*  
*-2 bytes thanks to [@Neil][p2].*

<!-- language: lang-js -->

    f=(s,i=10)=>s.trim()&&s+`
    `+f(s.replace(/./g,c=>parseInt(c,36)>i?c:" "),i+1)

Takes input as a string and returns with one trailing newline.

## Test Cases

<!-- begin snippet: js hide: true console: true babel: false -->

<!-- language: lang-js -->

    f=(s,i=10)=>s.trim()&&s+`
    `+f(s.replace(/./g,c=>parseInt(c,36)>i?c:" "),i+1)

    ;["hello", "Programming Puzzles & Code Golf!", "~|[abc<0>cba]|~", "abcdefg0123456789"]
    .forEach(s=>console.log(f(s)));

<!-- language: lang-css -->

    .as-console-wrapper{max-height:100%!important}

<!-- end snippet -->

[p1]: https://codegolf.stackexchange.com/users/42260/rick-hitchcock
[p2]: https://codegolf.stackexchange.com/users/17602/neil