refactor(ripple): adds support for non-fixed tabs

Closes #825.
Closes #460.
@gkalpak - Our team convention is to not provide a generic use of a `target` service/feature until two (2) or more components or services utilize the `target` and justify the need to externalize the `target`.