When a fragment updates cannot find the requested element, you can now define a fallback selector to use instead.
A { fallback } option has been added to all JavaScript functions that update fragments, like up.replace().
Also an [up-fallback] attribute has been added to all CSS selectors that update fragments, like for [up-follow].
You can also define fallbacks globally using the up.dom.config property.
up.replace()) will leave the page unchanged and reject the returned promise.up.replace() or like up.ajax()) now accept a new option { timeout }..up-modal element when the server returns a non-200 status and the { failTarget } is replaced instead.up-popup element when the server returns a non-200 status and the { failTarget } is replaced instead<body> element with a transition, that transition is now silently ignored instead of throwing an error.up.util.resolvedPromise() now accepts arguments which will become the resolution values.up.util.resolvedDeferred() now accepts arguments which will become the resolution values.up.util.rejectedPromise().up.first() has new option { origin }. You can use it provide a second element or selector that can be referenced as & in the first selector:
$input = $('input.email');
up.first('.field:has(&)', $input); // returns the .field containing $input
up.replace() now returns a rejected promise if the server returns a non-200 status code.up.util.merge() has been replaced with up.util.assign(), which no longer makes exceptions for null and undefined property values. This behaves like Object.assign.up.flow module has been renamed to up.dom.up.navigation module has been renamed to up.status.