unpoly-rails 3.2.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@
5
5
  /***/ (() => {
6
6
 
7
7
  window.up = {
8
- version: '3.2.2'
8
+ version: '3.3.0'
9
9
  };
10
10
 
11
11
 
@@ -1836,8 +1836,8 @@ up.Change.Addition = class Addition extends up.Change {
1836
1836
  this.layer.dismiss(this.dismissLayer, this.responseOption());
1837
1837
  }
1838
1838
  }
1839
- abortWhenLayerClosed() {
1840
- if (this.layer.isClosed()) {
1839
+ abortWhenLayerClosed(layer = this.layer) {
1840
+ if (layer.isClosed()) {
1841
1841
  throw new up.Aborted('Layer was closed');
1842
1842
  }
1843
1843
  }
@@ -2110,23 +2110,23 @@ up.Change.OpenLayer = class OpenLayer extends up.Change.Addition {
2110
2110
  up.hello(this.layer.element, Object.assign(Object.assign({}, this.options), { layer: this.layer }));
2111
2111
  this.handleLayerChangeRequests();
2112
2112
  this.handleScroll();
2113
- let renderResult = new up.RenderResult({
2113
+ this.renderResult = new up.RenderResult({
2114
2114
  layer: this.layer,
2115
2115
  fragments: [this.content],
2116
2116
  target: this.target,
2117
2117
  });
2118
- renderResult.finished = this.finish(renderResult);
2118
+ this.renderResult.finished = this.finish();
2119
2119
  this.layer.opening = false;
2120
2120
  this.emitOpenedEvent();
2121
2121
  this.abortWhenLayerClosed();
2122
- return renderResult;
2122
+ return this.renderResult;
2123
2123
  }
2124
- finish(renderResult) {
2124
+ finish() {
2125
2125
  return __awaiter(this, void 0, void 0, function* () {
2126
2126
  yield this.layer.startOpenAnimation();
2127
2127
  this.abortWhenLayerClosed();
2128
2128
  this.handleFocus();
2129
- return renderResult;
2129
+ return this.renderResult;
2130
2130
  });
2131
2131
  }
2132
2132
  buildLayer() {
@@ -2174,25 +2174,22 @@ up.Change.OpenLayer = class OpenLayer extends up.Change.Addition {
2174
2174
  log: `Opened new ${this.layer}`
2175
2175
  });
2176
2176
  }
2177
+ getHungrySteps() {
2178
+ return up.radio.hungrySteps({
2179
+ layer: null,
2180
+ history: (this.layer && this.layer.isHistoryVisible()),
2181
+ origin: this.options.origin,
2182
+ });
2183
+ }
2177
2184
  };
2178
2185
 
2179
2186
 
2180
2187
  /***/ }),
2181
2188
  /* 29 */
2182
- /***/ (function() {
2189
+ /***/ (() => {
2183
2190
 
2184
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2185
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2186
- return new (P || (P = Promise))(function (resolve, reject) {
2187
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2188
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2189
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2190
- step((generator = generator.apply(thisArg, _arguments || [])).next());
2191
- });
2192
- };
2193
2191
  var _a;
2194
2192
  const u = up.util;
2195
- const e = up.element;
2196
2193
  up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2197
2194
  constructor(options) {
2198
2195
  options = up.RenderOptions.finalize(options);
@@ -2216,7 +2213,7 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2216
2213
  }
2217
2214
  bestPreflightSelector() {
2218
2215
  this.matchPreflight();
2219
- return u.map(this.steps, 'selector').join(', ') || ':none';
2216
+ return up.fragment.targetForSteps(this.steps);
2220
2217
  }
2221
2218
  getFragments() {
2222
2219
  this.matchPreflight();
@@ -2251,152 +2248,14 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2251
2248
  this.layer.updateHistory(this.options);
2252
2249
  }
2253
2250
  this.handleLayerChangeRequests();
2254
- this.renderResult = new up.RenderResult({
2255
- layer: this.layer,
2256
- target: this.target,
2257
- });
2258
- this.steps.reverse();
2259
- const motionEndPromises = this.steps.map(step => this.executeStep(step));
2260
- this.renderResult.finished = this.finish(motionEndPromises);
2261
- if (!this.steps.length) {
2262
- this.handleFocus(null, this.options);
2263
- this.handleScroll(null, this.options);
2264
- }
2265
- return this.renderResult;
2266
- }
2267
- finish(motionEndPromises) {
2268
- return __awaiter(this, void 0, void 0, function* () {
2269
- yield Promise.all(motionEndPromises);
2270
- this.abortWhenLayerClosed();
2271
- return this.renderResult;
2272
- });
2273
- }
2274
- addToResult(fragment) {
2275
- let newFragments = fragment.matches('up-wrapper') ? fragment.children : [fragment];
2276
- this.renderResult.fragments.unshift(...newFragments);
2277
- }
2278
- executeStep(step) {
2279
- this.setReloadAttrs(step);
2280
- switch (step.placement) {
2281
- case 'swap': {
2282
- let keepPlan = this.findKeepPlan(step);
2283
- if (keepPlan) {
2284
- this.handleFocus(step.oldElement, step);
2285
- this.handleScroll(step.oldElement, step);
2286
- return Promise.resolve();
2287
- }
2288
- else {
2289
- this.preserveKeepables(step);
2290
- const parent = step.oldElement.parentNode;
2291
- const morphOptions = Object.assign(Object.assign({}, step), { beforeStart() {
2292
- up.fragment.markAsDestroying(step.oldElement);
2293
- }, afterInsert: () => {
2294
- this.responseDoc.finalizeElement(step.newElement);
2295
- this.restoreKeepables(step);
2296
- up.hello(step.newElement, step);
2297
- this.addToResult(step.newElement);
2298
- }, beforeDetach: () => {
2299
- up.syntax.clean(step.oldElement, { layer: this.layer });
2300
- }, afterDetach() {
2301
- up.element.cleanJQuery();
2302
- up.fragment.emitDestroyed(step.oldElement, { parent, log: false });
2303
- }, scrollNew: () => {
2304
- this.handleFocus(step.newElement, step);
2305
- this.handleScroll(step.newElement, step);
2306
- } });
2307
- return up.morph(step.oldElement, step.newElement, step.transition, morphOptions);
2308
- }
2309
- }
2310
- case 'content': {
2311
- let oldWrapper = e.wrapChildren(step.oldElement);
2312
- let newWrapper = e.wrapChildren(step.newElement);
2313
- let wrapperStep = Object.assign(Object.assign({}, step), { placement: 'swap', oldElement: oldWrapper, newElement: newWrapper, focus: false });
2314
- return this.executeStep(wrapperStep).then(() => {
2315
- e.unwrap(newWrapper);
2316
- this.handleFocus(step.oldElement, step);
2317
- });
2318
- }
2319
- case 'before':
2320
- case 'after': {
2321
- let wrapper = e.wrapChildren(step.newElement);
2322
- let position = step.placement === 'before' ? 'afterbegin' : 'beforeend';
2323
- step.oldElement.insertAdjacentElement(position, wrapper);
2324
- this.responseDoc.finalizeElement(wrapper);
2325
- up.hello(wrapper, step);
2326
- this.addToResult(wrapper);
2327
- this.handleFocus(wrapper, step);
2328
- this.handleScroll(wrapper, step);
2329
- return up.animate(wrapper, step.transition, step).then(() => e.unwrap(wrapper));
2330
- }
2331
- default: {
2332
- up.fail('Unknown placement: %o', step.placement);
2333
- }
2334
- }
2335
- }
2336
- findKeepPlan(options) {
2337
- if (!this.useKeep) {
2338
- return;
2339
- }
2340
- const { oldElement, newElement } = options;
2341
- let doKeep = e.booleanAttr(oldElement, 'up-keep');
2342
- if (!doKeep) {
2343
- return;
2344
- }
2345
- let partner;
2346
- let partnerSelector = up.fragment.toTarget(oldElement);
2347
- const lookupOpts = { layer: this.layer };
2348
- if (options.descendantsOnly) {
2349
- partner = up.fragment.get(newElement, partnerSelector, lookupOpts);
2350
- }
2351
- else {
2352
- partner = up.fragment.subtree(newElement, partnerSelector, lookupOpts)[0];
2353
- }
2354
- if (partner && e.booleanAttr(partner, 'up-keep')) {
2355
- const plan = {
2356
- oldElement,
2357
- newElement: partner,
2358
- newData: up.syntax.data(partner)
2359
- };
2360
- if (!up.fragment.emitKeep(plan).defaultPrevented) {
2361
- return plan;
2362
- }
2363
- }
2364
- }
2365
- preserveKeepables(step) {
2366
- const keepPlans = [];
2367
- if (this.useKeep) {
2368
- for (let keepable of step.oldElement.querySelectorAll('[up-keep]')) {
2369
- let keepPlan = this.findKeepPlan(Object.assign(Object.assign({}, step), { oldElement: keepable, descendantsOnly: true }));
2370
- if (keepPlan) {
2371
- const keepableClone = keepable.cloneNode(true);
2372
- keepable.insertAdjacentElement('beforebegin', keepableClone);
2373
- let viewports = up.viewport.subtree(keepPlan.oldElement);
2374
- keepPlan.revivers = viewports.map(function (viewport) {
2375
- let cursorProps = up.viewport.copyCursorProps(viewport);
2376
- return () => up.viewport.copyCursorProps(cursorProps, viewport);
2377
- });
2378
- if (this.willChangeElement(document.body)) {
2379
- keepPlan.newElement.replaceWith(keepable);
2380
- }
2381
- else {
2382
- document.body.append(keepable);
2383
- }
2384
- keepPlans.push(keepPlan);
2385
- }
2386
- }
2387
- }
2388
- step.keepPlans = keepPlans;
2389
- }
2390
- restoreKeepables(step) {
2391
- for (let keepPlan of step.keepPlans) {
2392
- keepPlan.newElement.replaceWith(keepPlan.oldElement);
2393
- for (let reviver of keepPlan.revivers) {
2394
- reviver();
2395
- }
2396
- }
2251
+ let renderResult = new up.Change.UpdateSteps({
2252
+ steps: this.steps,
2253
+ noneOptions: this.options,
2254
+ }).execute(responseDoc);
2255
+ return renderResult;
2397
2256
  }
2398
2257
  matchPreflight() {
2399
- this.filterSteps((step) => {
2258
+ this.steps = this.steps.filter((step) => {
2400
2259
  const finder = new up.FragmentFinder(step);
2401
2260
  step.oldElement || (step.oldElement = finder.find());
2402
2261
  if (step.oldElement) {
@@ -2406,59 +2265,23 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2406
2265
  throw new up.CannotMatch();
2407
2266
  }
2408
2267
  });
2409
- this.resolveOldNesting();
2268
+ this.steps = up.fragment.compressNestedSteps(this.steps);
2410
2269
  }
2411
2270
  matchPostflight() {
2412
2271
  this.matchPreflight();
2413
- if (this.options.useHungry) {
2414
- this.addHungrySteps();
2415
- }
2416
- this.filterSteps((step) => {
2417
- step.newElement = this.responseDoc.select(step.selector);
2418
- if (step.newElement) {
2419
- return true;
2420
- }
2421
- else if (!step.maybe) {
2422
- throw new up.CannotMatch();
2423
- }
2424
- });
2425
- this.resolveOldNesting();
2426
- }
2427
- filterSteps(condition) {
2428
- this.steps = u.filter(this.steps, condition);
2272
+ this.steps = this.responseDoc.selectSteps(this.steps);
2429
2273
  }
2430
- addHungrySteps() {
2431
- const hungrySolutions = up.radio.hungrySolutions({
2274
+ getHungrySteps() {
2275
+ return up.radio.hungrySteps({
2432
2276
  layer: this.layer,
2433
2277
  history: this.hasHistory(),
2434
2278
  origin: this.options.origin
2435
2279
  });
2436
- for (let { element: oldElement, target: selector } of hungrySolutions) {
2437
- const transition = e.booleanOrStringAttr(oldElement, 'transition');
2438
- const step = {
2439
- selector,
2440
- oldElement,
2441
- transition,
2442
- placement: 'swap',
2443
- maybe: true
2444
- };
2445
- this.steps.push(step);
2446
- }
2447
- }
2448
- containedByRivalStep(steps, candidateStep) {
2449
- return u.some(steps, function (rivalStep) {
2450
- return (rivalStep !== candidateStep) &&
2451
- ((rivalStep.placement === 'swap') || (rivalStep.placement === 'content')) &&
2452
- rivalStep.oldElement.contains(candidateStep.oldElement);
2453
- });
2454
- }
2455
- resolveOldNesting() {
2456
- let compressed = u.uniqBy(this.steps, 'oldElement');
2457
- compressed = u.reject(compressed, step => this.containedByRivalStep(compressed, step));
2458
- this.steps = compressed;
2459
2280
  }
2460
2281
  setScrollAndFocusOptions() {
2282
+ let focusCapsule = up.FocusCapsule.preserve(this.layer);
2461
2283
  this.steps.forEach((step, i) => {
2284
+ step.focusCapsule = focusCapsule;
2462
2285
  if (i > 0) {
2463
2286
  step.scroll = false;
2464
2287
  step.focus = false;
@@ -2467,15 +2290,6 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2467
2290
  step.scrollBehavior = 'instant';
2468
2291
  }
2469
2292
  });
2470
- this.focusCapsule = up.FocusCapsule.preserve(this.layer);
2471
- }
2472
- handleFocus(fragment, options) {
2473
- const fragmentFocus = new up.FragmentFocus(Object.assign(Object.assign({}, options), { fragment, layer: this.layer, focusCapsule: this.focusCapsule, autoMeans: up.fragment.config.autoFocus }));
2474
- return fragmentFocus.process(options.focus);
2475
- }
2476
- handleScroll(fragment, options) {
2477
- const scrolling = new up.FragmentScrolling(Object.assign(Object.assign({}, options), { fragment, layer: this.layer, autoMeans: up.fragment.config.autoScroll }));
2478
- return scrolling.process(options.scroll);
2479
2293
  }
2480
2294
  hasHistory() {
2481
2295
  return u.evalAutoOption(this.options.history, this.hasAutoHistory.bind(this));
@@ -2484,9 +2298,6 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2484
2298
  const oldFragments = u.map(this.steps, 'oldElement');
2485
2299
  return u.some(oldFragments, up.fragment.hasAutoHistory);
2486
2300
  }
2487
- willChangeElement(element) {
2488
- return u.some(this.steps, (step) => step.oldElement.contains(element));
2489
- }
2490
2301
  },
2491
2302
  (() => {
2492
2303
  u.memoizeMethod(_a.prototype, [
@@ -2500,6 +2311,195 @@ up.Change.UpdateLayer = (_a = class UpdateLayer extends up.Change.Addition {
2500
2311
 
2501
2312
  /***/ }),
2502
2313
  /* 30 */
2314
+ /***/ (function() {
2315
+
2316
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2317
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2318
+ return new (P || (P = Promise))(function (resolve, reject) {
2319
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2320
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2321
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2322
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
2323
+ });
2324
+ };
2325
+ const u = up.util;
2326
+ const e = up.element;
2327
+ up.Change.UpdateSteps = class UpdateSteps extends up.Change.Addition {
2328
+ constructor(options) {
2329
+ super(options);
2330
+ this.noneOptions = options.noneOptions || {};
2331
+ this.steps = u.copy(options.steps);
2332
+ }
2333
+ execute(responseDoc) {
2334
+ var _a;
2335
+ this.responseDoc = responseDoc;
2336
+ this.steps = responseDoc.selectSteps(this.steps);
2337
+ if (!this.steps.length) {
2338
+ return this.executeNone();
2339
+ }
2340
+ this.renderResult = new up.RenderResult({
2341
+ layer: (_a = this.steps[0]) === null || _a === void 0 ? void 0 : _a.layer,
2342
+ target: up.fragment.targetForSteps(this.steps),
2343
+ });
2344
+ this.steps.reverse();
2345
+ const motionEndPromises = this.steps.map(step => this.executeStep(step));
2346
+ this.renderResult.finished = this.finish(motionEndPromises);
2347
+ return this.renderResult;
2348
+ }
2349
+ executeNone() {
2350
+ this.handleFocus(null, this.noneOptions);
2351
+ this.handleScroll(null, this.noneOptions);
2352
+ return up.RenderResult.buildNone();
2353
+ }
2354
+ finish(motionEndPromises) {
2355
+ return __awaiter(this, void 0, void 0, function* () {
2356
+ yield Promise.all(motionEndPromises);
2357
+ for (let step of this.steps) {
2358
+ this.abortWhenLayerClosed(step.layer);
2359
+ }
2360
+ return this.renderResult;
2361
+ });
2362
+ }
2363
+ addToResult(fragment) {
2364
+ let newFragments = fragment.matches('up-wrapper') ? fragment.children : [fragment];
2365
+ this.renderResult.fragments.unshift(...newFragments);
2366
+ }
2367
+ executeStep(step) {
2368
+ this.setReloadAttrs(step);
2369
+ switch (step.placement) {
2370
+ case 'swap': {
2371
+ let keepPlan = this.findKeepPlan(step);
2372
+ if (keepPlan) {
2373
+ this.handleFocus(step.oldElement, step);
2374
+ this.handleScroll(step.oldElement, step);
2375
+ return Promise.resolve();
2376
+ }
2377
+ else {
2378
+ this.preserveKeepables(step);
2379
+ const parent = step.oldElement.parentNode;
2380
+ const morphOptions = Object.assign(Object.assign({}, step), { beforeStart() {
2381
+ up.fragment.markAsDestroying(step.oldElement);
2382
+ }, afterInsert: () => {
2383
+ this.responseDoc.finalizeElement(step.newElement);
2384
+ this.restoreKeepables(step);
2385
+ up.hello(step.newElement, step);
2386
+ this.addToResult(step.newElement);
2387
+ }, beforeDetach: () => {
2388
+ up.syntax.clean(step.oldElement, { layer: step.layer });
2389
+ }, afterDetach() {
2390
+ up.element.cleanJQuery();
2391
+ up.fragment.emitDestroyed(step.oldElement, { parent, log: false });
2392
+ }, scrollNew: () => {
2393
+ this.handleFocus(step.newElement, step);
2394
+ this.handleScroll(step.newElement, step);
2395
+ } });
2396
+ return up.morph(step.oldElement, step.newElement, step.transition, morphOptions);
2397
+ }
2398
+ }
2399
+ case 'content': {
2400
+ let oldWrapper = e.wrapChildren(step.oldElement);
2401
+ let newWrapper = e.wrapChildren(step.newElement);
2402
+ let wrapperStep = Object.assign(Object.assign({}, step), { placement: 'swap', oldElement: oldWrapper, newElement: newWrapper, focus: false });
2403
+ return this.executeStep(wrapperStep).then(() => {
2404
+ e.unwrap(newWrapper);
2405
+ this.handleFocus(step.oldElement, step);
2406
+ });
2407
+ }
2408
+ case 'before':
2409
+ case 'after': {
2410
+ let wrapper = e.wrapChildren(step.newElement);
2411
+ let position = step.placement === 'before' ? 'afterbegin' : 'beforeend';
2412
+ step.oldElement.insertAdjacentElement(position, wrapper);
2413
+ this.responseDoc.finalizeElement(wrapper);
2414
+ up.hello(wrapper, step);
2415
+ this.addToResult(wrapper);
2416
+ this.handleFocus(wrapper, step);
2417
+ this.handleScroll(wrapper, step);
2418
+ return up.animate(wrapper, step.transition, step).then(() => e.unwrap(wrapper));
2419
+ }
2420
+ default: {
2421
+ up.fail('Unknown placement: %o', step.placement);
2422
+ }
2423
+ }
2424
+ }
2425
+ findKeepPlan(options) {
2426
+ if (!options.useKeep) {
2427
+ return;
2428
+ }
2429
+ const { oldElement, newElement } = options;
2430
+ let doKeep = e.booleanAttr(oldElement, 'up-keep');
2431
+ if (!doKeep) {
2432
+ return;
2433
+ }
2434
+ let partner;
2435
+ let partnerSelector = up.fragment.toTarget(oldElement);
2436
+ const lookupOpts = { layer: options.layer };
2437
+ if (options.descendantsOnly) {
2438
+ partner = up.fragment.get(newElement, partnerSelector, lookupOpts);
2439
+ }
2440
+ else {
2441
+ partner = up.fragment.subtree(newElement, partnerSelector, lookupOpts)[0];
2442
+ }
2443
+ if (partner && e.booleanAttr(partner, 'up-keep')) {
2444
+ const plan = {
2445
+ oldElement,
2446
+ newElement: partner,
2447
+ newData: up.syntax.data(partner)
2448
+ };
2449
+ if (!up.fragment.emitKeep(plan).defaultPrevented) {
2450
+ return plan;
2451
+ }
2452
+ }
2453
+ }
2454
+ preserveKeepables(step) {
2455
+ const keepPlans = [];
2456
+ if (step.useKeep) {
2457
+ for (let keepable of step.oldElement.querySelectorAll('[up-keep]')) {
2458
+ let keepPlan = this.findKeepPlan(Object.assign(Object.assign({}, step), { oldElement: keepable, descendantsOnly: true }));
2459
+ if (keepPlan) {
2460
+ const keepableClone = keepable.cloneNode(true);
2461
+ keepable.insertAdjacentElement('beforebegin', keepableClone);
2462
+ let viewports = up.viewport.subtree(keepPlan.oldElement);
2463
+ keepPlan.revivers = viewports.map(function (viewport) {
2464
+ let cursorProps = up.viewport.copyCursorProps(viewport);
2465
+ return () => up.viewport.copyCursorProps(cursorProps, viewport);
2466
+ });
2467
+ if (this.willChangeElement(document.body)) {
2468
+ keepPlan.newElement.replaceWith(keepable);
2469
+ }
2470
+ else {
2471
+ document.body.append(keepable);
2472
+ }
2473
+ keepPlans.push(keepPlan);
2474
+ }
2475
+ }
2476
+ }
2477
+ step.keepPlans = keepPlans;
2478
+ }
2479
+ restoreKeepables(step) {
2480
+ for (let keepPlan of step.keepPlans) {
2481
+ keepPlan.newElement.replaceWith(keepPlan.oldElement);
2482
+ for (let reviver of keepPlan.revivers) {
2483
+ reviver();
2484
+ }
2485
+ }
2486
+ }
2487
+ willChangeElement(element) {
2488
+ return u.some(this.steps, (step) => step.oldElement.contains(element));
2489
+ }
2490
+ handleFocus(fragment, options) {
2491
+ const fragmentFocus = new up.FragmentFocus(Object.assign(Object.assign({}, options), { fragment, autoMeans: up.fragment.config.autoFocus }));
2492
+ return fragmentFocus.process(options.focus);
2493
+ }
2494
+ handleScroll(fragment, options) {
2495
+ const scrolling = new up.FragmentScrolling(Object.assign(Object.assign({}, options), { fragment, autoMeans: up.fragment.config.autoScroll }));
2496
+ return scrolling.process(options.scroll);
2497
+ }
2498
+ };
2499
+
2500
+
2501
+ /***/ }),
2502
+ /* 31 */
2503
2503
  /***/ (() => {
2504
2504
 
2505
2505
  const u = up.util;
@@ -2572,7 +2572,7 @@ up.Change.CloseLayer = class CloseLayer extends up.Change.Removal {
2572
2572
 
2573
2573
 
2574
2574
  /***/ }),
2575
- /* 31 */
2575
+ /* 32 */
2576
2576
  /***/ (() => {
2577
2577
 
2578
2578
  var _a;
@@ -2652,7 +2652,7 @@ up.Change.FromURL = (_a = class FromURL extends up.Change {
2652
2652
 
2653
2653
 
2654
2654
  /***/ }),
2655
- /* 32 */
2655
+ /* 33 */
2656
2656
  /***/ (function() {
2657
2657
 
2658
2658
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -2787,7 +2787,7 @@ up.Change.FromResponse = (_a = class FromResponse extends up.Change {
2787
2787
 
2788
2788
 
2789
2789
  /***/ }),
2790
- /* 33 */
2790
+ /* 34 */
2791
2791
  /***/ (() => {
2792
2792
 
2793
2793
  var _a;
@@ -2835,9 +2835,31 @@ up.Change.FromContent = (_a = class FromContent extends up.Change {
2835
2835
  return this.seekPlan(this.executePlan.bind(this)) || this.cannotMatchPostflightTarget();
2836
2836
  }
2837
2837
  executePlan(matchedPlan) {
2838
- let result = matchedPlan.execute(this.getResponseDoc(), this.onPlanApplicable.bind(this, matchedPlan));
2839
- result.options = this.options;
2840
- return result;
2838
+ let result;
2839
+ try {
2840
+ result = matchedPlan.execute(this.getResponseDoc(), this.onPlanApplicable.bind(this, matchedPlan));
2841
+ result.options = this.options;
2842
+ this.executeHungry(matchedPlan, result);
2843
+ return result;
2844
+ }
2845
+ catch (error) {
2846
+ if (this.isApplicablePlanError(error)) {
2847
+ this.executeHungry(matchedPlan, result);
2848
+ }
2849
+ throw error;
2850
+ }
2851
+ }
2852
+ isApplicablePlanError(error) {
2853
+ return !(error instanceof up.CannotMatch);
2854
+ }
2855
+ executeHungry(plan, originalResult) {
2856
+ if (!this.options.useHungry)
2857
+ return;
2858
+ let hungrySteps = plan.getHungrySteps();
2859
+ let hungryResult = new up.Change.UpdateSteps({ steps: hungrySteps }).execute(this.getResponseDoc());
2860
+ if (originalResult) {
2861
+ originalResult.fragments.push(...hungryResult.fragments);
2862
+ }
2841
2863
  }
2842
2864
  onPlanApplicable(plan) {
2843
2865
  let primaryPlan = this.getPlans()[0];
@@ -2908,7 +2930,7 @@ up.Change.FromContent = (_a = class FromContent extends up.Change {
2908
2930
  return fn(plan);
2909
2931
  }
2910
2932
  catch (error) {
2911
- if (!(error instanceof up.CannotMatch)) {
2933
+ if (this.isApplicablePlanError(error)) {
2912
2934
  throw error;
2913
2935
  }
2914
2936
  }
@@ -2926,7 +2948,7 @@ up.Change.FromContent = (_a = class FromContent extends up.Change {
2926
2948
 
2927
2949
 
2928
2950
  /***/ }),
2929
- /* 34 */
2951
+ /* 35 */
2930
2952
  /***/ (() => {
2931
2953
 
2932
2954
  const u = up.util;
@@ -3037,7 +3059,7 @@ up.CompilerPass = class CompilerPass {
3037
3059
 
3038
3060
 
3039
3061
  /***/ }),
3040
- /* 35 */
3062
+ /* 36 */
3041
3063
  /***/ (() => {
3042
3064
 
3043
3065
  const u = up.util;
@@ -3150,7 +3172,7 @@ up.CSSTransition = class CSSTransition {
3150
3172
 
3151
3173
 
3152
3174
  /***/ }),
3153
- /* 36 */
3175
+ /* 37 */
3154
3176
  /***/ (() => {
3155
3177
 
3156
3178
  const u = up.util;
@@ -3191,7 +3213,7 @@ up.DestructorPass = class DestructorPass {
3191
3213
 
3192
3214
 
3193
3215
  /***/ }),
3194
- /* 37 */
3216
+ /* 38 */
3195
3217
  /***/ (() => {
3196
3218
 
3197
3219
  const u = up.util;
@@ -3292,7 +3314,7 @@ up.EventEmitter = class EventEmitter extends up.Record {
3292
3314
 
3293
3315
 
3294
3316
  /***/ }),
3295
- /* 38 */
3317
+ /* 39 */
3296
3318
  /***/ (() => {
3297
3319
 
3298
3320
  const u = up.util;
@@ -3398,7 +3420,7 @@ up.EventListener = class EventListener extends up.Record {
3398
3420
 
3399
3421
 
3400
3422
  /***/ }),
3401
- /* 39 */
3423
+ /* 40 */
3402
3424
  /***/ (() => {
3403
3425
 
3404
3426
  const u = up.util;
@@ -3470,7 +3492,7 @@ up.EventListenerGroup = class EventListenerGroup extends up.Record {
3470
3492
 
3471
3493
 
3472
3494
  /***/ }),
3473
- /* 40 */
3495
+ /* 41 */
3474
3496
  /***/ (function() {
3475
3497
 
3476
3498
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -3597,7 +3619,7 @@ up.FieldWatcher = class FieldWatcher {
3597
3619
 
3598
3620
 
3599
3621
  /***/ }),
3600
- /* 41 */
3622
+ /* 42 */
3601
3623
  /***/ (function() {
3602
3624
 
3603
3625
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -3795,7 +3817,7 @@ up.FormValidator = class FormValidator {
3795
3817
 
3796
3818
 
3797
3819
  /***/ }),
3798
- /* 42 */
3820
+ /* 43 */
3799
3821
  /***/ (() => {
3800
3822
 
3801
3823
  up.FocusCapsule = class FocusCapsule {
@@ -3825,7 +3847,7 @@ up.FocusCapsule = class FocusCapsule {
3825
3847
 
3826
3848
 
3827
3849
  /***/ }),
3828
- /* 43 */
3850
+ /* 44 */
3829
3851
  /***/ (() => {
3830
3852
 
3831
3853
  const u = up.util;
@@ -3889,7 +3911,7 @@ up.FragmentProcessor = class FragmentProcessor extends up.Record {
3889
3911
 
3890
3912
 
3891
3913
  /***/ }),
3892
- /* 44 */
3914
+ /* 45 */
3893
3915
  /***/ (() => {
3894
3916
 
3895
3917
  const DESCENDANT_SELECTOR = /^([^ >+(]+) (.+)$/;
@@ -3932,7 +3954,7 @@ up.FragmentFinder = class FragmentFinder {
3932
3954
 
3933
3955
 
3934
3956
  /***/ }),
3935
- /* 45 */
3957
+ /* 46 */
3936
3958
  /***/ (() => {
3937
3959
 
3938
3960
  const u = up.util;
@@ -4017,7 +4039,7 @@ up.FragmentFocus = class FragmentFocus extends up.FragmentProcessor {
4017
4039
 
4018
4040
 
4019
4041
  /***/ }),
4020
- /* 46 */
4042
+ /* 47 */
4021
4043
  /***/ (() => {
4022
4044
 
4023
4045
  const e = up.element;
@@ -4123,7 +4145,7 @@ up.FragmentPolling = class FragmentPolling {
4123
4145
 
4124
4146
 
4125
4147
  /***/ }),
4126
- /* 47 */
4148
+ /* 48 */
4127
4149
  /***/ (() => {
4128
4150
 
4129
4151
  const u = up.util;
@@ -4187,7 +4209,7 @@ up.FragmentScrolling = class FragmentScrolling extends up.FragmentProcessor {
4187
4209
 
4188
4210
 
4189
4211
  /***/ }),
4190
- /* 48 */
4212
+ /* 49 */
4191
4213
  /***/ (() => {
4192
4214
 
4193
4215
  const e = up.element;
@@ -4410,7 +4432,7 @@ up.Layer = class Layer extends up.Record {
4410
4432
 
4411
4433
 
4412
4434
  /***/ }),
4413
- /* 49 */
4435
+ /* 50 */
4414
4436
  /***/ (() => {
4415
4437
 
4416
4438
  const e = up.element;
@@ -4690,7 +4712,7 @@ up.Layer.Overlay = class Overlay extends up.Layer {
4690
4712
 
4691
4713
 
4692
4714
  /***/ }),
4693
- /* 50 */
4715
+ /* 51 */
4694
4716
  /***/ (() => {
4695
4717
 
4696
4718
  up.Layer.OverlayWithTether = class OverlayWithTether extends up.Layer.Overlay {
@@ -4727,7 +4749,7 @@ up.Layer.OverlayWithTether = class OverlayWithTether extends up.Layer.Overlay {
4727
4749
 
4728
4750
 
4729
4751
  /***/ }),
4730
- /* 51 */
4752
+ /* 52 */
4731
4753
  /***/ (() => {
4732
4754
 
4733
4755
  var _a;
@@ -4765,7 +4787,7 @@ up.Layer.OverlayWithViewport = (_a = class OverlayWithViewport extends up.Layer.
4765
4787
 
4766
4788
 
4767
4789
  /***/ }),
4768
- /* 52 */
4790
+ /* 53 */
4769
4791
  /***/ (() => {
4770
4792
 
4771
4793
  var _a;
@@ -4811,7 +4833,7 @@ up.Layer.Root = (_a = class Root extends up.Layer {
4811
4833
 
4812
4834
 
4813
4835
  /***/ }),
4814
- /* 53 */
4836
+ /* 54 */
4815
4837
  /***/ (() => {
4816
4838
 
4817
4839
  var _a;
@@ -4822,7 +4844,7 @@ up.Layer.Modal = (_a = class Modal extends up.Layer.OverlayWithViewport {
4822
4844
 
4823
4845
 
4824
4846
  /***/ }),
4825
- /* 54 */
4847
+ /* 55 */
4826
4848
  /***/ (() => {
4827
4849
 
4828
4850
  var _a;
@@ -4833,7 +4855,7 @@ up.Layer.Popup = (_a = class Popup extends up.Layer.OverlayWithTether {
4833
4855
 
4834
4856
 
4835
4857
  /***/ }),
4836
- /* 55 */
4858
+ /* 56 */
4837
4859
  /***/ (() => {
4838
4860
 
4839
4861
  var _a;
@@ -4844,7 +4866,7 @@ up.Layer.Drawer = (_a = class Drawer extends up.Layer.OverlayWithViewport {
4844
4866
 
4845
4867
 
4846
4868
  /***/ }),
4847
- /* 56 */
4869
+ /* 57 */
4848
4870
  /***/ (() => {
4849
4871
 
4850
4872
  var _a;
@@ -4855,7 +4877,7 @@ up.Layer.Cover = (_a = class Cover extends up.Layer.OverlayWithViewport {
4855
4877
 
4856
4878
 
4857
4879
  /***/ }),
4858
- /* 57 */
4880
+ /* 58 */
4859
4881
  /***/ (() => {
4860
4882
 
4861
4883
  const u = up.util;
@@ -4945,7 +4967,7 @@ up.LayerLookup = class LayerLookup {
4945
4967
 
4946
4968
 
4947
4969
  /***/ }),
4948
- /* 58 */
4970
+ /* 59 */
4949
4971
  /***/ (() => {
4950
4972
 
4951
4973
  const u = up.util;
@@ -5058,7 +5080,7 @@ up.LayerStack = class LayerStack extends Array {
5058
5080
 
5059
5081
 
5060
5082
  /***/ }),
5061
- /* 59 */
5083
+ /* 60 */
5062
5084
  /***/ (() => {
5063
5085
 
5064
5086
  up.LinkFeedbackURLs = class LinkFeedbackURLs {
@@ -5089,7 +5111,7 @@ up.LinkFeedbackURLs = class LinkFeedbackURLs {
5089
5111
 
5090
5112
 
5091
5113
  /***/ }),
5092
- /* 60 */
5114
+ /* 61 */
5093
5115
  /***/ (() => {
5094
5116
 
5095
5117
  const u = up.util;
@@ -5159,7 +5181,7 @@ up.LinkPreloader = class LinkPreloader {
5159
5181
 
5160
5182
 
5161
5183
  /***/ }),
5162
- /* 61 */
5184
+ /* 62 */
5163
5185
  /***/ (function() {
5164
5186
 
5165
5187
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -5268,7 +5290,7 @@ up.MotionController = class MotionController {
5268
5290
 
5269
5291
 
5270
5292
  /***/ }),
5271
- /* 62 */
5293
+ /* 63 */
5272
5294
  /***/ (() => {
5273
5295
 
5274
5296
  const u = up.util;
@@ -5360,7 +5382,7 @@ up.NonceableCallback = class NonceableCallback {
5360
5382
 
5361
5383
 
5362
5384
  /***/ }),
5363
- /* 63 */
5385
+ /* 64 */
5364
5386
  /***/ (() => {
5365
5387
 
5366
5388
  const u = up.util;
@@ -5438,7 +5460,7 @@ up.OptionsParser = class OptionsParser {
5438
5460
 
5439
5461
 
5440
5462
  /***/ }),
5441
- /* 64 */
5463
+ /* 65 */
5442
5464
  /***/ (() => {
5443
5465
 
5444
5466
  const e = up.element;
@@ -5506,7 +5528,7 @@ up.OverlayFocus = class OverlayFocus {
5506
5528
 
5507
5529
 
5508
5530
  /***/ }),
5509
- /* 65 */
5531
+ /* 66 */
5510
5532
  /***/ (() => {
5511
5533
 
5512
5534
  const u = up.util;
@@ -5737,7 +5759,7 @@ up.Params = class Params {
5737
5759
 
5738
5760
 
5739
5761
  /***/ }),
5740
- /* 66 */
5762
+ /* 67 */
5741
5763
  /***/ (() => {
5742
5764
 
5743
5765
  const e = up.element;
@@ -5787,7 +5809,7 @@ up.ProgressBar = class ProgressBar {
5787
5809
 
5788
5810
 
5789
5811
  /***/ }),
5790
- /* 67 */
5812
+ /* 68 */
5791
5813
  /***/ (() => {
5792
5814
 
5793
5815
  const u = up.util;
@@ -5904,7 +5926,7 @@ up.RenderOptions = (function () {
5904
5926
 
5905
5927
 
5906
5928
  /***/ }),
5907
- /* 68 */
5929
+ /* 69 */
5908
5930
  /***/ (() => {
5909
5931
 
5910
5932
  up.RenderResult = class RenderResult extends up.Record {
@@ -5928,11 +5950,17 @@ up.RenderResult = class RenderResult extends up.Record {
5928
5950
  get fragment() {
5929
5951
  return this.fragments[0];
5930
5952
  }
5953
+ static buildNone() {
5954
+ return new this({
5955
+ target: ':none',
5956
+ finished: Promise.resolve(),
5957
+ });
5958
+ }
5931
5959
  };
5932
5960
 
5933
5961
 
5934
5962
  /***/ }),
5935
- /* 69 */
5963
+ /* 70 */
5936
5964
  /***/ (() => {
5937
5965
 
5938
5966
  var _a;
@@ -6275,7 +6303,7 @@ up.Request = (_a = class Request extends up.Record {
6275
6303
 
6276
6304
 
6277
6305
  /***/ }),
6278
- /* 70 */
6306
+ /* 71 */
6279
6307
  /***/ (function() {
6280
6308
 
6281
6309
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -6429,7 +6457,7 @@ up.Request.Cache = class Cache {
6429
6457
 
6430
6458
 
6431
6459
  /***/ }),
6432
- /* 71 */
6460
+ /* 72 */
6433
6461
  /***/ (() => {
6434
6462
 
6435
6463
  const u = up.util;
@@ -6538,7 +6566,7 @@ up.Request.Queue = class Queue {
6538
6566
 
6539
6567
 
6540
6568
  /***/ }),
6541
- /* 72 */
6569
+ /* 73 */
6542
6570
  /***/ (() => {
6543
6571
 
6544
6572
  const u = up.util;
@@ -6577,7 +6605,7 @@ up.Request.FormRenderer = class FormRenderer {
6577
6605
 
6578
6606
 
6579
6607
  /***/ }),
6580
- /* 73 */
6608
+ /* 74 */
6581
6609
  /***/ (() => {
6582
6610
 
6583
6611
  var _a;
@@ -6649,7 +6677,7 @@ up.Request.XHRRenderer = (_a = class XHRRenderer {
6649
6677
 
6650
6678
 
6651
6679
  /***/ }),
6652
- /* 74 */
6680
+ /* 75 */
6653
6681
  /***/ (() => {
6654
6682
 
6655
6683
  const u = up.util;
@@ -6732,7 +6760,7 @@ up.Response = class Response extends up.Record {
6732
6760
 
6733
6761
 
6734
6762
  /***/ }),
6735
- /* 75 */
6763
+ /* 76 */
6736
6764
  /***/ (() => {
6737
6765
 
6738
6766
  var _a;
@@ -6799,6 +6827,17 @@ up.ResponseDoc = (_a = class ResponseDoc {
6799
6827
  });
6800
6828
  return finder.find();
6801
6829
  }
6830
+ selectSteps(steps) {
6831
+ return steps.filter((step) => {
6832
+ step.newElement || (step.newElement = this.select(step.selector));
6833
+ if (step.newElement) {
6834
+ return true;
6835
+ }
6836
+ else if (!step.maybe) {
6837
+ throw new up.CannotMatch();
6838
+ }
6839
+ });
6840
+ }
6802
6841
  finalizeElement(element) {
6803
6842
  up.NonceableCallback.adoptNonces(element, this.cspNonces);
6804
6843
  if (this.scriptishNeedFix) {
@@ -6813,7 +6852,7 @@ up.ResponseDoc = (_a = class ResponseDoc {
6813
6852
 
6814
6853
 
6815
6854
  /***/ }),
6816
- /* 76 */
6855
+ /* 77 */
6817
6856
  /***/ (() => {
6818
6857
 
6819
6858
  const e = up.element;
@@ -6908,7 +6947,7 @@ up.RevealMotion = class RevealMotion {
6908
6947
 
6909
6948
 
6910
6949
  /***/ }),
6911
- /* 77 */
6950
+ /* 78 */
6912
6951
  /***/ (() => {
6913
6952
 
6914
6953
  const u = up.util;
@@ -6949,7 +6988,7 @@ up.Selector = class Selector {
6949
6988
 
6950
6989
 
6951
6990
  /***/ }),
6952
- /* 78 */
6991
+ /* 79 */
6953
6992
  /***/ (() => {
6954
6993
 
6955
6994
  const u = up.util;
@@ -7070,7 +7109,7 @@ up.Tether = class Tether {
7070
7109
 
7071
7110
 
7072
7111
  /***/ }),
7073
- /* 79 */
7112
+ /* 80 */
7074
7113
  /***/ (() => {
7075
7114
 
7076
7115
  const u = up.util;
@@ -7151,7 +7190,7 @@ up.URLPattern = class URLPattern {
7151
7190
 
7152
7191
 
7153
7192
  /***/ }),
7154
- /* 80 */
7193
+ /* 81 */
7155
7194
  /***/ (() => {
7156
7195
 
7157
7196
  up.framework = (function () {
@@ -7235,7 +7274,7 @@ up.boot = up.framework.boot;
7235
7274
 
7236
7275
 
7237
7276
  /***/ }),
7238
- /* 81 */
7277
+ /* 82 */
7239
7278
  /***/ (() => {
7240
7279
 
7241
7280
  up.event = (function () {
@@ -7338,7 +7377,7 @@ up.emit = up.event.emit;
7338
7377
 
7339
7378
 
7340
7379
  /***/ }),
7341
- /* 82 */
7380
+ /* 83 */
7342
7381
  /***/ (() => {
7343
7382
 
7344
7383
  up.protocol = (function () {
@@ -7481,7 +7520,7 @@ up.protocol = (function () {
7481
7520
 
7482
7521
 
7483
7522
  /***/ }),
7484
- /* 83 */
7523
+ /* 84 */
7485
7524
  /***/ (() => {
7486
7525
 
7487
7526
  up.log = (function () {
@@ -7566,7 +7605,7 @@ up.warn = up.log.warn;
7566
7605
 
7567
7606
 
7568
7607
  /***/ }),
7569
- /* 84 */
7608
+ /* 85 */
7570
7609
  /***/ (() => {
7571
7610
 
7572
7611
  up.syntax = (function () {
@@ -7712,7 +7751,7 @@ up.hello = up.syntax.hello;
7712
7751
 
7713
7752
 
7714
7753
  /***/ }),
7715
- /* 85 */
7754
+ /* 86 */
7716
7755
  /***/ (() => {
7717
7756
 
7718
7757
  up.history = (function () {
@@ -7850,10 +7889,10 @@ up.history = (function () {
7850
7889
 
7851
7890
 
7852
7891
  /***/ }),
7853
- /* 86 */
7892
+ /* 87 */
7854
7893
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
7855
7894
 
7856
- __webpack_require__(87);
7895
+ __webpack_require__(88);
7857
7896
  const u = up.util;
7858
7897
  const e = up.element;
7859
7898
  up.fragment = (function () {
@@ -8301,6 +8340,21 @@ up.fragment = (function () {
8301
8340
  function shouldRevalidate(request, response, options = {}) {
8302
8341
  return request.fromCache && u.evalAutoOption(options.revalidate, config.autoRevalidate, response);
8303
8342
  }
8343
+ function targetForSteps(steps) {
8344
+ return u.map(steps, 'selector').join(', ') || ':none';
8345
+ }
8346
+ function isContainedByRivalStep(steps, candidateStep) {
8347
+ return u.some(steps, function (rivalStep) {
8348
+ return (rivalStep !== candidateStep) &&
8349
+ ((rivalStep.placement === 'swap') || (rivalStep.placement === 'content')) &&
8350
+ rivalStep.oldElement.contains(candidateStep.oldElement);
8351
+ });
8352
+ }
8353
+ function compressNestedSteps(steps) {
8354
+ let compressed = u.uniqBy(steps, 'oldElement');
8355
+ compressed = u.reject(compressed, step => isContainedByRivalStep(compressed, step));
8356
+ return compressed;
8357
+ }
8304
8358
  function abort(...args) {
8305
8359
  let options = parseTargetAndOptions(args);
8306
8360
  let testFn;
@@ -8375,6 +8429,8 @@ up.fragment = (function () {
8375
8429
  splitTarget,
8376
8430
  parseTargetSteps,
8377
8431
  isAlive,
8432
+ targetForSteps,
8433
+ compressNestedSteps,
8378
8434
  };
8379
8435
  })();
8380
8436
  up.reload = up.fragment.reload;
@@ -8386,16 +8442,16 @@ u.delegate(up, ['context'], () => up.layer.current);
8386
8442
 
8387
8443
 
8388
8444
  /***/ }),
8389
- /* 87 */
8445
+ /* 88 */
8390
8446
  /***/ (() => {
8391
8447
 
8392
8448
 
8393
8449
 
8394
8450
  /***/ }),
8395
- /* 88 */
8451
+ /* 89 */
8396
8452
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
8397
8453
 
8398
- __webpack_require__(89);
8454
+ __webpack_require__(90);
8399
8455
  up.viewport = (function () {
8400
8456
  const u = up.util;
8401
8457
  const e = up.element;
@@ -8709,7 +8765,7 @@ up.viewport = (function () {
8709
8765
  tryFocus,
8710
8766
  newStateCache,
8711
8767
  focusedElementWithin,
8712
- copyCursorProps
8768
+ copyCursorProps,
8713
8769
  };
8714
8770
  })();
8715
8771
  up.focus = up.viewport.focus;
@@ -8717,13 +8773,13 @@ up.reveal = up.viewport.reveal;
8717
8773
 
8718
8774
 
8719
8775
  /***/ }),
8720
- /* 89 */
8776
+ /* 90 */
8721
8777
  /***/ (() => {
8722
8778
 
8723
8779
 
8724
8780
 
8725
8781
  /***/ }),
8726
- /* 90 */
8782
+ /* 91 */
8727
8783
  /***/ (function() {
8728
8784
 
8729
8785
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -8992,10 +9048,10 @@ up.animate = up.motion.animate;
8992
9048
 
8993
9049
 
8994
9050
  /***/ }),
8995
- /* 91 */
9051
+ /* 92 */
8996
9052
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
8997
9053
 
8998
- __webpack_require__(92);
9054
+ __webpack_require__(93);
8999
9055
  const u = up.util;
9000
9056
  up.network = (function () {
9001
9057
  const config = new up.Config(() => ({
@@ -9141,13 +9197,13 @@ up.cache = up.network.cache;
9141
9197
 
9142
9198
 
9143
9199
  /***/ }),
9144
- /* 92 */
9200
+ /* 93 */
9145
9201
  /***/ (() => {
9146
9202
 
9147
9203
 
9148
9204
 
9149
9205
  /***/ }),
9150
- /* 93 */
9206
+ /* 94 */
9151
9207
  /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
9152
9208
 
9153
9209
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -9159,7 +9215,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9159
9215
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9160
9216
  });
9161
9217
  };
9162
- __webpack_require__(94);
9218
+ __webpack_require__(95);
9163
9219
  const u = up.util;
9164
9220
  const e = up.element;
9165
9221
  up.layer = (function () {
@@ -9400,16 +9456,16 @@ up.layer = (function () {
9400
9456
 
9401
9457
 
9402
9458
  /***/ }),
9403
- /* 94 */
9459
+ /* 95 */
9404
9460
  /***/ (() => {
9405
9461
 
9406
9462
 
9407
9463
 
9408
9464
  /***/ }),
9409
- /* 95 */
9465
+ /* 96 */
9410
9466
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
9411
9467
 
9412
- __webpack_require__(96);
9468
+ __webpack_require__(97);
9413
9469
  up.link = (function () {
9414
9470
  const u = up.util;
9415
9471
  const e = up.element;
@@ -9699,13 +9755,13 @@ up.follow = up.link.follow;
9699
9755
 
9700
9756
 
9701
9757
  /***/ }),
9702
- /* 96 */
9758
+ /* 97 */
9703
9759
  /***/ (() => {
9704
9760
 
9705
9761
 
9706
9762
 
9707
9763
  /***/ }),
9708
- /* 97 */
9764
+ /* 98 */
9709
9765
  /***/ (() => {
9710
9766
 
9711
9767
  up.form = (function () {
@@ -10101,7 +10157,7 @@ up.validate = up.form.validate;
10101
10157
 
10102
10158
 
10103
10159
  /***/ }),
10104
- /* 98 */
10160
+ /* 99 */
10105
10161
  /***/ (() => {
10106
10162
 
10107
10163
  up.feedback = (function () {
@@ -10218,7 +10274,7 @@ up.feedback = (function () {
10218
10274
 
10219
10275
 
10220
10276
  /***/ }),
10221
- /* 99 */
10277
+ /* 100 */
10222
10278
  /***/ (() => {
10223
10279
 
10224
10280
  up.radio = (function () {
@@ -10233,7 +10289,7 @@ up.radio = (function () {
10233
10289
  function reset() {
10234
10290
  config.reset();
10235
10291
  }
10236
- function hungrySolutions({ layer, history, origin }) {
10292
+ function hungrySteps({ layer, history, origin }) {
10237
10293
  let hungrySelector = config.hungrySelectors.join(', ');
10238
10294
  let hungries = up.fragment.all(hungrySelector, { layer: 'any' });
10239
10295
  return u.filterMap(hungries, (element) => {
@@ -10247,10 +10303,21 @@ up.radio = (function () {
10247
10303
  return;
10248
10304
  }
10249
10305
  let ifLayer = e.attr(element, 'up-if-layer');
10250
- if (ifLayer !== 'any' && layer !== up.layer.get(element)) {
10306
+ let elementLayer = up.layer.get(element);
10307
+ if (ifLayer !== 'any' && layer !== elementLayer) {
10251
10308
  return;
10252
10309
  }
10253
- return { target, element };
10310
+ let transition = e.booleanOrStringAttr(element, 'up-transition');
10311
+ return {
10312
+ selector: target,
10313
+ oldElement: element,
10314
+ layer: elementLayer,
10315
+ origin,
10316
+ transition,
10317
+ placement: 'swap',
10318
+ useKeep: true,
10319
+ maybe: true,
10320
+ };
10254
10321
  });
10255
10322
  }
10256
10323
  function startPolling(fragment, options = {}) {
@@ -10287,7 +10354,7 @@ up.radio = (function () {
10287
10354
  up.on('up:framework:reset', reset);
10288
10355
  return {
10289
10356
  config,
10290
- hungrySolutions,
10357
+ hungrySteps,
10291
10358
  startPolling,
10292
10359
  stopPolling,
10293
10360
  pollIssue,
@@ -10296,7 +10363,7 @@ up.radio = (function () {
10296
10363
 
10297
10364
 
10298
10365
  /***/ }),
10299
- /* 100 */
10366
+ /* 101 */
10300
10367
  /***/ (() => {
10301
10368
 
10302
10369
  (function () {
@@ -10435,15 +10502,16 @@ __webpack_require__(83);
10435
10502
  __webpack_require__(84);
10436
10503
  __webpack_require__(85);
10437
10504
  __webpack_require__(86);
10438
- __webpack_require__(88);
10439
- __webpack_require__(90);
10505
+ __webpack_require__(87);
10506
+ __webpack_require__(89);
10440
10507
  __webpack_require__(91);
10441
- __webpack_require__(93);
10442
- __webpack_require__(95);
10443
- __webpack_require__(97);
10508
+ __webpack_require__(92);
10509
+ __webpack_require__(94);
10510
+ __webpack_require__(96);
10444
10511
  __webpack_require__(98);
10445
10512
  __webpack_require__(99);
10446
10513
  __webpack_require__(100);
10514
+ __webpack_require__(101);
10447
10515
  up.framework.onEvaled();
10448
10516
 
10449
10517
  })();